Sun Cluster 软件安装指南(适用于 Solaris OS)

第 5 章 安装和配置 VERITAS 卷管理器

使用本章中的过程以及规划卷管理中的规划信息为 VERITAS 卷管理器 (VxVM) 安装和配置本地磁盘和多主机磁盘。有关详细信息,请参阅 VxVM 文档。

本章包含以下几节:

安装和配置 VxVM 软件

本节提供了在 Sun Cluster 配置中安装和配置 VxVM 软件的信息和过程。

下表列出了为 Sun Cluster 配置而安装和配置 VxVM 软件所需执行的任务。

表 5–1 任务表:安装和配置 VxVM 软件

任务 

指导 

1. 规划 VxVM 配置的布局。 

规划卷管理

2.(可选)确定如何在每个节点上创建根磁盘组。

设置根磁盘组概述

3. 安装 VxVM 软件。 

如何安装 VERITAS 卷管理器 软件

VxVM 安装文档 

4.(可选)创建根磁盘组。您可以封装根磁盘或在本地的非根磁盘上创建根磁盘组。

SPARC: 如何封装根磁盘

如何在非根磁盘上创建根磁盘组

5.(可选)对封装的根磁盘进行镜像。

如何镜像封装的根磁盘

6. 创建磁盘组。 

在群集中创建磁盘组

设置根磁盘组概述

根磁盘组的创建是可选操作。如果不需要创建根磁盘组,请继续执行如何安装 VERITAS 卷管理器 软件

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

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

Procedure如何安装 VERITAS 卷管理器 软件

执行该过程以在要安装 VxVM 的每个节点上安装 VERITAS 卷管理器 (VxVM) 软件。您可以在群集的所有节点上安装 VxVM,也可以只将 VxVM 安装在与 VxVM 管理的存储设备具有物理连接的节点上。

开始之前

执行以下任务:

  1. 成为要安装 VxVM 的群集节点上的超级用户。

  2. 将 VxVM CD-ROM 放入节点上的 CD-ROM 驱动器中。

  3. 请按照 VxVM 安装指南中介绍的过程安装和配置 VxVM 软件和许可证。

  4. 在非交互模式下运行 clvxvm 实用程序。


    phys-schost# clvxvm initialize
    

    clvxvm 实用程序会执行所需的安装后任务。clvxvm 实用程序还会选择并配置一个群集范围的 vxio 驱动程序主编号。有关更多信息,请参见 clvxvm(1CL) 手册页。

  5. SPARC:要启用 VxVM 群集功能,请提供群集功能的许可证密钥(如果尚未提供)。

    有关如何添加许可证的信息,请参阅 VxVM 文档。

  6. (可选的)安装 VxVM GUI。

    有关安装 VxVM GUI 的信息,请参阅 VxVM 文档。

  7. 弹出 CD-ROM。

  8. 安装所有 VxVM 修补程序以支持 Sun Cluster 软件。

    有关修补程序的位置和安装说明,请参见《Sun Cluster 3.2 2/08 Release Notes for Solaris OS》

  9. 在其他任何节点上重复执行步骤 1步骤 8 以安装 VxVM。


    注 –

    SPARC:要启用 VxVM 群集功能,则必须在群集的所有节点上安装 VxVM。


  10. 如果您想在一个或多个节点上安装 VxVM,请修改每个非 VxVM 节点上的 /etc/name_to_major 文件。

    1. 在安装了 VxVM 的节点上,确定 vxio 主编号设置。


      phys-schost# grep vxio /etc/name_to_major
      
    2. 成为您打算在其上安装 VxVM 的节点上的超级用户。

    3. 编辑 /etc/name_to_major 文件并添加一个条目以将 vxio 主设备号设置为 NNN(在步骤 a 中得到的编号)。


      phys-schost# vi /etc/name_to_major
      vxio NNN
      
    4. 初始化 vxio 条目。


      phys-schost# drvconfig -b -i vxio -m NNN
      
    5. 无需安装 VxVM 的所有其他节点上重复执行步骤 a步骤 d

      完成后,群集中的每个节点在其 /etc/name_to_major 文件中应具有相同的 vxio 条目。

  11. 要创建根磁盘组,请转至SPARC: 如何封装根磁盘如何在非根磁盘上创建根磁盘组

    否则,请继续执行步骤 12


    注 –

    根磁盘组是可选的。


  12. 重新引导安装了 VxVM 的每个节点。


    phys-schost# shutdown -g0 -y -i6
    
