跳过导航链接
退出打印视图
| Oracle Solaris Cluster 系统管理指南 Oracle Solaris Cluster 3.3 3/13 (简体中文)

搜索范围:

- 本文档
- 整个文档库

## 恢复群集文件

`ufsrestore`(1M) 命令可将文件从使用 `ufsdump`(1M) 命令创建的备份复制到与当前工作目录相关的磁盘中。您可以使用 `ufsrestore` 基于 0 级转储和随后的增量转储重新加载整个文件系统分层结构，也可以从任意转储磁带恢复一个或多个单个文件。如果以超级用户身份或承担等效角色运行 `ufsrestore`，则文件的原始所有者、最后修改时间和模式（权限）将随文件一起恢复。

在开始恢复文件或文件系统前，您需要了解以下信息。

- 需要哪些磁带

- 正在其上恢复文件系统的原始设备名称

- 正在使用的磁带驱动器类型

- 磁带驱动器的设备名称（本地或远程）

- 所有故障磁盘的分区方案，由于分区和文件系统必须完全复制到替换磁盘上

表 12-2 任务列表：恢复群集文件

任务 | 指导
--- | ---
对于 Solaris Volume Manager，以交互方式恢复文件 | 如何以交互方式恢复单个文件 (Solaris Volume Manager)
对于 Solaris Volume Manager，恢复根 (`/`) 文件系统 | 如何恢复根 (`/`) 文件系统 (Solaris Volume Manager)
| 如何恢复 Solaris Volume Manager 卷中的根 (`/`) 文件系统

## 如何以交互方式恢复单个文件 (Solaris Volume Manager)

可使用以下过程恢复一个或多个单个文件。执行恢复过程之前，请确保群集正在无故障运行。

1. 在要恢复的群集节点上，成为超级用户或承担可提供 `solaris.cluster.admin` RBAC 授权的角色。
2. 停止正在使用要恢复的文件的所有数据服务。

       # clresourcegroup offline resource-group

3. 恢复文件。

       # ufsrestore

## 如何恢复根 (`/`) 文件系统 (Solaris Volume Manager)

使用此过程可将根 (`/`) 文件系统恢复到新磁盘（例如，在更换损坏的根磁盘之后）。不应引导正在恢复的节点。执行恢复过程之前，请确保群集正在无故障运行。

注 - 由于新磁盘的分区格式必须与故障磁盘的分区格式相同，所以在开始此过程之前，请先确定分区方案，然后再相应地重新创建文件系统。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有短形式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 在对附加了待恢复节点的磁盘集具有访问权限的群集节点上，成为超级用户或担任可 `solaris.cluster.modify` RBAC 授权的角色。

   使用除要恢复的节点以外的其他节点。

2. 将要恢复的节点的主机名从所有元集中删除。

   从元集中除正要删除的节点以外的一个节点上运行此命令。由于要恢复的节点处于脱机状态，因此系统会显示 `RPC: Rpcbind failure - RPC: Timed out` 错误。忽略此错误并继续执行下一步。

       # metaset -s setname -f -d -h nodelist

   `-s`setname

     指定磁盘集名称。

   `-f`

     从磁盘集中删除最后一个主机。

   `-d`

     从磁盘集删除。

   `-h` nodelist

     指定要从磁盘集删除的节点的名称。

3. 恢复根 (`/`) 和 `/usr` 文件系统。

   要恢复根和 `/usr` 文件系统，请按照《System Administration Guide: Devices and File Systems》中的"Restoring UFS Files and File Systems"中的过程进行操作。忽略 Oracle Solaris OS 过程中的步骤重新引导系统。

   注 - 请确保创建 `/global/.devices/node@nodeid` 文件系统。

4. 在多用户模式下重新引导节点。

       # reboot

5. 替换设备 ID。

       # cldevice repair rootdisk

6. 使用 `metadb`(1M) 命令可重新创建状态数据库副本。

       # metadb -c copies -af raw-disk-device

   `-c` copies

     指定要创建的复本数。

   `-f` raw-disk-device

     要在其上创建复本的原始磁盘设备。

   -a

     添加副本。

7. 从一个群集节点（非恢复的节点）上将恢复后的节点添加到所有磁盘集。

       phys-schost-2# metaset -s setname -a -h nodelist

   `-a`

     创建主机并将其添加到磁盘集中。

   已将节点重新引导到群集模式下。群集已经就绪。

示例 12-5 恢复根 (`/`) 文件系统 (Solaris Volume Manager)

