每个群集节点要求创建一个 rootdg 磁盘组。该磁盘组由 VxVM 用来 存储配置信息,它有以下限制。
对节点的 rootdg 磁盘组的访问必须仅限于该节点。
远程节点从不应访问存储在另一个节点的 rootdg 中的数据。
不要使用 scconf(1M) 命令将 rootdg 磁盘 组注册为共享的磁盘组。
如果可能,在非共享磁盘上为每个节点配置 rootdg。
Sun Cluster 软件支持下列配置 rootdg 磁盘组的方法。
封装节点的根磁盘 - 该方法允许镜像根磁盘,在根磁盘毁坏或损坏的情况下提供替代引导方法。根磁盘封装需要两个空闲磁盘片以及一些空闲柱面,最好在磁盘的开始或结尾处。
使用本地的 非根磁盘 - VxVM 可以初始化或封装 用作 rootdg 的本地磁盘,从而必然在节点本地创建一个磁盘组(既非全局 可访问,也不具有高可用性)。和根磁盘的情况一样,封装非根磁盘要求在磁盘的开始或结尾处有 两个空闲磁盘片以及一些空闲柱面。
有关详细信息,请参阅 VxVM 安装文档。
遵照此过程,通过封装根磁盘来创建一个 rootdg 磁盘组。
获取可用的 VERITAS 卷管理器 (VxVM) 许可证密钥。
成为群集中节点的超级用户。
确保根磁盘至少有两个磁盘片,该磁盘的结尾或开始部分有 0 柱面和一个或两个空闲柱面。
如有必要,使用 format(1M) 命 令来为每个 VxVM 磁盘片分配 0 柱面。如果盘片 7 被保留给卷管理器使用,则格式化盘片 7 还 将释放磁盘结尾处的所需额外空间。
启动 vxinstall(1M) 实用程序。
# vxinstall |
选择定制安装。
封装根磁盘。
为根磁盘选择一个在群集中唯一的名称。命名根磁盘的简单方法是在缺省名称后 添加一个字母。
例如,如果给定的缺省名称是 rootdisk,则在一个节点上将根磁盘命名 为 rootdiska,将下一个节点上的根磁盘命名 为 rootdiskb,依此类推。
不要向 rootdg 磁盘组中添加任何其他磁盘。
对任何其他控制器,请选择 4(不要动这些磁盘)。
不要接受关机和重新引导。
有关详细信息,请参阅 VxVM 安装文档。
因为禁用了 Dynamic Multipathing (DMP),所以可能生成类似如下的错误消息。您 可以放心地忽略此消息。
vxvm:vxdmpadm: ERROR: vxdmp module is not loaded on the system. Command invalid. |
为 /global/.devices/node@nodeid 文件系统编辑 /etc/vfstab 文件设备名。
需要进行该修改,以便 VxVM 能识别 出 /global/.devices/node@nodeid 文件系统是不 是位于根磁盘上。
将现有的设备名称替换为在 /globaldevices 项中使用的名称,后者 被注释掉了。例如,请考 虑 /globaldevices 和 /global/.devices/node@2 的 下列 /etc/vfstab 文件项。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options ... #/dev/dsk/c1t3d0s3 /dev/rdsk/c1t3d0s3 /globaldevices ufs 2 yes - ... /dev/did/dsk/d4s3 /dev/did/rdsk/d4s3 /global/.devices/node@2 ufs 2 no global |
应将 /global/.devices/node@2 项更改为下列内容。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options ... #/dev/dsk/c1t3d0s3 /dev/rdsk/c1t3d0s3 /globaldevices ufs 2 yes - ... /dev/dsk/c1t3d0s3 /dev/rdsk/c1t3d0s3 /global/.devices/node@2 ufs 2 no global |
从一个节点中,使用 scshutdown(1M) 命令关闭群集。
# scshutdown |
以非群集模式重新引导每个节点。
对每个节点运行下列命令以非群集模式重新引导。
ok boot -x |
不要以群集方式重新引导节点。
如果节点显示类似如下的消息,请按下 Control-D 来继续引导。
忽略手工运行 fsck 的说明。接下 Control-D 以继续引导并且完成剩余的根磁盘封装过程。
WARNING - Unable to repair the /global/.devices/node@1 filesystem. Run fsck manually (fsck -F ufs /dev/vx/rdsk/rootdisk3vola). Exit the shell when done to continue the boot process. Type control-d to proceed with normal startup, (or give root password for system maintenance): |
/global/.devices/node@nodeid 文件系统 仍需要作一些修改,群集才能将它全局安装到每个节点上。因为这种要求,除一个节点外,所有其他 节点均将无法在此重新引导过程中安装 /global/.devices/node@nodeid 文 件系统,从而产生一条警告消息。
VxVM封装根磁盘并且更新 /etc/vfstab 条目。
卸装在 步骤 8 中成功安装 的 /global/.devices/node@nodeid 文件系统。
# umount /global/.devices/node@nodeid |
卸装该文件系统使您可以在 步骤 10 中给磁盘组重编次编号,而不 必重新引导节点两次以初始化更改。在 步骤 14 中,重新引导时会自动 重新安装此文件系统。
在群集的每个节点上给 rootdg 磁盘组重编次编号。
分配一个在群集中唯一并且小于 1000 的 rootdg 次编 号以避免共享磁盘组的次编号冲突。有效的重编次编号方案是在第一个节点上 分配 100,在第二个节点上分配 200,依次类推。
# vxdg reminor rootdg n |
分 配 rootdg 次编号
执行该命令后,可能显示类似如下的警告信息。您可以放心地忽略此消息。
vxvm:vxdg: WARNING: Volume swapvol: Device is open, will renumber on reboot |
将新的次编号应用到根磁盘卷。重新引导后会给交换卷重新编号。
# ls -l /dev/vx/dsk/rootdg total 0 brw------- 1 root root 55,100 Apr 4 10:48 rootdiska3vol brw------- 1 root root 55,101 Apr 4 10:48 rootdiska7vol brw------- 1 root root 55, 0 Mar 30 16:37 rootvol brw------- 1 root root 55, 7 Mar 30 16:37 swapvol |
在群集的每个节点中,如果未使用根磁盘中的根 (/) 文件 系统配置 /usr 文件系统,则手工更新 /usr 卷的 设备节点。
移除现有的 /usr 设备节点。
# rm /dev/vx/dsk/usr # rm /dev/vx/dsk/rootdg/usr # rm /dev/vx/rdsk/usr # rm /dev/vx/rdsk/rootdg/usr |
确定分配给 /usr 文件系统的新的次编号。
# vxprint -l -v usrvol Disk group: rootdg Volume: usrvol ... device: minor=102 bdev=55/102 cdev=55/102 path=/dev/vx/dsk/rootdg/usrvol |
使用新的次编号创建新的 /usr 设备节点。
# mknod /dev/vx/dsk/usr b major_number new-minor-number # mknod /dev/vx/dsk/rootdg/usr b major_number new-minor-number # mknod /dev/vx/rdsk/usr c major_number new-minor-number # mknod /dev/vx/rdsk/rootdg/usr c major_number new-minor-number |
在群集的每个节点中,如果未使用根磁盘中的根 (/) 文件 系统配置 /var 文件系统,则手工更新 /var 卷的 设备节点。
移除现有的 /var 设备节点。
# rm /dev/vx/dsk/var # rm /dev/vx/dsk/rootdg/var # rm /dev/vx/rdsk/var # rm /dev/vx/rdsk/rootdg/var |
确定分配给 /var 文件系统的新的次编号。
# vxprint -l -v usrvol Disk group: rootdg Volume: usrvol ... device: minor=103 bdev=55/102 cdev=55/102 path=/dev/vx/dsk/rootdg/usrvol |
使用新的次编号创建新的 /var 设备节点。
# mknod b /dev/vx/dsk/var major_number new-minor-number # mknod b /dev/vx/dsk/rootdg/var major_number new-minor-number # mknod c /dev/vx/rdsk/var major_number new-minor-number # mknod c /dev/vx/rdsk/rootdg/var major_number new-minor-number |
从一个节点中关闭群集。
# scshutdown |
将每个节点重新引导到群集模式。
ok boot |
(可选的) 镜像群集中每个节点的根磁盘。
有关镜像根的说明,请参阅 VxVM 文档。
如果您镜像了根磁盘,则在群集中的每个节点 上,启用与用于镜像此节点的根磁盘的磁盘关联的原始磁盘设备组的 localonly 属 性。
对于每一个节点,配置一个不同的原始磁盘设备组,此磁盘设备组将唯一地由该节点用来 镜像根磁盘。如果引导设备与多个节点连接,则必须启用 localonly 特性以 防止无意中使一个节点与其引导设备隔离。
# scconf -c -D name=rawdisk_groupname,localonly=true |
指定原始磁盘设备组的群集唯一名称
使用 scdidadm -L 命令来显示原始磁盘设备组的完全 设备 ID (DID) 伪驱动程序名称。在下面的示例中,原始磁盘设备组 名称 dsk/d1 是从输出的第三列中提取的,此名称就是完全 DID 伪驱动程序 名称。scconf 命令然后配置 dsk/d1 原始磁盘设备 组,使之唯一由节点 phys-schost-3 用来镜像其根磁盘。
# scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1 phys-schost-3# scconf -c -D name=dsk/d1,localonly=true |
有关 localonly 特性的详细信息,请 参阅 scconf_dg_rawdisk(1M) 手册页。
要创建共享磁盘组,请转到"如何创建并注册共享磁盘组"。