You are viewing a plain text version of this content. The canonical link for it is here.
Posted to tashi-commits@incubator.apache.org by st...@apache.org on 2011/10/02 00:49:08 UTC

svn commit: r1178110 - in /incubator/tashi: site/docs/documentation-options.html site/xdocs/documentation-options.xml trunk/etc/TashiDefaults.cfg trunk/src/tashi/nodemanager/vmcontrol/qemu.py

Author: stroucki
Date: Sun Oct  2 00:49:08 2011
New Revision: 1178110

URL: http://svn.apache.org/viewvc?rev=1178110&view=rev
Log:
let host-local scratch facility be a configuration option

Modified:
    incubator/tashi/site/docs/documentation-options.html
    incubator/tashi/site/xdocs/documentation-options.xml
    incubator/tashi/trunk/etc/TashiDefaults.cfg
    incubator/tashi/trunk/src/tashi/nodemanager/vmcontrol/qemu.py

Modified: incubator/tashi/site/docs/documentation-options.html
URL: http://svn.apache.org/viewvc/incubator/tashi/site/docs/documentation-options.html?rev=1178110&r1=1178109&r2=1178110&view=diff
==============================================================================
--- incubator/tashi/site/docs/documentation-options.html (original)
+++ incubator/tashi/site/docs/documentation-options.html Sun Oct  2 00:49:08 2011
@@ -380,6 +380,11 @@ table.options td {
 <td>Location where Qemu snapshot disk images can be placed</td>
 </tr>
 <tr>
+<td>scratchVg</td>
+<td>None</td>
+<td>Volume group where host-local logican volumes can be allocated</td>
+</tr>
+<tr>
 <td>pollDelay</td>
 <td>1.0</td>
 <td>How often to check and see if a VM has exited</td>

Modified: incubator/tashi/site/xdocs/documentation-options.xml
URL: http://svn.apache.org/viewvc/incubator/tashi/site/xdocs/documentation-options.xml?rev=1178110&r1=1178109&r2=1178110&view=diff
==============================================================================
--- incubator/tashi/site/xdocs/documentation-options.xml (original)
+++ incubator/tashi/site/xdocs/documentation-options.xml Sun Oct  2 00:49:08 2011
@@ -311,6 +311,11 @@
 <td>Location where Qemu snapshot disk images can be placed</td>
 </tr>
 <tr>
+<td>scratchVg</td>
+<td>None</td>
+<td>Volume group where host-local logican volumes can be allocated</td>
+</tr>
+<tr>
 <td>pollDelay</td>
 <td>1.0</td>
 <td>How often to check and see if a VM has exited</td>

Modified: incubator/tashi/trunk/etc/TashiDefaults.cfg
URL: http://svn.apache.org/viewvc/incubator/tashi/trunk/etc/TashiDefaults.cfg?rev=1178110&r1=1178109&r2=1178110&view=diff
==============================================================================
--- incubator/tashi/trunk/etc/TashiDefaults.cfg (original)
+++ incubator/tashi/trunk/etc/TashiDefaults.cfg Sun Oct  2 00:49:08 2011
@@ -117,6 +117,7 @@ migrateTimeout = 300.0
 maxParallelMigrations = 10
 useMigrateArgument = False
 statsInterval = 0.0
+#scratchVg = vgscratch
 
 [XenPV]
 vmNamePrefix = tashi

Modified: incubator/tashi/trunk/src/tashi/nodemanager/vmcontrol/qemu.py
URL: http://svn.apache.org/viewvc/incubator/tashi/trunk/src/tashi/nodemanager/vmcontrol/qemu.py?rev=1178110&r1=1178109&r2=1178110&view=diff
==============================================================================
--- incubator/tashi/trunk/src/tashi/nodemanager/vmcontrol/qemu.py (original)
+++ incubator/tashi/trunk/src/tashi/nodemanager/vmcontrol/qemu.py Sun Oct  2 00:49:08 2011
@@ -105,6 +105,7 @@ class Qemu(VmControlInterface):
 		self.consolePortLock = threading.Lock()
 		self.migrationSemaphore = threading.Semaphore(int(self.config.get("Qemu", "maxParallelMigrations")))
 		self.stats = {}
+		self.scratchVg = self.config.get("Qemu", "scratchVg")
 		# XXXstroucki revise
 		self.scratchDir = self.config.get("Qemu", "scratchDir")
 		if len(self.scratchDir) == 0:
@@ -178,11 +179,15 @@ class Qemu(VmControlInterface):
 						f.write(i)
 					f.close()
 				#XXXstroucki remove scratch storage
-				scratch_name = child.instance.name
-				log.info("Removing scratch for " + scratch_name)
-				#cmd = "/sbin/lvremove -f vgscratch/lv" + scratch_name
-				cmd = "/sbin/lvremove -f vgscratch"
-    				result = subprocess.Popen(cmd.split(), executable=cmd.split()[0], stdout=subprocess.PIPE).wait()
+				try:
+					if self.scratchVg is not None:
+						scratch_name = child.instance.name
+						log.info("Removing scratch for " + scratch_name)
+						cmd = "/sbin/lvremove -f %s" % self.scratchVg
+    						result = subprocess.Popen(cmd.split(), executable=cmd.split()[0], stdout=subprocess.PIPE).wait()
+				except:
+					pass
+
 				try:
 					if (not child.migratingOut):
 						self.nm.vmStateChange(vmId, None, InstanceState.Exited)
@@ -395,17 +400,19 @@ class Qemu(VmControlInterface):
 
 		try:
 			if scratchSize > 0:
+				if self.scratchVg is None:
+					raise Exception, "No scratch volume group defined"
 				# create scratch disk
 				# XXXstroucki: needs to be cleaned somewhere
 				# XXXstroucki: clean user provided instance name
 				scratch_name = "lv" + instance.name
 				# XXXstroucki hold lock
 				# XXXstroucki check for capacity
-				cmd = "/sbin/lvcreate -n" + scratch_name + " -L" + str(scratchSize) + "G vgscratch"
+				cmd = "/sbin/lvcreate -n" + scratch_name + " -L" + str(scratchSize) + "G " + self.scratchVg
 				result = subprocess.Popen(cmd.split(), executable=cmd.split()[0], stdout=subprocess.PIPE).wait()
 				index += 1
 
-				thisDiskList = [ "file=/dev/vgscratch/%s" % scratch_name ]
+				thisDiskList = [ "file=/dev/%s/%s" % (self.scratchVg, scratch_name) ]
 				thisDiskList.append("if=%s" % diskInterface)
 				thisDiskList.append("index=%d" % index)
 				thisDiskList.append("cache=off")