1.服务器虚拟化的层次
服务器虚拟化分为寄居虚拟化和裸机虚拟化两种
(1)寄居虚拟化的层次:
寄居虚拟化的虚拟化层一般称为虚拟机监控器(VMM)
这类虚拟化架构系统损耗比较大
就操作系统层的虚拟化而言,没有独立的Hypervisor层
如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统
(2)裸机虚拟化的层次
架构中的VMM也可以认为是一个操作系统,一般称为Hypervisor
Hypervisor实现从虚拟资源到物理资源的映射
Hypervisor实现了不同虚拟机的运行上下文保护与切换,保证了各个客户虚拟系统的有效隔离
VMM无法直接捕获特权指令的解决方案:
(1)完全虚拟化
完全虚拟化具有很好的兼容性,在服务器虚拟化中得到广泛应用。
(2)半虚拟化
半虚拟化技术降低了由于虚拟化而引入的系统性能损失。
2.服务器虚拟化的底层实现
(1)CPU虚拟化
虚拟CPU的正确运行是要保证虚拟机指令正确运行,现有的实现技术包括模拟执行和监控执行
调度问题是指VMM决定当前哪个虚拟CPU在物理CPU上运行,要保证隔离性、公平性和性能。
(2)内存虚拟化
内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。
虚拟内存的管理包括3种地址:机器地址,物理地址和虚拟地址
(3)I/O设备虚拟化
I/O设备虚拟化技术把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。
I/O设备虚拟化同样是由VMM进行管理的
3.虚拟机迁移
虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成应用
程序的任务。
需要进行虚拟机迁移的原因:
(1)云计算中心的物理服务器负载经常处于动态变化中,当一台物理服务器负载过大时,若此刻不可能提供额外的物理服务器,管理员可以将其上面的虚拟机迁移到其他服务器,达到负载平衡
(2)云计算中心的物理服务器有时候需要定期进行升级维护,当升级维护服务器时,管理员可以将其上面的虚拟机迁移到其他服务器,等升级维护完成之后,再把虚拟机迁移回来
从虚拟机迁移的源与目的地角度可分为(1)物理机到虚拟机的迁移 (P2V) (2)虚拟机到虚拟机的迁移(V2V)(3)虚拟机到物理机的迁移(V2P)
实时迁移(LiveMigration),就是保持虚拟机运行的同时,把它从一个计算机迁移到另一个计算机,并在目的计算机恢复运行的技术。
虚拟机迁移的步骤:预迁移-->预定资源-->预复制-->停机复制-->提交-->启动
内存的迁移是虚拟机迁移最困难的部分
内存迁移包含三个阶段:
第一阶段,Push阶段。 第二阶段,Stop-and-Copy阶段。 第三阶段,Pull阶段。
实际上,迁移内存没有必要同时包含上述三个阶段,目前大部分的迁移策略只包含其中的一个或者两个阶段。
不同迁移策略的比较:
网络资源的迁移:
虚拟机这种系统级别的封装方式意味着迁移时VM的所有网络设备,包括协议状态(如TCP连接状态)以及IP地址都要随之一起迁移。
在局域网内,可以通过发送ARP重定向包,将VM的IP地址与目的机器的MAC地址相绑定,之后的所有包就可以发送到目的机器上。
存储设备的迁移:
迁移存储设备的最大障碍在于需要占用大量时间和网络带宽,通常的解决办法是以共享的方式共享数据和文件系统,而非真正迁移。
目前大多数集群使用NAS(Network Attached Storage,网络连接存储)作为存储设备共享数据。
NAS实际上是一个带有瘦服务器的存储设备,其作用类似于一个专用的文件服务器。
在局域网环境下,NAS已经完全可以实现异构平台之间,如NT、UNIX等的数据级共享。
基于以上的考虑,Xen并没有实现存储设备的迁移,实时迁移的对象必须共享文件系统。
原文地址:https://www.cnblogs.com/paradis/p/11022951.html