Solaris Volume Manager 管理指南

替换磁盘

本节介绍如何在 Solaris Volume Manager 环境中替换磁盘。


注意 – 注意 –

如果出现故障的磁盘上有软分区,或者在出现故障的磁盘上构建的卷上有软分区,则必须将新磁盘放在相同的物理位置中。而且,还要将相同的 cntndn 编号用作要替换的磁盘。


Procedure如何替换出现故障的磁盘

  1. 通过检查 /var/adm/messages 文件以及 metastat 命令的输出,确定要替换的出现故障的磁盘。

  2. 查找可能放在出现故障的磁盘上的所有状态数据库副本。

    可使用 metadb 命令查找这些副本。

    metadb 命令会报告出现故障的磁盘上状态数据库副本的错误。在此示例中,c0t1d0 是有问题的设备。


    # metadb
    
       flags       first blk        block count
    
      a m     u        16               1034            /dev/dsk/c0t0d0s4
    
      a       u        1050             1034            /dev/dsk/c0t0d0s4
    
      a       u        2084             1034            /dev/dsk/c0t0d0s4
    
      W   pc luo       16               1034            /dev/dsk/c0t1d0s4
    
      W   pc luo       1050             1034            /dev/dsk/c0t1d0s4
    
      W   pc luo       2084             1034            /dev/dsk/c0t1d0s4

    输出显示,在每个本地磁盘(c0t0d0c0t1d0)的片 4 上都有三个状态数据库副本。c0t1d0s4 片的标志字段中的 W 指示设备有写入错误。c0t0d0s4 片上的三个副本仍处于良好状态。

  3. 记录状态数据库副本所在片的名称以及状态数据库副本的数量。然后删除状态数据库副本。

    状态数据库副本的数量可通过计算某个片在 metadb 命令输出中出现的次数来获得。在此示例中,删除了 c0t1d0s4 上存在的三个状态数据库副本。


    # metadb -d c0t1d0s4
    

    注意 – 注意 –

    在删除有问题的状态数据库副本之后,如果只剩下三个或更少的副本,请先添加更多的状态数据库副本,然后再继续执行操作。这样有助于确保配置信息保持不变。


  4. 查找和删除出现故障的磁盘上的所有热备件。

    可使用 metastat 命令来查找热备件。在此示例中,热备用池 hsp000 包括 c0t1d0s6,该片随后将从热备用池中删除。


    # metahs -d hsp000 c0t1d0s6
    
    hsp000: Hotspare is deleted
  5. 替换出现故障的磁盘。

    此步骤可能需要使用 cfgadm 命令、luxadm 命令或其他适用于您的硬件和环境的命令。在执行此步骤时,请确保按照硬件文档中的过程正确地处理该磁盘的 Solaris 状态。

  6. 对新磁盘重新分区。

    使用 format 命令或 fmthard 命令,用与出现故障的磁盘相同的片信息对新磁盘进行分区。如果拥有出现故障的磁盘的 prtvtoc 输出,则可以用 fmthard -s /tmp/failed-disk-prtvtoc-output 命令格式化替换磁盘。

  7. 如果删除了状态数据库副本,请向相应的片中重新添加相同的编号。

    此示例中使用的是 /dev/dsk/c0t1d0s4


    # metadb -a -c 3 c0t1d0s4
    
  8. 如果磁盘上的所有片都是 RAID-5 卷或 RAID-0 卷的组件,而这些卷又是 RAID-1 卷的子镜像,请针对每个片运行 metareplace -e 命令。

    此示例中使用的是 /dev/dsk/c0t1d0s4 和镜像 d10


    # metareplace -e d10 c0t1d0s4
    
  9. 如果直接在替换磁盘的片上构建软分区,请针对每个包含软分区的片运行 metarecover -m -p 命令。此命令会在磁盘上重新生成分区扩展表头。

    在此示例中,/dev/dsk/c0t1d0s4 需要在磁盘上重新生成软分区标记。系统会扫描该片并基于状态数据库副本中的信息重新应用这些标记。


    # metarecover c0t1d0s4 -m -p
    
  10. 如果磁盘上的所有软分区都是 RAID-5 卷或 RAID-0 卷的组件,而这些卷又是 RAID-1 卷的子镜像,请针对每个片运行 metareplace -e 命令。

    此示例中使用的是 /dev/dsk/c0t1d0s4 和镜像 d10


    # metareplace -e d10 c0t1d0s4
    
  11. 如果在 RAID-0 卷上构建了软分区,请针对每个 RAID-0 卷运行 metarecover 命令。

    在此示例中,在 RAID-0 卷 d17 上构建了软分区。


    # metarecover d17 -m -p
    
  12. 替换已删除的热备件,然后将它们添加到适当的热备用池中。

    在此示例中,热备用池 hsp000 包括 c0t1d0s6,该片随后添加到该热备用池中。


    # metahs -a hsp000 c0t1d0s6hsp000: Hotspare is added
  13. 如果软分区或非冗余卷受到磁盘故障的影响,请从备份中恢复数据。如果只有冗余卷受到影响,请对数据进行验证。

    检查所有卷上的用户和应用程序数据。可能必须运行应用程序级一致性检查器或者使用某种其他方法来检查数据。