[Users] vzdump lvm+xfs snapshot support patch
Gregory M. Turner
gmt at malth.us
Thu May 28 16:42:08 EDT 2009
Hello, this vzdump patch (against the 1.02 version which happened to be on my centos box) attempts to detect when an lvm snapshot is being made of an XFS filesystem and add the necessary mount options to have this actually succeed.
My perl coding skills are very rusty so please feel free to make fun of me :)
At a glance, the patch would probably work if it was folded into the new 1.1 version by hand, but I haven't tried this.
--- vzdump.orig 2009-05-28 03:31:45.000000000 -0700
+++ vzdump 2009-05-28 04:48:09.000000000 -0700
@@ -315,6 +315,28 @@
my $devmapper;
+sub is_xfs_mount {
+ my $mp = shift;
+
+ open (TMP, "</proc/mounts");
+ while (<TMP>) {
+ my $line = $_;
+ chomp($line);
+ my @lineitems = split (/\s+/, $line);
+ if ($lineitems[1] eq $mp) {
+ if ($lineitems[2] eq "xfs") {
+ close (TMP);
+ return 1;
+ } else {
+ close (TMP);
+ return 0;
+ }
+ }
+ }
+ close (TMP);
+ return 0;
+}
+
sub get_device {
my $dir = shift;
@@ -647,12 +669,13 @@
open (LOG, ">$logfile");
- my ($lvmpath, $lvmvg, $lvmlv);
+ my ($lvmpath, $lvmvg, $lvmlv, $lv_is_xfs);
if ($opt_snap) {
my ($dev, $mp, $vg, $lv) = get_device ($dir);
$lvmpath = $mp;
$lvmvg = $vg;
$lvmlv = $lv;
+ $lv_is_xfs = is_xfs_mount($lvmpath);
}
my $snapdev;
@@ -686,7 +709,12 @@
debugmsg ('info', "mounting lvm snapshot", \*LOG);
- run_command (\*LOG, "mount $snapdev /vzsnap");
+ my $mountopts = "";
+ if ($lv_is_xfs) {
+ $mountopts = "-o nouuid";
+ }
+
+ run_command (\*LOG, "mount $snapdev /vzsnap $mountopts");
$dir =~ s|/?$lvmpath/?|/vzsnap/|;
<---eof (actually one CR less)
-gmt
More information about the Users
mailing list