[pve-devel] r4942 - vzdump/trunk

svn-commits at proxmox.com svn-commits at proxmox.com
Mon Aug 9 08:28:18 CEST 2010


Author: dietmar
Date: 2010-08-09 06:28:18 +0000 (Mon, 09 Aug 2010)
New Revision: 4942

Modified:
   vzdump/trunk/ChangeLog
   vzdump/trunk/Makefile
   vzdump/trunk/OpenVZ.pm
   vzdump/trunk/VZDump.pm
   vzdump/trunk/changelog.Debian
   vzdump/trunk/vzdump
Log:
use ionice to set io priority



Modified: vzdump/trunk/ChangeLog
===================================================================
--- vzdump/trunk/ChangeLog	2010-08-06 10:02:44 UTC (rev 4941)
+++ vzdump/trunk/ChangeLog	2010-08-09 06:28:18 UTC (rev 4942)
@@ -1,3 +1,7 @@
+2010-08-09  Proxmox Support Team  <support at proxmox.com>
+
+	* vzdump: set io priority using ionice
+
 2010-05-20  Proxmox Support Team  <support at proxmox.com>
 
 	* vzrestore (restore_openvz): new --force option to overwrite

Modified: vzdump/trunk/Makefile
===================================================================
--- vzdump/trunk/Makefile	2010-08-06 10:02:44 UTC (rev 4941)
+++ vzdump/trunk/Makefile	2010-08-09 06:28:18 UTC (rev 4942)
@@ -13,7 +13,7 @@
 
 VERSION=1.2
 PACKAGE=vzdump
-PKGREL=6
+PKGREL=7
 
 #ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
 #RPMARCH:=$(shell rpm --eval %_build_arch)

Modified: vzdump/trunk/OpenVZ.pm
===================================================================
--- vzdump/trunk/OpenVZ.pm	2010-08-06 10:02:44 UTC (rev 4941)
+++ vzdump/trunk/OpenVZ.pm	2010-08-09 06:28:18 UTC (rev 4942)
@@ -144,8 +144,10 @@
 
     my $opts = $self->{vzdump}->{opts};
 
-    my $rsyncopts = "--stats -x --numeric-ids --bwlimit=$opts->{bwlimit}";
+    my $rsyncopts = "--stats -x --numeric-ids";
 
+    $rsyncopts .= " --bwlimit=$opts->{bwlimit}" if $opts->{bwlimit};
+
     $self->cmd ("rsync $rsyncopts -aH --delete --no-whole-file --inplace '$from' '$to'");
 
     my $delay = time () - $starttime;
@@ -345,7 +347,6 @@
     my $srcdir = $self->{vmlist}->{$vmid}->{dir};
     my $snapdir = $task->{snapdir};
 
-    my $bwl = $opts->{bwlimit}*1024; # bandwidth limit for cstream
     my $zflag = $opts->{compress} ? 'z' : '';
 
     my $taropts = "--totals --sparse --numeric-owner --no-recursion --ignore-failed-read --one-file-system";
@@ -355,8 +356,12 @@
     }
 
     my $out = ">$filename";
-    $out = "|cstream -t $bwl $out" if $opts->{bwlimit};
 
+    if ($opts->{bwlimit}) {
+	my $bwl = $opts->{bwlimit}*1024; # bandwidth limit for cstream
+	$out = "|cstream -t $bwl $out";
+    }
+
     $self->cmd ("(cd $snapdir;find . $findargs|" .
 		"tar c${zflag}pf - $taropts --null -T - $out )");
 

