简介

虚拟机迁移主要分为两种:静态迁移和动态迁移

  • 静态迁移是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上。这种方式需要显式的停止虚拟机运行,对服务可用性要求高的需求不合适。
  • 动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件,可以通过多种方式实现,本例采用基于共享存储动态迁移,通过NFS来实现。

操作环境

服务器操作系统:Ubuntu14.04版本。

源宿主机为节点1:主机名xjy-pc,桥接IP为192.168.10.221,NFS挂载目录/home/kvm。

目标宿主机为节点2:主机名为lib,桥接IP为192.168.10.215,NFS挂载目录/home/kvm。

静态迁移测试虚拟机:demo,IP为192.168.10.210,虚拟磁盘文件为ubuntu.raw。

动态迁移测试虚拟机:demo3,IP为192.168.10.210,虚拟磁盘文件为ubuntu.raw。

NFS服务器:操作系统版本:Ubuntu14.04,桥接IP为192.168.10.161,服务目录为/mnt/vg/。


虚拟机的创建以及操作请参考:http://blog.csdn.net/leoe_/article/details/78765688


迁移步骤:

虚拟机静态迁移: 静态迁移也叫做常规迁移、离线迁移(Offline Migration)。是在虚拟机关机或暂停的情况下,拷贝虚拟机磁盘文件与配置文件到目标虚拟主机中,实现的从一台物理机到另一台物理机的迁移。因为虚拟机的文件系统建立在虚拟机镜像文件上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上即可。如果需要保存虚拟机迁移之前的状态,那么应该在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。


1、首先在节点1上进行操作,首先确定demo虚拟机的状态为关闭


2、准备迁移demo虚拟机,使用命令virsh domblklist demo 查看demo虚拟机的磁盘文件


3、导出虚拟机配置文件


4、拷贝配置文件到目标宿主机上,目标宿主机的IP地址为192.168.10.215


5、将虚拟机磁盘文件也拷贝到目标宿主及上,虚拟机demo的磁盘文件为ubuntu.raw


6、此时,已经将原宿主机节点1上的demo虚拟机的磁盘文件和配置文件豆腐知道目标宿主机节点2上,下面开始在目标宿主机节点2上进行虚拟机的配置和启动


7、在目标宿主机借点2上操作,首先查看节点2环境,如下图,demo虚拟机的配置文件已经拷贝过来


8、查看虚拟机磁盘文件,如下图,ubuntu.raw磁盘文件已经拷贝过来,目录结构与原宿主机一致


9、使用virsh的子命令define定义并注册demo虚拟机


10、启动迁移后的demo虚拟机,通过virsh console demo 登录到迁移后的虚拟机进行确定


动态迁移

1、KVM虚拟机动态迁移无需拷贝虚拟机配置文件和磁盘文件,但是需要迁移的主机之间有相同的目录结构放置虚拟机磁盘文件(本例为“/home/kvm”目录),这里的动态迁移是基于共享存储动态迁移,通过NFS来实现,需要qemu-kvm-0.12.2以上版本支持。


2、在NFS服务器上,下载安装NFS,kernel-server相当于server端,common是client端,使用命令“sudo apt-get install nfs-kernel-server nfs-common portmap”安装NFS。

在节点1和节点2中 使用 sudo apt-get install nfs-common 安装client端


3、配置NFS服务器,IP为192.168.10.161,将NFS服务器上的“/mnt/vg”目录设为服务目录。首先使用命令“sudo mkdir /mnt/vg”创建该目录,然后使用命令“sudo chmod 777 /mnt/vg”修改该目录权限,接下来使用vim修改“/etc/exports”文件添加共享目录,在该文件中添加

/mnt/vg *(rw,sync)

即可。*(rw,sync)是命令参数,表示包括读写权限。


4、“/etc/exports”文件修改后,使用命令“sudo exportfs –r”刷新。然后启动NFS服务,命令如下:

sudo /etc/init.d/rpcbind start
sudo /etc/init.d/nfs-kernel-server restart

5、NFS服务启动后,在节点1上使用命令“showmount –e 192.168.10.161”查看共享目录


6、在节点1或节点2上使用命令“scp ubuntu.raw 192.168.10.161:/mnt/vg”,将demo3虚拟机的虚拟磁盘文件ubuntu.raw。拷贝到NFS服务的共享目录

这里需要在nfs服务器允许ssh连接,以及对/mnt/vg 开启读写权限

编辑sshd_config文件,输入:vim /etc/ssh/sshd_config

进行相应设置,替换为如下:

# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes

接下来,重启ssh服务,输入: /etc/init.d/ssh restart

开启文件权限:

shmod 777 /mnt/vg/

7、在节点1和节点2的“/home/kvm”目录上,分别使用命令“mount -t nfs 192.168.10.161:/mnt/vg /home/kvm -o rw”进行挂载


8、挂载完成后两节点都有相同的虚拟机磁盘文件存储目录,下图为节点1挂载后的“/home/kvm”目录结构


9、查看节点1上虚拟机状态,demo3虚拟机处于运行状态,(如果demo3未运行将其启动运行)


10、查看节点2上虚拟机状态,无虚拟机运行


11、在节点1上执行“virsh migrate”迁移命令,从下图可以看出虚拟机demo3在迁移出去的过程中,状态有从“running”到“shut off”的一个改变。

完整命令为“virsh migrate --live --verbose demo3 qemu+ssh://192.168.10.215/system tcp://192.168.10. 215 --unsafe

