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

Annotation of /recepies/ganeti/restore-to-zfs-vol.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 320 - (hide annotations)
Mon Jun 23 00:41:03 2014 UTC (9 years, 11 months ago) by dpavlin
File MIME type: application/x-sh
File size: 1176 byte(s)
restore genti-backup export dump into zfs ext4 volume

1 dpavlin 320 #!/bin/sh -e
2    
3     pool=workshop
4    
5     instance=koha.ffzg.hr
6     size=60G
7     instance=prod.vbz.ffzg.hr
8     instance=bookreader.rot13.org
9    
10     if [ -z "$1" ] ; then
11     zfs list -r $pool/block
12     echo
13     test -e "/mnt/*" && df -h /mnt/* | grep -v aufs
14     echo
15     du -hcs /$pool/ganeti/export/* | cut -d/ -f1,5
16     exit 1
17     else
18     instance=$1
19     fi
20    
21     umount /mnt/$instance || true
22     zfs destroy $pool/block/$instance || true
23    
24     zfs create -V $size -b 4k -s $pool/block/$instance
25    
26     test -d /mnt/$instance || mkdir /mnt/$instance
27    
28     wait_for() {
29     echo -n "waiting for $1 "
30     while [ ! -e $1 ] ; do
31     echo -n .
32     sleep 1
33     done
34     echo " found"
35     }
36    
37     wait_for /dev/zvol/$pool/block/$instance
38    
39     label=`echo $instance | cut -d. -f1`
40     echo "label $label = $instance"
41    
42     time mkfs.ext4 -m 0 -L $label /dev/zvol/$pool/block/$instance
43    
44     wait_for /dev/disk/by-label/$label
45    
46     mount /dev/disk/by-label/$label /mnt/$instance/
47     cd /mnt/$instance/
48     dump=`ls /$pool/ganeti/export/$instance/*.disk0*.snap`
49     ls -alh $dump
50     zpool iostat 2 | tee /dev/shm/$instance &
51     pid_iostat=$!
52     ( while true; do zfs list $pool/block/$instance ; sleep 10 ; done ) &
53     pid_list=$!
54     time restore rf $dump
55     kill $pid_iostat
56     kill $pid_list
57    
58     wc -l /dev/shm/$instance
59     df -h /mnt/$instance

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26