下面的示例显示了将根 (`/`) 文件系统从磁带设备 `/dev/rmt/0` 恢复到节点 `phys-schost-1` 的过程。从群集中的另一节点 `phys-schost-2` 运行 `metaset` 命令，以便从磁盘集 `schost-1` 中删除节点 `phys-schost-1`，然后再将其重新添加到该磁盘集中。所有其他命令都是从 `phys-schost-1` 运行的。系统在 `/dev/rdsk/c0t0d0s0` 上创建了一个新的引导块，在 `/dev/rdsk/c0t0d0s4` 上重新创建了三个状态数据库副本。

    [Become superuser or assume a  role that provides solaris.cluster.modify RBAC authorization on a cluster node
        other than the node to be restored.]
    [Remove the node from the metaset:]
    phys-schost-2# metaset -s schost-1 -f -d -h phys-schost-1
    [Replace the failed disk and boot the node:]
    Restore the root (/) and /usr file system using the procedure in the Solaris system
        administration documentation
    [Reboot:]
    # reboot
    [Replace the disk ID:]
    # cldevice repair /dev/dsk/c0t0d0
    [Re-create state database replicas:]
    # metadb -c 3 -af /dev/rdsk/c0t0d0s4
    [Add the node back to the metaset:]
    phys-schost-2# metaset -s schost-1 -a -h phys-schost-1

## 如何恢复 Solaris Volume Manager 卷中的根 (`/`) 文件系统

使用此过程可恢复在执行备份时位于 Solaris Volume Manager 卷中的根 (`/`) 文件系统。可在诸如根磁盘损坏并且已替换为新磁盘等情况下执行此过程。不应引导正在恢复的节点。执行恢复过程之前，请确保群集正在无故障运行。

注 - 由于新磁盘的分区格式必须与故障磁盘的分区格式相同，所以在开始此过程之前，请先确定分区方案，然后再相应地重新创建文件系统。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有短形式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 在要恢复的节点之外的其他可访问磁盘集的群集节点上，成为超级用户或承担可提供 `solaris.cluster.modifiy` RBAC 授权的角色。

   使用除要恢复的节点以外的其他节点。

2. 将要恢复的节点的主机名从连接的所有磁盘集中删除。对每个磁盘集执行一次下列命令。

       # metaset -s setname -d -h hostname

   `-s` setname

     指定元集名称。

   `-f`

     从磁盘集中删除最后一个主机。

   `-d`

     从元集中删除。

   `-h` nodelist

     指定要从元集删除的节点的名称。

   `-h` hostname

     指定主机的名称。

   `-m` mediator_host_list

     指定要添加到磁盘集或要从中删除的中介主机的名称。

3. 如果节点为双串中介主机，则删除此中介。对连接节点的每个磁盘集执行一次下列命令。

       # metaset -ssetname-d -m hostname

4. 更换要恢复的根 (`/`) 文件系统所在节点上的故障磁盘。

   请参阅服务器随附文档中的磁盘更换过程。

5. 引导要恢复的节点。修复过的节点将从 CD-ROM 引导至单用户模式，所以 Solaris Volume Manager 不在该节点上运行。

   - 如果使用的是 Oracle Solaris OS CD，请注意以下方面：

     - SPARC： Type:

           ok boot cdrom -s

     - x86： 将 CD 插入到系统的 CD 驱动器中，将系统关闭然后再开启来引导系统。在 "Current Boot Parameters"（当前引导参数）屏幕中，键入 `b` 或 `i`。

                                <<< Current Boot Parameters >>>
           Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@
           7,1/sd@0,0:a
           Boot args:

           Type b [file-name] [boot-flags] <ENTER> to boot with options
           or   i <ENTER>                          to enter boot interpreter
           or   <ENTER>                            to boot with defaults

                            <<< timeout in 5 seconds >>>
           Select (b)oot or (i)nterpreter: b -s

   - 如果使用的是 Solaris JumpStart 服务器，请注意以下方面：

     - SPARC： Type:

           ok boot net -s

     - x86： 将 CD 插入到系统的 CD 驱动器中，将系统关闭然后再开启来引导系统。在 "Current Boot Parameters"（当前引导参数）屏幕中，键入 `b` 或 `i`。

                                <<< Current Boot Parameters >>>
           Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@
           7,1/sd@0,0:a
           Boot args:

           Type b [file-name] [boot-flags] <ENTER> to boot with options
           or   i <ENTER>                          to enter boot interpreter
           or   <ENTER>                            to boot with defaults

                            <<< timeout in 5 seconds >>>
           Select (b)oot or (i)nterpreter: b -s

6. 使用 `format` 命令在根磁盘上创建所有分区和交换空间。

   重新创建故障磁盘上的原始分区方案。

7. 使用 `newfs` 命令根据需要创建根 (`/`) 文件系统和其他文件系统。

   重新创建故障磁盘上的原始文件系统。

   注 - 请确保创建 `/global/.devices/node@nodeid` 文件系统。

8. 在临时挂载点上挂载根 (`/`) 文件系统。

       # mount device temp-mountpoint

9. 使用以下命令恢复根 (`/`) 文件系统。

       # cd temp-mountpoint
       # ufsrestore rvf dump-device
       # rm restoresymtable

10. 在新磁盘上安装新引导块。

        # /usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk
        raw-disk-device

