我的方法是通过linux的命令把原始存储里面的VHD 复制到其他地方,然后再从其他地方把这个VHD复制进目标存储。
例如:在现在的环境里面,你可以在旧环境里面attach一个 cifs存储(本地存储也可以),把VHD 复制到这个cifs之后,在新的环境里面把这个cifs attach起来,然后在用命令把VHD复制到新环境的存储里面去。
以下为举例取出VHD到本地计算机的方式是:
1.)本地创建一个CIFS的存储 ,查询此SR的UUID
2.)进入到CIFS的SR目录 cd /var/run/sr-mount/[sr-uuid]
3.)通过lvscan 查询出问题的VDI是哪个VG
inactive '/dev/VG_XenStorage-【原始SR的uuid】/VHD-【原始vdi的uuid】' [40.00 GB] inherit
VDI的uuid你可以通过 xe vdi-list name-label=[VDI的名字]查询
4.)更改状态为active (如果状态是active的话则不需要修改)
lvchange -ay /dev/VG_XenStorage-【原始SR的uuid】/VHD-【原始vdi的uuid】/VHD-【原始vdi的uuid】
5.) 复制数据到本地CIFS
dd if=/dev/VG_XenStorage-【原始SR的uuid】/【原始vdi的uuid】 of=[vdiname].VHD
取出VHD之后 需要通过Xencenter在目的存储里面建立一个相同于VDI一样大小的容量,我们需要把刚刚导出到本地的[vdi].VHD写到这个VDI里面
1.)在新环境里面attach 刚刚旧环境里面的CIFS存储
2.)同样进入到CIFS的SR目录 cd /var/run/sr-mount/[sr-uuid]
3.)使用命令:dd if=[vdiname].VHD of=/dev/VG_XenStorage-【目标SR的uuid】/VHD-【目标vdi的uuid】
注意:你需要保证目标SR的VG同样处于 active 的状态
待VHD的数据全部写进到VDI之后,需要重新创建一个VM,在这个VM的Storage里面把目标VDI attach 起来。启动VM。
转载于:https://blog.51cto.com/yabinabc/754082