虚拟机支持热添加功能大家应该都不陌生,包括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,一概而论用热添加这个词可能不太严谨。

 

个人在实施中的想法,大家可以回复讨论。