–verbose 指迁移demo3虚拟机,192.168.10.215为节点2的IP地址,使用tcp协议连接
–unsafe参数表示跳过安全检测

代码执行如图所示:


12、在节点2上,查看虚拟机demo3虚拟机状态


13、在迁移过程中,可以通过另外一台客户机一直ping虚拟机demo3,查看demo3前一过程中的可连接性,实际上迁移过程中偶尔有几个包的中断,基本上没有太大的影响


14、此时虽然demo3虚拟机已经在节点2上启动了,但是节点2上还没有demo3虚拟机的配置文件。这时需要创建配置文件并定义该虚拟机,可以通过迁移过来的虚拟机内存状态创建虚拟机配置文件
命令为“virsh dumpxml demo3 > /etc/libvirt/qemu/demo3.xml

然后通过xml配置文件定义虚拟机,命令为“virsh define /etc/libvirt/qemu/demo3.xml”。


15、使用命令“virsh console demo3”连接节点2上的demo3虚拟机

Virsh 虚拟机迁移相关推荐

  1. ​关于虚拟机迁移文档(p2v v2v

    全文目录 1:相关概念 2:手工迁移 2.1 P2V之再生龙 2.2 其它工具(有本中文读物) 3:自动迁移(适用于v2v) 3.1 shell迁移(试用) 3.2 ansible迁移(试用) 3.3 ...

  2. kvm虚拟机安装esxi服务器,VMware vSphere虚拟机迁移至KVM virt-v2v方案

    VMware虚拟机迁移至KVM涉及到磁盘格式转换,因为VMware虚拟机使用的是VMFS文件系统,对应到虚拟机磁盘是VMDK.而KVM使用RAW或者qcow2的格式较多.格式转换那必须离线进行.之前试 ...

  3. CentOS7下 libvirt+virt-manager 虚拟机迁移配置及错误处理

    为什么80%的码农都做不了架构师?>>>    感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如果转载,请保留作者信息. 博客地址:http ...

  4. 虚拟机迁移(QEMU动态迁移,Libvirt动(静)态迁移)

    动静态迁移的原理 静态迁移是指在虚拟机关闭或暂停的情况下,将源宿主机上虚拟机的磁盘文件和配置文件拷贝到目标宿主机上.这种方式需要显式的停止虚拟机运行,对服务可用性要求高的需求不合适. *** 动态迁移 ...

  5. CentOS: 将虚拟机迁移到 Azure (以阿里云为例)

    Azure 虚拟机能很容易地导出 vhd 并迁移到各种环境中,包含本地及云端环境,或者迁移至其他区域.这为开发.测试.扩展带来了极大的便利.因此本文以阿里云为例,阐述的是如何将 CentOS 6.8 ...

  6. 数据中心内虚拟机迁移带来的网络技术难题

    虚拟机是指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统.通过虚拟化软件,用户可以在一台物理服务器上模拟出一台或多台虚拟的服务器,服务器硬件资源经过虚拟化技术变成一个可 ...

  7. 虚拟机迁移及虚拟机高可用方案

    公司现有三台物理服务器,安装windows server 2008 R2操作系统,启用了Hyper-v,三台物理服务器里面各有三台虚拟机(共9台虚拟机).现有环境不支持虚拟机高可用性,现计划配置win ...

  8. Windows Server 2012 R2 虚拟机迁移 出错 21502 0x80070490 解决

    Windows Server 2012 R2 虚拟机迁移 出错 21502 0x80070490 解决 今天在更新群集中的一个节点的intel i350网卡驱动,虚拟机回迁时,提示出错 ------- ...

  9. KVM虚拟机迁移原理分析

    KVM虚拟机在不同主机之间的迁移,是个复杂的问题,有非常多的解决方案,但是不同的解决方案都有其优点和缺点,下面来分析下当前几种可用的KVM虚拟机迁移的方案. 1. 虚拟机迁移过程中数据的传输(磁盘镜像 ...

最新文章

  1. 递归计算Linux目录中的文件
  2. 博客重构 / Blog Refactoring
  3. html select滚动轴,javascript - html select scroll bar - Stack Overflow
  4. javac环境变量配置(转)
  5. java中的内存泄漏
  6. Hello Cnblog!
  7. DataSet DataTable操作
  8. 第12课第2.2节 字符设备驱动程序之LED驱动程序_测试改进
  9. python中常用的序列化模块_python 序列化,常用模块
  10. OpenCV adaptiveThreshold 自适应阈值
  11. Tosca new project Repository as MS SQL Server
  12. mysql查看数据库所占用的空间
  13. 35、html制作QQ彩贝热销时装页面(注意:需要素材)
  14. 安装JDK11并配置环境变量(附百度网盘下载地址)
  15. 蓝桥杯练习1:等差素数列
  16. 计算机教室盘点表,怎样用excel制作库存盘点表
  17. 电线电缆线缆字母符号代表什么意思
  18. 安卓 Charles证书的安装
  19. ObjectARX类库简介
  20. IMT-2020工作组制定五步发展计划:与3GPP保持标准制定同步

热门文章

  1. 说话人识别matlab实现
  2. [electron] 基础学习
  3. 云媒易:做好小红书推广的6个关键点
  4. IT项目管理学习笔记(一)
  5. 山东二本计算机排名大学最新,2018山东二本大学排名
  6. java发送带图片的邮件代码
  7. 自动驾驶深度学习常用中英文对照表
  8. 逆向教程-2014.08版电信爱游戏支付分析
  9. java极光推送如何设置别名_Android 极光推送设置别名
  10. 输入年、月,判断该月有多少天