如果磁盘集损坏,或者群集中的节点无法获得磁盘集的所有权,请使用此过程。如果清除该状态的尝试失败,可使用此过程作为修复磁盘集的最后措施。
这些过程适用于 Solaris Volume Manager 元集和多属主 Solaris Volume Manager 元集。
从头开始恢复磁盘集可能非常耗时,而且容易出错。一种更好的替代方法是使用 metastat 命令定期备份副本,或使用 Oracle Explorer (SUNWexplo) 创建备份。然后,可以使用保存的配置来重新创建磁盘集。应该将当前配置保存到文件中(使用 prtvtoc 和 metastat 命令),然后重新创建磁盘集及其组件。请参见如何重新创建 Solaris Volume Manager 软件配置。
# /usr/sbin/prtvtoc /dev/global/rdsk/diskname > /etc/lvm/diskname.vtoc
# /bin/cp /etc/lvm/md.tab /etc/lvm/md.tab_ORIGINAL
# /usr/sbin/metastat -p -s setname >> /etc/lvm/md.tab
从一个或所有节点清除磁盘集会删除配置。要从一个节点清除磁盘集,该节点不能具有该磁盘集的所有权。
# /usr/sbin/metaset -s setname -P
运行此命令会从数据库副本以及 Oracle Solaris Cluster 系统信息库中删除磁盘集信息。–P 和 –C 选项允许在无需完全重建 Solaris Volume Manager 环境的情况下清除磁盘集。
# /usr/cluster/lib/sc/dcs_config -c remove -s setname
有关更多信息,请参见 dcs_config(1M) 手册页。
# /usr/sbin/metaset -s setname -C purge
通常应使用 –P 选项而不是 –C 选项。使用 –C 选项可能导致重新创建磁盘集时发生问题,因为 Oracle Solaris Cluster 软件仍会识别该磁盘集。
# /usr/cluster/lib/sc/dcs_config -c remove -s setname
如果 purge 选项失败,请确认您已经安装了最新的内核和元设备更新,然后联系 My Oracle Support。
只有在发生完全丢失 Solaris Volume Manager 软件配置的情况下才应使用此过程。这些步骤假设您已经保存了当前的 Solaris Volume Manager 配置及其组件,并清除了损坏的磁盘集。
# /usr/sbin/metaset -s setname -a -h nodename1 nodename2
如果该磁盘集是多所有者磁盘集,请使用以下命令创建新磁盘集。
/usr/sbin/metaset -s setname -aM -h nodename1 nodename2
/usr/sbin/metaset -s setname -a -m nodename1 nodename2
/usr/sbin/metaset -s setname -a /dev/did/rdsk/diskname /dev/did/rdsk/diskname
但是,如果正在重新创建要恢复的磁盘集,应根据 /etc/lvm/diskname.vtoc 文件中保存的配置格式化磁盘。例如:
# /usr/sbin/fmthard -s /etc/lvm/d4.vtoc /dev/global/rdsk/d4s2
# /usr/sbin/fmthard -s /etc/lvm/d8.vtoc /dev/global/rdsk/d8s2
您可以在任何节点上运行此命令。
# /usr/sbin/metainit -s setname -n -a metadevice
# /usr/sbin/metainit -s setname -a metadevice
# /usr/sbin/fsck -n /dev/md/setname/rdsk/metadevice
如果 fsck 命令仅显示几个错误,例如超级块计数,则表明设备很可能已经正确重建。然后您可以运行不带 –n 选项的 fsck 命令。如果出现多个错误,请检验您是否正确重建了元设备。如果是,则查看 fsck 错误,确定是否能够恢复文件系统。如果不能,您应该从备份中恢复数据。
# /usr/sbin/metastat -p >> /etc/lvm/md.tab