KVM虚拟机的热迁移---Live Migration:

  • 服务器虚拟化技术是当前的热点,而虚拟机的“热迁移(Live Migration)”技术则是虚拟机的运行状态完整保存下来,同时可以快速的回复到原有硬件平台甚至是不同硬件平台上。恢复后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。

迁移的种类:

  1. P2P:物理机之间的迁移
  2. V2P:虚拟机迁到物理机
  3. P2V:物理机迁到虚拟机
  4. V2V:虚拟机迁到虚拟机

热迁移的优势

  • 首先是可伸缩性比较强,IT管理者可以在合理时间段让运行某些关键业务的服务器适当减少工作量,以便进行新操作系统,给应用程序打补丁等。而到了服务高峰期,又可以弹性的运行大负载量的运算。虚拟机迁移过程完全透明,几乎不影响使用。
  • 其次,现在的数据中心都追求环保节能,工作量负载大的应用程序必然会令服务器能耗增加,有了虚拟机热迁移技术,当一台物理机服务器负载过大时,系统管理员可以将其上面的虚拟机热迁移到其他服务器,可有效降低数据中心服务器的总体能耗,再通过冷却系统将数据中心的温度保持在正常水平。

热迁移的局限

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

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

KVM动态迁移,也有如下几个建议和注意事项:

  • 源宿主机和目的宿主机尽量用网络共享的存储系统来保存客户机磁盘镜像。例如:NFS,ISCSI,Glusterfs等。
  • 为了提高动态迁移的成功率,尽量在同类型CPU的主机上面进行动态迁移,尽管KVM动态迁移也支持从intel平台迁移到AMD平台,但,从安全性,稳定度考虑不建议这样去操作
  • 64位客户机只能运行在64位宿主机之间的迁移,而32位客户机可以在32位宿主机和64位宿主机之间迁移。
  • 进行动态迁移时,被迁移客户机的名称是唯一的,在目的宿主机上不能有与源宿主机被迁移客户机同名的客户机存在。
  • 目的宿主机和源宿主机的软件尽可能的相同。也就是同为Vmware,kvm,xen等。

V2V迁移

  • 部署NFS服务器实现Linux与Linux之间的文件共享,NFS通常运行于2049端口

  由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序。

  

  服务器端配置:

  •   下载nfs和rpcbind

    [root@localhost ~]# yum install nfs-utils rpcbind -y

  •   配置nfs的文件

  

[root@localhost ~]# mkdir /nfsdate
[root@localhost ~]# vim /etc/exports
/nfsdate 192.168.127.133/(rw)
  •   重启nfs和rpcbind

    [root@localhost ~]# systemctl restart rpcbind nfs

  

  客户端配置:

  •   下载nfs-utils

    [root@localhost ~]# yum install nfs-utils -y

  •   查看共享文件

  

 [root@localhost ~]# showmount -e 192.168.127.130
Export list for 192.168.127.130:
/nfsdate 192.168.127.133/
  •   挂在服务端nfs至本地

  

 [root@localhost ~]# mkdir /nfsdate
[root@localhost ~]# mount -t nfs 192.168.127.130:/nfsdate /nfsdate
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17G .3G .8G % /
devtmpfs 478M 478M % /dev
tmpfs 489M 489M % /dev/shm
tmpfs 489M 7.1M 482M % /run
tmpfs 489M 489M % /sys/fs/cgroup
/dev/sda1 1014M 141M 874M % /boot
tmpfs 98M 98M % /run/user/
192.168.127.130:/nfsdate 17G 10G .1G % /nfsdate
  •   服务端把要迁移虚拟机的配置文件(启动文件)/etc/libvirt/qemu/备份到/root下和磁盘文件/var/lib/libvirt/images/移动到刚刚创建的共享文件/nfsdate中  
  •   把vm1的磁盘文件移动到共享文件中

  

 [root@localhost ~]# cd /var/lib/libvirt/images/
[root@localhost images]# ls
centos7..qcow2 CentOS--x86_64-DVD-.iso test.qcow2 vm1.qcom2 vm2.qcow2
[root@localhost images]# mv vm1.qcom2 /nfsdate
  •   把vm1的配置文件备份到/root下

  

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# ls
centos7.0.xml networks test.xml vm1.xml vm2.xml
[root@localhost qemu]# cp vm1.xml /root

  

  •   删除vm1虚拟机域

  

 [root@localhost qemu]# ls
centos7..xml networks test.xml vm1.xml vm2.xml
[root@localhost qemu]# virsh undefine vm1
域 vm1 已经被取消定义 [root@localhost qemu]# ls
centos7..xml networks test.xml vm2.xml
  •   切换到/root下修改vm1配置文件,修改其磁盘文件路径

  

 [root@localhost ~]# vim vm1.xml
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/nfsdate/vm1.qcom2'/> #把源路径修改为/nfsdate
<target dev='vda' bus='virtio'/>
<boot order=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
  •   恢复vm1

  

 [root@localhost ~]# virsh define vm1.xml
定义域 vm1(从 vm1.xml) [root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- centos7. 关闭
- test 关闭
- vm1 关闭
- vm2 关闭
  •   服务端和客户端都需要做域名解析

  

 [root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.127.130 yun1
192.168.127.133 yun2
  •   客户端查看共享文件

  

[root@localhost ~]# cd /nfsdate
[root@localhost nfsdate]# ls
vm1.qcom2

在宿主机中进行验证

  • 首先在宿主机中创建连接,是两台宿主机能共享。

  

  • 建议修改两台宿主机的主机名,避免两台主机名相同。防止产生一些不必要的错误。

  

hostnamectl set-hostname 主机名
exit

  

  • 点击连接,然后分别输入yes、账户密码,连接创建完成
  • 因为是热迁移,所以要把迁移的虚拟机开启;然后点击迁移

  

KVM虚拟机的热迁移---Live Migration的更多相关文章

  1. KVM 虚拟机的热迁移

    热迁移:顾名思义在虚拟机不关机的情况下将KVM虚拟机进行迁移 准备工作:两台KVM虚拟机,一台nfs虚拟机,centos7.4系统 主机 IP地址 主机名 KVM01 10.00.11 kvm01 K ...

  2. OpenStack 虚拟机冷/热迁移的实现原理与代码分析

    目录 文章目录 目录 前文列表 冷迁移代码分析(基于 Newton) Nova 冷迁移实现原理 热迁移代码分析 Nova 热迁移实现原理 向 libvirtd 发出 Live Migration 指令 ...

  3. OpenStack 虚拟机冷/热迁移功能实践与流程分析

    目录 文章目录 目录 前文列表 虚拟机迁移的应用场景 需要迁移的虚拟机数据类型 虚拟机迁移的存储场景 文件存储 块存储 非共享存储 迁移的类型 迁移的方式 执行虚拟机冷迁移 冷迁移日志分析 执行虚拟机 ...

  4. KVM -> 虚拟机在线热添加技术_04

    热添加技术 1.KVM在线热添加硬盘

  5. kvm虚拟机迁移

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

  6. kvm虚拟机迁移(6)

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

  7. kvm热迁移(4)

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

  8. 华为云计算IE面试笔记-FusionCompute虚拟机热迁移定义,应用场景,迁移要求,迁移过程

    *热迁移传送了什么数据?保存在哪? 虚拟机的内存.虚拟机描述信息(配置和设备信息).虚拟机的状态 虚拟机的配置和设备信息:操作系统(类别.版本号).引导方式(VM通过硬盘.光盘.U盘.网络启动)和引导 ...

  9. KVM 热迁移

    最终我们迁移的目的就是: ·简化系统维护管理 ·高系统负载均衡 ·增强系统错误容忍度 ·优化系统电源管理 热迁移 又叫动态迁移,实时迁移,即虚拟机保存( save )/恢复( restore ):将整 ...

随机推荐

  1. stm32焊接心得

    早上焊接了一块朋友给的stm32f103zet6的开发板,起初,烙铁怎么都焊补上去,原来是烙铁头已经氧化,只能作罢! 那里一个新的焊接,温度打到450,基本上,焊接就非常顺利,当然温度不要太高,以免弄 ...

  2. 解压 .tar.xz 格式的压缩文件

    第一种方法: xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64 ...

  3. sublime text 3 3126注册码

    —– BEGIN LICENSE —– Michael Barnes Single User License EA7E-821385 8A353C41 872A0D5C DF9B2950 AFF6F6 ...

  4. MySQL 8.0.15 配置 MGR单主多从

    转载自:http://www.cnblogs.com/zhangzihong/p/10443526.html 一.简介 MySQL Group Replication(简称MGR)字面意思是mysql ...

  5. 泰乐事(Telos)白皮书中文版 <一> 泰乐事项目(未完成)

    泰乐事项目 一个可持续发展的去中心化EOSIO网络 EOS系统在设计上为人们带来了令人惊喜的一种实现新经济模式的承诺.然而很不幸,其高度中心化的运营正不断地破坏这种承诺.90%的EOS代币掌握在仅仅1 ...

  6. vue中mixin的理解与用法

    vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情况下引入组件有什么区别? 组件在引 ...

  7. Selenium结合BeautifulSoup4编写简单爬虫

    在学会了抓包,接口请求(如requests库)和Selenium的一些操作方法后,基本上就可以编写爬虫,爬取绝大多数网站的内容. 在爬虫领域,Selenium永远是最后一道防线.从本质上来说,访问网页 ...

  8. Zhejiang Provincial Collegiate Programming Contest + ZOJ Monthly

    题目链接:https://vjudge.net/contest/152802#overview. 前五题以前做过了.不过还是没能全A= =. 前三题水题,略过. 第四题是找规律,暴力打表找一下循环节即 ...

  9. jenkins之插件下载失败

    1.更换地址 将默认地址 http://updates.jenkins-ci.org/update-center.json 改为 http://mirrors.jenkins-ci.org/statu ...

  10. JAVA基础知识|进程与线程

    一.什么是进程?什么是线程? 操作系统可以同时支持多个程序的运行,而一个程序可以狭义的认为就是一个进程.在一个进程的内部,可能包含多个顺序执行流,而每个执行流就对应一个线程. 1.1.进程 进程:是计 ...