4. 聚合与磁盘故障诊断
在 ONTAP 中,聚合(Aggregate)是承载卷的物理存储池,它由若干磁盘组成,磁盘先被组织成 RAID 组,再由 RAID 组构成聚合。磁盘故障、RAID 组降级、热备盘接管、重建(reconstruction)这一连串事件,是存储运维中最常见也最需要快速判断的故障链。理解这条链路上每个环节的状态与参数,才能在故障发生时准确判断影响范围并选择正确的恢复动作。
磁盘类型与归属关系
ONTAP 中磁盘按用途分为几类:数据盘(data disk)用于承载用户数据;校验盘(parity disk)在 RAID-DP 中提供双校验;热备盘(spare disk)不参与任何 RAID 组,处于待命状态;分区盘(partitioned disk)被划分为多个分区,分别承担数据、校验或备盘角色;此外还有根盘(root disk)、缓存盘(Flash Cache/Flash Pool SSD)等。判断一块盘的角色,最直接的方式是查看其归属的聚合与 RAID 组。
cluster1::> storage disk show -disk 1.0.5
Disk: 1.0.5
Container Type: aggregate
Owner: cluster1-01
Aggregate: aggr1
RAID Group: rg0/1
Disk Type: SAS
Position: 1.0.5
...
Spare: false
输出中 Aggregate 与 RAID Group 表明该盘已加入 aggr1 的 rg0/1;Spare: false 说明它不是备盘。若一块盘显示 Container Type: spare,则它处于备盘池中,可被任意同类型聚合接管。
RAID 组与聚合降级
RAID-DP 组通常由 16~28 块盘组成,其中 2 块为校验盘。当组内一块盘故障时,RAID 组进入降级(degraded)状态,但数据仍可读写;若第二块盘再故障,则 RAID 组失效,聚合可能离线。因此降级状态下的首要任务是尽快让热备盘接管并完成重建。
查看聚合与 RAID 组状态:
cluster1::> storage aggregate show -aggregate aggr1
Aggregate State #Vols Nodes RAID Status
aggr1 online 12 2 raid_dp, degraded
cluster1::> storage raid-group show -aggregate aggr1
Aggregate RAID Group State Disks Reconstruction
aggr1 rg0/1 degraded 22 -
raid_dp, degraded 表示聚合在线但已降级;Reconstruction 列为空说明尚未开始重建。此时应检查是否有可用备盘:
cluster1::> storage disk show -spare
Disk Type Owner Container Type Position
1.0.30 SAS cluster1-01 spare 1.0.30
1.0.31 SAS cluster1-01 spare 1.0.31
热备盘接管与重建过程
ONTAP 默认启用自动备盘接管(autoassign)。当 RAID 组降级后,系统会自动从同类型备盘中选取一块,将其加入故障盘所在的 RAID 组,并启动重建。重建是把故障盘上原有的数据通过校验计算重新生成并写入新盘的过程。重建期间聚合仍处于降级状态,性能会有所下降,且此时若再坏一块盘,风险极高。
监控重建进度:
cluster1::> storage aggregate show -aggregate aggr1 -fields reconstruction
aggregate reconstruction
aggr1 45%
cluster1::> storage disk show -disk 1.0.30 -fields reconstruction
disk reconstruction
1.0.30 45%
重建完成后,RAID 组恢复为 normal,备盘正式成为数据盘,备盘池减少一块。若备盘不足,重建不会自动开始,聚合将长期停留在降级状态,这是需要人工介入的关键点。
排查与恢复的实际操作
当收到聚合降级告警时,建议按以下顺序排查。第一步,确认降级范围:
cluster1::> storage aggregate show -state degraded
Aggregate State #Vols Nodes RAID Status
aggr1 online 12 2 raid_dp, degraded
第二步,定位故障盘与 RAID 组:
cluster1::> storage disk show -broken
Disk Type Owner Container Type Aggregate Position
1.0.5 SAS cluster1-01 aggregate aggr1 1.0.5
-broken 列出已失效磁盘。第三步,检查备盘是否充足:storage disk show -spare。若备盘存在但未自动接管,可手动触发:
cluster1::> storage disk assign -disk 1.0.30 -owner cluster1-01
cluster1::> storage aggregate add-disks -aggregate aggr1 -disk 1.0.30
第四步,监控重建进度直至完成。重建速率受磁盘类型、负载和聚合繁忙程度影响,一块 4TB SAS 盘在中等负载下通常需要数小时。重建期间应避免对聚合执行大规模写入或卷迁移,以免延长重建时间、增加二次故障风险。
常见判断依据与恢复动作
| 现象 | 判断 | 恢复动作 |
|---|---|---|
| 聚合 degraded,有 spare | 自动接管应已触发 | 监控 reconstruction 百分比 |
| 聚合 degraded,无 spare | 备盘池耗尽 | 更换故障盘或释放备盘,手动 assign |
| reconstruction 长时间 0% | 重建未启动或受阻 | 检查磁盘健康、聚合负载、节点状态 |
| RAID 组状态 failed | 校验盘不足,数据风险 | 立即联系支持,评估数据可恢复性 |
| 重建完成后 spare 减少 | 备盘已转正 | 补充备盘,恢复冗余 |
最后需要强调的是,热备盘的数量与分布直接决定降级后能否自动恢复。建议每个节点、每种磁盘类型至少保留 1~2 块备盘,并定期用 storage disk show -spare 核查。对于 RAID-DP 组,重建完成并不等于风险解除——备盘池被消耗后,下一次故障可能无盘可接。因此,把“补充备盘”作为恢复流程的收尾动作,才是完整的闭环。