重建与修复机制
了解 vSAN 重建与修复机制
vSAN 对象与组件布局
VMware vSAN 是一种基于对象的分布式存储系统,它利用集群中每台 ESXi 主机上的物理存储设备共同构建 vSAN 存储系统。运行在 vSAN 存储上的虚拟机由多个存储对象组成,例如 VMDK 虚拟磁盘、虚拟机主命名空间、虚拟机交换分区、快照增量磁盘以及快照内存映射等都属于 vSAN 存储对象。
每个存储对象由一个或多个组件构成。组件数量主要取决于对象大小及其分配的存储策略,单个组件最大容量为 255GB。当对象超过 255GB 时,系统会将其拆分为多个组件。有关 vSAN 对象与组件布局的详细信息,请访问 storagehub.vmware.com。
图 1 所示对象是一个 700GB 的 VMDK 虚拟磁盘,我们可以观察到:
- 由于组件最大容量限制为 255GB,该对象需要拆分为 3 个组件(C1、C2、C3)才能构成完整副本。
- 该对象分配了 RAD-1(镜像)和 FTT=1 的存储策略,这意味着需要在不同主机上创建两个副本,并且需要一个见证组件作为仲裁者。
图 1:vSAN 对象与组件
vSAN 对象组件状态
组件有四种可能的状态:
- Active: 可访问
- Absent: 无错误代码检测到的不可访问(主机或网络故障,或维护模式且未进行数据疏散)
- Degraded: 检测到错误代码的不可访问。(即设备故障)在这种情况下,重建将立即开始
- Active-Stale: 组件序列号未更新(即多个主机故障,其中一个主机重新上线。
图 2 所示,客户在其主机上有几个数据对象:
- 2 个 FTT=0 的对象
- 108 个 FTT=1(镜像)的对象
图 2:vSAN 维护模式选项
当客户将主机置于维护模式并选择不疏散数据时,他未能 heed “What-if” 信息,结果由于缺席对象,FTT=0 VMs 无法容忍“故障”并直到主机返回才可访问。FTT=1 VMs 仍然可访问,但不符合其存储策略,因为它们无法容忍额外故障。
vSAN 重建过程
当 vSAN 组件离线时,它们将被标记为“缺席”并以橙色显示在 vSAN 用户界面中。vSAN 默认等待 60 分钟后才开始修复操作。vSAN 设置此延迟,因为许多问题都是瞬时的。换句话说,vSAN 期望缺席组件在合理的时间内重新上线,并且我们希望避免复制大量数据,除非这是必要的。一个例子是由于计划外重启,主机暂时离线。
图 3:组件状态
vSAN 将在 60 分钟后开始修复缺席组件以恢复冗余。例如,一个受 RAID-1 镜像存储策略保护的对象(如虚拟磁盘 VMDK 文件)将从健康副本创建第二个镜像副本。此过程可能需要相当长的时间,具体取决于需要复制的数据量。在 vSAN 6.6 之前的版本中,重建过程即使缺席副本重新上线也会继续进行。
立即修复对象
在某些情况下,主机将缺席超过 60 分钟。受影响的 VM 仍然可访问,但不符合其存储策略。更重要的是,在 FTT=1 的情况下,直到重建发生,vSAN 将无法容忍额外故障。如果这是这种情况,您可以选择立即修复对象。此选项将重新同步 vSAN 集群中可用主机上的缺席对象。
图 4:立即修复对象