VSAN7.0集群扩容实战:5分钟搞定新节点添加与磁盘组配置(附避坑指南)
VSAN 7.0 横向扩容实战:从节点上架到集群就绪的深度操作手册
最近在帮一家客户做存储资源池的横向扩展,场景很典型:业务数据量激增,原有的三节点VSAN集群容量告急,需要在不中断服务的前提下,平滑加入新的物理服务器。这听起来像是vSphere管理员的家常便饭,但真动起手来,从网络配置、磁盘组创建到最后的集群一致性校验,每一步都可能藏着“惊喜”。尤其是VSAN 7.0引入了一些新的健康检查机制和磁盘格式,如果还照着老经验来,很可能在“磁盘版本升级”那一步卡壳。这篇文章,我就结合这次实战,把新增节点、配置磁盘组、规避常见报错的完整流程和底层逻辑拆解清楚,目标是让你在下次扩容时,心里有张清晰的“作战地图”,而不是对着报错代码全网搜索。
1. 扩容前的精密准备:不止是插上网线
扩容绝不是把新服务器塞进机柜、接上网络和存储线缆就完事了。一次成功的扩容,70%的功夫在前期准备。很多人一上来就直奔vSphere Client操作界面,这往往为后续的报错埋下了伏笔。
1.1 硬件与网络架构的合规性校验
首先,新节点的硬件必须满足VSAN的**硬件兼容性列表(HCL)**要求。这不仅仅是CPU、内存型号,更重要的是磁盘控制器(HBA或RAID卡)的模式和驱动版本。我遇到过最棘手的问题之一,就是新服务器的RAID卡虽然型号与老节点一致,但固件版本低了一级,导致VSAN无法正确识别NVMe缓存盘,报出“设备不受支持”的错误。
注意:在采购新节点前,务必使用VMware的兼容性指南工具进行交叉核对,特别是磁盘控制器和NVMe驱动。不要想当然地认为同型号就万事大吉。
除了硬件,网络是VSAN的神经系统。VSAN 7.0要求每个节点至少有一个专用于VSAN流量的VMkernel适配器。在规划时,你需要确认:
- 网络拓扑一致性:新节点的VSAN网络VLAN、IP子网必须与现有集群完全一致。混合子网会导致节点间通信失败。
- MTU值设置:如果现有集群启用了Jumbo Frame(通常MTU设置为9000),那么新节点的物理交换机端口、vSwitch以及VMkernel适配器都必须同步此配置。一个节点的MTU不匹配,就可能导致存储网络性能骤降或间歇性中断。
- 冗余与带宽:建议为VSAN流量配置至少10GbE的双网卡绑定,以实现带宽聚合和链路冗余。在vSphere中配置网卡绑定策略时,我通常选择“基于IP哈希的路由”,这对于VSAN这类东西向流量密集的场景效果更佳。
下面是一个简单的网络配置合规性自查表,可以在上架前逐项打勾:
| 检查项 | 要求 | 新节点状态 | 备注 |
|---|---|---|---|
| VSAN VMkernel网卡 | 已创建并启用VSAN流量服务 | 待配置 | 需分配静态IP |
| VLAN ID | 与集群现有节点一致 | 已确认 | 需与网络团队协调 |
| MTU值 | 与集群现有节点一致(通常9000) | 待配置 | 需在物理交换机和vSwitch同时设置 |
| 上行链路冗余 | 至少2条10GbE物理链路 | 已就绪 | 建议使用分布式交换机 |
| IP地址连通性 | 新节点IP能与所有现有节点互通 | 待测试 | 使用vmkping命令测试 |
1.2 vSphere层面的前置条件
硬件和网络就位后,我们需要在软件层面为新节点“铺好红毯”。首先,确保新服务器已安装与集群版本完全一致的ESXi系统。然后,将其添加到vCenter Server的清单中,但先不要直接加入VSAN集群。
一个关键步骤是检查并配置主机的主机名和DNS解析。VSAN集群严重依赖主机名进行节点间通信。如果新节点的主机名无法被其他节点正向和反向解析,扩容过程必定失败。
# 在新节点的ESXi Shell中,测试与现有集群节点的DNS解析和网络连通性 # 1. 使用nslookup解析现有节点的主机名 nslookup esxi-node-01.vsan.lab # 2. 使用vmkping测试到现有节点VSAN IP地址的连通性及大包传输 vmkping -s 8972 10.10.10.21 # -s 8972 用于测试MTU为9000时的实际传输能力如果DNS解析有问题,你需要要么修正DNS服务器记录,要么在每台ESXi主机的/etc/hosts文件中手动添加所有节点的IP与主机名映射。对于生产环境,强烈推荐使用稳定可靠的DNS服务。
2. 节点加入与VMkernel网络配置实战
当所有前置绿灯亮起,我们就可以开始核心操作了。这个过程在vSphere Client上看似点点鼠标,但每个选项背后都有其含义。
2.1 将主机添加到集群
在vCenter中,右键点击你的VSAN集群,选择“添加主机”。按照向导输入新主机的IP地址、root凭据。这里有个细节:在“即将完成”步骤,暂时不要勾选“将主机移入集群后启用锁定模式”。锁定模式(Lockdown Mode)会限制对主机的直接访问,如果在配置过程中出现问题,会给排错带来不必要的麻烦,我们可以等一切就绪后再启用。
主机添加成功后,它应该出现在集群的清单中,但此时它还没有为VSAN提供任何存储资源,相当于一个“计算专用”节点。
2.2 配置VSAN VMkernel适配器
这是打通新节点存储网络的关键一步。我们需要为它创建或配置一个承载VSAN流量的VMkernel网卡。
- 选中新主机,进入“配置”->“网络”->“VMkernel适配器”。
- 点击“添加网络”,选择“VMkernel网络适配器”。
- 选择目标标准交换机或分布式交换机(推荐使用vSphere Distributed Switch以保持配置一致性)。
- 在“端口属性”步骤,务必勾选“VSAN”流量类型。如果此主机也计划用于vMotion,可以一并勾选,但请确保底层网络有足够的带宽或进行了QoS策略划分。
- 分配一个与现有VSAN网络同网段的静态IP地址。
配置完成后,可以再次使用vmkping命令,从新节点向任意一个老节点的VSAN IP地址发送大数据包,验证网络性能和连通性。
提示:如果你使用的是分布式交换机,并且已经为VSAN流量配置了端口组,那么这一步会简单很多,直接选择现有的VSAN端口组即可,这保证了所有网络策略(如MTU、绑定策略)的自动继承。
3. 声明磁盘与创建磁盘组:避开那些“坑”
网络通了,节点也在集群里了,接下来就是让VSAN识别并使用新节点本地的磁盘。这是报错的高发区。
3.1 磁盘声明与“找不到可用磁盘”问题
进入集群的“VSAN”->“磁盘管理”视图,你应该能看到新主机,但其下的磁盘可能显示为“未声明”或根本看不到。
- 场景一:磁盘未声明:这是正常状态。VSAN不会自动声明磁盘,需要管理员手动操作。选中符合要求的磁盘(通常是闪存盘作为缓存层,容量盘作为容量层),点击“创建磁盘组”。
- 场景二:磁盘完全不可见:这通常意味着磁盘未被ESXi识别。你需要检查:
- 磁盘控制器模式:确保它处于直通模式(Pass-through),如AHCI或HBA模式,而不是RAID模式。某些RAID卡即使配置了单盘RAID-0,VSAN也可能不支持。
- 驱动问题:检查
esxcli storage core device list命令的输出,看磁盘是否列出。如果未列出,可能需要更新或安装特定的驱动或VIB。 - 磁盘已被占用:如果磁盘之前被用于VMFS数据存储或有其他分区信息,VSAN会拒绝使用。你需要通过ESXi命令行或使用
partedUtil工具彻底清除磁盘上的分区表。
3.2 创建磁盘组:策略与最佳实践
选中缓存盘和若干容量盘后,点击“创建磁盘组”。VSAN 7.0支持全闪存磁盘组,其中缓存层必须是高性能的闪存设备(如NVMe SSD),容量层可以是SSD或HDD(但全闪存架构下也是SSD)。
这里有几个核心决策点:
- 缓存盘比例:一个常见的误解是缓存盘越大越好。实际上,缓存盘主要用于写入缓冲和热点读取。VMware的建议是,缓存盘容量不应低于预期容量盘写入负载的10%,也不应低于350GB。对于以读为主的工作负载,可以适当减小。
- 磁盘组数量:一个主机可以创建多个磁盘组(每个磁盘组包含1个缓存盘和最多7个容量盘)。是创建一个大磁盘组还是多个小磁盘组?这取决于故障域和性能隔离需求。多个磁盘组意味着一个缓存盘故障只影响该组内的容量盘,但管理上稍复杂。对于大多数场景,我倾向于每节点配置1-2个磁盘组,以平衡可靠性和管理开销。
创建过程中,如果遇到“对象可访问性已降级”或“操作超时”的警告,不要惊慌。这通常是因为VSAN正在后台初始化新磁盘,并与集群中其他节点同步数据。只要网络稳定,等待其自动完成即可。你可以通过“VSAN”->“运行状况”服务来监控重新同步的进度。
4. 磁盘格式升级与集群最终一致性
新磁盘组创建成功后,你会发现一个关键状态:磁盘格式版本。VSAN 7.0引入了新的磁盘格式(例如 version 13),新创建的磁盘组会自动采用最新格式,但为了集群内所有磁盘组格式统一,可能需要对旧磁盘组进行升级。
4.1 执行升级预检查
在“磁盘管理”中,你会看到集群的磁盘格式状态。如果显示需要升级,vCenter会提供“升级”选项。在点击升级前,务必先运行“预检查”。
预检查会评估升级操作的风险,包括:
- 集群剩余容量是否充足(升级过程需要额外开销)。
- 所有组件是否健康。
- 是否有正在进行的重删重压缩或加密等后台操作。
注意:磁盘格式升级是一个不可逆的、集群范围的操作。一旦开始,所有磁盘组都会升级到新格式。确保你已经有了最近的可恢复备份,并且安排在业务低峰期进行。
4.2 监控升级过程与故障处理
启动升级后,你可以在“监控”->“VSAN”->“正在进行的操作”中跟踪进度。这个过程是联机进行的,虚拟机不会中断,但可能会因为数据迁移导致I/O性能略有下降。
我曾遇到过一次升级失败,报错原因是其中一个老节点的某块容量盘出现了短暂的I/O错误,导致该磁盘上的组件无法迁移。解决方法如下:
- 通过VSAN运行状况服务,定位到具体的故障磁盘和主机。
- 将受影响的虚拟机迁移到其他主机(如果可能)。
- 将故障磁盘从磁盘组中移除(这会触发数据重建)。
- 待数据在其他磁盘上重建完成后,重新尝试磁盘格式升级。
- 最后更换故障磁盘,并将其作为新容量盘添加回磁盘组。
4.3 验证集群完整性
所有操作完成后,最后一步是进行全面的健康检查。
- 进入“监控”->“VSAN”->“运行状况”,运行一次完整的“VSAN运行状况测试”。确保所有测试项,特别是“网络运行状况”和“数据运行状况”都是绿色的。
- 检查“虚拟对象”视图,确认所有虚拟机对象的合规性状态为“已合规”,并且没有“可访问性”问题。
- 在“集群”->“摘要”页面,确认VSAN的“已用容量”和“总容量”已正确更新,新节点的存储资源已被计入。
至此,一个新节点就算真正融入了VSAN集群。整个流程的快慢,很大程度上取决于数据迁移和后台同步的速度,这与你集群的负载和网络带宽直接相关。对于TB级别的大量数据,后台同步花费数小时甚至更长时间是正常的,耐心监控即可。
扩容完成后,别忘了回头落实那些“收尾”工作:将新主机置于维护模式再退出,以触发一次完整的数据迁移和平衡;确认无误后,再启用锁定模式以增强安全性。最后,更新你的基础设施文档,记录下新节点的硬件信息、IP地址和磁盘组配置。这些细节在未来的排错或再次扩容时,价值连城。