接下来的操作

要创建根磁盘组,请转至SPARC: 如何封装根磁盘如何在非根磁盘上创建根磁盘组

否则,请创建磁盘组。请转至在群集中创建磁盘组

ProcedureSPARC: 如何封装根磁盘

执行该过程以通过封装根磁盘创建根磁盘组。根磁盘组是可选的。有关更多信息,请参见 VxVM 文档。


注 –

如果要在非根磁盘上创建根磁盘组,应执行如何在非根磁盘上创建根磁盘组所述的过程。


开始之前

确保按照如何安装 VERITAS 卷管理器 软件中的说明安装了 VxVM。

  1. 成为安装了 VxVM 的节点上的超级用户。

  2. 封装根磁盘。


    phys-schost# clvxvm encapsulate
    

    有关更多信息,请参见 clvxvm(1CL) 手册页。

  3. 对安装了 VxVM 的任何其他节点重复执行上述过程。

接下来的操作

要对封装的根磁盘进行镜像,请转至如何镜像封装的根磁盘

否则,请转至在群集中创建磁盘组

Procedure如何在非根磁盘上创建根磁盘组

使用此过程,通过封装或初始化本地磁盘而不是根磁盘来创建根磁盘组。根磁盘组的创建是可选操作。


注 –

如果要在根磁盘上创建根磁盘组,应执行SPARC: 如何封装根磁盘中的过程。


开始之前

如果要封装磁盘,则确保每个磁盘至少有两个具有 0 柱面的磁盘片。如果需要,请使用 format(1M) 命令为每个 VxVM 分片指定 0 柱面。

  1. 成为超级用户。

  2. 启动 vxinstall 实用程序。


    phys-schost# vxinstall
    
  3. vxinstall 实用程序出现提示时,请进行以下选择或按以下条目进行操作。

    • SPARC:要启用 VxVM 群集功能,请提供群集功能的许可证密钥。

    • 选择定制安装。

    • 不要封装引导磁盘。

    • 选择要添加到根磁盘组的所有磁盘。

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

  4. 如果创建的根磁盘组包含连接至多个节点的一个或多个磁盘,则启用 localonly 属性。

    使用以下命令为根磁盘组中的每个共享磁盘启用原始磁盘设备组的 localonly 属性。


    phys-schost# cldevicegroup set -p localonly=true dsk/dN
    
    -p

    指定设备组的属性。

    localonly=true

    将设备组设置为仅受节点列表中单个节点的控制。

    启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果根磁盘组使用的磁盘与多个节点连接,则启用该属性可以防止意外地将节点与该磁盘隔开。

    有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。

  5. 从节点中清空任何资源组或设备组。


    phys-schost# clnode evacuate from-node
    
    from-node

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

  6. 重新引导该节点。


    phys-schost# shutdown -g0 -y -i6
    
  7. 使用 vxdiskadm 命令以将多个磁盘添加到根磁盘组中。

    如果根磁盘组包含多个磁盘,则该磁盘组具有磁盘容错功能。有关过程的信息,请参阅 VxVM 文档。

接下来的操作

创建磁盘组。转至在群集中创建磁盘组

Procedure如何镜像封装的根磁盘

安装 VxVM 并封装根磁盘后,在要对其已封装的根磁盘进行镜像的每个节点上执行此过程。

开始之前

