各位朋友大家好, 今天我给大家说说实现虚拟化的方案与软件以及怎么选择哪种适合自己的虚拟化方案. 在说虚拟化的方案前我稍微给大家撤下虚拟化产生的背景:
随着计算技术与科学技术的发展, 在计算机行业出现一种问题, 那就是好的服务器比如 DELL,IBM 非常的昂贵, 差点的服务器也有比如国产的某某普, 做为一个初创的互联网企业, 资金是非常紧的, 怎么能做到既节约成本又能保证数据安全?
虚拟化软件:
虚拟化为此就诞生了, 在实际的生产环境中, 虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用, 透明化底层物理硬件, 从而最大化的利用物理硬件. 于是乎各大互联网大佬们纷纷投入精力解决这个问题, 随着时间的推移与各大互联网企业的技术沉淀, 目前市面主要有以下虚拟化软件: VMware 的 ESXi,Citrix 的 Xenserver, 微软的 Hyper-V, 开源的主要有红帽的 KVM,Xen 两种.
虚拟化实现方案:
市场有以上那么多虚拟化软件, 当然还有一些小众的, 例如 VirtualBox 这里我就不多说了, 他们的目的都是一样的:"实现虚拟化", 但他们实现虚拟化的方案可大不相同, 下面我们简单了解下:
全虚拟化
又叫硬件辅助虚拟化技术, 最初所使用的虚拟化技术就是全虚拟化 (Full Virtualization) 技术, 它在虚拟机 (VM) 和硬件之间加了一个软件层 - Hypervisor, 或者叫做虚拟机管理程序(VMM).
什么是 Hypervisor?
Hypervisor 是一种运行在物理服务器和操作系统之间的中间软件层, 可允许多个操作系统和应用共享一套基础物理硬件, 因此也可以看作是虚拟环境中的 "元" 操作系统, 它可以协调访问服务器上的所有物理设备和虚拟机, 也叫虚拟机监视器(Virtual Machine Monitor).Hypervisor 是所有虚拟化技术的核心. 非中断地支持多工作负载迁移的能力是 Hypervisor 的基本功能. 当服务器启动并执行 Hypervisor 时, 它会给每一台虚拟机分配适量的内存, CPU, 网络和磁盘, 并加载所有虚拟机的客户操作系统.
Hypervisor 分两种类型:
类型 1, 这种 Hypervisor 是直接运行在物理硬件之上的. 类型 1 Hypervisor 的一个例子是基于内核的虚拟机(KVM -- 它本身是一个基于操作系统的 hypervisor).
类型 2, 这种 Hypervisor 运行在另一个操作系统 (运行在物理硬件之上) 中.
类型 2 Hypervisor 包括 QEMU 和 WINE. 因为运行在虚拟机上的操作系统通过 Hypervisor 来最终分享硬件, 所以虚拟机发出的指令需经过 Hypervisor 捕获并处理. 为此每个客户操作系统 (Guest OS) 所发出的指令都要被翻译成 CPU 能识别的指令格式, 这里的客户操作系统即是运行的虚拟机, 所以 Hypervisor 的工作负荷会很大, 因此会占用一定的资源, 所以在性能方面不如裸机. 但是运行速度要快于硬件模拟. 全虚拟化最大的优点就是运行在虚拟机上的操作系统没有经过任何修改, 唯一的限制就是操作系统必须能够支持底层的硬件, 不过目前的操作系统一般都能支持底层硬件, 所以这个限制就变得微不足道了. VMware Workstation 软件就是此类型.
半虚拟化
它就是在全虚拟化的基础上, 把客户操作系统进行了修改, 增加了一个专门的 API, 这个 API 可以将客户操作系统发出的指令进行最优化, 即不需要 Hypervisor 耗费一定的资源进行翻译操作, 因此 Hypervisor 的工作负担变得非常的小, 因此整体的性能也有很大的提高. 不过缺点就是, 要修改包含该 API 的操作系统, 但是对于某些不含该 API 的操作系统 (主要是 windows) 来说, 就不行能用这种方法, Xen 就是一个典型的半虚拟化的技术. Xen 只负责 CPU, 内存, 中断管理. 计算机别的功能由 Dam0 机管理.
虚拟化方案选择:
在说虚拟化选择方案前, 我稍微啰嗦一句在工作中, 我们怎么抉择我们该选择哪种方案前, 首先要根据工作需求, 切忌为实现技术而选择. 下面我说下我的选择方法:
公司有开发人员小于 10 人运维 1 人, 我们就用 Vmvare 的虚拟化软件系列的 VMware Workstation 模拟器
公司有开发人员大于 10 人且小于 30 人运维 1 人或 2 人, 我们就用 Vmvare 的虚拟化软件系列的 VMware ESXi
公司有开发人员大于 30 人运维人员大于 3 人, 我们就考虑 KVM 或者 Xen.
我这样划分的根据是基于公司技术团队的实力和软件的轻重来抉择, 当然也不是万能, 如果你公司技术团队的实力非常牛, 你也非常牛, 公司不差钱想烧钱, 也可以考虑直接用 KVM+openstack 这种重量级的虚拟化解决方案.
来源: http://virtual.51cto.com/art/201807/578492.htm