玩转KVM:一招完成vm在线迁移

下篇预告: 玩转KVM:浅谈虚拟机lifecycle

前言

上篇一招打开vm的console口,让你轻轻松松管理vm。下面讲虚拟机是如何在kvm集群中来去自如。

为什么要迁移

迁移描述了将虚拟机从一台主机物理机移动到另一台主机的过程。
虚拟机迁移可以分为:冷迁移(offline migration)和热迁移(live migration/online migration)

为什么要迁移呢?

1.负载平衡 - 当主机物理机器过载或其他主机物理机器未充分利用时,可将客户机虚拟机移动到主机物理机器,使用率较低。
2.硬件独立性 - 当我们需要在主机物理机上升级,添加或删除硬件设备时,我们可以安全地将虚拟机重定位到其他主机物理机。这意味着虚拟机不会遇到硬件改进的停机时间。
3.节能 - 客户虚拟机可以重新分配到其他主机物理机器,因此可以关闭电源以节省能源并在低使用率期间降低成本。
4.地理迁移 - 可以将虚拟机移动到其他位置,以降低延迟或在严重情况下使用。

迁移的要求

共享存储

虚拟机迁移要求是虚拟机存放在KVM集群的共享存储中。
如下:
基于光纤通道的LUN
iSCSI的
FCoE的
NFS
GFS2
CEPH RBD
SCSI RDMA协议(SCSI RCP):Infiniband和10GbE iWARP适配器中使用的块导出协议

# 虚拟机的管理工具

KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。

QEMU-KVM:在 Linux 系统中,首先我们可以用 modprobe 系统工具去加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。

Libvirt、virsh、virt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat 为 KVM 开发了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt自带一套基于文本的管理虚拟机的命令—— virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。 virt-manager是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。

迁移实战

虚拟机冷迁移:

源物理主机:

确定虚拟机关闭状态
[[email protected] ~]# virsh list --all

准备迁移test虚拟机,查看该虚拟机的磁盘文件
[[email protected] ~]# virsh domblklist test

导入虚拟机配置文件
[[email protected] ~]# virsh dumpxml test > /root/test.xml

拷贝配置文件到目标虚拟主机上。
[[email protected] ~]# scp /root/test.yml 10.10.10.10:/etc/libvirt/qemu/test.yml

目标物理主机:

查看目标主机KVM环境
[[email protected] ~]# virsh list

查看虚拟机描述文件
[[email protected] ~]# ls -l /root

查看虚拟机磁盘文件,目录结构与源虚拟主机一致。
[[email protected] ~]# virsh domblklist test --输出需要与源主机一样

定义注册虚拟主机
[[email protected] ~]# virsh define /etc/libvirt/qemu/test.yml

启动虚拟主机并确认
[[email protected] ~]# virsh start test
[[email protected] ~]# virsh list

# 虚拟机热迁移:
共享存储可以用以上罗列的方式

准备NFS存储,全部节点挂载nfs目录
[[email protected] ~]# mount -t nfs 10.10.10.200:/data /data -o rw,rsize=12768,wsize=12768,hard

节点1虚拟机状态,test虚拟机开机状态
[[email protected] ~]# virsh list

节点2虚拟机状态,无虚拟机运行
[[email protected] ~]# virsh list
在主机1上执行迁移命令
[[email protected]~]#virsh migrate --live --verbose test? qemu+ssh://10.10.10.10/system tcp://10.10.10.10br/>[email protected]‘spassword:
Migration:[100%]

迁移过程:客户机一直ping查看迁移,可以看到中间有两个包的中断,基本上没有太大影响。

节点2上,可以看到虚拟机test已经启动了,进入虚拟机观察
[[email protected] ~]# virsh list
[[email protected] ~]# virsh console test

玩转KVM:一招完成vm在线迁移

原文地址:https://blog.51cto.com/13475644/2382443

时间: 2024-10-09 15:58:48

玩转KVM:一招完成vm在线迁移的相关文章

oVirt的VM在线快照实现浅析

环境说明 OS: CentOS Linux release 7.1.1503 (Core) Ovirt-engine: ovirt-engine-3.5.3.1-1.el7 VDSM: vdsm-4.16.20-0.el7 GuestOS: CentOS release 6.5 (Final) 硬件说明: 单网卡且只有一个IP:10.10.19.100(可连接外网) 附:此主机同时充当engine和node角色   Item              Name                 P

基于本地存储的kvm虚拟机在线迁移

