华为虚拟化产品特性
高级特性前提-Tools
华为FusionCompute作为先进的虚拟化产品,同样支持我们前面介绍的集群和虚拟机的特性,并且在通用虚拟化特性的基础上做了增强。如果要使用全部的特性,需要为虚拟机安装Tools。
虚拟机Tools有两部分组成——内核态的硬件驱动和用户态的vm-agent进程。通过内核态的硬件驱动,管理员可以为该虚拟机进行快照、热迁移、在线调整虚拟机规格和设置网卡QOS等操作;通过用户态的代理进程,VRM可以获取到虚拟机的IP地址、状态等,还可以对虚拟机进行软关机、重启等操作。
Tools在不同的操作系统上安装的方式不一样,在安装时请查看产品文档,按照对应的方式正确安装。安装完Tools以后需要对Tools镜像进行卸载,否则会影响虚拟机的热迁移、HA等操作。
华为集群特性
在华为FusionCompute中,支持内存复用和NUMA,所用到的技术和通用虚拟化一致,这里就不做过多的讲解了。
HA
FusionCompute中,集群支持多种HA策略,用户可根据自己的需求进行设置。
主机故障处理策略
- 原主机恢复虚拟机:当虚拟机所在的主机发生故障时,必须等待主机恢复后,系统才会在原主机重新启动虚拟机。
- HA虚拟机:当虚拟机所在的主机发生故障时,系统会按照集群中设置的虚拟机启动策略重新选择主机启动虚拟机。
主机数据存储故障策略
- 主机数据存储故障处理策略:建议选择“不处理”。当选择“不处理”时,若数据存储故障时间超过“策略延迟”设置的时间,则虚拟机内部会收到IO ERROR,导致操作系统异常。除了“不处理”,还可以选择“HA虚拟机”,选择后若数据存储故障时间超过“策略延迟”设置的时间,系统会按照集群中设置的虚拟机启动策略重新选择主机启动虚拟机。
- 策略延迟(分钟):执行“主机数据存储故障处理策略”前的延迟时间。在延迟时间内,虚拟机的IO会在后端驱动进行重发处理。策略延迟时间建议设置一个比较大的数值,最大值不超过14400。
虚拟机故障和响应策略
- 不处理
- 重启虚拟机
- HA虚拟机
电源管理(DPM)
电源管理自动化功能会周期性地检查集群中服务器的资源使用情况,如果集群中资源利用率不足,则会将多余的主机下电节能,下电前会将虚拟机迁移至其它主机;如果集群资源过度利用,则会将离线的主机上电,以增加集群资源,减轻主机的负荷。
- 开启电源管理自动化时,必须同时开启计算资源调度自动化。待主机上电后,便自动对虚拟机进行负载均衡。
- 电源管理的分时阈值设置,可以满足不同时段的调度需求。在业务平稳运行的时段,建议将电源管理自动化的级别调低,以减小对业务的影响。
- 电源管理自动化会检测集群的资源利用率,当资源利用率低于轻载阈值的持续时间超过下电主机评估历史时间(默认为40分钟)时,才会对主机进行下电操作。同样,当资源利用率高于重载阈值的持续时间超过上电主机评估历史时间(默认为5分钟)时,才会对主机进行上电操作。下电主机评估历史时间和上电主机评估历史时间支持在高级选项中进行自定义配置。
DPM在实际工作中可以实现绿色节能环保,比如某单位使用基于FusionCompute的桌面云,到了晚上十点时,可以将用户使用的虚拟机全部集中迁移到部分物理主机上,然后将其它的物理主机下电。到第二天早上七点时,在把全部的物理主机上电,然后将虚拟机通过负载均衡平均的分配到各个物理主机上。在晚上下电物理机时,如果设备集中在某个区域时,我们同时可以将配套的其它设备,如空调、新风系统,也进行下电,最大限度的进行节能。
DRS规则
DRS和上面提到的DPM都是负载均衡的一部分。DRS可以通过一定的规则,为系统在进行负载均衡时提供迁移参考。
- 聚集虚拟机:列出的虚拟机必须在同一主机上运行,一个虚拟机只能被加入一条聚集虚拟机规则中。(相当于两台虚拟机做了绑定,一台虚拟机迁移的同时,另一台也会迁移过去)
- 互斥虚拟机:列出的虚拟机必须在不同主机上运行,一个虚拟机只能被加入一条互斥虚拟机规则中。(两台虚拟机互斥,A虚拟机在A主机运行,那么B虚拟机就不能在A主机上运行)
- 虚拟机到主机:关联一个虚拟机组和主机组并设置关联规则,指定所选的虚拟机组的成员是否能够在特定主机组的成员上运行。(虚拟机和主机做绑定,A虚拟机只能在A主机上运行)
如果不同的规则发生冲突时,规则的调度优先级如下:
-
第一优先级:规则类型为“虚拟机到主机”,规则是“必须在主机组上运行”和“禁止在主机组上运行”的。
-
第二优先级:规则类型为“聚集虚拟机”和“互斥虚拟机”的。
-
第三优先级:规则类型为“虚拟机到主机”,规则是“应该在主机组上运行”和“不应该在主机组上运行”的。
IMC
在FusionCompute中,设置集群的IMC策略,使虚拟机可以在不同CPU类型的主机之间进行迁移。
目前IMC策略仅支持Intel不同型号CPU的热迁移,其它厂商的CPU不能配置该功能。
IMC可以确保集群内的主机向虚拟机提供相同的CPU功能集,即使这些主机的实际CPU不同,也不会因CPU不兼容而导致迁移虚拟机失败。
设置集群IMC策略时,如果集群中有主机或虚拟机,则必须满足下面的条件:
-
集群下主机的CPU功能集必须等于或高于设置的目标基准功能集。
-
集群下运行或休眠状态的虚拟机CPU功能集必须等于或低于目标基准功能集。如果存在不满足条件的虚拟机,需要将该虚拟机关机或迁移出该集群后设置。
华为虚拟机特性
虚拟机资源QOS
CPU QoS
虚拟机的CPU QoS用于保证虚拟机的计算资源分配,隔离虚拟机间由于业务不同而导致的计算能力相互影响,满足不同业务对虚拟机计算性能的要求,最大程度复用资源,降低成本。
创建虚拟机时,可根据虚拟机预期部署业务对CPU的性能要求而指定相应的CPU QoS。不同的CPU QoS代表了虚拟机不同的计算能力。指定CPU QoS的虚拟机,系统对其CPU的QoS保障,主要体现在计算能力的最低保障和资源分配的优先级。
CPU QoS包含如下三个参数:
- CPU资源份额
CPU份额定义多个虚拟机在竞争物理CPU资源的时候按比例分配计算资源。
以一个主频为2.8GHz的单核物理主机为例,如果上面运行有三台单CPU的虚拟机。三个虚拟机A,B,C,份额分别为1000,2000,4000。当三个虚拟机CPU满负载运行时,会根据三个虚拟机的份额按比例分配计算资源。份额为1000的虚拟机A的计算能力约为400MHz的,份额为2000的虚拟机B获得的计算能力约为800MHz,份额为4000的虚拟机C获得的计算能力约为1600MHz。(以上举例仅为说明CPU份额的概念,实际应用过程中情况会更复杂)。
CPU份额只在各虚拟机竞争计算资源时发挥作用,如果没有竞争情况发生,有需求的虚拟机可以独占物理CPU资源,例如,如果虚拟机B和C均处于空闲状态,虚拟机A可以获得整个物理核即2.8GHz的计算能力。
- CPU资源预留
CPU预留定义了多个虚拟机竞争物理CPU资源的时候分配的最低计算资源。
如果虚拟机根据份额值计算出来的计算能力小于虚拟机预留值,调度算法会优先按照虚拟机预留值的能力把计算资源分配给虚拟机,对于预留值超出按份额分配的计算资源的部分,调度算法会从主机上其它虚拟机的CPU上按各自的份额比例扣除,因此虚拟机的计算能力会以预留值为准。
如果虚拟机根据份额值计算出来的计算能力大于虚拟机预留值,那么虚拟机的计算能力会以份额值计算为准。
以一个主频为2.8GHz的单核物理机为例,如果运行有三台单CPU的虚拟机A、B、C,份额分别为1000、2000、4000,预留值分别为700MHz、0MHz、0MHz。当三个虚拟机满CPU负载运行时:
- 虚拟机A如果按照份额分配,本应得400MHz,但由于其预留值大于400MHz,因此最终计算能力按照预留值700MHz算。
- 多出的(700-400)MHz按照B和C各自的份额比例从B和C处扣除。
- 虚拟机B获得的计算能力约为(800-100)MHz,虚拟机C获得的计算能力约为(1600-200)MHz。
CPU预留只在各虚拟机竞争计算资源的时候才发挥作用,如果没有竞争情况发生,有需求的虚拟机可以独占物理CPU资源。例如,如果虚拟机B和C均处于空闲状态,虚拟机A可以获得整个物理核即2.8GHz的计算能力。
- CPU资源限额
控制虚拟机占用物理CPU资源的上限。以一个两CPU的虚拟机为例,如果设置该虚拟机CPU上限为3GHz,则该虚拟机的两个虚拟CPU计算能力被限制为1.5GHz。
内存QoS
提供虚拟机内存智能复用功能,依赖内存预留比。通过内存气泡等内存复用技术将物理内存虚拟出更多的虚拟内存供虚拟机使用,每个虚拟机都能完全使用分配的虚拟内存。该功能可最大程度的复用内存资源,提高资源利用率,且保证虚拟机运行时至少可以获取到预留大小的内存,保证业务的可靠运行。
系统管理员可根据用户实际需求设置虚拟机内存预留。内存复用的主要原则是:优先使用物理内存。
内存QoS包含如下三个参数:
- 内存资源份额
内存份额定义多个虚拟机竞争内存资源的时候按比例分配内存资源。
在虚拟机申请内存资源,或主机释放空闲内存(虚拟机迁移或关闭)时,会根据虚拟机的内存份额情况按比例分配。
不同于CPU资源可实时调度,内存资源的调度是平缓的过程,内存份额策略在虚拟机运行过程中会不断进行微调,使虚拟机的内存获取量逐渐趋于比例。
以6G内存规格的主机为例,假设其上运行有三台4G内存规格的虚拟机,内存份额分别为20480、20480、40960,那么其内存分配比例为1:1:2。当三个虚拟机内部均逐步加压,策略会根据三个虚拟机的份额按比例分配调整内存资源,最终三个虚拟机获得的内存量稳定为1.5G、1.5G、3G。
内存份额只在各虚拟机竞争内存资源时发挥作用,如果没有竞争情况发生,有需求的虚拟机可以最大限度地获得内存资源。例如,如果虚拟机B和C没有内存压力且未达到预留值,虚拟机A内存需求压力增大后,可以从空闲内存、虚拟机B和C中获取内存资源,直到虚拟机A达到上限或空闲内存用尽且虚拟机B和C达到预留值。以上面的例子,当份额为40960的虚拟机没有内存压力(内存资源预留为1G),那么份额为20480的两个虚拟机理论上可以各获得最大2.5G的内存。
- 内存资源预留
内存预留定义多个虚拟机竞争内存资源的时候分配的内存下限,能够确保虚拟机在实际使用过程中一定可使用的内存资源。
预留的内存被会虚拟机独占。即,一旦内存被某个虚拟机预留,即使虚拟机实际内存使用量不超过预留量,其它虚拟机也无法抢占该虚拟机的空闲内存资源。
- 内存资源限额
控制虚拟机占用物理内存资源的上限。在开启多个虚拟机时,虚拟机之间会相互竞争内存资源,为了使虚拟机的内存得到充分利用,尽量减少空闲内存,用户可以在创建虚拟机时设置虚拟机配置文件中的内存上限参数,使服务器分配给该虚拟机的内存大小不超过内存上限值。
网络QoS
网络QoS策略提供带宽配置控制能力,QoS功能不支持同一主机上虚拟机之间的流量限制。包含如下方面:
- 基于端口组成员接口发送方向与接收方向的带宽控制
- 基于端口组的每个成员接口提供流量整形、带宽优先级的控制能力。