Modified: vzdump/trunk/VZDump.pm
===================================================================
--- vzdump/trunk/VZDump.pm	2010-08-06 10:02:44 UTC (rev 4941)
+++ vzdump/trunk/VZDump.pm	2010-08-09 06:28:18 UTC (rev 4942)
@@ -267,7 +267,8 @@
     my $fn = "/etc/vzdump.conf";
 
     my $res = {
-	bwlimit => 10240,
+	bwlimit => 0,
+	ionice => 7,
 	size => 1024,
 	lockwait => 3*60, # 3 hours
 	stopwait => 10, # 10 minutes
@@ -293,6 +294,8 @@
 	    $res->{script} = $1;
 	} elsif ($line =~ m/bwlimit:\s*(\d+)\s*$/) {
 	    $res->{bwlimit} = int($1);
+	} elsif ($line =~ m/ionice:\s*([0-7])\s*$/) {
+	    $res->{ionice} = int($1);
 	} elsif ($line =~ m/lockwait:\s*(\d+)\s*$/) {
 	    $res->{lockwait} = int($1);
 	} elsif ($line =~ m/stopwait:\s*(\d+)\s*$/) {
@@ -533,6 +536,7 @@
     check_bin ('mount');
     check_bin ('umount');
     check_bin ('cstream');
+    check_bin ('ionice');
 
     if ($opts->{snapshot}) {
 	check_bin ('lvcreate');
@@ -851,6 +855,8 @@
 	debugmsg ('info', "bandwidth limit: $opts->{bwlimit} KB/s", $logfd)
 	    if $opts->{bwlimit};
 
+	debugmsg ('info', "ionice priority: $opts->{ionice}", $logfd);
+
 	if ($mode eq 'stop') {
 
 	    $plugin->prepare ($task, $vmid, $mode);

Modified: vzdump/trunk/changelog.Debian
===================================================================
--- vzdump/trunk/changelog.Debian	2010-08-06 10:02:44 UTC (rev 4941)
+++ vzdump/trunk/changelog.Debian	2010-08-09 06:28:18 UTC (rev 4942)
@@ -1,3 +1,10 @@
+vzdump (1.2-7) unstable; urgency=low
+
+  * use ionice to set io priority. By default, we now set "ionice -c2 -n7"
+    to limit io (instead of using a default bwlimit)
+
+ -- Proxmox Support Team <support at proxmox.com>  Mon, 09 Aug 2010 08:24:52 +0200
+
 vzdump (1.2-6) unstable; urgency=low
 
   * vzrestore: new --force option to overwrite existing data

Modified: vzdump/trunk/vzdump
===================================================================
--- vzdump/trunk/vzdump	2010-08-06 10:02:44 UTC (rev 4941)
+++ vzdump/trunk/vzdump	2010-08-09 06:28:18 UTC (rev 4942)
@@ -56,6 +56,7 @@
 		'size=i',
 		'node=i',
 		'bwlimit=i',
+		'ionice=i',
 		'lockwait=i',
 		'stopwait=i',
 		'tmpdir=s',
@@ -91,7 +92,8 @@
     print STDERR "\t--node CID\t\tonly run on pve cluster node CID\n";
     print STDERR "\t--lockwait MINUTES\tmaximal time to wait for the global lock\n";
     print STDERR "\t--stopwait MINUTES\tmaximal time to wait until a VM is stopped\n";
-    print STDERR "\t--bwlimit KBPS\t\tlimit I/O bandwidth; KBytes per second\n\n";
+    print STDERR "\t--bwlimit KBPS\t\tlimit I/O bandwidth; KBytes per second\n";
+    print STDERR "\t--ionice PRI\t\tset ionice priority (0-7)\n\n";
 
     print STDERR "\n";
 }
@@ -142,6 +144,9 @@
 # parameters are OK - now start real work and log everything
 
 eval {
+    if (defined($opts->{ionice})) {
+	PVE::VZDump::run_command (undef, "ionice -c2 -n$opts->{ionice} -p $$");
+    }
     $vzdump->exec_backup(); 
 };
 my $err = $@;
@@ -198,6 +203,9 @@
     
 --bwlimit KBPS          limit I/O bandwidth; KBytes per second
 
+--ionice PRI            set ionice priority (0-7). default is 7 (lowest
+                        priority).
+
 --lockwait MINUTES      maximal time to wait for the global
                         lock. vzdump uses a global lock file to make
                         sure that only one instance is running
@@ -274,6 +282,7 @@
  storage: STORAGE_ID
  mode: snapshot|suspend|stop
  bwlimit: KBPS
+ ionize: PRI
  lockwait: MINUTES 
  stopwait: MINUTES 
  size: MB




More information about the pve-devel mailing list