跳过导航链接 | |
退出打印视图 | |
Oracle Solaris Cluster 系统管理指南 Oracle Solaris Cluster (简体中文) |
1. Oracle Solaris Cluster 管理简介
2. Oracle Solaris Cluster 和 RBAC
11. 修补 Oracle Solaris Cluster 软件和固件
如何为镜像执行联机备份 (Solaris Volume Manager)
如何为卷执行联机备份 (Veritas Volume Manager)
如何以交互方式恢复单个文件 (Solaris Volume Manager)
如何恢复根 (/) 文件系统 (Solaris Volume Manager)
如何恢复 Solaris Volume Manager 卷上的根 (/) 文件系统
ufsrestore(1M) 命令将文件从使用 ufsdump(1M) 命令创建的备份复制到磁盘上相对于当前工作目录的位置。您可以使用 ufsrestore 从 0 级转储和随后的增量转储重新装入整个文件系统分层结构,或从任何转储磁带恢复一个或多个单个的文件。如果以超级用户身份或使用一个等效角色运行 ufsrestore,则恢复文件的同时还会恢复其原属主、上次修改时间及模式(许可)。
在开始恢复文件或文件系统前,您需要了解以下信息。
需要哪些磁带
正在其上恢复文件系统的原始设备名称
正在使用的磁带驱动器类型
磁带驱动器的设备名称(本地或远程)
所有故障磁盘的分区方案,由于分区和文件系统必须完全复制到替换磁盘上
表 12-2 任务表:恢复群集文件
|
使用此过程可恢复一个或多个单个的文件。执行恢复过程之前,请确保群集正在无故障运行。
# clresourcegroup offline resource-group
# ufsrestore
使用此过程可将根 (/) 文件系统恢复到新磁盘(例如,在更换损坏的根磁盘之后)。不应引导正在恢复的节点。执行恢复过程之前,请确保群集正在无故障运行。
注 - 由于新磁盘的分区格式必须与故障磁盘的分区格式相同,所以在开始此过程之前,请先确定分区方案,然后再相应地重新创建文件系统。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
使用除要恢复的节点以外的其他节点。
从元集中除正要删除的节点以外的一个节点上运行此命令。由于要恢复的节点处于脱机状态,因此系统会显示 RPC: Rpcbind failure - RPC: Timed out 错误。忽略此错误并继续执行下一步。
# metaset -s setname -f -d -h nodelist
指定磁盘集名称。
从磁盘集中删除最后一个主机。
从磁盘集删除。
指定要从磁盘集删除的节点的名称。
要恢复根和 /usr 文件系统,请执行《系统管理指南:设备和文件系统》中的第 27 章 "恢复文件和文件系统(任务)"中所介绍的过程。忽略 Oracle Solaris OS 过程中的步骤,重新引导该系统。
注 - 请确保创建 /global/.devices/node@nodeid 文件系统。
# reboot
# cldevice repair rootdisk
# metadb -c copies -af raw-disk-device
指定要创建的复本数。
要在其上创建复本的原始磁盘设备。
添加复本。
phys-schost-2# metaset -s setname -a -h nodelist
创建主机并将其添加到磁盘集中。
已将节点重新引导到群集模式下。群集已经就绪。
示例 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 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 卷上的根 (/) 文件系统。比如在根磁盘损坏后更换新磁盘时,就可以执行此过程。不应引导正在恢复的节点。执行恢复过程之前,请确保群集正在无故障运行。
注 - 由于新磁盘的分区格式必须与故障磁盘的分区格式相同,所以在开始此过程之前,请先确定分区方案,然后再相应地重新创建文件系统。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
使用除要恢复的节点以外的其他节点。
# metaset -s setname -d -h hostname
指定元集名称。
从磁盘集中删除最后一个主机。
从元集中删除。
指定要从元集中删除的节点的名称。
指定主机的名称。
指定要在磁盘集中添加或删除的调节器主机的名称。
# metaset -ssetname-d -m hostname
请参阅服务器所附带的文档,以了解磁盘替换过程。
如果使用 Oracle Solaris OS CD,请注意以下内容:
SPARC:键入以下内容:
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:键入以下内容:
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
重建故障磁盘上的原分区方案。
重建故障磁盘上的原文件系统。
注 - 请确保创建 /global/.devices/node@nodeid 文件系统。
# mount device temp-mountpoint
# cd temp-mountpoint # ufsrestore rvf dump-device # rm restoresymtable
# /usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk raw-disk-device
* 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)
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 -
# cd / # umount temp-mountpoint # fsck raw-disk-device
# reboot
# cldevice repair rootdisk
# metadb -c copies -af raw-disk-device
指定要创建的复本数。
在指定的原始磁盘设备上创建初始状态数据库复本。
phys-schost-2# metaset -s setname -a -h nodelist
添加(创建)元集。
根据文档,为根 (/) 设置卷/镜像。
已将节点重新引导到群集模式下。
phys-schost-2# metaset -s setname -a -m hostname
示例 12-7 恢复 Solaris Volume Manager 卷上的根 (/) 文件系统
下面的示例展示了将根 (/) 文件系统从磁带设备 /dev/rmt/0 恢复到节点 phys-schost-1 的过程。从群集中的另一节点 phys-schost-2 运行 metaset 命令,以删除节点 phys-schost-1,稍后再将它重新添加到元集 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:键入以下内容:
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
使用此过程可将未封装的根 (/) 文件系统恢复到某个节点。不应引导正在恢复的节点。执行恢复过程之前,请确保群集正在无故障运行。
注 - 由于新磁盘的分区格式必须与故障磁盘的分区格式相同,所以在开始此过程之前,请先确定分区方案,然后再相应地重新创建文件系统。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
请参阅服务器所附带的文档,以了解磁盘替换过程。
如果使用的是 Oracle Solaris OS CD,请在 OpenBoot PROM ok 提示符下键入以下命令:
ok boot cdrom -s
如果使用的是 Solaris JumpStart 服务器,请在 OpenBoot PROM ok 提示符下键入以下命令:
ok boot net -s
重建故障磁盘上的原分区方案。
重建故障磁盘上的原文件系统。
注 - 请确保创建 /global/.devices/node@nodeid 文件系统。
# mount device temp-mountpoint
# cd temp-mountpoint # ufsrestore rvf dump-device # rm restoresymtable # cd / # umount temp-mountpoint # fsck raw-disk-device
此时文件系统已恢复。
# /usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk raw-disk-device
# reboot
# cldevice repair /dev/rdsk/disk-device
节点重新引导到群集模式下。群集已经就绪。
示例 12-8 恢复未封装的根 (/) 文件系统 (Veritas Volume Manager)
以下示例说明了将未封装的根 (/) 文件系统从磁带设备 /dev/rmt/0 恢复到节点 phys-schost-1 的过程。
[Replace the failed disk and boot the node:]
从 Oracle Solaris OS CD 引导节点。在 OpenBoot PROM ok 提示符下键入以下命令:
ok boot cdrom -s ... [Use format and newfs to create 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 # cd / # umount /a # fsck /dev/rdsk/c0t0d0s0 [Install a new boot block:] # /usr/sbin/installboot /usr/platform/`uname \ -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0 [Reboot:] # reboot [Update the disk ID:] # cldevice repair /dev/rdsk/c0t0d0
使用此过程可将封装的根 (/) 文件系统恢复到某个节点。不应引导正在恢复的节点。执行恢复过程之前,请确保群集正在无故障运行。
注 - 由于新磁盘的分区格式必须与故障磁盘的分区格式相同,所以在开始此过程之前,请先确定分区方案,然后再相应地重新创建文件系统。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
请参阅服务器所附带的文档,以了解磁盘替换过程。
如果使用的是 Oracle Solaris OS CD,请在 OpenBoot PROM ok 提示符下键入以下命令:
ok boot cdrom -s
如果使用的是 Solaris JumpStart 服务器,请在 OpenBoot PROM ok 提示符下键入以下命令:
ok boot net -s
重建故障磁盘上的原分区方案。
重建故障磁盘上的原文件系统。
注 - 请确保创建 /global/.devices/ node@nodeid 文件系统。
# mount device temp-mountpoint
# cd temp-mountpoint # ufsrestore rvf dump-device # rm restoresymtable
此文件会在下次重新引导节点时将其置于 VxVM 安装模式。
# touch \ /temp-mountpoint/etc/vx/reconfig.d/state.d/install-db
* rootdev:/pseudo/vxio@0:0 * set vxio:vol_rootdev_is_volume=1
Example: Change from— /dev/vx/dsk/rootdg/rootvol /dev/vx/rdsk/rootdg/rootvol / ufs 1 no - Change to— /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -
# cd / # umount temp-mountpoint # fsck raw-disk-device
# /usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk raw-disk-device
# reboot
# cldevice repair /dev/rdsk/c0t0d0
卸载群集节点上的全局设备文件系统。
# umount /global/.devices/node@nodeid
为群集节点上的 rootdg 磁盘组重编从设备号。
# vxdg reminor rootdg 100
# shutdown -g0 -i6 -y
示例 12-9 恢复已封装的根 (/) 文件系统 (Veritas Volume Manager)
下面的示例说明了将封装的根 (/) 文件系统从磁带设备 /dev/rmt/0 恢复到节点 phys-schost-1 的过程。
[Replace the failed disk and boot the node:]
从 Oracle Solaris OS CD 引导节点。在 OpenBoot PROM ok 提示符下键入以下命令:
ok boot cdrom -s ... [Use format and newfs to create 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 [Create an empty install-db file:] # touch /a/etc/vx/reconfig.d/state.d/install-db [Edit /etc/system on the temporary file system and remove or comment out the following entries:] # rootdev:/pseudo/vxio@0:0 # set vxio:vol_rootdev_is_volume=1 [Edit /etc/vfstab on the temporary file system:] Example: Change from— /dev/vx/dsk/rootdg/rootvol /dev/vx/rdsk/rootdg/rootvol / ufs 1 no- Change to— /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - [Unmount the temporary file system, then check the file system:] # cd / # umount /a # fsck /dev/rdsk/c0t0d0s0 [Install a new boot block:] # /usr/sbin/installboot /usr/platform/`uname \ -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0 [Reboot:] # reboot [Update the disk ID:] # cldevice repair /dev/rdsk/c0t0d0 [Encapsulate the disk::] # vxinstall Choose to encapsulate the root disk. [If a conflict in minor number occurs, reminor the rootdg disk group:] # umount /global/.devices/node@nodeid # vxdg reminor rootdg 100 # shutdown -g0 -i6 -y
另请参见
有关如何镜像已封装的根磁盘的说明,请参见《Oracle Solaris Cluster 软件安装指南》。