源宿主机:Ubuntu14.04操作系统,3.13.0-24-generic内核。文中以“节点1”表示,主机名vm1,IP地址为192.168.1.103,NFS挂载目录/home/kvm。
目标宿主机:Ubuntu14.04操作系统,3.13.0-24-generic内核。文中以“节点2”表示,主机名为vm2,IP地址为192.168.1.106,NFS挂载目录/home/kvm。
NFS服务器:Ubuntu14.04操作系统,3.13.0-24-generic内核。IP地址为192.168.1.105,服务目录为/mnt/nfs/。
这里基于Libvirt动态迁移测试虚拟机,虚拟机的名称为demo3,虚拟磁盘文件为ubuntu.raw。
(2)动态迁移步骤
查看节点1上虚拟机状态,demo3虚拟机处于运行状态(如果demo3未运行,将其启动运行),如图6-8所示。
图6-8 节点1上demo3运行状态
查看节点2上虚拟机状态,无虚拟机运行,如图6-9所示。
图6-9 节点2上虚拟机运行状态
在节点1上执行“virsh migrate”迁移命令,如图6-13所示。从图中可以看出虚拟机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参数表示跳过安全检测,命令执行如图6-10所示。
图6-10 demo3虚拟机从节点1上迁移出去
在节点2上,查看虚拟机demo3虚拟机状态,如图6-11所示。
图6-11 demo3虚拟机在节点2上运行
在迁移过程中,可以通过另外一台客户机一直ping虚拟机demo3,查看demo3迁移过程中的可连接性。实际上迁移过程除了偶尔有几个包的中断,基本上没有太大影响。
此时虽然demo3虚拟机已经在节点2上启动了,但是节点2上还没有demo3虚拟机的配置文件。这时需要创建配置文件并定义该虚拟机,可以通过迁移过来的虚拟机内存状态创建虚拟机配置文件,命令为“virsh dumpxml demo3>/etc/libvirt/qemu/demo3.xml”,然后通过xml配置文件定义虚拟机,命令为“virsh define/etc/libvirt/qemu/demo3.xml”,如图6-12所示。(www.xing528.com)
图6-12 创建demo3虚拟机配置文件
使用命令“virsh console demo3”连接节点2上的demo3虚拟机,如图6-13所示。
图6-13 在节点2上连接demo3虚拟机
至此,虚拟机demo3动态迁移完成。
虽然动态迁移技术能够以一种对用户透明的方式,实现虚拟机在一个数据中心内部的各个计算节点之间的快速迁移,但是虚拟机迁移会在一定程度上降低虚拟机的运行性能,额外地增加数据中心的数据传输量,这些都是虚拟机迁移造成的不利影响[23]。在下文中,将虚拟机迁移带来的这些不利影响统称为虚拟机的迁移开销(Migration Cost,MC)。尽管单次虚拟机迁移的开销相对较小,但是由于云数据中心处理的任务范围较广、处理的任务数量波动较大,云数据中心在日常运行和维护过程中可能发生频繁的虚拟机迁移[24],使得虚拟机迁移开销已经成为云数据中心的日常管理中一种越来越不容忽视的开销因素。
(3)动态迁移目标
在选择待迁移的虚拟机时,通常是按照虚拟机占用的资源、迁移次数等因素来选择待迁移的虚拟机,而忽略了迁移不同的虚拟机所造成的迁移开销是不同的这一关键问题,导致所提出的虚拟机整合算法虽然能在一定程度上降低云数据中心的能耗,但同时也造成了较高的迁移开销。此外,虚拟机的剩余执行时间也是影响迁移开销的一个重要因素。例如,迁移一个剩余执行时间较短的虚拟机仍然会带来相应的迁移开销,而该迁移开销对云数据中心造成的成本损失,可能远大于对其进行整合而节省能耗的收益。
虚拟化技术允许云供应商将其提供的各种服务封装成虚拟机的形式,当用户请求这些服务时,再把这些虚拟机映射到云数据中心的各个计算节点上。通过虚拟机动态迁移技术,云数据中心管理者还能够根据系统内运行负载的变化,动态地改变虚拟机和计算节点的映射关系,从而实现系统的负载均衡、容错管理以及节能减排等目标[25]。
虚拟机整合是通过对资源利用率较低的计算节点上运行的虚拟机进行整合,减少云数据中心使用的计算节点个数,达到降低能耗的目的。而在云计算环境下,虚拟机上运行的任务负载在执行过程中对资源的需求是随时间动态变化的。虚拟机整合可能会导致下述情况的发生:当计算节点上运行的虚拟机达到一定程度时,虚拟机对资源需求的变化会加剧资源的竞争,从而导致计算节点在运行过程中可能会出现过载的情况,即运行在某个计算节点上的虚拟机对资源的需求大于该计算节点提供的资源能力,这样的计算节点被称为热计算节点。此时,就需要通过虚拟机动态迁移技术,调整计算节点和虚拟机之间的映射关系来减少热计算节点上运行的虚拟机个数,避免破坏服务等级协议(SLA)。
虚拟机整合通常被抽象为BP问题进行求解,现有虚拟机整合研究在进行待迁移虚拟机的选择时,通常采用的虚拟机选择方法有以下几种:
(1)随机选择迁移(Random Selection Migration,RSM)[26]。RSM方法是指从触发迁移的计算节点上运行的虚拟机中,随机地选择一个(或多个)待迁移的虚拟机,使得待迁移的VM从触发迁移的计算节点上迁出之后,该计算节点满足某种约束条件。
(2)基于资源的迁移(Resource-based Migration,RbM)[26-27]。RbM方法是指根据虚拟机占用的资源大小来选择待迁移的虚拟机,该方法又可以细分为基于CPU的迁移(CPU-based Migration,CbM)、基于内存的迁移(Memory-based Migration,MbM)、以及混合迁移(Combined Migration,CoM)。其中,CbM方法是指从触发迁移的计算节点上运行的虚拟机中,选择占用CPU资源最多(或最少)的虚拟机作为待迁移的虚拟机;同理,MbM方法是按照虚拟机占用的内存大小进行选择,而CoM方式是按照虚拟机占用CPU、内存两种资源能力之和进行选择。
(3)基于均衡迁移(Balance-based Migration,BbM)[28]。由于云数据中心资源的异构性,不同类型的虚拟机对不同资源的需求可能差别较大。这种使得计算节点提供的各种资源的利用率尽可能的保持一致的虚拟机迁移方法,即称为BbM方法;反之,使得计算节点提供的各种资源的利用率的差别尽可能大的虚拟机迁移方法,就是基于失衡的迁移(Imbalance-based Migration,IbM)方法。
(4)最少次数迁移(Minimization of Migrations,MoM)[29]。该方法是指从触发迁移的计算节点上运行的虚拟机中,选择最少个数的虚拟机,使得这些被选择的虚拟机从触发迁移的计算节点上迁出之后,该计算节点满足某种约束条件。该方法也是目前虚拟机整合研究中通常采用的、能够尽可能降低虚拟机迁移影响的待迁移虚拟机选择方法。
(5)最少迁移时间(Minimum Migration Time,MMT)[30]。当云数据中心的某个计算节点触发迁移操作时,MMT方法从该计算节点上运行的虚拟机中选择所需迁移时间最小的那一个虚拟机作为待迁移的虚拟机。
(6)最大相关性迁移(Maximum Correlation Migration,MCM)[30-31]。该方法是基本以下思想而提出来的:运行在同一个计算节点上的两个虚拟机,如果这两个虚拟机的资源利用率相关性越高,则该计算节点发生过载的可能性就越大。因此,MCM方法是从触发迁移的计算节点上运行的虚拟机中,选择与运行在该计算节点上的其他虚拟机的CPU利用率相关性最高的虚拟机作为待迁移的虚拟机。
(7)最高潜在增长迁移(Maximum Potential Growth Migration,MPGM)。CPU利用率的潜在增长指的是某个VM当前使用的CPU能力与该VM在创建时设定的CPU能力的差值。MPGM方法是从触发迁移的计算节点上运行的虚拟机中,选择CPU利用率潜在增长最大的那个虚拟机作为待迁移的虚拟机[32]。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。