11. 删除 `/temp-mountpoint/etc/system` 文件中 MDD 根信息的行。

        * Begin MDD root info (do not edit)
        forceload: misc/md_trans
        forceload: misc/md_raid
        forceload: misc/md_mirror
        forceload: misc/md_hotspares
        forceload: misc/md_stripe
        forceload: drv/pcipsy
        forceload: drv/glm
        forceload: drv/sd
        rootdev:/pseudo/md@0:0,10,blk
        * End MDD root info (do not edit)

12. 编辑 `/temp-mountpoint/etc/vfstab` 文件，为属于元设备或卷的根磁盘上的每个文件系统，将 root 条目从 Solaris Volume Manager 卷更改为相应的常见分片。

        Example:
        Change from—
        /dev/md/dsk/d10   /dev/md/rdsk/d10    /      ufs   1     no       -

        Change to—
        /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /      ufs   1     no       -

13. 卸载临时文件系统，并检查原始磁盘设备。

        # cd /
        # umount temp-mountpoint
        # fsck raw-disk-device

14. 在多用户模式下重新引导节点。

        # reboot

15. 替换设备 ID。

        # cldevice repair rootdisk

16. 使用 `metadb` 命令可重新创建状态数据库副本。

        # metadb -c copies -af raw-disk-device

    `-c` copies

      指定要创建的复本数。

    `-af` raw-disk-device

      在指定的原始磁盘设备上创建初始状态数据库副本。

17. 从一个群集节点（非恢复的节点）上将恢复后的节点添加到所有磁盘集。

        phys-schost-2# metaset -s setname -a -h nodelist

    `-a`

      添加（创建）元集。

    按文档说明为根 (`/`) 设置卷/镜像。

    已将节点重新引导到群集模式下。

18. 如果节点为双串中介主机，则再次添加此中介。

        phys-schost-2# metaset -s setname -a -m hostname

示例 12-6 恢复 Solaris Volume Manager 卷中的根 (`/`) 文件系统

下面的示例显示了将根 (`/`) 文件系统从磁带设备 `/dev/rmt/0` 恢复到节点 `phys-schost-1` 的过程。从群集中的另一节点 `phys-schost-2` 运行 `metaset` 命令，以便从元集 `schost-1` 中删除节点 `phys-schost-1`，然后再将其重新添加到该元集中。所有其他命令都是从 `phys-schost-1` 运行的。系统在 `/dev/rdsk/c0t0d0s0` 上创建了一个新的引导块，在 `/dev/rdsk/c0t0d0s4` 上重新创建了三个状态数据库副本。

    [Become superuser or assume a role that provides solaris.cluster.modify RBAC
       authorization on a cluster node with access to the metaset, other than the node to be restored.]
    [Remove the node from the metaset:]
    phys-schost-2# metaset -s schost-1 -d -h phys-schost-1
    [Replace the failed disk and boot the node:]

从 Oracle Solaris OS CD 引导节点：

- SPARC： Type:

      ok boot cdrom -s

- x86： 将 CD 插入到系统的 CD 驱动器中，将系统关闭然后再开启来引导系统。在 "Current Boot Parameters"（当前引导参数）屏幕中，键入 `b` 或 `i`。

                            <<< Current Boot Parameters >>>
      Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/
      sd@0,0:a
      Boot args:

      Type  b [file-name] [boot-flags] <ENTER> to boot with options
      or    i <ENTER>                          to enter boot interpreter
      or    <ENTER>                            to boot with defaults

                        <<< timeout in 5 seconds >>>
      Select (b)oot or (i)nterpreter: b -s

    [Use format and newfs to recreate partitions and file systems
    .]
    [Mount the root file system on a temporary mount point:]
    # mount /dev/dsk/c0t0d0s0 /a
    [Restore the root file system:]
    # cd /a
    # ufsrestore rvf /dev/rmt/0
    # rm restoresymtable
    [Install a new boot block:]
    # /usr/sbin/installboot /usr/platform/`uname \
    -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0

    [Remove the lines in / temp-mountpoint/etc/system file for MDD root information:
    ]
    * Begin MDD root info (do not edit)
    forceload: misc/md_trans
    forceload: misc/md_raid
    forceload: misc/md_mirror
    forceload: misc/md_hotspares
    forceload: misc/md_stripe
    forceload: drv/pcipsy
    forceload: drv/glm
    forceload: drv/sd
    rootdev:/pseudo/md@0:0,10,blk
    * End MDD root info (do not edit)
    [Edit the /temp-mountpoint/etc/vfstab file]
    Example:
    Change from—
    /dev/md/dsk/d10   /dev/md/rdsk/d10    /      ufs   1     no       -

    Change to—
    /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /usr   ufs   1     no       -
    [Unmount the temporary file system and check the raw disk device:]
    # cd /
    # umount /a
    # fsck /dev/rdsk/c0t0d0s0
    [Reboot:]
    # reboot
    [Replace the disk ID:]
    # cldevice repair /dev/rdsk/c0t0d0
    [Re-create state database replicas:]
    # metadb -c 3 -af /dev/rdsk/c0t0d0s4
    [Add the node back to the metaset:]
    phys-schost-2# metaset -s schost-1 -a -h phys-schost-1

版权所有 © 2013, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |