Solaris Volume Manager 管理指南

响应 RAID-1 卷组件的故障

Procedure如何替换子镜像中的片

开始之前

请阅读在 RAID-1 和 RAID-5 卷中替换和启用组件的概述创建和维护 RAID-1 卷

  1. 确保您具有超级用户权限,并且拥有所有数据的最新备份。

  2. 使用 metastat 命令查看 RAID-1 卷和关联子镜像的状态。


    # metastat mirror-name
    
  3. 使用以下方法之一来替换子镜像中的片。

    • 从 Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。

    • 使用以下格式的 metareplace 命令替换子镜像中的片:


      # metareplace mirror-name component-name
      
      • mirror-name 是要创建的卷的名称。

      • component-name 指定要替换的组件的名称。

      mirror-name

      指定要创建的卷的名称

      component-name

      指定要替换的组件的名称

      有关更多信息,请参见以下示例和 metainit(1M) 手册页。


示例 11–18 替换镜像中出现故障的片

以下示例说明在未将系统配置为使用热备用池来自动替换出现故障的磁盘时,如何替换出现故障的片。有关使用热备用池的更多信息,请参见第 16 章,热备用池(概述)


# metastat d6

d6: Mirror

    Submirror 0: d16

      State: Okay        

    Submirror 1: d26

      State: Needs maintenance

...

d26: Submirror of d6

    State: Needs maintenance

    Invoke: metareplace d6 c0t2d0s2 <new device>

...

# metareplace d6 c0t2d0s2 c0t2d2s2

d6: device c0t2d0s2 is replaced with c0t2d2s2

metastat 命令用于确认镜像 d6 是否包含一个子镜像 d26,并且该镜像中的一个片处于 “Needs maintenance(需要维护)” 状态。metareplace 命令会将在 metastat 输出的 "Invoke" 行中指定的片替换为系统中另一个可用的片。系统会确认该片是否已替换,并开始重新同步子镜像。


Procedure如何替换子镜像

开始之前

请阅读在 RAID-1 和 RAID-5 卷中替换和启用组件的概述创建和维护 RAID-1 卷

  1. 确保您具有超级用户权限,并且拥有所有数据的最新备份。

  2. 使用 metastat 命令查看 RAID-1 卷和关联子镜像的状态。


    # metastat mirror-name
    
  3. 使用以下方法之一来替换子镜像。

    • 从 Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。

    • 使用 metadetachmetaclearmetatinitmetattach 命令替换整个子镜像。

      1. 使用 metadetach 命令从镜像中拆离出故障的子镜像。


        # metadetach -f mirror-name submirror
        
        -f

        强制进行拆离

        mirror-name

        指定镜像的名称

        submirror

        指定要拆离的子镜像

      2. 使用 metaclear 命令删除子镜像。


        # metaclear -f submirror
        
        -f

        强制删除子镜像

        submirror

        指定要删除的子镜像

      3. 使用 metainit 命令创建新的子镜像。


        # metainit volume-name number-of-stripes components-per-stripe component-name
        
        volume-name

        指定要创建的卷的名称。有关对卷进行命名的信息,请参见卷名称

        number-of-stripes

        指定要创建的条带的数目。

        components-per-stripe

        指定每个条带应包含的组件的数目。

        component-names

        指定所使用的组件的名称。本示例使用根片 c0t0d0s0

      4. 使用 metattach 命令附加新的子镜像。


        # metattach mirror submirror
        

示例 11–19 替换镜像中的子镜像

以下示例说明如何替换活动镜像中的子镜像。


# metastat d20

d20: Mirror

    Submirror 0: d21

      State: Okay        

    Submirror 1: d22

      State: Needs maintenance

...

# metadetach -f d20 d22

d20: submirror d22 is detached

# metaclear -f d22

d22: Concat/Stripe is cleared

# metainit d22 2 1 c1t0d0s2 1 c1t0d1s2

d22: Concat/Stripe is setup

# metattach d20 d22

d20: components are attached

在本示例中,metastat 命令用于确认双向镜像 d20 是否包含处于 “Needs maintenance(需要维护)” 状态的子镜像 d22。在这种情况下,需要清除整个子镜像并重新创建。metadetach 命令通过使用 -f 选项来从镜像中拆离出故障的子镜像,该选项可强制进行拆离。metaclear 命令会清除子镜像。metainit 命令会使用新片重新创建 d22 子镜像。最后,metattach 命令会附加重新生成的子镜像。系统将开始自动重新同步镜像。

新卷 d22 的具体配置取决于要替换的组件。此处所示的串联足以替换条带。但是,使用串联来替换条带并不理想,因为它会影响性能。

如果是单向镜像,则会暂时失去数据冗余功能。