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

第 5 章 安装和配置 Veritas Volume Manager

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

本章包含以下几节:

安装和配置 VxVM 软件

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

下表列出了为 Sun Cluster 配置而安装和配置 VxVM 软件所需执行的任务。按照以下顺序完成操作。

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

任务 

指导 

规划 VxVM 配置的布局。 

规划卷管理

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

设置根磁盘组概述

安装 VxVM 软件。 

如何安装 Veritas Volume Manager 软件

VxVM 安装文档 

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

SPARC: 如何封装根磁盘

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

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

如何镜像封装的根磁盘

创建磁盘组。 

在群集中创建磁盘组

设置根磁盘组概述

根磁盘组的创建是可选操作。如果您不打算创建根磁盘组,请参见如何安装 Veritas Volume Manager 软件继续后面的操作。

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

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

Procedure如何安装 Veritas Volume Manager 软件

执行此过程可以在要安装 VxVM 的每个全局群集节点上安装 Veritas Volume Manager (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 发行说明中的“修补程序和必需的固件级别”

  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 Volume Manager 软件中的说明安装了 VxVM。

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

  2. 封装根磁盘。


    phys-schost# clvxvm encapsulate
    

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

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

接下来的操作

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

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

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

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


注 –

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


开始之前

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

  1. 成为超级用户。

  2. 启动 vxinstall 实用程序。


    phys-schost# vxinstall
    
  3. vxinstall 实用程序出现提示时,请进行以下选择或输入。

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

    • 选择定制安装。

    • 不要封装引导磁盘。

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

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

  4. 如果创建的根磁盘组包含一个或多个连接到多个节点的磁盘,请确保对此类磁盘禁用隔离功能。

    使用以下命令对根磁盘组中的每个共享磁盘禁用隔离功能。


    phys-schost# cldevice set -p default_fencing=nofencing device
    
    -p

    指定一个设备属性。

    default_fencing=nofencing

    对指定的设备禁用隔离功能。

    如果根磁盘组使用的磁盘与多个节点连接,则对该设备禁用隔离功能可以防止意外地将节点与该磁盘隔离。

    有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。

  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 文档中的过程进行操作。

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


    注意 – 注意 –

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


  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. 对原始磁盘设备组中与多个节点相连的所有磁盘禁用隔离功能。

    如果引导设备与多个节点连接,则对某个设备禁用隔离功能可以防止意外地将节点与其引导设备隔离。


    phys-schost# cldevice set -p default_fencing=nofencing device
    
    -p

    设置设备属性的值。

    default_fencing=nofencing

    对指定的设备禁用隔离功能。

    有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。

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


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

以下示例显示了为节点 phys-schost-1 的根磁盘创建的一个镜像。该镜像是在磁盘 c0t0d0 上创建的,其原始磁盘设备组名称为 dsk/d2。磁盘 c0t0d0 是多主机磁盘,因此节点 phys-schost-3 被从该磁盘的节点列表中删除,该节点的隔离功能被禁用。


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# cldevice set -p default_fencing=nofencing c0t0d0

接下来的操作

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

在群集中创建磁盘组

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

磁盘组类型 

用途 

是否已在 Sun Cluster 中注册? 

存储要求 

VxVM 磁盘组 

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

是 

共享的存储 

本地 VxVM 磁盘组 

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

否 

共享或非共享的存储 

VxVM 共享磁盘组 

Oracle Real Application Clusters(还要求使用 VxVM 群集功能) 

否 

共享的存储 

下表列出了在 Sun Cluster 配置中创建 VxVM 磁盘组所需执行的任务。请按照以下所示顺序完成操作。

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

任务 

指导 

创建磁盘组和卷。 

如何创建磁盘组

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

如何注册磁盘组

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

如何为磁盘组指定新的从设备号

检验磁盘组和卷。 

如何验证磁盘组配置

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. 选择菜单项 "Set localonly on a VxVM disk group"。

    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. 选择菜单项 "Register a VxVM disk group"。

    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
    

    注意 – 注意 –

    请勿在全局设备文件系统中存储除全局设备的设备条目以外的任何数据。删除 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. 在群集的每个节点上重复该过程,以在这些节点上取消根磁盘的封装。