1.1. 什么是虚拟化?
“虚拟化 ”是一个描述运行软件的广义计算机术语,通常体现为在单一系统上运行多个操作系统,这些操作系统同时运行,而每个操作系统又是相互独立的。大多数现行的虚拟化实现使用一个“虚拟机管理程序 ”(hypervisor),即一个软件层或子系统,该子系统控制硬件并向“客机操作系统 ”提供访问底层硬件的途径。通过向客机操作系统提供虚拟化的硬件虚拟机管理程序允许多种操作系统在相同的物理系统中运行,该虚拟机管理系统称为“客机 ”(guest),虚拟化操作系统有多种方式:
虚拟化方式
全虚拟化
全虚拟化利用处理器的硬件特性,向客机提供底层实体系统的总抽象。这创建了新的虚拟系统,被称为一个“虚拟机 ”(virtual machine),它允许客机操作系统在无需修改的情况下运行。客机操作系统和任何在客机虚拟机器中的应用并不会察觉出虚拟化环境并正常运作。硬件支持虚拟化这项技术,用于实现在 Red Hat Enterprise Linux 中 KVM 的全面虚拟化。
半虚拟化
半虚拟化应用一系列呈现给虚拟机的软件和数据结构,需要客机中的软件修改以使用半虚拟环境。半虚拟化包含整个内核,就像 Xen 准虚拟机,或者虚拟化 I/O 设备的驱动程序一样。
软件虚拟化(或仿真)
软件虚拟化利用更慢的二进制转换和其他仿真技术运行未更改的操作系统。Red Hat Enterprise Linux 不支持软件虚拟化。
1.2. 什么是迁移?
“迁移 ”(migration)描述了一个客体虚拟机从一个主机迁移到另一个主机的过程。鉴于虚拟机在虚拟化环境下运行,而非直接在硬件上运行,该迁移是可以实现的。迁移一个虚拟机有两种途径:即时迁移和离线迁移。
迁移类型
离线迁移
离线迁移暂停或关闭虚拟机,接着移动一个虚拟机的内存镜像到目标主机。虚拟机在目标主机上恢复,在源主机上被虚拟机使用的内存得以释放。
即时迁移
即时迁移是将一个活跃虚拟机从一个实体主机迁移到另一个实体主机的过程。
了解这两点很重要,即迁移过程移动虚拟化机器的内存,与虚拟机器相关的磁盘空间同样也会被迁移,了解这点很重要。这一过程通过即时块迁移实现 — 相关信息可以在《Red Hat Enterprise Linux 7 虚拟化部署和管理指南 》中找到。
1.2.1. 迁移虚拟机器的益处
迁移对以下情况有帮助:
负载均衡
一台主机超载时,其虚拟机的一个或多个可以即时迁移到其他主机上。
针对主机升级或进行更改
需要升级、添加或卸下一台主机的硬件设备时,虚拟机可以安全地转移到其他主机。这也就是说客机不会由于任何一个主机的更改而停机。
节能
虚拟机器可以重新分配至其他主机,空载主机系统可以在使用率低的时段关机以节省能源和开支。
地理迁移
为实现更低的延迟或其他特殊情况,虚拟化机器可以转移到另一个物理位置。