确保按照SPARC: 如何封装根磁盘中的说明封装了根磁盘。

  1. 成为超级用户。

  2. 列出设备。


    phys-schost# cldevice list -v
    

    输出类似于以下内容:


    DID Device          Full Device Path
    ----------          ----------------
    d1                  phys-schost-1:/dev/rdsk/c0t0d0
    d2                  phys-schost-1:/dev/rdsk/c0t6d0
    d3                  phys-schost-2:/dev/rdsk/c1t1d0
    d3                  phys-schost-1:/dev/rdsk/c1t1d0
  3. 镜像封装的根磁盘。

    请按照 VxVM 文档中的过程进行操作。

    为了获得最高可用性并简化管理,使用本地磁盘进行镜像。有关其他指导信息,请参见镜像根磁盘指南


    Caution – Caution –

    不要使用法定设备镜像根磁盘。在某些情况下,使用法定设备镜像根磁盘可能会使节点不从根磁盘镜像启动。


  4. 针对用于镜像根磁盘的设备,查看原始磁盘设备组的节点列表。

    设备组名称的格式为 dsk/dN,其中 dN 为 DID 设备名称。


    phys-schost# cldevicegroup list -v dsk/dN
    
    -v

    显示详细的输出。

    输出类似于以下内容。


    Device group        Type                Node list
    ------------        ----                ---------
    dsk/dN              Local_Disk          phys-schost-1, phys-schost-3
  5. 如果节点列表包含多个节点名称,请从节点列表中删除除去已镜像根磁盘的节点以外的所有节点。

    原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。


    phys-schost# cldevicegroup remove-node -n node dsk/dN
    
    -n node

    指定要从设备组节点列表中删除的节点。

  6. 启用原始磁盘设备组的 localonly 属性(如果该属性尚未启用)。

    启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该属性可以防止意外地将节点与其引导设备隔开。


    phys-schost# cldevicegroup set -p localonly=true dsk/dN
    
    -p

    设置设备组属性的值。

    localonly=true

    启用设备组的 localonly 属性。

    有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。

  7. 对群集中要镜像其已封装的根磁盘的每个节点重复该过程。


示例 5–1 对封装的根磁盘进行镜像

以下示例显示了为节点 phys-schost-1 的根磁盘所创建的一个镜像。该镜像是在磁盘 c0t0d0 上创建的,其原始磁盘设备组名称为 dsk/d2。磁盘 c1t1d0 是多主机磁盘,因此,已从该磁盘的节点列表中删除了节点 phys-schost-3 并启用了 localonly 属性。


phys-schost# cldevice list -v
DID Device          Full Device Path
----------          ----------------
d2                  pcircinus1:/dev/rdsk/c0t0d0
…
Create the mirror by using VxVM procedures
phys-schost# cldevicegroup  list -v dsk/d2
Device group        Type                Node list
------------        ----                ---------
dsk/d2              Local_Disk          phys-schost-1, phys-schost-3
phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2
phys-schost# cldevicegroup set -p localonly=true dsk/d2

接下来的操作

创建磁盘组。请转至在群集中创建磁盘组

在群集中创建磁盘组

本节介绍了如何在群集中创建 VxVM 磁盘组。下表介绍了可在 Sun Cluster 配置中配置的 VxVM 磁盘组类型及其特性。

磁盘组类型 

用途 

是否已在 Sun Cluster 中注册? 

存储要求 

VxVM 磁盘组 

用于故障转移、可伸缩数据服务、全局设备或群集文件系统的设备组 

是 

共享的存储 

本地 VxVM 磁盘组 

不具备高可用性且限于单个节点的应用程序 

否 

共享或非共享的存储 

VxVM 共享磁盘组 

Oracle RAC(还要求使用 VxVM 群集功能) 

否 

共享的存储 

下表列出了在 Sun Cluster 配置中创建 VxVM 磁盘组所需执行的任务。

表 5–2 任务表:创建 VxVM 磁盘组

任务 

指导 

1. 创建磁盘组和卷。 

如何创建磁盘组

2. 将那些不是本地磁盘组且不使用 VxVM 群集功能的磁盘组注册为 Sun Cluster 设备组。 

如何注册磁盘组

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

如何给设备组分配新的从设备号

4. 检验磁盘组和卷。 

如何检验磁盘组配置

Procedure如何创建磁盘组

使用此过程来创建 VxVM 磁盘组和卷。

从一个节点执行此过程,该节点与组成要添加的磁盘组的各个磁盘具有物理连接。

开始之前

执行以下任务:

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

  2. 创建 VxVM 磁盘组和卷。

    请遵循以下特殊说明:


    注 –

    如果节点出现故障,则可使用脏区日志记录 (Dirty Region Logging, DRL) 来缩短卷恢复时间。但是,使用 DRL 可能减少 I/O 吞吐量。


  3. 对于本地磁盘组,请设置 localonly 属性,并向磁盘组的节点列表中添加单个节点。


    注 –

    配置为仅本地的磁盘组不具备高可用性也无法进行全局访问。


    1. 启动 clsetup 实用程序。


      phys-schost# clsetup
      
    2. 选择菜单项 "Device groups and volumes"。

    3. 选择菜单项“在 VxVM 磁盘组上设置 localonly”。

    4. 按照说明设置 localonly 属性并指定将独自控制该磁盘组的单个节点。

      在任意时刻,仅允许一个节点控制该磁盘组。此后可以更改所配置的控制节点。

    5. 完成后,退出 clsetup 实用程序。

