1. 虚拟迁移

迁移:

系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行。在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术。在源主机上实时备份操作系统和应用程序的状态,然后把存储介质连接到目标主机上,最后在目标主机上恢复系统。随着虚拟机技术的发展,系统的迁移更加灵活和多样化。

最终我们迁移的目的就是:

简化系统维护管理;

  高系统负载均衡;

  增强系统错误容忍度;

 优化系统电源管理。

2. 热迁移

KVM 虚拟机的热迁移Live Migration:

   服务器虚拟化技术是当前的热点,而虚拟机的“热迁移( Live Migration )”技术则是虚拟化技术当中的热点。

热迁移(又叫动态迁移、实时迁移),即虚拟机保存( save ) / 恢复 (restore) :将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。

迁移的种类:

  P2P :物理机之间的迁移;

  V2P :虚拟机迁到物理机;

  P2V :物理机迁到虚拟机;

  V2V :虚拟机迁到虚拟机。

3. 热迁移的应用

  1> 虚拟机的热迁移技术最初是被用于双机容错或者负载均衡:当宿主机出现软硬件故障导致服务异常时,虚拟机可漂移到另外主机上,或者在集群中依据工作负载量的大小,选择更换宿主机与否来保证自身良好的服务提供性。

  2> 系统硬件维护:当前很多操作系统都能够稳定支持 7×24 运行,但是硬件却需要定期的进行维护。如果使用虚拟机的动态迁移技术,将虚拟机从需要维护的物理机器迁移到另外一主器,等维护完成后,在将其迁回到原来的物理机器。所有的系统服务和应用程序在迁移 & 恢复后仍旧正常运行,用户不会察觉到由于硬件维护造成的中断。最终实现了我们服务不受硬件维护干扰的 7*24 小时的工作愿望。

  3> 数据库备份:对于一些大型、关键的数据库应用,备份是一项重要但复杂的工作。虚拟机的保存/ 恢复可以将数据库运行在虚拟机中,如需备份就保存虚拟机,这样数据库中的所有数据、状态都做了备份。如果数据库崩溃了,就可以通过恢复虚拟机来恢复整个数据库。

  4> 环境重现:进行性能测试或程序调试时,都需要重现当时复杂庞大并且与实时完全一致的网络环境 , 不仅仅是重启、配置软件,而且常常需要一定的运行时间。我们可以将各服务安装到独立的各个虚拟机,然后利用各个独立虚拟机部署我们所需的工作环境,可以大大缩短环境重现时间。

  5> 计算机共享: 在一些公共场合用户需要共享计算机,但是由于不同的系统配置和软件需要花费大量的时间来配置和恢复。这时使用虚拟机的保存 /恢复可以很好地解决这个问题。或者也可以,在物理机上运行多个逻辑虚拟机帮助我们分配给每一个需要者一个独立,安全,稳定的环境。当因为宿主机出现问题影响虚拟机使用时,我们可以让该虚拟机漂移到其他宿主机以此来保持正常工作。

4. 热迁移的优势

  1> 首先是可伸缩性比较强, IT 管理者可以在合理时间段让运行某些关键业务的服务器适当减少工作量,以便进行更新操作系统,给应用程序打补丁等。而到了服务高峰期,又可以弹性地进行大负载量的运算。虚拟机迁移过程完全透明,几乎不影响使用。

  2> 其次,现在的数据中心都追求环保节能, 工作量负载大的应用程序必然会令服务器能耗增加,有了虚拟机热迁移技术,当一台物理服务器负载过大时,系统管理员可以将其上面的虚拟机迁移到其他服务器,可有效减低数据中心服务器的总体能耗,再通过冷却系统将数据中心的温度保持在正常水平。

5. 热迁移的局限

进行虚拟机的热迁移也有不少的限制。例如,

  VMotion 在进行迁移之前,管理软件会检测目标服务器的 X86 架构是否与原服务器兼容。包括存储设备以及处理器,虚拟机必须放到共享的存储里, CPU 的类型也要一样,不仅不能一个是英特尔,一个是 AMD ,甚至相同厂商不同产品线的CPU 也不行,比如英特尔至强和奔腾。

6. 衡量虚拟机迁移的效率

  1> 整体迁移时间:从源主机中迁移操作开始到目的主机上客户机服务处于不可用状态的时间,此时源主机上客户机已经暂停服务,目的主机上的客户机还未恢复服务。

  2> 服务器停机时间:在迁移过程中,源主机和目的主机上的客户机都处于不可用状态的时间,此时源主机上客户机已暂停,目的目的主机上客户还未恢