基于本地存储的kvm虚拟机在线迁移 kvm虚拟机迁移分为4种(1)热迁移基于共享存储(2)热迁移基于本地存储(3)冷迁移基于共享存储(4)冷迁移基于本地存储 这里介绍的是热迁移基于本地存储 动态块迁移版本要求qemu版本要求  大于或等于0.12.1 rpm -qa|grep qemu qemu-kvm-0.12.1.2-2.491.el6_8.1.x86_64 qemu-kvm-tools-0.12.1.2-2.491.el6_8.1.x86_64 目标宿主机:10.11.30.52源宿主机:

CentOS6.5部署KVM及实现在线迁移

CentOS6.5部署KVM及实现在线迁移 一.前言 虚拟化技术已经成为未来计算机技术的一个重要的发展方向.Linux在虚拟化方面已经有了很多种解决方案:VMware.VirtualBox.Xen和KVM!现在给大家分享下本人在KVM里遇到坑及解决方法.大牛们别喷..... KVM简介 KVM是一个全虚拟化的解决方案.可以在x86架构的计算机上实现虚拟化功能.但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD

如何使用一台PC搭建可以在线迁移的KVM学习环境

本文解答以下问题: 如何用一台PC单机KVM虚拟机的在线迁移实验环境? 如果对虚拟化是零知识,应该学习VMWare.XEN.HyperV还是KVM,或者是容器技术? 如何用一台PC搭建KVM虚拟机的在线迁移实验环境? 大家知道,如果要做虚拟机的在线迁移,需要至少2台宿主机,加至少一台共享存储,才能完成. 对于土豪来说,这个不是问题,但是对于屌丝来说,往往条件受限,只有一台PC,通常还是Windows系统,往往要做在线迁移这样的实验,就非常困难,其实这个问题是有办法解决的. 解决方法请看下表: 插

kvm虚拟机在线迁移

本次实验环境示意图如下图图1所示: 图意解析: 三台VMware虚拟机Original.Destination和Nfsrv,把Original上的KVM虚拟机在线迁移到 Destination上 注:离线迁移本次实验不做演示,只演示基于NFS共享的在线迁移   一NFS服务端配置 1.设置共享目录 [[email protected] ~]# hostname Nfsrv.wjcyf.com [[email protected] ~]# cat /etc/exports /share 192.1

RedHat 7 KVM虚拟机在两台宿主机之间在线迁移

本文主要通过两台RedHat 7 KVM宿主机和NFS共享,将位于共享存储的虚拟机在两台宿主机之间进行在线迁移. 本文原始出处:江健龙的技术博客http://jiangjianlong.blog.51cto.com/3735273/1793913 环境介绍:  配置过程: 1.在rh7-02上配置NFS服务,共享/share目录出来 2.在两台宿主机的存储池都添加该NFS共享目录,下面以rh7-02添加存储池为例,点击左下角的+号添加一个存储池 3.输入存储池的名称为share,选择类型为net

XenGT为什么会比GRID vGPU先实现基于vGPU的在线迁移呢?

在最近的XenSummit 2016上,英特尔在一个Session上演示了基于Xen的GPU虚拟化在线迁移.为什么后起之秀会吊打老司机? 一.XenGT如何实现在线迁移? 我们先来看XenGT的架构 1.英特尔的显卡集成到CPU上,使用的显存是内存,和CPU共同访问内存空间: 2.在hypervisor实现对GPU的陷阱(trap)和透传(pass-through)机制,说明意思呢?就是说和CPU虚拟化类似的思路,特权的指令交由hypervisor,这些指令有虚拟机传递下来后被拦截,交由hype

“零感知”在线迁移解决方案

内核报错.CPU工作不正常.硬盘故障.业务扩展导致性能出现瓶颈--..这些都是运维工程师们的噩梦.怎样积极.有效地预防故障的发生?如何主动提高运维可靠性?在性能危机出现时,怎样化解?所有这些问题,在风云互联的"零感知"在线迁移解决方案中,都能找到答案. 在线迁移是什么? Live Migration (在线迁移)是指将一台虚拟机从其所在物理机无缝地转移到另一台物理机的过程. 哪些场景下会用到在线迁移? 场景一:  在物理机发生内核报错.CPU工作不正常等底层基础设施故障时,管理员可以将

Redis Cluster在线迁移

由于之前的redis cluster物理硬件性能不足.决定升级到更好的服务器上.考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务. 下面是测试环境的完成迁移步骤:1. 原环境(测试环境,没有创建slave) 10.21.14.251:7000 10.21.14.251:7001 10.21.14.251:7002 2. 在新主机上,启动三个redis实例 10.21.10.120:7000 10.21.10.120:7001 10.21.10.120:7002 3. 将三个r