虚拟机支持热添加功能大家应该都不陌生,包括VMware、Microsoft、Citrix和Parallels等厂家的相关产品都介绍了该功能,当你接到需求,添加CPU、内存、磁盘等资源时,是等至深夜到机房下螺丝上配件,还是愿意在电脑前点击几下鼠标或者敲击几个命令搞定,哈哈,不言而喻。
那么以VMware vSphere套件来说,通过vSphere Client中更改CPU热插拔设置,需要符合下列条件。
为达到最佳效果,请使用硬件版本 8 虚拟机。
- 仅硬件版本 8 虚拟机支持热添加多核虚拟 CPU。
- 并非所有客户机操作系统都支持 CPU 热添加。如果不支持客户机,则可以禁用这些设置。
- 要对硬件版本 7 虚拟机使用 CPU 热添加功能,请将每个插槽的内核数设置为 1。
- 将 CPU 资源添加到正在运行的虚拟机(已启用 CPU 热插拔)会使连接到该虚拟机的所有 USB 直通设备断开连接并重新连接。
前提条件
验证虚拟机是否正在下列条件下运行:
- VMware Tools 即安装成功。此条件是 Linux 客户机操作系统的热插拔功能所必需的。(这一条有待商榷,后面细说)
- 虚拟机具有支持 CPU 热插拔的客户机操作系统。
- 虚拟机目前所使用的是硬件版本 7 或更高版本。
- 虚拟机已关闭电源。(关闭电源为了在虚拟机配置选项中开启支持热添加功能)
- 所需特权:虚拟机上的虚拟机.配置.设置
由于Linux系统比较典型,下面以此来进行分析我的标题。
1. 看下Parallels公司的产品对redhat系统虚拟机热添加功能的支持图表,绿色表示支持,几乎只支持6.0以上版本64位的热添加,如图1-1所示。
图1-1 Parallels产品支持图表
2. 然后我们看VMware公司对redhat系统虚拟机热添加功能的支持图表,可以看出几乎ESXi 5.0 U1版本都支持热插拔,如图1-2所示。
图1-2 VMware产品支持图表
3. OK,那是否以上redhat系统在清单中,热添加是否就很顺利实现勒?非也。以ESXi 5.0 U1 +vSphere 5.0 U1的环境为例,建立一台redhat 5.6 64位的虚拟机,在虚拟机>编辑属性>添加内存(4GB增加至6GB)后,虚拟机并不能通过top命令查看到内存的增加,如图1-3所示。
图1-3 5.6添加内存
4. 而运行grep line /sys/devices/system/memory/*/state发现部分内存为脱机状态,如图1-4所示。
图1-4 内存脱机
5. 所以虽然支持热添加,但是需要手动配置命令,echo online > /sys/devices/system/memory/memory[number]/state ,把离线状态的内存挂上。
6. 再新建一台redhat 6.2的虚拟机,默认2GB内存,如图1-5所示。
图1-5 6.2内存信息
6. 同样在虚拟机>编辑属性>添加内存(2GB增加到3GB),内存增加信息立即更新,且在未安装VMware Tool工具的前提下,如图1-6所示。
图1-6 6.2内存增加信息
那么redhat 6.2系统也是热添加,且热添加自动完成。
个人结论:
windows 2003 不支持热添加
redhat 5.6支持热添加(手动)
redhat 6.2支持热添加(自动)
虚拟机的操作系统支持热添加的,还可以分为支持热添加(手动)和热添加(自动),资源类型为CPU和RAM,一概而论用热添加这个词可能不太严谨。
个人在实施中的想法,大家可以回复讨论。