接下来的操作

确定下一个步骤:

Procedure如何注册磁盘组

如果启用 VxVM 群集功能,请执行以下过程将非本地磁盘组注册为 Sun Cluster 设备组。


注 –

SPARC:如果启用了 VxVM 群集功能或者创建了本地磁盘组,请勿执行此过程。而应继续执行如何检验磁盘组配置中的操作。


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

  2. 将全局磁盘组注册为 Sun Cluster 设备组。

    1. 启动 clsetup 实用程序。


      phys-schost# clsetup
      
    2. 选择菜单项 "Device groups and volumes"。

    3. 选择菜单项“注册 VxVM 磁盘组”。

    4. 按照说明指定要注册为 Sun Cluster 设备组的 VxVM 磁盘组。

    5. 完成后,退出 clsetup 实用程序。

    6. 导出并重新导入每个本地磁盘组。


      phys-schost# vxdg deport diskgroup
      # vxdg import dg
      
    7. 重新启动每个本地磁盘组。


      phys-schost# vxvol -g diskgroup startall
      
    8. 检验每个本地磁盘组的仅限本地状态。

      如果磁盘组的 flags 属性的值为 nogdl,则说明该磁盘组已正确配置为仅限本地访问。


      phys-schost# vxdg list diskgroup | grep flags
      flags: nogdl
  3. 检验设备组是否已注册。

    使用以下命令查看所显示的新磁盘的磁盘设备信息。


    phys-schost# cldevicegroup status
    
接下来的操作

转至如何检验磁盘组配置

故障排除

栈溢出-如果在设备组联机时发生了栈溢出,则可能是由于线程栈大小的默认值不够大。在每个节点上,将条目 set cl_haci:rm_thread_stacksize=0xsize 添加到 /etc/system 文件,其中 size 为大于 8000(默认设置)的数字。

配置更改-如果更改 VxVM 设备组或其卷的任何配置信息,则必须使用 clsetup 实用程序注册配置更改。必须注册的配置更改包括添加或删除卷,以及更改现有卷的组、所有者或权限。有关注册对 VxVM 设备组所做的配置更改的过程,请参见 《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理设备组”

Procedure如何给设备组分配新的从设备号

如果由于次编号与另一磁盘组的次编号冲突而导致设备组注册失败,则必须为新磁盘组分配一个未使用过的新次编号。遵照此过程,为磁盘组重编次编号。

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

  2. 确定正在使用的次编号。


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

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


    phys-schost# vxdg reminor diskgroup base-minor-number
    

示例 5–2 如何给设备组分配新的从设备号

以下示例使用了 16000 到 16002 以及 4000 到 4001 的次编号。vxdg reminor 命令为新设备组重新分配了次编号以使用基本次编号 5000。


phys-schost# 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
phys-schost# vxdg reminor dg3 5000

接下来的操作

将磁盘组注册为 Sun Cluster 设备组。请转至如何注册磁盘组

Procedure如何检验磁盘组配置

请在群集的各个节点上都执行此过程。

  1. 成为超级用户。

  2. 列出磁盘组。


    phys-schost# vxdisk list
    
  3. 列出设备组。


    phys-schost# cldevicegroup list -v
    
  4. 检验是否已正确配置所有磁盘组。

    确保满足以下要求:

    • 根磁盘组仅包含本地磁盘。

    • 仅在当前的主节点上导入了所有磁盘组和所有本地磁盘组。

  5. 检验是否已启动了所有卷。


    phys-schost# vxprint
    
  6. 检验所有磁盘组是否都已被注册为 Sun Cluster 设备组并且处于联机状态。


    phys-schost# cldevicegroup status
    

    输出中不应显示任何本地磁盘组。

  7. (可选的)捕获磁盘分区信息,以供将来参考之用。


    phys-schost# prtvtoc /dev/rdsk/cNtXdYsZ > filename
    

    应将该文件存储在群集外部的某个位置。如果对磁盘配置进行了任何更改,请再次运行此命令以捕获更改后的配置信息。如果磁盘发生故障需要更换,则可以使用此信息来恢复磁盘分区配置。有关更多信息,请参见 prtvtoc(1M) 手册页。

  8. (可选的)对群集配置进行备份。对群集配置的归档备份有助于您更方便地恢复群集配置。有关更多信息,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“如何备份群集配置”

