十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从零构建高可用分布式存储:vSAN架构解析与实战部署指南

从零构建高可用分布式存储:vSAN架构解析与实战部署指南 1. 项目概述从单机存储到共享资源池的跨越如果你管理过几台独立的ESXi主机肯定遇到过这样的场景A主机上的虚拟机磁盘空间告急而B主机上却有大把的闲置存储。传统的做法要么是手动迁移虚拟机要么是挂载昂贵的共享存储如SAN过程繁琐且成本不菲。vSAN的出现就是为了解决这个痛点。简单来说ESXi vSAN整合多主机磁盘这个项目其核心目标就是将集群内每台物理服务器自带的本地硬盘包括SSD和HDD聚合起来形成一个统一、高性能、高可用的分布式存储资源池。这不再是简单的磁盘堆叠而是一次存储架构的革新。它让每一台ESXi主机在贡献存储的同时也能从整个池中按需分配实现了真正的“我为人人人人为我”。对于从中小型环境到大规模数据中心的运维人员、架构师而言掌握vSAN意味着能用更低的成本构建出媲美高端存储的敏捷基础设施无论是部署新的业务系统还是应对突发的存储需求都能做到心中有底手中有术。2. vSAN架构深度解析不只是磁盘聚合很多人初次接触vSAN容易把它想象成一个“网络RAID”但这远远不够。vSAN是一种深度融合在VMware超融合架构中的软件定义存储SDS解决方案。它的精妙之处在于将存储控制逻辑从专用硬件中抽离并以分布式系统的方式运行在每一台ESXi主机上。2.1 核心组件与数据流动理解vSAN首先要搞清楚几个关键角色。在一个vSAN集群中每台主机上的本地磁盘被划分为两个层次缓存层和容量层。缓存层通常由高性能的NVMe或SAS SSD担当用于存放热点数据和写入缓冲容量层则由大容量的SSD或HDD组成用于持久化存储数据。vSAN通过一种名为磁盘组Disk Group的逻辑单元来管理这些物理磁盘。一个磁盘组必须包含至少一块缓存盘和一块或多块容量盘。所有主机上的磁盘组共同构成了vSAN数据存储。数据是如何被保护和分布的呢这依赖于存储策略Storage Policy Based Management, SPBM。当你创建虚拟机磁盘时不再是选择具体的LUN或数据存储而是为其附加一个存储策略。这个策略定义了诸如“允许的故障数FTT1”、“条带宽度Stripe Width2”、“对象空间预留Thin/Thick”等属性。vSAN的底层系统——分布式对象存储——会根据策略自动将数据对象如VMDK文件分解成多个组件Component并通过网络将这些组件以冗余副本或纠删码ESA架构的形式分布到集群中不同主机、不同磁盘组的磁盘上。例如一个FTT1的策略会为数据创建两个副本分别存放在两台不同的主机上。这种机制确保了即使单台主机、单个磁盘甚至整块磁盘故障数据依然可用且可自动重建。2.2 两种架构选型OSA与ESA这是vSAN设计时必须做出的关键抉择直接决定了性能上限、硬件要求和运维模式。混合架构Original Storage Architecture, OSA这是vSAN的传统架构也是目前应用最广泛的模式。它严格依赖磁盘组的缓存分层设计。所有写入操作都先进入缓存层的SSD随后再异步降级到容量层的HDD或SSD。读取时如果是热点数据则从缓存读取否则从容量层读取。这种架构的优势是对硬件要求相对宽松可以利用现有的HDD来扩充巨大容量成本效益高。但它也受限于缓存盘的性能和容量并且写延迟会受到容量盘尤其是HDD性能的影响。注意在OSA架构中缓存盘是绝对的性能命脉和单点故障源。一块缓存盘故障会导致其所在的整个磁盘组失效。因此务必为缓存盘选择企业级高耐久度的SSD并确保硬件RAID控制器如果使用处于直通Passthrough或HBA模式。全闪存架构Express Storage Architecture, ESA这是vSAN 7.0 U1及以后版本引入的现代架构。它取消了专用的缓存层概念集群中所有磁盘都是性能一致的NVMe或SATA/SAS SSD。数据保护和性能优化不再依赖于缓存分层而是通过高效的纠删码Erasure Coding和先进的算法来实现。ESA能提供更低、更一致的延迟更高的吞吐量并且支持新的存储策略功能如去重和压缩可以同时开启。其硬件要求更高需要所有主机都配备至少25 GbE或更快的网络并且磁盘必须全是SSD。如何选择如果你的环境追求极致的性能和最低的延迟且预算允许全部采用SSD那么ESA是未来方向。如果你的环境容量需求巨大希望利用现有HDD控制成本或者网络基础设施尚未升级到25GbE以上那么成熟的OSA混合架构是更稳妥的选择。对于首次部署我通常建议从OSA开始因为它更易于理解和排错硬件生态也更成熟。3. 实战部署从零构建一个vSAN集群理论说得再多不如动手搭一遍。下面我将以一个包含三台ESXi主机的集群为例演示vSAN OSA架构的完整部署流程。假设每台主机已安装好ESXi 7.0 U3并配置了万兆网络互通每台主机有1块800GB SSD作缓存和2块4TB HDD作容量。3.1 前期准备与硬件检查部署前的准备工作至关重要许多后期诡异的问题都源于前期的不规范。网络配置vSAN对网络有严格要求。你需要为vSAN流量专门创建一个VMkernel网络适配器。确保所有主机上的vSAN VMkernel端口位于同一子网并且启用vSAN流量服务。多播早期版本或单播6.6及以后通信必须畅通。使用esxcli network ip connection list命令或通过vCenter的“网络健康检查”来验证主机间网络延迟应1ms和带宽。磁盘格式与模式这是最容易出错的一步。用于vSAN的磁盘必须处于**“未配置”状态**并且由ESXi直接管理。如果服务器有硬件RAID卡务必将其设置为JBOD模式或直通Passthrough模式让ESXi看到每一块物理磁盘而不是一个RAID虚拟卷。在ESXi主机的存储设备列表中确认磁盘显示为“本地设备”或“SSD/HDD”而不是“VMFS”或“已分区”。vCenter ServervSAN必须通过vCenter Server进行集中管理和配置。确保你有一个正常运行的vCenter Server实例可以是嵌入式或外部部署的PSC并且所有ESXi主机都已加入其数据中心。3.2 创建集群并启用vSAN登录vSphere Client进入你的数据中心。右键点击数据中心选择“新建集群”。为集群命名如VSAN-Cluster-Prod务必勾选“打开vSAN”选项。其他如DRS分布式资源调度和HA高可用性也建议一并启用它们与vSAN能完美协同。将准备好的三台ESXi主机拖拽或添加到这个新建的集群中。现在进入集群的“配置”-“vSAN”-“服务”页面。点击“配置”按钮启动配置向导。第一步选择架构。我们选择“混合”。第二步声明磁盘。这是核心步骤。系统会自动扫描集群中所有主机上可用的磁盘。你需要为每台主机手动或自动将磁盘分配到缓存层和容量层。手动声明对于生产环境我强烈建议手动声明。在主机列表下展开每台主机你会看到可用的磁盘。将那块800GB SSD拖拽到“缓存层”区域将两块4TB HDD拖拽到“容量层”区域。这个操作需要逐台主机进行。自动声明适用于测试或非常标准的硬件环境但生产环境慎用。第三步配置网络。确认每台主机用于vSAN流量的VMkernel适配器选择正确。第四步确认配置。检查摘要特别是磁盘分配情况。确认无误后点击“完成”。配置过程会自动进行包括格式化磁盘、创建磁盘组、初始化vSAN数据存储。你可以在“监控”-“vSAN”-“虚拟对象”中观察后台数据同步的进度。3.3 配置存储策略与创建虚拟机vSAN数据存储创建好后你会发现它和普通数据存储外观无异但内涵完全不同。接下来就是应用存储策略的时刻。创建存储策略进入“策略和配置文件”-“虚拟机存储策略”。点击“创建”。名称VSAN-Policy-Gold-RAID1规则集1在“vSAN”下设置“允许的故障数”为1这意味着需要至少3台主机保存2个数据副本。规则集1设置“每个对象的磁盘带数”为1默认即可如需更高性能可设为2但会占用更多容量。规则集1设置“对象空间预留”为0%精简置备或100%厚置备。点击“确定”保存策略。部署虚拟机像往常一样创建新虚拟机或迁移现有虚拟机。当进行到“选择存储”步骤时选择我们创建的vSAN数据存储。关键的一步来了在“虚拟机存储策略”下拉菜单中选择我们刚刚创建的VSAN-Policy-Gold-RAID1。这意味着这个虚拟机的所有磁盘都将遵循FTT1的策略在集群中自动保存两份副本。部署完成后你可以右键点击虚拟机选择“策略和配置文件”-“管理虚拟机存储策略”来验证其磁盘对象是否合规。也可以在vSAN监控界面看到这个虚拟机的VMDK对象被分解成多个组件分布在不同主机的磁盘上。4. 日常运维、扩容与故障处理实录vSAN上线只是开始日常运维才是保证其稳定运行的关键。这里分享几个高频操作和踩过的坑。4.1 容量管理与性能监控vSAN是一个“用空间换可靠性和性能”的系统因此容量规划至关重要。监控仪表板经常查看“监控”-“vSAN”-“容量”视图。这里会清晰展示已用容量、可用容量、闪存读/写缓存命中率、去重与压缩节省空间等。务必关注“已用容量”不要超过“已用容量阈值”通常为80%否则会影响性能和重建操作。性能监控使用“性能”选项卡关注“每台主机延迟”、“吞吐量”和“IOPS”。如果发现某台主机延迟异常高可能是磁盘故障、网络问题或该主机负载过重的信号。扩容操作当容量不足时扩容非常灵活。你可以向现有磁盘组添加容量盘如果主机有空的磁盘槽位可以直接将新磁盘标记为“容量”角色并添加到现有磁盘组。操作在线进行对业务无影响。为主机添加新的磁盘组如果主机有更多SSD和HDD可以创建第二个、第三个磁盘组来增加该主机的容量和性能贡献。向集群添加新主机这是最彻底的扩容方式不仅能增加容量和性能还能提高集群的冗余度。新主机加入集群后在vSAN配置中声明其磁盘即可。4.2 常见故障场景与排查心法vSAN的自动化程度高但出了问题排查思路必须清晰。场景一vSAN集群显示“降级”或“不存在”状态。这是最常见的问题。首先去“监控”-“vSAN”-“物理磁盘”视图检查是否有磁盘显示为“异常”或“脱机”。如果是单个容量盘故障vSAN会自动利用其他副本重建数据到健康磁盘上。此时集群状态为“降级但合规”。你需要做的是尽快物理更换故障磁盘。更换后新磁盘会被自动识别并重新加入到磁盘组开始重建数据。如果是缓存盘故障这是严重事件在OSA架构下会导致整个磁盘组失效。集群状态会严重告警。你必须立即更换缓存盘。更换后需要手动重新创建磁盘组并等待vSAN从其他副本重建该磁盘组上的所有数据。因此缓存盘的质量和监控至关重要。场景二虚拟机存储策略“不合规”。这意味着vSAN无法满足你为虚拟机设定的策略要求。最常见的原因是主机或磁盘故障导致冗余度不足。例如一个FTT1的策略需要2个副本但如果集群中只剩2台主机健康它就无法将两个副本放在不同的故障域主机上从而导致不合规。解决方法要么是修复故障主机要么是临时修改虚拟机存储策略降低FTT待主机恢复后再改回来。场景三性能突然下降。检查网络使用ping和vmkping命令检查主机间vSAN网络延迟和丢包。网络是vSAN的血液。检查磁盘负载在ESXi命令行使用esxtop按d进入磁盘视图观察DAVG/cmd设备延迟和KAVG/cmd内核延迟是否过高。高延迟可能指向磁盘瓶颈。检查去重与压缩如果开启了去重和压缩在数据重构或高负载时可能会消耗大量CPU资源。评估是否需要在业务高峰时段暂时关闭。4.3 磁盘更换实操步骤以更换故障容量盘为例确认故障在vCenter中确认磁盘状态为“异常”或“脱机”且vSAN正在其他组件上重建数据。物理更换将服务器下电或在支持热插拔的情况下直接操作拔掉故障硬盘插入同型号或vSAN兼容性列表中的新硬盘。标记磁盘服务器上电后在ESXi存储设备中新磁盘可能显示为“未格式化”或“SSD/HDD”。不要手动格式化在vSAN中声明进入集群的vSAN配置页面“磁盘管理”选项卡。找到对应主机你应该能看到新磁盘处于“符合磁盘组资格”状态。将其拖拽到原先故障盘所属的磁盘组的“容量”区域。自动重建vSAN会自动将新磁盘纳入磁盘组并开始将之前重建的临时数据可能在其他磁盘的预留空间迁移回新磁盘最终恢复完全冗余状态。整个过程在后台静默完成你可以在“正在重新同步的组件”中观察进度。5. 高级优化与规划建议当基本功能稳定后可以考虑一些优化措施来提升效率或应对更复杂的场景。利用存储策略实现服务分级不要只用一个存储策略。你可以创建多个策略例如VSAN-Policy-Platinum-RAID1FTT2需要至少5台主机3个副本用于核心数据库。VSAN-Policy-Silver-RAID5FTT1但使用RAID-5/6纠删码ESA或OSA 7.0 U1后支持在保证冗余的同时提供更高的存储利用率用于一般应用服务器。VSAN-Policy-BronzeFTT0无冗余仅用于绝对非关键的测试或临时环境。 在部署虚拟机时按需选择实现精细化的成本与性能控制。延伸集群Stretched Cluster与双活对于有容灾需求的场景vSAN支持配置延伸集群。将主机分布在两个机房站点并配置一个独立的见证主机通常放在第三个站点或云端。这样虚拟机可以跨站点运行实现站点级故障切换。这需要精心的网络设计站点间链路要求高带宽、低延迟和更复杂的故障域配置。与备份方案的集成vSAN本身不是备份方案。务必使用专业的备份软件如Veeam, Commvault等对vSAN上的虚拟机进行定期备份。确保你的备份软件版本支持vSAN并且备份代理或存储库不要部署在vSAN数据存储本身以免形成循环依赖。最后我个人最深刻的一个体会是vSAN将存储的复杂性从采购和硬件配置阶段转移到了软件策略设计和日常监控阶段。它给予了你前所未有的灵活性但也要求你更深入地理解数据分布、冗余策略和性能特征。每一次存储策略的调整都像在下一盘棋需要通盘考虑容量、性能和可靠性。多花时间在测试环境中模拟各种故障熟悉监控告警你的vSAN之旅就会从容许多。
返回列表