Difference between revisions of "Vhd-util"
From Christoph's Personal Wiki
(Replacing page with ''''<code>vhd-util</code>''' is a utility for working with Virtual HDD (VHDs) in a XenServer environment. Category:XenServer') |
|||
Line 1: | Line 1: | ||
− | '''<code>vhd-util</code>''' is a utility for working with | + | '''<code>vhd-util</code>''' is a utility for working with virtual hard drives (VHDs) in a [[XenServer]] environment. |
+ | |||
+ | ==Examples== | ||
+ | |||
+ | $ vhd-util snapshot -n my_new_snapshot.vhd -p vm_to_backup.vhd | ||
+ | |||
+ | $ VHD_ID=5057243c-a40f-429c-bc39-3e88882e6711 | ||
+ | $ SR_ID=d87d85d7-2de0-417b-9057-ec530f26ea10 | ||
+ | $ vhd-util check -n ${VHD_ID}.vhd | ||
+ | $ vhd-util scan -f -p -m /var/run/sr-mount/${SR_ID}/${VHD_ID}.vhd | ||
+ | $ vhd-util read -p -n /var/run/sr-mount/${SR_ID}/${VHD_ID}.vhd | ||
+ | $ vhd-util coalesce -p -n ${VHD_ID}.vhd && watch -n 4 'ps afux|grep vhd-util' | ||
+ | $ vhd-util repair -n /var/run/sr-mount/${SR_ID}/${VHD_ID}.vhd | ||
+ | |||
+ | * List of VDIs on host w/specs + calcs: | ||
+ | $ (echo -e "VDI label\tDev\tChain Size\tCoal. %\tSnapshot\tUUID"; \ | ||
+ | vhd-util scan -f -p -m /var/run/sr-mount/*/*.vhd | \ | ||
+ | awk '{uuid=substr($1,5,36); size=substr($3,6); parent=substr($NF,8,36); if(parent=="none") { \ | ||
+ | bob[uuid]=0; bs[uuid]=size}else{bob[uuid]=bob[parent]+1;bs[uuid]=bs[parent]+size}; \ | ||
+ | ("/opt/xensource/bin/xe vdi-list params=name-label minimal=true uuid="uuid) |& getline name; if(name=="") name="unknown"; \ | ||
+ | ("/opt/xensource/bin/xe vdi-list params=is-a-snapshot minimal=true uuid="uuid) |& getline snapshot; if(snapshot=="") snapshot="?????"; \ | ||
+ | ("/opt/xensource/bin/xe vbd-list params=device minimal=true vdi-uuid="uuid) |& getline device; if(device=="") device="----"; \ | ||
+ | if(bob[uuid]>0) t=" |"; else t=""; for(i=0;i<bob[uuid];i++) t=t"--"; \ | ||
+ | if(bob[parent]=="" && bob[uuid]!=0) print "Orphan below!"; \ | ||
+ | if(bob[uuid]==1 && bs[uuid]/2^20>160000) {cp=int((167772160000-bs[parent])/(bs[uuid]-bs[parent])*100+0.5); \ | ||
+ | if(cp>100) cp=100; if(cp<0) cp=0; cp=cp"%"}else{cp="-"}; \ | ||
+ | printf "%s%s\t%s\t%6.1f GiB\t% s\t%s\t%s\n",t,name,device,int(bs[uuid]/2^30*10+0.5)/10,cp,snapshot,uuid }') | \ | ||
+ | column -ts "$(echo -e "\t")" | ||
[[Category:XenServer]] | [[Category:XenServer]] |
Latest revision as of 23:27, 1 March 2015
vhd-util
is a utility for working with virtual hard drives (VHDs) in a XenServer environment.
Examples
$ vhd-util snapshot -n my_new_snapshot.vhd -p vm_to_backup.vhd
$ VHD_ID=5057243c-a40f-429c-bc39-3e88882e6711 $ SR_ID=d87d85d7-2de0-417b-9057-ec530f26ea10 $ vhd-util check -n ${VHD_ID}.vhd $ vhd-util scan -f -p -m /var/run/sr-mount/${SR_ID}/${VHD_ID}.vhd $ vhd-util read -p -n /var/run/sr-mount/${SR_ID}/${VHD_ID}.vhd $ vhd-util coalesce -p -n ${VHD_ID}.vhd && watch -n 4 'ps afux|grep vhd-util' $ vhd-util repair -n /var/run/sr-mount/${SR_ID}/${VHD_ID}.vhd
- List of VDIs on host w/specs + calcs:
$ (echo -e "VDI label\tDev\tChain Size\tCoal. %\tSnapshot\tUUID"; \ vhd-util scan -f -p -m /var/run/sr-mount/*/*.vhd | \ awk '{uuid=substr($1,5,36); size=substr($3,6); parent=substr($NF,8,36); if(parent=="none") { \ bob[uuid]=0; bs[uuid]=size}else{bob[uuid]=bob[parent]+1;bs[uuid]=bs[parent]+size}; \ ("/opt/xensource/bin/xe vdi-list params=name-label minimal=true uuid="uuid) |& getline name; if(name=="") name="unknown"; \ ("/opt/xensource/bin/xe vdi-list params=is-a-snapshot minimal=true uuid="uuid) |& getline snapshot; if(snapshot=="") snapshot="?????"; \ ("/opt/xensource/bin/xe vbd-list params=device minimal=true vdi-uuid="uuid) |& getline device; if(device=="") device="----"; \ if(bob[uuid]>0) t=" |"; else t=""; for(i=0;i<bob[uuid];i++) t=t"--"; \ if(bob[parent]=="" && bob[uuid]!=0) print "Orphan below!"; \ if(bob[uuid]==1 && bs[uuid]/2^20>160000) {cp=int((167772160000-bs[parent])/(bs[uuid]-bs[parent])*100+0.5); \ if(cp>100) cp=100; if(cp<0) cp=0; cp=cp"%"}else{cp="-"}; \ printf "%s%s\t%s\t%6.1f GiB\t% s\t%s\t%s\n",t,name,device,int(bs[uuid]/2^30*10+0.5)/10,cp,snapshot,uuid }') | \ column -ts "$(echo -e "\t")"