
1. 项目缘起一次典型的存储告警与扩容决策最近我负责维护的一台运行VMware ESXi 7.0的Dell PowerEdge R740服务器触发了存储空间告警。这台服务器承载着几个核心业务虚拟机包括一个数据库和一个文件服务器随着业务数据量的自然增长原先规划的存储空间已经捉襟见肘。告警灯亮起的那一刻就意味着必须立刻着手进行扩容否则虚拟机随时可能因为磁盘空间耗尽而宕机影响业务连续性。这次扩容的目标很明确在不中断现有业务、不迁移虚拟机的前提下为这台R740增加新的物理磁盘并将其纳入ESXi的存储池中最终扩展数据存储Datastore的容量。听起来是个标准的运维操作但实际操作中从硬件识别、驱动兼容性到ESXi的存储策略每一步都可能藏着“坑”。尤其是对于Dell这种品牌服务器其硬件与VMware的深度集成既带来了便利也可能引入一些特有的配置环节。接下来我就把这次从硬件上架到存储可用的完整过程以及中间遇到的一些意料之外的问题和解决方案详细记录下来。2. 扩容前的关键准备工作不只是插块盘那么简单很多人认为给服务器加硬盘就是关机、插盘、开机、格式化。但在生产环境中尤其是虚拟化平台鲁莽操作的风险极高。在动手之前我花了大约半天时间进行规划和准备这些步骤至关重要能避免90%的后续麻烦。2.1 硬件兼容性与选型确认我们的R740服务器原本配置了8块900GB的SAS硬盘组成了RAID 5阵列并通过ESXi识别为一个大的数据存储。这次扩容计划新增两块1.92TB的SAS SSD。第一步不是买盘而是查兼容性列表。我登录到Dell的官方支持网站输入服务器服务标签查询了该型号R740的“硬件兼容性列表”和“VMware ESXi兼容性指南”。确认了三件事服务器背板支持确认R740的背板支持SAS SSD的混插与原有SAS HDD并且有足够的空余硬盘槽位。RAID卡支持确认服务器集成的PERC H740P RAID卡支持计划购买的SSD型号并且固件版本在推荐范围内。ESXi驱动确认当前ESXi版本7.0 U3内置的lsi_mr3驱动版本与PERC H740P的固件版本兼容。这一步最容易忽略驱动与固件不匹配可能导致新磁盘无法识别或性能异常。注意强烈建议在扩容前将服务器的BIOS、iDRAC集成式戴尔远程访问控制器、RAID卡固件都升级到官方支持该ESXi版本的最新推荐版本。我就在一次类似操作中因为RAID卡固件过旧导致新SSD无法启用高速缓存设置。2.2 业务影响评估与备份这是运维的黄金法则动存储前先备份。即使操作再简单也有小概率失败的风险。虚拟机备份通过Veeam备份软件对存储在该数据存储上的所有关键虚拟机执行了一次完整备份并验证了备份的可恢复性。配置备份通过ESXi Shell使用vim-cmd hostsvc/firmware/sync_config命令将主机配置备份到服务器同时也在vCenter Server上导出了主机的配置文件。维护窗口沟通虽然目标是热扩容但涉及硬件操作和可能的RAID配置我仍然申请了一个30分钟的业务低峰期作为维护窗口并通知了相关业务方。2.3 工具与环境准备工欲善其事必先利其器。我准备了以下工具和访问途径物理访问确保能物理接触到服务器机房或者有远程控制台如iDRAC的虚拟控制台可用。iDRAC访问记录下R740的iDRAC IP地址、用户名和密码。iDRAC是完成硬件配置的核心几乎所有硬件操作都可以通过它的Web界面完成。vCenter/ESXi CLI访问确保能从网络正常访问vCenter Server和ESXi主机的管理IP。准备好SSH客户端如PuTTY并临时启用ESXi主机的SSH服务操作完成后会关闭。文档打开了Dell R740的官方安装与服务手册中关于“安装硬盘”和“配置存储”的章节以及VMware KB关于“扩展VMFS数据存储”的文章作为操作参考。3. 硬件安装与RAID配置实战准备工作就绪后就可以开始实质性的硬件操作了。这个过程大部分在Dell iDRAC的远程控制台中完成无需接触物理服务器。3.1 物理磁盘安装与识别安全插拔在iDRAC界面中将计划安装硬盘的槽位设置为“准备移除”状态如果之前有盘待指示灯允许后物理插入两块新的1.92TB SAS SSD。服务器会自动识别新硬件。进入iDRAC配置界面通过浏览器登录iDRAC打开“虚拟控制台”。在开机自检POST过程中根据提示按下CtrlR进入PERC H740P RAID卡的配置界面。这里有个关键点也可以直接在iDRAC的“存储”菜单中进行配置这是更推荐的方式因为无需中断系统。在iDRAC中配置虚拟磁盘进入 iDRAC Web界面 -存储-控制器- 选择PERC H740P。在物理磁盘管理中能看到两块新磁盘状态为“就绪”。我的目标是创建新的RAID 1阵列为了数据冗余因此选择了“创建虚拟磁盘”。RAID级别选择我选择了RAID 1镜像。对于性能要求高、容量需求不大的场景RAID 10当然更好但考虑到成本和我们已有RAID 5阵列做容量池这次为SSD选择RAID 1在性能和可靠性上是个平衡。对于纯粹扩容的HDD很多人会选择直接做RAID 0串联或JBOD直通但这完全牺牲了冗余性需谨慎。磁盘选择勾选那两块新SSD。高级设置读策略设置为Adaptive Read-Ahead自适应预读。写策略这是重点。对于SSD我设置了Force Write-Back强制回写并启用了Write Cache写缓存。这能极大提升SSD的写入性能。但前提是你的RAID卡有电池或闪存备份单元BBU/FBU否则断电会导致数据丢失。我们的R740配有BBU所以可以安全开启。条带大小保持默认的64KB或256KB。对于VMware VMFS通常256KB是通用推荐值。确认创建后iDRAC会开始初始化并同步RAID阵列。这个过程对于两块1.92TB的盘做RAID 1可能需要数小时但可以在后台进行不影响系统运行。3.2 ESXi层面的磁盘识别RAID配置完成后新的虚拟磁盘对操作系统来说就是一块“新硬盘”。回到ESXi主机。在vSphere Client中查看登录vCenter找到该ESXi主机进入配置-存储-存储设备。稍等片刻可能需要扫描存储应该能看到一个新设备容量约为1.79TB这是2TB硬盘在RAID 1后的可用空间以及二进制与十进制换算后的结果。使用命令行确认通过SSH连接到ESXi主机使用命令ls -l /vmfs/devices/disks/查看所有磁盘设备。通常新磁盘会以naa.xxx或t10.xxx这样的标识符出现。也可以通过esxcli storage core device list命令来查看更详细的设备信息包括厂商、型号和是否处于“就绪”状态。踩坑记录一次“消失的磁盘”事件有一次扩容后在ESXi里死活找不到新盘。排查后发现问题出在RAID卡的“引导支持”设置上。在PERC配置中新创建的虚拟磁盘默认可能被标记为“可引导”。如果服务器已经有多个引导设备有时会引起混乱。解决方案是在iDRAC的RAID配置中确保只有系统所在的虚拟磁盘是“可引导”的将新数据盘的引导支持禁用。修改后重新在ESXi中执行esxcli storage core adapter rescan --all命令磁盘立即出现了。4. 在ESXi中创建或扩展数据存储识别到新磁盘后接下来就是让ESXi能使用它。有两种主要方式创建全新的数据存储或者扩展现有的数据存储。我这次选择创建新的数据存储以便于管理隔离。4.1 创建新的VMFS数据存储选择设备在vSphere Client中右键点击ESXi主机 -存储-新建数据存储。选择类型类型选择VMFS。VMFS是VMware专为虚拟化设计的高性能集群文件系统支持多主机并发访问如果有多台主机连接同一共享存储。命名与设备选择给数据存储起一个直观的名字例如SSD-Datastore-01。然后在设备列表中选择我们刚刚识别出来的那块约1.79TB的新磁盘。VMFS版本选择选择VMFS 6。VMFS 6是ESXi 6.5及以后版本支持的它相比VMFS 5有诸多改进例如支持更大的文件2TB、更高效的空间回收自动UNMAP以及更小的子块大小特别适合存放大量小文件的虚拟机。分区配置由于是整块新盘选择使用所有可用分区。块大小选择这里需要根据用途决定。VMFS支持1MB、2MB、4MB、8MB的块大小。块大小决定了单个文件的最大理论大小块大小 x 32768。对于1MB块最大文件约32TB对于8MB块最大文件约256TB。通常建议除非你确定需要存放单个大于64TB的虚拟磁盘文件VMDK否则选择默认的1MB块大小即可。更大的块大小会浪费空间特别是当存储大量小文件时。我选择了默认的1MB。完成创建确认信息后点击完成。ESXi会格式化磁盘并创建数据存储。这个过程很快几分钟内即可完成。4.2 扩展现有数据存储的深入探讨虽然我这次没采用但“扩展现有数据存储”是另一种常见需求。这里详细说明其原理和注意事项。前提条件现有数据存储必须是VMFS格式并且其所在的LUN/磁盘必须由支持扩展的存储系统提供例如SAN或者像我们这样在服务器本地RAID中通过RAID卡管理功能为原有虚拟磁盘增加了新的物理磁盘例如将RAID 5迁移到RAID 50或在线扩展RAID组。单纯在服务器上插一块新盘是无法直接扩展一个建立在旧盘上的VMFS数据存储的。操作流程如果底层存储空间确实扩大了例如存储管理员在SAN上给LUN扩容了那么在ESXi的“存储设备”中会看到该设备容量变大。此时右键点击需要扩展的数据存储选择“增加容量”然后按照向导操作即可。VMFS扩展是在线、无中断的。与LVM的类比你可以把VMFS数据存储想象成一个建立在物理设备上的逻辑卷。扩展它需要两步先扩展底层的“物理卷”即存储设备本身容量增大再扩展“逻辑卷”即VMFS文件系统。我们这次操作相当于新建了一个独立的“物理卷”和“逻辑卷”。5. 扩容后的验证、优化与收尾工作数据存储创建好工作只完成了一半。确保其稳定、高性能地投入生产还需要一系列验证和优化步骤。5.1 基础功能验证读写测试创建一个小的测试虚拟机将其磁盘放在新的数据存储上。开机在虚拟机内部使用磁盘基准测试工具如fio或CrystalDiskMark进行简单的顺序和随机读写测试确保性能符合预期特别是验证SSD的随机IOPS。存储迁移测试从旧数据存储上使用vSphere的“存储迁移”功能将一个非关键的虚拟机迁移到新的数据存储。观察迁移过程是否顺畅迁移后虚拟机能否正常启动和运行。这是检验数据存储健康度的有效方法。检查存储告警在vCenter中检查ESXi主机和新的数据存储是否有任何新的告警或错误事件。5.2 高级特性配置与优化启用空间回收UNMAP对于SSD数据存储启用UNMAP功能非常重要。它允许ESXi在虚拟机删除文件或精简置备磁盘释放空间时通知SSD底层进行块擦除从而维持SSD的写入性能和寿命。在ESXi Shell中可以为数据存储启用定期UNMAPesxcli storage vmfs unmap set -l SSD-Datastore-01 -L 200其中-L 200表示每次回收200MB的空间。也可以设置自动定期任务。多路径策略如果适用如果服务器连接了外部SAN本次是本地磁盘不涉及新数据存储可能需要配置多路径策略如MRU, Fixed, Round Robin等以实现负载均衡和故障切换。本地磁盘通常显示为“单一路径”。存储I/O控制SIOC考虑如果多个虚拟机共享该数据存储并且对I/O延迟敏感程度不同可以考虑启用存储I/O控制。它为数据存储设置I/O延迟阈值当延迟超过阈值时会自动对虚拟机的磁盘I/O进行优先级调度。对于高性能SSD数据存储如果上面运行的都是关键应用启用SIOC可以防止某个虚拟机的“疯狂”I/O影响其他邻居。5.3 文档更新与监控完善更新资产文档记录新硬盘的型号、序列号、安装槽位、所属RAID组信息、创建的数据存储名称和容量。更新服务器硬件配置图和存储架构图。配置监控告警在监控系统如Zabbix, vCenter Operations Manager中为新数据存储添加容量监控告警。我通常设置两个阈值警告80%使用率和严重90%使用率。这样可以在下次告警来临之前提前规划扩容。清理与收尾关闭之前临时开启的ESXi SSH服务。在维护窗口结束后发送通知告知业务方扩容完成。最后不要忘记验证之前备份的完整性和可恢复性这是整个操作的安全底线。6. 深度复盘从一次操作看运维体系化思维这次看似标准的磁盘扩容如果拆解开来其实是一次完整的“变更管理”迷你实践。它不仅仅是技术动作更是对运维人员规划、风险控制、标准化操作能力的检验。首先是变更的标准化。为什么要有那么繁琐的准备步骤就是为了将“人”的因素和“偶然”的风险降到最低。兼容性列表、固件版本、备份验证这些检查点构成了操作的安全护栏。我见过有同事跳过兼容性检查买了盘插上发现不认盘或者性能不达标也见过没做备份就操作结果误删了其他磁盘导致数据丢失。标准化流程不是束缚而是保护。其次是对底层原理的理解。比如RAID写策略的选择。如果你不知道“Write-Back”需要BBU保护盲目开启就等于把数据放在了断电即丢的悬崖边上。再比如VMFS块大小如果只是默认下一步可能在未来需要存放超大VMDK时遇到文件大小限制。理解“为什么”要这样选比记住“怎么做”更重要。这次选择RAID 1 for SSD就是权衡了性能、可靠性和成本后的决策而不是机械地照搬旧方案RAID 5。再者是闭环思维。操作完成不是终点。验证测试、性能优化、监控完善、文档更新这些步骤共同构成了一个闭环。新的数据存储投入生产后它的性能基线如何容量增长趋势怎样这些都需要持续观察。我习惯在新存储上线后的一周内每天查看一下I/O延迟和吞吐量建立一个初步的性能基线这对日后排查性能问题非常有帮助。最后是工具链的熟练运用。从硬件的iDRAC到虚拟化的vCenter/ESXi CLI再到外部的备份和监控系统一个高效的运维必须熟练穿梭于这一整套工具链之间。知道在哪个环节用什么工具看什么信息能极大提升排错和操作的效率。例如磁盘识别问题在vSphere Client里看不到下一步就该去CLI用esxcli命令查CLI里看到了就该去iDRAC里查RAID状态。这种排查路径的肌肉记忆来自于对系统架构的清晰认知。回过头看一次成功的扩容技术本身只占一半另一半是严谨的流程、对细节的深究和闭环的运维习惯。把这些都做到位下次无论是面对R740、R940还是其他任何设备你都能心里有底手上有谱把变更的风险牢牢控制在掌心。这大概就是运维工作从“操作工”走向“架构师”过程中必须修炼的内功吧。