河北 王春海 楚小彬 赵志波 薛庆友
某企业VMware vSphere虚拟化环境,虚拟化管理中心vCenter Server版本是7.02,该vCenter Server管理了多个群集,其中2个群集是ESXi 7.02的版本,剩余其他群集是ESXi 6.7版本。每个群集有几十台到上百台业务虚拟机不等。该虚拟化群集使用Veeam Backup & Replication(下面简称VBR) V11.0的版本实现虚拟机的备份和虚拟机的复制。
1 虚拟机复制中出现问题
用户备份的虚拟机数量从最初的几十台增加到二百多台。当备份虚拟机的数量增加后,有的时候备份任务不能在24小时以内完成,这样就造成备份任务积压。虽然备份的虚拟机数量较多,但这些虚拟机的数据增量并不大。在当前的备份方案设计中,VBR备份与管理机与备份代理都是vSphere中的虚拟机,其中VBR管理虚拟机配置了16 vCPU和32GB内存,用于VBR备份代理虚拟机配置了8 vCPU和16GB内存,从VBR备份服务器到VMware vSphere虚拟化环境是10G bit/s的网络,备份服务器的存储性能足够,不存在明显的瓶颈。
经过检查备份任务,发现在备份某些虚拟机时花费的时间较长。图1是备份一台分配了较大容量磁盘(合计14.1 TB)虚拟机的备份执行时间截图,这台虚拟机的增量备份使用了14小时13分钟多的时间。
图1 备份的虚拟机及花费的时间
查看备份任务,发现VBR在备份该虚拟机时无法使用hotadd功能,而是使用Network方式。
【说明】Veeam Backup & Replication(VBR)在备份虚拟机时,支持3种传输模式:Direct Storage Access(直接存储访问)、Virtual Appliance(虚拟设备)和Network(网络)。在这3种传输模式中,Direct Storage Access效率最高,Virtual Appliance其次,Network最差。
Direct Storage Access主要用于通过 FC、FCoE、iSCSI 和共享 SAS 存储连接到 ESXi 宿主机的共享 VMFS SAN LUN 上的虚拟机。
Virtual Appliance不如Direct Storage Access高效,但性能比Network模式高。如果将备份代理的角色分配给虚拟机,则建议使用虚拟设备模式。
在Virtual Appliance模式下,VBR使用 VMware SCSI HotAdd 功能,该功能允许在虚拟机运行时将设备连接到虚拟机。对于备份vSAN存储的虚拟机,建议优先使用Virtual Appliance的HotAdd功能。
通过查看Veeam官方文档,查看hotadd的要求,得到如下的相关信息:
(1)对于vSphere 5.5及更高版本,hotadd支持的最大VMDK上限为62TB。
(2)Hotadd是SCSI功能,不支持IDE磁盘。VMware 虚拟SCSI控制器,每个SCSI控制器最多支持15个设备。
(3)如果任何磁盘是使用比正在备份的 VM 更新的硬件版本创建的,如果磁盘从硬件版本 8 的 VM 移动到硬件版本 7 的 VM,则 HotAdd 可能会失败。要解决这个问题应升级 VM 的硬件版本。
使用VBR备份虚拟机的时候,如果源端或目标端不支持hotadd时,可以检查虚拟机硬件版本、备份代理并发数量、数据传输模式等配置,下面一一介绍。
2 检查VBR管理服务器与备份代理虚拟机硬件版本
首先检查需要备份的虚拟机的硬盘大小。检查发现,需要备份的虚拟机单一虚拟硬盘不超过62TB,并且都是SCSI虚拟磁盘。这些都满足hotadd的要求。
但在检查中发现,使用hotadd备份成功的虚拟机的硬件版本和VBR虚拟机备份版本相同,备份不成功的虚拟机硬件版本高于VBR虚拟机硬件版本。
安装VBR备份管理软件的虚拟机硬件版本是ESXi 6.0(虚拟机版本11)(如图3所示),而要备份的虚拟机的硬件版本是ESXi 6.7及更高版本(虚拟机版本14),如图4所示。
图3 检查VBR虚拟机硬件版本
在使用hotadd备份虚拟机版本为14的虚拟机时,该虚拟机创建快照并且快照前的磁盘以“从属”模式添加到VBR的虚拟机时,由于VBR所在虚拟机硬件版本为11,无法使用hotadd模式备份虚拟机硬件版本为14的虚拟机,这就导致使用hotadd功能备份失败。
找到问题原因,解决就比较容易了。等VBR当前备份任务完成后,关闭VBR的虚拟机,升级虚拟机硬件到最新版本(该虚拟机所在环境为vSphere 7.0 U2),将VBR虚拟机硬件版本升级到ESXi 7.0 U2及更高版本(虚拟机版本19)。升级完成后打开虚拟机电源。
在升级虚拟机硬件的时候,并不需要关机,但需要重新启动。对于需要批量升级虚拟机硬件版本的虚拟机,例如当前配置为VBR备份代理的虚拟机,可以选中这些虚拟机并用鼠标右键单击,在弹出的快捷菜单中选择“兼容性→调度虚拟机兼容性升级”(如图6所示),在弹出的“调度虚拟机兼容性升级”对话框中选择“是”,在“调试虚拟机兼容性升级”对话框的“兼容”选项下拉列表中选择“ESXi 7.0 U2及更高版本”,并且选中“仅在正常关闭客户机操作系统后升级”,单击“确定”按钮,如图8所示。
图6 兼容性
图8 更改兼容性
然后批量重新启动备份代理虚拟机。等虚拟机重新启动后,虚拟机硬件版本升级到ESXi 7.0 U2及更高版本(虚拟机版本19)。
在升级了VBR备份管理虚拟机及备份代理虚拟机硬件兼容性版本到最高后,再次重新启动备份任务,同样的任务此次只用了24分17秒。
3 检查备份代理的并发数量
VBR备份代理支持多个并发,每个并发处理一个VMDK。VBR备份管理服务器与备份代理安装在虚拟机中,VMware虚拟机默认只添加一个虚拟SCSI控制器,每个虚拟SCSI控制器最大支持15个SCSI设备。如果VBR备份管理服务器配置15个以上CPU并且设置VBR备份代理并发上限超过15个时,就可能会出现问题。
例如:对于VBR备份代理虚拟机,假设分配16个vCPU和32GB内存,该备份代理虚拟机配置1个100GB的虚拟硬盘,那在配置1个虚拟SCSI控制器时,剩余的可用并发设备只剩下14个。在设置16个并发时,就有2个不足。对于设置15个及以上vCPU时,关闭VBR管理服务器或备份代理虚拟机,编辑虚拟机设置,在“添加新设备”中选择“控制器→SCSI控制器”,添加第2个SCSI控制器(如图11所示),每台虚拟机最多可以添加4个SCSI控制器(如图12所示),最多可以支持60个SCSI设备。
图11 添加SCSI控制器 图12 一共4个SCSI控制器
在添加控制器之后,打开虚拟机电源,修改VBR备份代理并发数为16个(Veeam推荐每个并发代理使用1个vCPU),如图13所示。
图13 设置并发代理数量
4 检查备份代理是否有卡住的VMDK
正常情况下,用做备份代理的虚拟机只有1个硬盘。在本次备份任务完成后,检查备份代理虚拟机配置,应该只有1个硬盘。但是,如果检查中发现有“遗留”的快照磁盘(如图14所示),需要查看“多出”硬盘的具体位置,通过硬盘的名称和保存位置,查看多出的硬盘是属于需要备份的虚拟机(生产中的虚拟机),还是已经备份后的虚拟机(副本虚拟机)。如果是生产虚拟机,查看一下生产虚拟机是否有多余的快照。如果是副本虚拟机,同样检查是否有非正常的副本快照,检查副本虚拟机是否需要“整合”的提示(如图15所示)。在确认备份代理中有“遗留”的快照磁盘后,编辑虚拟机设备,移除遗留的硬盘但不要选中“从数据存储删除文件”(如图16所示)。
图14 备份代理中有2个遗留的硬盘
图15 检查虚拟机复制的副本 图16 移除多出的硬盘
5 检查备份(复制)任务数据传输模式
首先检查备份任务,在“Data Transfer”的“Source proxy(源端代理)”和“Target proxy(目标端代理)”中选择“Automatic selection(自动选择)”,如图17所示。
然后检查备份代理,在“Transport mode”中选择“Automatic Selection(自动选择)”,如图18所示。
图17 自动选择
图18 自动选择传输模式
6 尝试修改ESXi虚拟交换机网卡绑定顺序
在运行几天之后检查发现,有的虚拟机在使用VBR备份时,无法在目标代理使用hotadd,从而导致备份速度较慢,如图19所示。
图19 目标端代理无法使用hotadd
这个问题,经过反复检查,是VBR管理服务器与VBR备份代理虚拟机所在的ESXi主机虚拟交换机网卡绑定顺序造成的。在当前的示例中,VBR管理服务器(虚拟机名称为VeeamSer01-200.25)、VBR备份代理(虚拟机名称为Veeam-Proxy07-200.37)所在的ESXi主机使用标准交换机vSwitch0,该虚拟交换机管理端口、虚拟机流量端口使用了2块10G bit/s的网卡用于冗余,只要修改vSwitch0的绑定顺序,将其中一块网卡设置为“活动适配器”(本示例为vmnic2),将另一块网卡设置为“备用适配器”(本示例为vmnic3)(如图20所示),修改之后如图21所示。
图20 指定网卡绑定顺序
图21 指定网卡绑定顺序
经过这样修改后,VBR再执行备份后,可以在目标备份代理使用hotadd技术,备份速度提升。
7 备份虚拟机数量较多时增加并发快照数量
VBR备份作业默认情况下,最多同时为4个VM创建快照。如果一个备份任务中VM数量很多时,即使你配置了多个备份代理,仍然只能最多同时处理4个VM,其他的虚拟机会显示:Resource not ready: Active snapshots limit reached for datastore。如图23所示。
图23 快照数量限制
如果要解决这个问题,增加同时处理VM的数量,需要修改注册表,在VBR备份管理服务器上运行regedit,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Veeam Backup and Replication,添加类型为REG_DWORD ,名称为MaxSnapshotsPerDatastore的字符串值,修改为4以上的数值,例如修改为8(如图24所示)。注意,不要将此数值修改的过大,以防止超过存储的承受能力。在实际的生产环境中,可以在每次备份任务完成后,依次增加该数值,然后重启服务器,然后查看下次备份任务完成的时间。不要为了追求减少备份的时间而过多修改此数值以避免对存储造成过载。
图24 修改并发数
在修改并发数并重启生效后,在下一次任务执行时,当某个备份任务中虚拟机数量较多时,并且配置了足够多的备份代理时,备份任务执行的总体时间会缩短许多。
例如:某备份任务中,需要备份的虚拟机数量为59台。在快照上限为4时,备份完成的时间是3小时28分29秒(如图25所示)。修改快照上限为8后,备份完成的时间是2小时35分58秒(如图26所示)。对比其中备份任务,当备份任务中,需要备份的虚拟机数量超过4台时,并发任务的增加可以减少任务总体完成的时间。
图25 快照并发上限为4 图26 快照并发上限为10
【说明】不同的虚拟机,根据需要可以创建不同数量的虚拟硬盘,在备份的时候,每一块虚拟硬盘占用一个(并发)备份代理。假设备份任务中有20台虚拟机,每台虚拟机有2块硬盘。在不修改快照上限为4时,启动备份任务时,同时为4台虚拟机创建快照,一共需要8个并发备份代理即可。在修改快照上限为8后,启动备份任务后,同时为8台虚拟机创建快照,一共需要16个并发备份代理。
有的虚拟机只有1个硬盘,那么这个虚拟机备份的时候只需要1个并发代理。
大多数的虚拟机会有2至3个硬盘,那么这些虚拟机备份的时候就需要2到3个并发代理。
所以,如果备份的源虚拟机都在同一台共享存储上(vSAN可以看做一台共享存储),并且需要备份的虚拟机的硬盘数量较少时,即使设置了过多的备份代理也没有多少实际的意义。
(1)这篇文章最初发表在《网络安全和信息化》杂志2021年第11期的第146~151页。
(2)更加详细的内容可以参看以下图书:
VMware虚拟化与云计算应用案例详解(第3版)
https://item.jd.com/12939315.html
(3)查看相关视频可以看
基于Veeam V11的物理机和虚拟机的备份容灾应用视频
https://edu.51cto.com/course/27783.html