复服务。

  3> 对服务的性能影响:不仅包括迁移后的客户机中应用程序的性能与迁移前相对比是否有所降低,还包括迁移后对目的主机上的其他服务的性能影响。

7. Kvm 动态迁移建议和注意事项

  1> 源宿主机和目的宿主机直接尽量用网络共享的存储系统来保存客户机磁盘镜像。例如 NFS , ISCSI , Glusterfs 等。

  2> 为了提高动态迁移的成功率,尽量在同类型 cpu的主机上面进行动态迁移,尽管 kvm 动态迁移也支持从 Intel 平台迁移到 amd 平台。  但,从安全性,稳定度考虑不建议这样去操作。

  3> 64 位的客户机只能运行在 64 宿主机之间的迁移,而 32 位客户机可以在 32 宿主机和 64 位宿主机之间迁移。

  4> 在进行动态迁移时,被迁移客户机的名称是唯一的,在目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。

  5> 目的宿主机和源宿主机的软件尽可能的相同。也就是同为 Vmware , KVM , Xen 等。

8. V2V迁移实例

迁移所用主机:192.168.16.3、192.168.16.13,从.13迁移虚拟机vm1至.3。

1> 修改主机名。主机名相同无法进行迁移

192.168.16.3
[root@localhost ~]# hostnamectl set-hostname ajyone
[root@localhost ~]# hostname
ajyone 192.168.16.13
[root@localhost ~]# hostnamectl set-hostname ajytwo
[root@localhost ~]# hostname
ajytwo

2> 搭建nfs共享存储

#192.168.16.13:
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# yum install nfs-utils rpcbind -y
[root@localhost ~]# mkdir /nfsdata
[root@localhost ~]# vim /etc/exports
/nfsdata *(rw,sync)
[root@localhost ~]# chown -R nfsnobody: /nfsdata
[root@localhost ~]# systemctl restart rpcbind nfs
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/nfsdata * #192.168.16.3:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce
[root@localhost ~]# yum install nfs-utils -y
[root@localhost ~]# showmount -e 192.168.16.13
Export list for 192.168.16.13:
/nfsdata *
[root@localhost ~]# mkdir /nfsdata
[root@localhost ~]# mount -t nfs 192.168.16.13:/nfsdata /nfsdata
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce
[root@localhost ~]# df -h
192.168.16.13:/nfsdata 27G 12G 16G % /nfsdata

3> 先进行冷迁移,将.8的vm3迁移至/nfsdata目录下

