/[sysadmin-cookbook]/recepies/zfs/zfs-replicate-pool.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /recepies/zfs/zfs-replicate-pool.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 267 by dpavlin, Mon Sep 5 22:02:00 2011 UTC revision 268 by dpavlin, Mon Sep 5 22:18:01 2011 UTC
# Line 5  use strict; Line 5  use strict;
5  use Net::OpenSSH;  use Net::OpenSSH;
6  use Data::Dump qw(dump);  use Data::Dump qw(dump);
7  use List::Util qw(first);  use List::Util qw(first);
8    use Time::Hires;
9    
10  my $arh = Net::OpenSSH->new('root@10.60.0.204');  my $arh = Net::OpenSSH->new('root@10.60.0.204');
11  my $dev = Net::OpenSSH->new('root@10.60.0.202');  my $dev = Net::OpenSSH->new('root@10.60.0.202');
# Line 45  sub snapshots_from { Line 46  sub snapshots_from {
46                  push @{ $snapshot->{$fs} }, $name;                  push @{ $snapshot->{$fs} }, $name;
47          }          }
48    
49          warn "snapshots_from $host ",dump($snapshot),$/;  #       warn "snapshots_from $host ",dump($snapshot),$/;
50    
51          return $snapshot;          return $snapshot;
52  }  }
# Line 102  foreach my $fs ( @arh ) { Line 103  foreach my $fs ( @arh ) {
103                  my ($rin1,$pid1) = $dev->pipe_in($recv);                  my ($rin1,$pid1) = $dev->pipe_in($recv);
104                  warn ">> pid: $pid1";                  warn ">> pid: $pid1";
105    
106                    sleep 0.1; # FIXME wait for netcat to start
107    
108                  my $send = "zfs send $snapshot | nc -q 0 -w 5 10.60.0.202 8888";                  my $send = "zfs send $snapshot | nc -q 0 -w 5 10.60.0.202 8888";
109                  warn "<< $send\n";                  warn "<< $send\n";
110                  $arh->system($send);                  $arh->system($send);
# Line 112  foreach my $fs ( @arh ) { Line 115  foreach my $fs ( @arh ) {
115                  $dev->system("zfs set readonly=on $to_pool/$name") if $i == 0;                  $dev->system("zfs set readonly=on $to_pool/$name") if $i == 0;
116                  die $dev->error if $dev->error;                  die $dev->error if $dev->error;
117    
118                    $dev_snapshot = snapshots_from $dev;
119                    die "can't find new snapshot $snap" unless $dev_snapshot->{$to_dev};
120    
121          }          }
122    
123  }        }      

Legend:
Removed from v.267  
changed lines
  Added in v.268

  ViewVC Help
Powered by ViewVC 1.1.26