手册下载
H3C UniServer R6900 G6服务器虚拟化最佳实践-6W100-整本手册.pdf (993.81 KB)
H3C UniServer R6900 G6服务器虚拟化最佳实践
资料版本:6W100-20241118
Copyright © 2024 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文档中的信息可能变动,恕不另行通知。
本章提供了H3C UniServer R6900 G6 服务器、虚拟化技术以及虚拟化Benchmark的介绍。
H3C UniServer R6900 G6 服务器是 H3C 基于 Intel Eagle Stream 平台自主研发的新一代 4U 四路机架式服务器。整机设计在上一代产品的基础上进行了全面优化,无论在性能表现、扩展能力还是低碳节能等方面都达到了全新的高度,是继 G5 产品之后的又一标杆四路服务器产品,是大规模虚拟化、数据库、内存计算、数据分析、数据仓库、商业智能、ERP 等数据密集型应用关键业务的理想选择。
图1-1 R6900 G6服务器
· 最多支持四颗英特尔®至强®第四代可扩展处理器,单CPU内核高达60核、最高主频3.9GHz,整机最多可提供240个内核和480个线程。
· 支持多达64根4800MT/s DDR5内存,内存容量最多可达16TB。
· 在支持高级矢量扩展指令集 AVX-512 的基础上,新增支持高级矩阵扩展指令集 AMX、平铺乘法矩阵加速单元 TMUL。
· 支持 PCI Express 5.0 以及SAS4.0,缩短 I/O 延迟,提高总体系统性能。
· 整机模块化设计,支持多样客户需求。
· 支持多种灵活的硬盘配置方案,提供了弹性的、可扩展的存储容量空间。
· 易扩展 PCIe 5.0 I/O 插槽,最多可以支持22张 PCIe 卡。
· 支持多达6张双宽 GPU 卡或10张单宽 GPU 卡。
· 支持OCP3.0,支持热插拔。
· 部件均采用模块化设计,机箱、风扇、硬盘、电源等设备均可以免工具拆卸,采用规格统一的电源模块。
· TCM/TPM 可信计算模块。
· 可信硅根固件安全系统。
· 安全退役功能。
· 支持多达4个电源,支持 N+N 冗余。
· 智能硬件监控系统,提供系统内部温度、风扇转速、电源电压等工作状态信息显示。
· 自动记录主机故障时间及日志信息。
· 支持智能调节转速功能,风扇转速随着系统温度动态调整,有效降低了系统噪音和功耗。
· 处理器智能动态节能,系统监控资源利用率并感知业务趋势,动态调频,有效降低 CPU 功耗。
· 智能散热系统,自动识别热点,散热精准覆盖,效率最大化,降低服务器能耗30%。
· 智能供电系统,根据系统负载动态调节供电模式,提升电源转化效率。
采用 H3C UniSystem 统一管理平台,可覆盖服务器从部署、运维、诊断到退役等各个环节。极速带外操作系统安装技术和敏捷的无状态计算功能,可提升10倍业务上线和流动的效率;全新进化的应用调优模板,可智能识别业务负载,匹配最佳配置,进而提升整机5%的性能表现;在 AI 技术的加持下,新华三服务器智能核心引擎,可实现高达95%的故障诊断准确率,并有效降低40%计划外宕机。便捷、高效、精准的新华三服务器管理平台将进一步提升服务器运维管理体验,助力企业客户信心百倍地迎接大规模数据中心带来的管理挑战。
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化使用软件的方法重新定义划分 IT 资源,可以实现 IT 资源的动态分配、灵活调度、跨域共享,提高 IT 资源利用率,使 IT 资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。
虚拟化技术整体来说,可以分为全虚拟化、半虚拟化、硬件辅助虚拟化和容器化这四类。
· 全虚拟化
全虚拟化是计算机虚拟化技术的最早阶段,它通过在物理服务器上创建虚拟机(VM)来实现资源的隔离和共享。在全虚拟化中,虚拟机管理程序(VMM)或称为 Hypervisor,负责管理和分配物理资源给虚拟机。虚拟机可以运行不同的操作系统和应用程序,实现多租户的资源共享。全虚拟化的优势在于提供了完全隔离的虚拟环境,但由于需要模拟硬件,性能开销较大。典型案例有 VMware、VirtualBox、Virtual PC、KVM-x86。
· 半虚拟化
半虚拟化是对全虚拟化的改进,它通过修改操作系统内核,使其能够与 Hypervisor 进行通信,从而减少了虚拟化的性能开销。在半虚拟化中,虚拟机可以直接访问物理硬件,而不需要通过 Hypervisor 进行模拟。这种方式提高了性能,但需要对操作系统进行修改,限制了可移植性。典型案例有 Xen、微软 Hyper-V。
· 硬件辅助虚拟化
硬件辅助虚拟化是在全虚拟化和半虚拟化之后的一项重要技术进步。它利用了处理器的虚拟化扩展,如 Intel 的 VT-x 和 AMD 的 AMD-V,来提供更高效的虚拟化性能。硬件辅助虚拟化通过在处理器级别提供虚拟化支持,减少了 Hypervisor 的介入,从而降低了虚拟化的性能开销。这种技术使得虚拟机可以直接访问物理硬件,并且在不同的操作系统和应用程序之间实现更好的隔离。类似的还有 Intel VT-d、SR-IOV 等。主流全虚拟化和半虚拟化产品现在都支持硬件辅助虚拟化。
· 容器化
容器化是计算机虚拟化技术的最新阶段,它通过在操作系统层面实现虚拟化,将应用程序和其依赖的运行时环境打包成一个独立的容器。容器化技术最著名的代表是 Docker。与传统的虚拟化方式相比,容器化具有更快的启动时间、更低的资源消耗和更高的可移植性。容器可以在不同的主机上运行,而无需关心底层的操作系统差异。此外,容器化还提供了更好的可扩展性和弹性,使得应用程序的部署和管理更加简单和灵活。
SPEC virt_sc 2013是由标准性能评估公司(SPEC)开发的软件基准测试产品,而SPEC是一个由计算机供应商、系统集成商、大学、研究机构、应用软件栈组成的非营利组织。SPEC virt_sc 2013基准测试套件用于衡量虚拟化平台的性能,是SPEC VIRT基准测试的最新版本,旨在供硬件供应商、虚拟化软件供应商、应用软件供应商、数据中心管理人员和学术研究人员使用。该基准测试解决了虚拟化服务器整合(sc)中使用的数据中心服务器的性能评估问题。
SPEC virt_sc 2013基准测试衡量所有系统组件的端到端性能,包括硬件、虚拟化平台、虚拟化客户操作系统和应用软件。该基准测试支持硬件虚拟化、操作系统虚拟化和硬件分区。
该测试套件通过运行额外的虚拟机集(称为“tiles”)来增加负载,直到整体吞吐量达到峰值。所有虚拟机都必须继续满足所需的服务质量(QoS)标准。在 SPEC virt_sc 中,一个 tile 是一个单一的工作单元,由四个应用程序工作负载组成,这些工作负载在五个不同的虚拟机和一个单独的数据库服务器 VM 上驱动。通过按照以下描述配置额外的虚拟机集并增加基准测试的 tile 数,可以增加被测机(SUT)上的负载。对于 SPEC virt_sc 的一个 tile,工作负载及其虚拟机为:
· 基于SPECweb2005工作负载的修改版本,使用一个Web Server VM和一个Infrastructure Server VM(提供文件服务器和后端处理)的一个网络服务器工作负载。
· 基于SPECmail2008工作负载的修改版本,使用一个Mail Server VM的一个邮件服务器工作负载。
· 基于SPECint2006的401.bzip2工作负载,使用一个Batch Server VM的一个批处理服务器工作负载。
· 基于SPECjAppServer2004的修改版本,使用一个J2EE Application Server VM的一个应用服务器工作负载。
每个tile的应用程序服务器虚拟机都需要一个企业级数据库服务器虚拟机后端。每个数据库服务器虚拟机最多由四个应用服务器虚拟机共享。对于每四个连续的tile,需要一个单独的数据库服务器虚拟机。如果tile的数量不是四的倍数,则只有最后一个数据库服务器虚拟机可以由少于四个tile共享。
图1-2 Tile和harness工作负载之间的交互
VMmark是由VMware独立开发的免费虚拟机基准测试软件套件。该套件用来衡量虚拟化平台性能和可扩展性,可用于确定虚拟化环境中硬件、软件或配置更改的性能影响。为了衡量虚拟化层(hypervisor)的效率,该套件必须同时运行多个虚拟机(VM)。每个VM都根据模板进行配置,其中三个模板都配备了VMmark软件。这些模板模仿了公司数据中心中的典型软件应用程序,如电子邮件服务器、数据库服务器和Web服务器。VMmark软件收集与每种类型的应用程序相关的性能统计数据,例如数据库服务器的每秒提交数,或web服务器的每秒页面访问数。
本次通过SPEC virt_sc 2013基准测试套件模拟常见的虚拟化应用和服务器整合应用场景,通过不断增加tile数来增加负载从而得到最佳测试结果时,给出配置方案。
本方案基于H3C UniServer R6900 G6服务器和SPEC virt_sc 2013基准测试套件,使用了硬件辅助的KVM虚拟化技术,为企业提供了完整的虚拟化解决方案。该方案支持多种灵活的硬盘和网卡配置方案,为用户提供弹性、可扩展的虚拟化配置环境,满足不同规模的虚拟化需求。支持单CPU内核高达60核和整机多达64根DDR5内存,大幅提升虚拟化能力。
本方案适用于云计算服务、数据中心管理、桌面虚拟化等需要大规模虚拟化的业务场景,同时也适用于大数据处理、灾难恢复等业务场景,为客户提供高灵活性、高可靠性的大规模虚拟化环境。
如图2-1所示,测试机与压力机通过25G光口交换机相连,图中箭头为光纤线缆与光模块。
图中R4900 G5和R4900 G6作为压力机存在,不影响配置方案整体性能。
表2-1 硬件配置
硬件 |
型号 |
数量 |
服务器 |
R6900 G6 |
1台 |
CPU |
Intel(R) Xeon(R) Platinum 8490H CPU |
4颗 |
内存 |
Samsung 128GB 4Rx4 DDR5 4800 RDIMM |
64根 |
网卡 |
NIC-ETH360T-3S-4P |
1张 |
NIC-ETH-E810XXVDA2G1P5-2P |
4张 |
|
NIC-MCX4121A-F-B-25Gb-2P |
4张 |
|
硬盘 |
Hynix PE8110 7.68TB |
15块 |
· 管理网卡(非必需,供调试使用):NIC-ETH360T-3S-4P型号的网卡要求达到1GE的传输速率,方便文件传输和ssh远程登录。
· 14块PE8110组建RAID10用于存储虚拟机镜像与数据,1块PE8110作为系统盘。
表2-2 软件配置
组件 |
软件 |
版本 |
操作系统 |
RHEL |
9.0 |
虚拟化平台 |
qemu-kvm |
8.2.0 |
· 参考本文服务器硬件配置与拓扑结构,完成测试机、压力机、交换机等硬件环境搭建与组网。
· 安装H3C官网R6900G6最新版本HDM和BIOS。
· 测试机与压力机安装RHEL 9.0操作系统,并更新系统网卡驱动。
· 本次最佳实践配置通过SSH远程进行。
驱动及软件版本建议使用较新版本,本次最佳实践使用版本:
· HDM固件版本:HDM2 V100R001B01D063_1.63。
· BIOS固件版本:V100R001B01D034_6.00.34。
· 操作系统:需要全包安装,网卡驱动可在新华三官网下载。
使用如下命令安装需要的依赖包:
yum install libvirt virt-manager virt-install libguestfs-tools ruby numactl
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl set-default multi-user.target
(1) 在所有虚拟机、被测机和压力机下开启chronyd服务并设置开机自启。
systemctl start chronyd.service
systemctl enable chronyd.service
(2) 将其中一台压力机作为时间同步服务器,编辑该压力机chrony配置文件/etc/chrony.conf。取消图3-1所示注释行,指定子网192.168.0.0/16内的主机可以访问本服务器,其中192.168.0.0/16为虚拟机、被测机和压力机所在的子网。
(3) 取消图3-2所示注释行,即使源时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端,即断网时也可以用。
(4) 在虚拟机、被测机和其他压力机上编辑chrony配置文件/etc/chrony.conf,在文件最开始修改时间同步服务器ip,如图3-3所示。其中192.168.71.11是作为时间同步服务器的压力机的ip地址。
1. 组建RAID
将14块NVMe硬盘组建RAID10用于存放虚拟机资源与数据,组建成功的RAID信息如图3-4所示。
2. 磁盘分区
[root@virt-sut build_scripts]# parted /dev/md0
GNU Parted 3.5
Using /dev/md0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 14336s 100%
(parted) align-check opt 1
1 aligned
(parted) q
Information: You may need to update /etc/fstab
3. 创建物理卷与卷组
[root@virt-sut ~]# pvcreate /dev/md0p1
[root@virt-sut ~]# vgcreate vg_virt /dev/md0p1
4. 创建逻辑卷用于存放虚拟机镜像与数据
Tile1的逻辑卷创建命令如下,其他tile的逻辑卷创建可参照tile1。
lvcreate --yes -L 56320M -n appserver1 vg_virt
lvcreate --yes -L 15360M -n webserver1 vg_virt
lvcreate --yes -L 15360M -n infraserver1 vg_virt
lvcreate --yes -L 46080M -n infraserver1-data vg_virt
lvcreate --yes -L 15360M -n mailserver1 vg_virt
lvcreate --yes -L 30720M -n mailserver1-data vg_virt
lvcreate --yes -L 15360M -n batchserver1 vg_virt
lvcreate --yes -L 15360M -n dbserver1 vg_virt
lvcreate --yes -L 46080M -n dbserver1-data vg_virt
请参考SPEC官方文档进行环境搭建,此处不再赘述。
· 测试机端环境搭建手册:SPEC virt_sc ® 2013 V1.11 User's Guide
· 压力机端环境搭建手册:SPEC virt_sc ® 2013 V1.1 Client Harness User's Guide
· 常见问题解答:SPEC virt_sc ® 2013 V1.1 FAQ
· 技术支持:SPEC virt_sc ® 2013 V1.1 Technical Support
· 配置好一个tile的虚拟机后,可通过克隆得到其他tile的虚拟机,但需要进行主机名修改和网络配置等操作。
· SPEC virt_sc 2013测试套件需要付费才可以获取。
图4-1 节能设置
图4-2 风扇配置
tuned-adm profile virtual-host
tuned-adm 是一个用于调整和优化 Linux 系统性能的工具。它通过应用不同的配置文件(profile)来优化系统的资源利用。其中,virtual-host 配置文件专门用于优化虚拟化环境中的性能。
cpupower frequency-set -g performance
如上是用于配置 CPU 频率调节器的命令,其会将 CPU 调节器设置为 "performance" 模式。这意味着 CPU 会尽量保持在较高的频率,以提高性能。
如下是本实践关闭的一些服务:
systemctl disable crond.service kdump.service irqbalance.service smartd.service multipathd.service firewalld.service
systemctl stop crond.service kdump.service irqbalance.service smartd.service multipathd.service firewalld.service
crond.service 是用于管理 Cron 守护进程的服务,这个守护进程常驻于后台,用于定期执行计划任务。kdump.service 是用来管理 kdump 的服务。Kdump 是 Linux 系统中的一个崩溃转储(crash dump)机制,用于在内核崩溃时捕获内存镜像。irqbalance.service 是负责管理和优化中断请求(IRQs)在多核处理器上的分布的服务。smartd.service 是负责管理和运行 SMART 磁盘监控工具的后台服务。multipathd.service 是一个与设备多路径(multipathing)有关的系统服务。firewalld.service 是 Linux 系统上的一个服务,用于管理网络防火墙。
限制 CPU 的节能状态(C状态)。为此编辑 /etc/default/grub 文件,在 GRUB_CMDLINE_LINUX 中添加如下参数:
intel_iommu=on iommu=pt intel_idle.max_cstate=0 processor.max_cstate=1
在直通模式下,IOMMU 允许设备直接访问物理内存,而不经过 IOMMU 的地址转换,可以提升性能。intel_idle.max_cstate=0 禁用 intel 处理器的高级 C 状态,CPU 将只会使用 C0 状态,即完全活跃状态,这可以提高性能和响应速度。processor.max_cstate=1 限制所有处理器只能使用 C0 和 C1 状态。
使用如下命令使配置文件生效:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
H3C 服务器在出厂时,已设置为最优的配置,强烈推荐使用默认的 BIOS 设置。如果无法确认之前对 BIOS 设置是否做过修改,或者无法确认 BIOS 是否是默认配置,可以在服务器 BIOS POST 过程中按下 Delete 键,进入 BIOS SETUP 菜单,按下 F3 加载默认配置。
为了最大化 R6900 G6 服务器虚拟化的内存性能,内存的部署选型建议遵循如下原则:
· 尽量保证每个内存通道都部署有内存条。
· 采用平衡部署,每个内存通道上配置同样多的内存。
· 如果不能做到平衡部署,请参见产品用户指南进行部署,避免无法开机、内存性能大幅下降等问题。
· 尽量使用 4800 MHz 频率内存条。
内存大页是一种内存管理技术,该技术通过使用比常规页面(通常为 4KB)更大的内存页面(如 2MB 或 1GB)来减少页表的开销和提高内存访问效率,从而提高整体性能。RHEL 9.0 支持 2M 和 1G 内存大页,本文使用 1G 内存大页。通过如下步骤来配置 1G 内存大页供虚拟机使用:
(1) 系统中 shell 执行以下命令来分配 3900 个 1G 大页
mkdir /dev/hugepages1G
mount -t hugetlbfs -o pagesize=1G none /dev/hugepages1G
echo 3900 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
(2) 通过 /usr/libexec/qemu-kvm 来启动虚拟机时添加 -mem-prealloc -mem-path /dev/hugepages1G 参数
自动 NUMA 平衡是 Linux 3.8 内核引入的新特性,允许内核自动调整内存页在 NUMA 节点之间的分布,以最小化远程内存访问,从而提高整体系统性能,在 RHEL 9.0 默认情况下是打开的。此处使用 numactl 来进行手动绑核,故需要关闭自动 NUMA 平衡。
关闭方法:
echo 0 > /proc/sys/kernel/numa_balancing
或
sysctl -w kernel.numa_balancing=0
通过将进程绑定到特定的CPU或NUMA节点,可以减少进程在不同CPU间切换的开销。这样可以提升缓存命中率,减少内存和CPU通信的延迟。对于NUMA架构的系统,绑定进程到特定的NUMA节点,可以确保进程优先使用该节点的本地内存,这样能避免远程节点内存访问时的额外延迟。此外,CPU亲和性设置可以进行资源隔离,减少资源竞争,提高不同应用的稳定性和性能,并能实现负载均衡,避免资源的过度使用或浪费。
使用numactl -H命令在系统下查看NUMA结构。
图4-3 查看NUMA结构
图示中有4个NUMA节点,对应4个CPU,每个节点包含的CPU核和内存容量都被标注出来。
对于所有的虚拟机进程,将其均匀地绑定到CPU和内存上。对于一个具体的虚拟机进程而言,使用numactl工具将其绑定到同一个NUMA节点对应的CPU和内存上。例如,使用/usr/libexec/qemu-kvm启动虚拟机时,在启动脚本前添加numactl -m 0 -N 0参数,表示将该虚拟机进程绑定到节点0对应的CPU和内存上。
根据具体业务的带宽需要选择合适数量的合适带宽的网卡,并要考虑高可用性和冗余性,网卡需要支持SR-IOV功能。
在配置服务器网卡时,尽量将其均匀地分配到所有物理CPU上。在系统下可以使用如下命令来查看具体物理网口所处的NUMA节点:
cat /sys/class/net/ens4f0/device/numa_node
从结果可以看出,物理网口ens4f0位于NUMA节点2,对应于CPU2。
在启动虚拟机时,指定为其分配的NUMA节点上的网口的VF作为其网络设备。
SR-IOV(Single Root I/O Virtualization)是一项用于提升虚拟化环境中网络性能的技术。它通过硬件支持,使单一物理网络设备(如网卡)可以被分割成多个虚拟网络设备,提供给不同的虚拟机使用。SR-IOV允许虚拟机直接与物理网卡通信,减少了传统虚拟化环境中的虚拟交换机和I/O堆栈,实现了更低的延迟和更高的吞吐量。通过将不同的VF分配给不同的虚拟机,实现了资源的隔离,增强了安全性。
BIOS默认开启SR-IOV功能,需要在系统下进行配置,配置步骤如下:
(1) 对于Mellanox网卡,需要额外安装MFT工具,可在NVIDIA官网下载。之后在系统下执行:
mst start
mst status
mlxconfig -d /dev/mst/mt4119_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=48
· /dev/mst/mt4119_pciconf0是mst status命令得到的设备名,对应于一个Mellanox网卡的物理网口,NUM_OF_VFS=96表示设置该网卡每个网口最多可以分配48个VF。网卡支持的最大VF数可查看官方文档进行查询。
· 设置Mellanox网卡的VF数量后需要重启机器使修改生效。
(2) 通过以下命令为网卡网口分配VF,其中ens4f0为具体的网口名。
echo 48 > /sys/class/net/ens4f0/device/sriov_numvfs
命令执行成功后可以在系统下查看到VF对应的网口名,网口ens4f0的VF名为ens4f0v0,ens4f0v1…,如图4-4所示。
图4-4 查看VF 对应网口名
根据具体业务的需求和成本,选择合适类型的硬盘。本文中的环境读写带宽需求大,故选择NVMe硬盘。
根据具体业务要求选择合适的RAID级别,如对性能要求较高选择RAID 10,对容量要求较高选择RAID 5,对可靠性要求高选择RAID 6等。
本文中的环境对性能要求高,故选择RAID 10。在系统下使用mdadm创建RAID 10时会默认使用internal bitmap,而其会影响随机写入速度。当一个RAID 10阵列中的某个磁盘发生故障后被替换或重建时,bitmap可以用来标记哪些部分的数据需要从其他镜像盘中重新复制过来。这样做可以加快重建的速度,帮助快速恢复数据一致性,增强系统的可靠性和恢复效率。如果不关注这方面,可在创建RAID时指定不使用bitmap的选项,示例如下。
mdadm --create /dev/md0 -v --raid-devices=14 --level=raid10 --bitmap=none /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1 /dev/nvme9n1 /dev/nvme10n1 /dev/nvme11n1 /dev/nvme12n1 /dev/nvme13n1 /dev/nvme14n1
图4-5 测试结果
表4-1 测试结果
Benchmark与压力软件 |
测试结果 |
SPEC virt_sc 2013 V1.1 |
13880 @ 777 VMs |
在SPEC virt_sc 2013测试中,取得13880的分数,一共可以同时运行777个工作负载虚拟机,刷新了SPEC virt_sc 2013世界纪录。