admin 发表于 2018-2-2 14:04:53

记一次Xen vm迁移(vm转移搬迁)完整操作过程免密

    由于一些原因需要将当前Xenserver内的所有vm迁移到另一台不同硬件配置的Xen内。由于CPU型号不同,nfs无法正常使用,无法实现动态迁移,只能使用最笨老原始的导出、转移、导入来完成操作。
    在操作前,考虑到这些操作需要大量的时间,并且只能在夜间操作,无法人工一直盯着导出、转移、导入。在此分享收集整合的一些命令,可以写成shell脚本,并加入crontab内自动执行。

    首先,我们需要将两台Xen配置成内网,两台机器以A:192.168.1.10、B:192.168.1.20 为例进行操作。

    整体操作过程:配置两台Xen免密登陆-->将A服务器vm关机-->将vm导出xva文件-->将导出的xva通过scp传输到B服务器-->在B服务器内导入xva文件-->在B服务器中启动vm

    具体步骤如下:

    1、配置192.168.1.10 免密码登陆 192.168.1.20,以便数据传输及shell远程命令执行。

    1)通过ssh登陆192.168.1.10,生成key 执行:
ssh-keygen    2)在生成过程中,直接对所有的询问回车,一直到key生成,然后授权192.168.1.20 免密登陆:
ssh-copy-id 192.168.1.20    3)然后输入 192.168.1.20 的密码,回车即可完成授权,可执行如下命令测试是否免密登陆成功:
ssh 192.168.1.20    4)回车后无需要输入密码即可直接登陆到 192.168.1.20服务器,到此配置完成。

    2、在确保两台Xen之间可以免密登陆后,新建shell脚本执行文件:
#!/bin/bash
echo " ">/root/xva.txt
#将此脚本的执行时间等写入xva.txt

echo "shutdown 192.168.1.2">>/root/xva.txt
MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
xe vm-shutdown vm=192.168.1.2
#将vm关机 192.168.1.2 进行关机

echo "Create 192.168.1.2.xva">>/root/xva.txt
MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
xe vm-export vm=192.168.1.2 filename=/var/run/sr-mount/62e1679c-5fb0-0eef-f391-9576d5240694/xva/192.168.1.2.xva
#将192.168.1.2 vm执行导出
#xe vm-export vm=<Xen内的vm的名称> filename=<导出存放的路径及文件名>

echo " ">>/root/xva.txt
echo "scp 192.168.1.2.xva">>/root/xva.txt
MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
scp /var/run/sr-mount/62e1679c-5fb0-0eef-f391-9576d5240694/xva/192.168.1.2.xva root@192.168.1.20:/var/run/sr-mount/109afc3e-a3ce-4210-725c-e0d8fd790f5e/vm/
#将导出的192.168.1.2.xva 通过scp命令传输到 192.168.1.20 服务器指定目录下
#scp <本地文件> <user@服务器Ip:存放路径>

echo " ">>/root/xva.txt
echo "vm-import 192.168.1.2.xva">>/root/xva.txt
MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
ssh root@192.168.1.20 "xe vm-import filename=/var/run/sr-mount/109afc3e-a3ce-4210-725c-e0d8fd790f5e/vm/192.168.1.2.xva sr-uuid=109afc3e-a3ce-4210-725c-e0d8fd790f5e"
#在本地直接执行远程服务器192.168.1.20内的命令xe vm-import ,执行导入操作
#ssh <user@服务器IP> "<相关命令>"
#xe vm-import filename=<要导出的xva文件的路径及文件名> sr-uuid=<导入的vhd存放的分区SR-uuid>
#sr-uuid 可以使用命令 xe sr-list 查看

echo " ">>/root/xva.txt
echo "vm-start 192.168.1.2">>/root/xva.txt
MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
ssh root@192.168.1.20 "xe vm-start vm=192.168.1.2"
#在本地直接启动远程服务器192.168.1.20内的192.168.1.2 vm机器
#ssh <user@服务器IP> "<相关命令>"
#xe vm-start vm=<vm的名称>


    将脚本书写好后,加入到任务计划crontab,设定时间执行后即可在设定时间内自动执行迁移操作了。
    至此,完美解决了迁移过程。




页: [1]
查看完整版本: 记一次Xen vm迁移(vm转移搬迁)完整操作过程免密