Sun Cluster 3.0 安装指南

附录 B 配置 VERITAS 卷管理器

遵照本附录中的过程及第 1 章,规划 Sun Cluster 配置中的信 息,为 VERITAS 卷管理器 (VxVM) 配置您的本地磁盘和多主机磁盘。有关详细信息,请参阅 VxVM 文档。

本附录中包含下列过程。

为 Sun Cluster 配置而配置 VxVM

下表列出了为 Sun Cluster 配置来配置 VxVM 时要执行的任务。

表 B-1 任务图:为 Sun Cluster 配置而配置 VxVM

任务 

有关说明,请转到 ... 

规划 VxVM 配置的布局。 

"规划卷管理"

验证每个节点上的伪设备主编号是否相同。 

"如何检验伪设备主编号"

如有必要,请更改节点的伪设备主编号。 

"如何更改伪设备主编号"

创建根磁盘组 (rootdg)。

"设置 rootdg 磁盘组概述"

创建共享磁盘组和卷。 

"如何创建并注册共享磁盘组"

如有必要,通过分配新的次编号来解决磁盘设备组之间的次编号冲突。 

"如何给磁盘设备组分配新的次编号"

检验共享磁盘组和卷。 

"如何检验磁盘组"

创建并安装群集文件系统。 

"如何添加群集文件系统"

如何检验伪设备主编号

在所有的群集节点上,vxio 驱动程序必须具有完全相同的伪设备主编号。完 成安装后可以在 /etc/name_to_major 文件中找到此编号。使用下列过程以验证 伪设备主编号。

  1. 成为群集中一个节点的超级用户。

  2. 在每个群集节点上,查看伪设备主编号。

    比如输入以下内容。


    # grep vxio /etc/name_to_major
    vxio 45

  3. 比较所有节点的伪设备主编号。

    每个节点的主编号应完全相同。如果编号有不同,则必须更改不相同的主编号。

从此处可转到何处

要更改节点的伪设备主编号,请转到"如何更改伪设备主编号"

或者,要设置根磁盘组 (rootdg),请转到"设置 rootdg 磁盘组概述"

如何更改伪设备主编号

如果群集的每个节点的伪设备主编号不相同,则执行该过程。

  1. 成为您要更改其主编号的节点的超级用户。

  2. 编辑 /etc/name_to_major 文件,使所有 节点的该编号完全相同。

    确认在每个节点的 /etc/name_to_major 文件中该编号是唯一的。检查 唯一性的快速方法是通过视觉检查在 /etc/name_to_major 文件中找出分配给 每个节点的最大编号,计算这些编号中的最大值,加 1,然后将和分配给 vxio 驱动 程序。

  3. 重新引导节点。

    1. 使用 scswitch(1M) 命令从节点中抽出所有资源组或 设备组。


      # scswitch -S -h node
      
      -S

      抽出所有资源组和设备组。

      -h node

      指定从中抽出资源或设备组的节点的名称。

    2. 使用 shutdown(1M) 命令重新引导节点。


      # shutdown -g 0 -y -i 6
      
  4. (可选的) 如果系统报告磁盘组错误并且群集 没有启动,则可能需要执行下列步骤。

    1. 成为节点的超级用户。

    2. 对于受影响的子磁盘,使用 vxedit(1M) 命令 将 failing 字段更改为 off

      有关详细信息,请参阅 vxedit(1M) 手册页。

    3. 确保所有卷均已启用并已处于活动状态。

从此处可转到何处

要设置根磁盘组(rootdg),请转到"设置 rootdg 磁盘组概述"

设置 rootdg 磁盘组概述

每个群集节点要求创建一个 rootdg 磁盘组。该磁盘组由 VxVM 用来 存储配置信息,它有以下限制。

Sun Cluster 软件支持下列配置 rootdg 磁盘组的方法。

有关详细信息,请参阅 VxVM 安装文档。

如何封装根磁盘