有关管理 VxVM 磁盘组的指导信息

请遵循以下指导信息来管理 Sun Cluster 配置中的 VxVM 磁盘组:

故障排除

如果 cldevicegroup status 命令的输出中包含任何本地磁盘组,则说明所显示的磁盘组未被正确配置为仅限本地访问。请返回如何创建磁盘组,以重新配置该本地磁盘组。

接下来的操作

查看以下列表以确定下一项要执行的任务(该任务应适用于您的群集配置)。如果需要执行此列表中的多项任务,请转至其中在列表中排在最前面的那项任务。

取消根磁盘的封装

本节介绍了如何在 Sun Cluster 配置中取消根磁盘的封装。

Procedure如何取消根磁盘的封装

执行此过程以取消根磁盘的封装。

开始之前

执行以下任务:

  1. 成为要取消封装的节点的超级用户。

  2. 从节点中清空所有资源组和设备组。


    phys-schost# clnode evacuate from-node
    
    from-node

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

  3. 确定节点的节点 ID 号。


    phys-schost# clinfo -n
    
  4. 卸载此节点的全局设备文件系统,其中 N 为在步骤 3 中得到的节点 ID 号。


    phys-schost# umount /global/.devices/node@N
    
  5. 查看 /etc/vfstab 文件并确定哪个 VxVM 卷对应于全局设备文件系统。


    phys-schost# vi /etc/vfstab
    #device        device        mount    FS     fsck    mount    mount
    #to mount      to fsck       point    type   pass    at boot  options
    #
    #NOTE: volume rootdiskxNvol (/global/.devices/node@N) encapsulated 
    #partition cNtXdYsZ
    
  6. 从根磁盘组中删除与全局设备文件系统对应的 VxVM 卷。


    phys-schost# vxedit -g rootdiskgroup -rf rm rootdiskxNvol
    

    Caution – Caution –

    请不要在全局设备文件系统中存储全局设备的设备条目以外的任何数据。删除 VxVM 卷时,全局设备文件系统中的所有数据都会遭到破坏。在根磁盘的封装被取消之后,仅恢复与全局设备条目相关的数据。


  7. 取消根磁盘的封装。


    注 –

    不要接受从命令发出的关机请求。



    phys-schost# /etc/vx/bin/vxunroot
    

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

  8. 使用 format(1M) 命令将 512 MB 的分区添加到根磁盘中,以供全局设备文件系统使用。


    提示 –

    使用 /etc/vfstab 文件中指定的同一个盘片,即:该根磁盘被封装之前分配给全局设备文件系统的那个盘片。


  9. 在您在步骤 8 中创建的分区上设置文件系统。


    phys-schost# newfs /dev/rdsk/cNtXdYsZ
    
  10. 确定根磁盘的 DID 名称。


    phys-schost# cldevice list cNtXdY
    dN
    
  11. /etc/vfstab 文件中,用在步骤 10 中标识的 DID 路径替换全局设备文件系统条目中的路径名。

    原有条目应类似于以下内容。


    phys-schost# vi /etc/vfstab
    /dev/vx/dsk/rootdiskxNvol /dev/vx/rdsk/rootdiskxNvol /global/.devices/node@N ufs 2 no global

    经过修订后,使用 DID 路径的项应类似于以下内容。


    /dev/did/dsk/dNsX /dev/did/rdsk/dNsX /global/.devices/node@N ufs 2 no global
  12. 安装全局设备文件系统。


    phys-schost# mount /global/.devices/node@N
    
  13. 从群集的一个节点上,为所有原始磁盘设备和 Solaris Volume Manager 设备的设备节点上重新装入全局设备文件系统。


    phys-schost# cldevice populate
    

    VxVM 设备在下一次重新引导时创建。

  14. 在继续执行下一个步骤之前,请先在每个节点上检验 cldevice populate 命令是否已完成其处理过程。

    即使仅从一个节点中发出 cldevice populate 命令,该命令也会以远程方式在所有节点上执行。要确定 cldevice populate 命令是否已完成处理过程,请在群集的每个节点上运行以下命令。


    phys-schost# ps -ef | grep scgdevs
    
  15. 重新引导该节点。


    phys-schost# shutdown -g0 -y -i6
    
  16. 在群集的每个节点上重复该过程,以在这些节点上取消根磁盘的封装。