网硕互联技术交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2235|回复: 0

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

[复制链接]

4

主题

4

帖子

42

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
42
发表于 2018-2-2 14:04:53 | 显示全部楼层 |阅读模式
    由于一些原因需要将当前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 执行:
  1. ssh-keygen
复制代码
   2)在生成过程中,直接对所有的询问回车,一直到key生成,然后授权192.168.1.20 免密登陆:
  1. ssh-copy-id 192.168.1.20
复制代码
   3)然后输入 192.168.1.20 的密码,回车即可完成授权,可执行如下命令测试是否免密登陆成功:
  1. ssh 192.168.1.20
复制代码
   4)回车后无需要输入密码即可直接登陆到 192.168.1.20服务器,到此配置完成。

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

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

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

  13. echo " ">>/root/xva.txt
  14. echo "scp 192.168.1.2.xva">>/root/xva.txt
  15. MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
  16. 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/
  17. #将导出的192.168.1.2.xva 通过scp命令传输到 192.168.1.20 服务器指定目录下
  18. #scp <本地文件> <user@服务器Ip:存放路径>

  19. echo " ">>/root/xva.txt
  20. echo "vm-import 192.168.1.2.xva">>/root/xva.txt
  21. MYDATE=$(date) ; echo "$MYDATE" >>/root/xva.txt
  22. 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"
  23. #在本地直接执行远程服务器192.168.1.20内的命令xe vm-import ,执行导入操作
  24. #ssh <user@服务器IP> "<相关命令>"
  25. #xe vm-import filename=<要导出的xva文件的路径及文件名> sr-uuid=<导入的vhd存放的分区SR-uuid>
  26. #sr-uuid 可以使用命令 xe sr-list 查看

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


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




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网硕互联技术交流社区

GMT+8, 2024-4-19 17:52 , Processed in 0.219797 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表