遵照此过程,通过封装根磁盘来创建一个 rootdg 磁盘组。

  1. 获取可用的 VERITAS 卷管理器 (VxVM) 许可证密钥。

  2. 成为群集中节点的超级用户。

  3. 确保根磁盘至少有两个磁盘片,该磁盘的结尾或开始部分有 0 柱面和一个或两个空闲柱面。

    如有必要,使用 format(1M) 命 令来为每个 VxVM 磁盘片分配 0 柱面。如果盘片 7 被保留给卷管理器使用,则格式化盘片 7 还 将释放磁盘结尾处的所需额外空间。

  4. 启动 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.
  5. /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
  6. 对群集的每个节点重复 步骤 2步骤 5 的操作。

  7. 从一个节点中,使用 scshutdown(1M) 命令关闭群集。


    # scshutdown
    
  8. 非群集模式重新引导每个节点。

    1. 对每个节点运行下列命令以非群集模式重新引导。


      ok boot -x
      

      注意:

      不要以群集方式重新引导节点。


    2. 如果节点显示类似如下的消息,请按下 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 条目。

  9. 卸装在 步骤 8 中成功安装 的 /global/.devices/node@nodeid 文件系统。


    # umount /global/.devices/node@nodeid
    

    卸装该文件系统使您可以在 步骤 10 中给磁盘组重编次编号,而不 必重新引导节点两次以初始化更改。在 步骤 14 中,重新引导时会自动 重新安装此文件系统。

  10. 在群集的每个节点上给 rootdg 磁盘组重编次编号。

    分配一个在群集中唯一并且小于 1000 的 rootdg 次编 号以避免共享磁盘组的次编号冲突。有效的重编次编号方案是在第一个节点上 分配 100,在第二个节点上分配 200,依次类推。


    # vxdg reminor rootdg n
    

    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
  11. 在群集的每个节点中,如果未使用根磁盘中的根 (/) 文件 系统配置 /usr 文件系统,则手工更新 /usr 卷的 设备节点。

    1. 移除现有的 /usr 设备节点。


      # rm /dev/vx/dsk/usr
      # rm /dev/vx/dsk/rootdg/usr
      # rm /dev/vx/rdsk/usr
      # rm /dev/vx/rdsk/rootdg/usr
      
    2. 确定分配给 /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
    3. 使用新的次编号创建新的 /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
      
  12. 在群集的每个节点中,如果未使用根磁盘中的根 (/) 文件 系统配置 /var 文件系统,则手工更新 /var 卷的 设备节点。

    1. 移除现有的 /var 设备节点。


      # rm /dev/vx/dsk/var
      # rm /dev/vx/dsk/rootdg/var
      # rm /dev/vx/rdsk/var
      # rm /dev/vx/rdsk/rootdg/var
      
    2. 确定分配给 /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
    3. 使用新的次编号创建新的 /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
      
  13. 从一个节点中关闭群集。


    # scshutdown
    
  14. 将每个节点重新引导到群集模式。


    ok boot
    
  15. (可选的) 镜像群集中每个节点的根磁盘。

    有关镜像根的说明,请参阅 VxVM 文档。

  16. 如果您镜像了根磁盘,则在群集中的每个节点 上,启用与用于镜像此节点的根磁盘的磁盘关联的原始磁盘设备组的 localonly 属 性。

    对于每一个节点,配置一个不同的原始磁盘设备组,此磁盘设备组将唯一地由该节点用来 镜像根磁盘。如果引导设备与多个节点连接,则必须启用 localonly 特性以 防止无意中使一个节点与其引导设备隔离。


    # scconf -c -D name=rawdisk_groupname,localonly=true
    
    -D name=rawdisk_groupname

    指定原始磁盘设备组的群集唯一名称

    使用 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) 手册页。

从此处可转到何处

要创建共享磁盘组,请转到"如何创建并注册共享磁盘组"

如何创建非根 rootdg 磁盘组

遵照此过程,可通过封装或初始化本地非根磁盘来创建 一个 rootdg 磁盘组。

  1. 获取可用的 VERITAS 卷管理器 (VxVM) 许可证密钥。

  2. 成为节点的超级用户。

  3. (可选的) 如果将要封装磁盘,则确保每个磁盘至少有两个 具有 0 柱面的磁盘片。

    如有必要,使用 format(1M) 命 令来为每个 VxVM 磁盘片分配 0 柱面。

  4. 启动 vxinstall(1M) 实用程序。


    # vxinstall
    

    得到提示后,执行下列选择或输入。

    • 选择定制安装。

    • 不要封装根磁盘。

    • 选择要添加到 rootdg 磁盘组的任何磁盘。

    • 不要接受自动重新引导。

  5. 从节点中抽出所有资源组或设备组。


    # scswitch -S -h node
    
    -S

    抽出所有资源组和设备组。

    -h node

    指定要从中抽出资源或设备组的节点的名称。

  6. 重新引导节点。


    # shutdown -g 0 -y -i 6
    

从此处可转到何处

要创建共享磁盘组,请转到"如何创建并注册共享磁盘组"

如何创建并注册共享磁盘组

遵照此过程可创建 VxVM 磁盘组和卷。

从一个节点运行此过程,该节点物理连接着组成要添加的磁盘组的磁盘。


注意:

将磁盘组以磁盘设备组身份注册到群集后,一定不要使用 VxVM 命令导入或导 出 VxVM 磁盘组。Sun Cluster 软件可以处理所有需要导入或导出磁盘组的情况。有关管理 Sun Cluster 磁 盘设备组的过程,请参阅 Sun Cluster 3.0 系统管理指南


  1. 获取下列信息。

    • 存储磁盘设备的映射。请参 阅 Sun Cluster 3.0 Hardware Guide 中有关执行存储设备的初始安装的章节。

    • Sun Cluster 3.0 发行说明 的以下完整的配置规划工作表。

      • "Local File System Layout Worksheet"

      • "Disk Device Group Configurations Worksheet"

      • "Volume Manager Configurations Worksheet"

      有关规划指南,请参见第 1 章,规划 Sun Cluster 配置

  2. 成为将拥有磁盘组的节点的超级用户。

  3. 创建 VxVM 磁盘组和卷。

    使用您的首选方法来创建磁盘组和卷。


    注意:

    可以使用“脏区域记录 (DRL)”来缩短节点失败时的卷恢复时间。但是,使 用 DRL 可能减少 I/O 吞吐量。


    有关完成此步操作的过程,请参阅 VERITAS 卷管理器 文档。

  4. 将磁盘组注册为 Sun Cluster 磁盘设备组。

    1. 启动 scsetup(1M) 实用程序。


      # scsetup
      
    2. 要使用磁盘设备组,请输入 3(设备组)。

    3. 要注册磁盘设备组,请输入 1(注册一个 VxVM 磁盘组)。

      按说明操作并输 入要注册为 Sun Cluster 磁盘设备组的 VxVM 磁盘设备组。

      如果在尝试注册磁盘设备组时遇到以下错误,请使用 过程"如何给磁盘设备组分配新的次编号"。此过程使您能够分配一个新的次编号,该编号不与现有磁盘设备组 所使用的次编号冲突。


      scconf: Failed to add device group - in use

    4. 完成后,输入 q(退出)以退出 scsetup 实用程序。

  5. 验证是否已注册磁盘设备组。

    通过下面的命令查看显示的新磁盘的磁盘设备信息。


    # scconf -pv | egrep disk-device-group
    

注意:

如果更改 VxVM 磁盘组或卷的配置信息,请重新注册 Sun Cluster 磁盘设备组。重新 注册磁盘设备组将确保全局名称空间处于正确的状态。有关重新注册磁盘设备组的过程,请 参阅 Sun Cluster 3.0 系统管理指南


从此处可转到何处

要检验 VxVM 磁盘组和卷,请转到"如何检验磁盘组"

如何给磁盘设备组分配新的次编号

如果因次编号与另一磁盘组冲突而使得注册磁盘设备组失败,则必须给新的磁盘组分配一个 新的、未被使用的次编号。在分配新的次编号之后,重新将磁盘组注册为 Sun Cluster 磁盘设备组。

  1. 成为群集中一个节点的超级用户。

  2. 确定使用中的次编号。


    # ls -l /global/.devices/node@1/dev/vx/dsk/*
    
  3. 选择其他未使用的 1000 的倍数作为新磁盘组的基本次编号。

  4. 将新的基本次编号分配给磁盘组。


    # vxdg reminor diskgroup base_minor_number
    
  5. 返回到"如何创建并注册共享磁盘组"中的步骤 4 来将磁盘组注册 为一个 Sun Cluster 磁盘设备组。

示例-如何给磁盘设备组分配新的次编号

此示例显示正在使用的小数 16000-16002 和 4000-4001。vxdg reminor 命令 用来给新的磁盘设备组重编次编号,以使用基本次编号 5000。


# ls -l /global/.devices/node@1/dev/vx/dsk/*
/global/.devices/node@1/dev/vx/dsk/dg1
brw-------   1 root     root      56,16000 Oct  7 11:32 dg1v1
brw-------   1 root     root      56,16001 Oct  7 11:32 dg1v2
brw-------   1 root     root      56,16002 Oct  7 11:32 dg1v3
 
/global/.devices/node@1/dev/vx/dsk/dg2
brw-------   1 root     root      56,4000 Oct  7 11:32 dg2v1
brw-------   1 root     root      56,4001 Oct  7 11:32 dg2v2
# vxdg reminor dg3 5000

从此处可转到何处

必须将磁盘组注册为 Sun Cluster 磁盘设备组。请转到 "如何创建并注册共享磁盘组"步骤 4

如何检验磁盘组

在群集中的每个节点都执行此过程。

  1. 验证仅本地根磁盘包含在根磁盘组(rootdg)中,并且 只在当前主节点中导入共享磁盘组。


    # vxdisk list
    
  2. 验证所有卷都已启动。


    # vxprint
    
  3. 验证所有共享磁盘组均已注册为 Sun Cluster 磁盘设备组且处于联机状态。


    # scstat -D
    

从此处可转到何处

要配置群集文件系统,请转到"如何添加群集文件系统"