[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7. 关闭
- vm1 关闭
- vm2 关闭
- vm3 关闭
[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# ls
centos7..xml networks vm1.xml vm2.xml vm3.xml
[root@localhost qemu]# cp vm3.xml vm3.xml.bak
[root@localhost qemu]# mv vm3.xml /root
[root@localhost qemu]# virsh undefine vm3
域 vm3 已经被取消定义
[root@localhost qemu]# cd /var/lib/libvirt/images/
[root@localhost images]# ls
centos7..qcow2 CentOS--x86_64-DVD-.iso vm1.qcow2 vm3.qcow2
[root@localhost images]# mv vm3.qcow2 /nfsdata
[root@localhost images]# cd /root
[root@localhost ~]# ls
vm3.xml
[root@localhost ~]# vim vm3.xml
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1611.iso'/>
[root@localhost ~]# cd /nfsdata/
[root@localhost nfsdata]# ls
vm3.qcow2
[root@localhost ~]# virsh define vm3.xml
定义域 vm3(从 vm3.xml)
[root@localhost ~]# virsh start vm3
域 vm3 已开始
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
vm3 running
- centos7. 关闭
- vm1 关闭
- vm2 关闭

4>编辑域名解析

#每台主机都写
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.3 ajyone
192.168.16.13 ajytwo

5> 两台宿主机互连,准备热迁移

6> 进行迁移

 

7> 迁移完成后,在.3打开迁移过去的终端vm3,查看终端业务是否停止

此时开机会提示对/nfsdata/vm3.qcow2无权限,无法打开,给权限即可

[root@localhost /]# cd /nfsdata/
[root@localhost nfsdata]# ls
vm3.qcow2
[root@localhost nfsdata]# chmod vm3.qcow2
[root@localhost nfsdata]# ll
总用量
-rwxrwxrwx. root root 6月 : vm3.qcow2
[root@localhost nfsdata]#

然后再将该虚拟机迁移至192.168.16.13,查看界面是否改变,若没有改变则表示热迁移成功,即在不影响使用的情况下进行了迁移

切换至192.168.16.13终端查看

窗口界面相同,迁移成功。

kvm虚拟迁移的更多相关文章

  1. KVM虚拟迁移(5)

    一.迁移简介 迁移:      系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行.在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实时 ...

  2. KVM主机迁移

    目录 新主机kvm初始环境的部署 I.检查主机cpu是否支持虚拟化 II.宿主机软件安装 III.检查kvm模块是否加载 IV.网桥的搭建 V.查看宿主机网络 迁移kvm主机数据 I.查看宿主机上现有 ...

  3. 使用kvm虚拟出Centos6.5系统相关步骤

    使用kvm虚拟出Centos6.5系统相关步骤 kvm是啥东西,亲们自行百度哇,一两句话也说不清楚,直接进主题使用宿主机虚拟出一台centos6.5的系统,当然其他系统也可以的,考虑到企业常用服务器系 ...

  4. kvm虚拟机迁移

    一.迁移简介 迁移: 系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行.在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实时备份操作系 ...

  5. kvm热迁移(4)

    一.迁移简介 迁移分为热迁移和冷迁移,冷迁移是在机器关机的状态下进行迁移,具体操作在之前的博客有体现.热迁移是在机器处于开机状态进行迁移,本次博客主要讲解热迁移. 系统的迁移是指把源主机上的操作系统和 ...

  6. kvm虚拟机迁移(6)

    一.迁移简介 迁移:      系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行. 在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实 ...

  7. kvm第五章--虚拟迁移

  8. ESXI 迁移至KVM (V2V迁移)

    1.1.1 ESXI将虚拟机导出 导出ova模板 将导出的ova模板导入到KVM环境中. 1.1.2 配置KVM环境 详情参考:http://www.cnblogs.com/clsn/p/836625 ...

  9. kvm虚拟主机安装速度很慢

    在c6220 II上部署虚拟化遇到的问题: 1.部署完kvm后,安装虚拟主机的过程非常缓慢,但是最终能成功 原因:宿主机BIOS的virtualization technology设置为Disable ...

随机推荐

  1. J - 吉哥系列故事――恨7不成妻

    #include "cstdio" #include "math.h" #include "cstring" #define mod 100 ...

  2. properties 文件注意事项

    不要使用""双引号包裹内容 db.validationQuery="select 1"比如上面这种是错误的,下面的是正确的写法 db.validationQue ...

  3. servlet小型应用服务器搭建通过tomcat发布web项目

    1.servlet简介:Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序 2.servlet的生命周期图解: 3.各阶段: 4.基本的servlet代码: pub ...

  4. BZOJ1102(搜索)

    随便写一下的搜索,别的OJ深搜就过了,强大的BZOJ成功栈溢出RE了我并使我屈服地用广搜过掉,第一行手动开栈惨遭无视. 广搜: #pragma comment(linker, "/STACK ...

  5. Serega and Fun Codeforces - 455D || queue

    https://codeforces.com/problemset/problem/455/D 其实方法很多,然而当初一个也想不到... 1.分块,块内用链表维护 修改[l,r]就当成删除第r个元素, ...

  6. Java三种技术架构

    http://blog.csdn.net/weixin_36416990/article/details/52845868

  7. python 全局变量 局部变量

    ##全局变量,局部变量#在函数内部可以调用全局变量,不能随意改变全局变量#若要在函数内部改变全局变量,需用关键字global #代码中全局变量都大写,局部变量都小写(非必须,一种规范) P = &qu ...

  8. android的handle

    Handler的定义:  用来接收子线程发送过来的数据,并利用该数据直接更新主线程的UI. 安卓中,一个应用启动时会开启一个主线程(UI线程),他的责任是负责管理界面中的控件.比如当你点击一个Butt ...

  9. unix&linux常用命令分类表

    本附录([美]哈恩:<Unix&Linux大学教程>附录B,张杰良译,清华大学出版社,2010年)摘要描述了书中所涉及的143个Unix使命,并且按照命令的类别进行排列.在每个名称 ...

  10. asp.net mvc 使用uploadfiles 实现异步上传数据

    lesg.cn 文章发布在:  http://www.lesg.cn/netdaima/net/2017-990.html 在实际开发过程中, 为了提高用户的体验,在上传文件的时候通常会使用异步上传文 ...