使用本章中的过程以及规划卷管理中的规划信息为 VERITAS Volume Manager (VxVM) 安装和配置本地磁盘和多主机磁盘。有关详细信息,请参阅 VxVM 文档。
本章包含以下各节:
本节提供了在 Sun Cluster 配置中安装和配置 VxVM 软件的信息和过程。
下表列出了为 Sun Cluster 配置而安装和配置 VxVM 软件所需执行的任务。
表 5–1 任务表:安装和配置 VxVM 软件
任务 |
参考 |
---|---|
1. 规划 VxVM 配置的布局。 | |
2.(可选)确定如何在每个节点上创建根磁盘组。 | |
3. 安装 VxVM 软件。 |
如何安装 VERITAS Volume Manager 软件 VxVM 安装文档 |
4.(可选)创建根磁盘组。您可以封装根磁盘或在本地的非根磁盘上创建根磁盘组。 | |
5.(可选)对封装的根磁盘进行镜像。 | |
6. 创建磁盘组。 |
根磁盘组的创建是可选操作。如果不需要创建根磁盘组,请继续执行如何安装 VERITAS Volume Manager 软件。
只有节点自身才能访问该节点的根磁盘组。
远程节点永远不能访问存储于其他节点的根磁盘组中的数据。
请勿使用 cldevicegroup 命令将根磁盘组注册为设备组。
只要有可能,请在非共享磁盘上为每个节点配置根磁盘组。
Sun Cluster 软件支持下列配置根磁盘组的方法。
封装节点的根磁盘 – 通过此方法可以对根磁盘进行镜像,镜像的根磁盘将在根磁盘被损坏时提供引导备用根磁盘。要封装根磁盘,需要两个空闲磁盘片以及一些空闲柱面,最好在磁盘的开始或结尾处。
使用本地非根磁盘 – 此方法用于提供封装根磁盘的备用方法。如果已封装节点的根磁盘,则稍后可能要执行某些任务,比如升级 Solaris OS 或执行灾难恢复过程;如果未封装根磁盘,则情况会更加复杂。为避免这种可能增加的复杂性,您可以初始化或封装本地非根磁盘来用作根磁盘组。
在本地非根磁盘上创建的根磁盘组对于该节点来说是本地根磁盘组,既不能全局访问,也不具有高可用性。与根磁盘的情况一样,封装非根磁盘要求在磁盘的开始或结尾处有两个空闲磁盘片以及一些空闲柱面。
有关详细信息,请参阅 VxVM 安装文档。
执行该过程以在要安装 VxVM 的每个节点上安装 VERITAS Volume Manager (VxVM) 软件。您可以在群集的所有节点上安装 VxVM,也可以只将 VxVM 安装在与 VxVM 管理的存储设备具有物理连接的节点上。
请执行以下任务:
确保群集中的所有节点均以群集模式运行。
获得安装所需的 VERITAS Volume Manager (VxVM) 许可证密钥。
准备好 VxVM 安装文档。
成为要安装 VxVM 的群集节点上的超级用户。
将 VxVM CD-ROM 放入节点上的 CD-ROM 驱动器中。
请按照 VxVM 安装指南中介绍的过程安装和配置 VxVM 软件和许可证。
在非交互模式下运行 clvxvm 实用程序。
phys-schost# clvxvm initialize |
clvxvm 实用程序将执行必要的安装后任务。clvxvm 实用程序还会选择并配置一个群集范围的 vxio 驱动程序主编号。有关更多信息,请参见 clvxvm(1CL) 手册页。
SPARC:要启用 VxVM 群集功能,请提供群集功能的许可证密钥(如果尚未提供)。
有关如何添加许可证的信息,请参阅 VxVM 文档。
(可选的)安装 VxVM GUI。
有关安装 VxVM GUI 的信息,请参阅 VxVM 文档。
弹出 CD-ROM。
安装所有 VxVM 修补程序以支持 Sun Cluster 软件。
有关修补程序和安装说明所在的位置,请参见《Sun Cluster 3.2 发行说明(适用于 Solaris OS)》中的“修补程序和所需的固件级别”。
在其他任何节点上重复执行步骤 1 至步骤 8 以安装 VxVM。
SPARC:要启用 VxVM 群集功能,您必须在群集中的所有节点上安装 VxVM。
如果您不想在一个或多个节点上安装 VxVM,请修改每个非 VxVM 节点上的 /etc/name_to_major 文件。
在安装了 VxVM 的节点上,确定 vxio 主编号设置。
phys-schost# grep vxio /etc/name_to_major |
成为您不打算在其上安装 VxVM 的节点上的超级用户。
编辑 /etc/name_to_major 文件并添加一个条目以将 vxio 主设备号设置为 NNN(在步骤 a 中得到的编号)。
phys-schost# vi /etc/name_to_major vxio NNN |
初始化 vxio 条目。
phys-schost# drvconfig -b -i vxio -m NNN |
在无需安装 VxVM 的所有其他节点上重复执行步骤 a 至步骤 d。
完成后,群集中的每个节点在其 /etc/name_to_major 文件中应具有相同的 vxio 条目。
要创建根磁盘组,请转至SPARC: 如何封装根磁盘或如何在非根磁盘上创建根磁盘组。
否则,请继续执行步骤 12。
根磁盘组是可选的。
重新引导安装了 VxVM 的每个节点。
phys-schost# shutdown -g0 -y -i6 |
要创建根磁盘组,请转至SPARC: 如何封装根磁盘或如何在非根磁盘上创建根磁盘组。
否则,请创建磁盘组。请转至在群集中创建磁盘组。
执行该过程以通过封装根磁盘创建根磁盘组。根磁盘组是可选的。有关更多信息,请参见 VxVM 文档。
如果要在非根磁盘上创建根磁盘组,应执行如何在非根磁盘上创建根磁盘组所述的过程。
确保按照如何安装 VERITAS Volume Manager 软件中的说明安装了 VxVM。
成为安装了 VxVM 的节点上的超级用户。
封装根磁盘。
phys-schost# clvxvm encapsulate |
有关更多信息,请参见 clvxvm(1CL) 手册页。
对安装了 VxVM 的任何其他节点重复执行上述过程。
要对封装的根磁盘进行镜像,请转至如何镜像封装的根磁盘。
否则,请转至在群集中创建磁盘组。
使用此过程,通过封装或初始化本地磁盘而不是根磁盘来创建根磁盘组。根磁盘组的创建是可选操作。
如果要在根磁盘上创建根磁盘组,应执行SPARC: 如何封装根磁盘中的过程。
如果要封装磁盘,则确保每个磁盘至少有两个具有 0 柱面的磁盘片。如果需要,请使用 format(1M) 命令为每个 VxVM 分片指定 0 柱面。
成为超级用户。
启动 vxinstall 实用程序。
phys-schost# vxinstall |
当 vxinstall 实用程序出现提示时,请进行以下选择或按以下条目进行操作。
SPARC:要启用 VxVM 群集功能,请提供群集功能的许可证密钥。
选择定制安装。
不要封装引导磁盘。
选择要添加到根磁盘组的所有磁盘。
不要接受自动重新引导。
如果创建的根磁盘组包含连接至多个节点的一个或多个磁盘,则启用 localonly 属性。
使用以下命令为根磁盘组中的每个共享磁盘启用原始磁盘设备组的 localonly 属性。
phys-schost# cldevicegroup set -p localonly=true dsk/dN |
指定设备组的属性。
将设备组设置为仅受节点列表中单个节点的控制。
启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果根磁盘组使用的磁盘与多个节点连接,则启用该属性可以防止意外地将节点与该磁盘隔开。
有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。
phys-schost# clnode evacuate from-node |
指定要从中移出资源组或设备组的节点的名称。
重新引导该节点。
phys-schost# shutdown -g0 -y -i6 |
使用 vxdiskadm 命令以将多个磁盘添加到根磁盘组中。
如果根磁盘组包含多个磁盘,则该磁盘组具有磁盘容错功能。有关过程的信息,请参阅 VxVM 文档。
创建磁盘组。转至在群集中创建磁盘组。
安装 VxVM 并封装根磁盘后,在要对其已封装的根磁盘进行镜像的每个节点上执行此过程。
确保按照SPARC: 如何封装根磁盘中的说明封装了根磁盘。
成为超级用户。
列出设备。
phys-schost# cldevice list -v |
输出类似于以下内容:
DID 设备 完整设备路径 ---------- ---------------- 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 |
镜像封装的根磁盘。
为了获得最高可用性并简化管理,使用本地磁盘进行镜像。有关其他指导信息,请参见镜像根磁盘指南。
不要使用法定设备镜像根磁盘。在某些情况下,使用法定设备镜像根磁盘可能会使节点不从根磁盘镜像启动。
设备组名称的格式为 dsk/dN,其中 dN 为 DID 设备名称。
phys-schost# cldevicegroup list -v dsk/dN |
显示详细输出。
输出类似于以下内容。
设备组 类型 节点列表 ------------ ---- --------- dsk/dN Local_Disk phys-schost-1, phys-schost-3 |
如果节点列表包含多个节点名称,请从节点列表中删除除去已镜像根磁盘的节点以外的所有节点。
原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。
phys-schost# cldevicegroup remove-node -n node dsk/dN |
指定要从设备组节点列表中删除的节点。
启用原始磁盘设备组的 localonly 属性(如果该属性尚未启用)。
启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该特性可以防止意外地将节点与其引导设备隔开。
phys-schost# cldevicegroup set -p localonly=true dsk/dN |
设置设备组属性的值。
启用设备组的 localonly 属性。
有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。
对群集中要镜像其已封装的根磁盘的每个节点重复该过程。
以下示例显示了为节点 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. 检验磁盘组和卷。 |
使用此过程来创建 VxVM 磁盘组和卷。
从一个节点执行此过程,该节点与组成要添加的磁盘组的各个磁盘具有物理连接。
请执行以下任务:
建立存储磁盘驱动器的映射。初次安装存储设备时,请参阅 Sun Cluster Hardware Administration Collection 中的相应手册。
完成以下配置规划工作单。
有关规划指导,请参见规划卷管理。
如果未创建根磁盘组,请确保已按照如何安装 VERITAS Volume Manager 软件的步骤 12 所述对安装有 VxVM 的每个节点进行了重新引导。
成为将拥有磁盘组的节点上的超级用户。
创建 VxVM 磁盘组和卷。
请遵循以下特殊说明:
SPARC:如果要安装 Oracle RAC,请使用 VxVM 的群集功能创建共享的 VxVM 磁盘组。请遵循《Sun Cluster Data Service for Oracle RAC Guide for Solaris OS》中的“How to Create a VxVM Shared-Disk Group for the Oracle RAC Database”以及《VERITAS Volume Manager Administrator's Reference Guide》中的指导信息和说明进行操作。
否则,请使用 VxVM 文档中介绍的标准过程来创建 VxVM 磁盘组。
如果节点出现故障,则可使用脏区记录 (Dirty Region Logging, DRL) 来缩短卷的恢复时间。但是,使用 DRL 可能减少 I/O 吞吐量。
对于本地磁盘组,请设置 localonly 属性,并向磁盘组的节点列表中添加单个节点。
配置为仅本地的磁盘组不具备高可用性也无法进行全局访问。
确定下一个步骤:
SPARC:如果启用了 VxVM 群集功能,请转至如何检验磁盘组配置。
如果所创建的磁盘组不是本地磁盘组,并且未启用 VxVM 群集功能,请将磁盘组注册为 Sun Cluster 设备组。请转至如何注册磁盘组。
如果创建了仅本地磁盘组,请转至如何检验磁盘组配置。
如果未启用 VxVM 群集功能,请执行以下过程将非本地磁盘组注册为 Sun Cluster 设备组。
SPARC:如果启用了 VxVM 群集功能或者创建了本地磁盘组,请勿执行此过程。而应继续执行如何检验磁盘组配置中的操作。
成为群集中一个节点上的超级用户。
将全局磁盘组注册为 Sun Cluster 设备组。
使用以下命令查看所显示的新磁盘的磁盘设备信息。
phys-schost# cldevicegroup status |
转至如何检验磁盘组配置。
栈溢出 – 如果将设备组联机时发生了栈溢出,则可能是由于线程栈大小的默认值不够大。在每个节点上,将条目 set cl_comm:rm_thread_stacksize=0xsize 添加到 /etc/system 文件中,其中 size 为大于 8000(默认设置)的数字。
配置更改 – 如果更改了 VxVM 设备组或其卷的任何配置信息,则必须使用 clsetup 实用程序注册这些配置更改。必须注册的配置更改包括添加或删除卷,以及更改现有卷的组、所有者或权限。有关注册对 VxVM 设备组所做的配置更改的过程,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理设备组”。
如果由于次编号与另一磁盘组的次编号冲突而导致设备组注册失败,则必须为新磁盘组分配一个未使用过的新次编号。遵照此过程,为磁盘组重编次编号。
成为群集中一个节点上的超级用户。
确定正在使用的次编号。
phys-schost# ls -l /global/.devices/node@1/dev/vx/dsk/* |
选择其它任何未使用的 1000 的倍数作为新磁盘组的基本次编号。
将该新的基本次编号分配给磁盘组。
phys-schost# vxdg reminor diskgroup base-minor-number |
以下示例使用了 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 设备组。请转至如何注册磁盘组。
请在群集的各个节点上都执行此过程。
成为超级用户。
列出磁盘组。
phys-schost# vxdisk list |
列出设备组。
phys-schost# cldevicegroup list -v |
检验是否已正确配置所有磁盘组。
确保满足以下要求:
根磁盘组仅包含本地磁盘。
仅在当前的主节点上导入了所有磁盘组和所有本地磁盘组。
phys-schost# vxprint |
检验是否所有的磁盘组都已被注册为 Sun Cluster 设备组并且都处于联机状态。
phys-schost# cldevicegroup status |
输出中不应显示任何本地磁盘组。
(可选的)捕获磁盘分区信息,以供将来参考之用。
phys-schost# prtvtoc /dev/rdsk/cNtXdYsZ > filename |
应将该文件存储在群集外部的某个位置。如果对磁盘配置进行了任何更改,请再次运行此命令以捕获更改后的配置信息。如果磁盘发生故障需要更换,则可以使用此信息来恢复磁盘分区配置。有关更多信息,请参见 prtvtoc(1M) 手册页。
(可选的)对群集配置进行备份。
对群集配置的归档备份有助于您更方便地恢复群集配置。
请遵循以下指导信息来管理 Sun Cluster 配置中的 VxVM 磁盘组:
VxVM 设备组 - 已注册为设备组的 VxVM 磁盘组将由 Sun Cluster 软件来管理。将某个磁盘组注册为设备组之后,切勿使用 VxVM 命令来导入或导出该 VxVM 磁盘组。Sun Cluster 软件可以处理所有需要导入或导出设备组的情况。有关如何管理设备组的过程,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理设备组”。
本地磁盘组 - Sun Cluster 软件不会对本地 VxVM 磁盘组进行管理。请按照在非群集系统中的方式使用 VxVM 命令来管理本地磁盘组。
如果 cldevicegroup status 命令的输出中包含任何本地磁盘组,则说明没有正确配置所显示的磁盘组以进行仅本地访问。请返回如何创建磁盘组,以重新配置该本地磁盘组。
查看以下列表以确定下一项要执行的任务(该任务应适用于您的群集配置)。如果需要执行此列表中的多项任务,请转至其中在列表中排在最前面的那项任务。
要创建群集文件系统,请转至如何创建群集文件系统。
要在节点上创建非全局区域,请转至如何在群集节点上创建非全局区域。
SPARC:要配置 Sun Management Center 以监视群集,请转至SPARC: 为 Sun Management Center 安装 Sun Cluster 模块。
请安装第三方应用程序、注册资源类型、设置资源组并配置数据服务。请参见应用程序软件附带的文档以及《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》。
本节介绍了如何在 Sun Cluster 配置中取消根磁盘的封装。
执行此过程以取消根磁盘的封装。
请执行以下任务:
确保在根磁盘上只存在 Solaris 根文件系统。Solaris 根文件系统为根 (/)、交换文件、全局设备名称空间、/usr、/var、/opt 和 /home。
将驻留在根磁盘上的 Solaris 根文件系统以外的所有文件系统进行备份并从根磁盘中删除。
成为要取消封装的节点的超级用户。
从节点中清空所有资源组和设备组。
phys-schost# clnode evacuate from-node |
指定要从中移出资源组或设备组的节点的名称。
phys-schost# clinfo -n |
卸载此节点的全局设备文件系统,其中 N 为在步骤 3 中得到的节点 ID 号。
phys-schost# umount /global/.devices/node@N |
查看 /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 |
从根磁盘组中删除与全局设备文件系统对应的 VxVM 卷。
phys-schost# vxedit -g rootdiskgroup -rf rm rootdiskxNvol |
请勿在全局设备文件系统中存储全局设备所对应的设备条目之外的数据。删除 VxVM 卷时,全局设备文件系统中的所有数据都会遭到破坏。在根磁盘的封装被取消之后,仅恢复与全局设备条目相关的数据。
取消根磁盘的封装。
请不要接受从命令发出的关机请求。
phys-schost# /etc/vx/bin/vxunroot |
有关详细信息,请参阅 VxVM 文档。
使用 format(1M) 命令将 512 MB 的分区添加到根磁盘中,以供全局设备文件系统使用。
使用 /etc/vfstab 文件中指定的同一个盘片,即:该根磁盘被封装之前分配给全局设备文件系统的那个盘片。
在您在步骤 8 中创建的分区上设置文件系统。
phys-schost# newfs /dev/rdsk/cNtXdYsZ |
确定根磁盘的 DID 名称。
phys-schost# cldevice list cNtXdY dN |
在 /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 |
安装全局设备文件系统。
phys-schost# mount /global/.devices/node@N |
从群集的一个节点上,为所有原始磁盘设备和 Solaris Volume Manager 设备的设备节点上重新装入全局设备文件系统。
phys-schost# cldevice populate |
VxVM 设备在下一次重新引导时创建。
在继续执行下一个步骤之前,请先在每个节点上检验 cldevice populate 命令是否已完成其处理过程。
即使仅从一个节点中发出 cldevice populate 命令,该命令也会以远程方式在所有节点上执行。要确定 cldevice populate 命令是否已完成处理过程,请在群集的每个节点上运行以下命令。
phys-schost# ps -ef | grep scgdevs |
重新引导该节点。
phys-schost# shutdown -g0 -y -i6 |
在群集的每个节点上重复该过程,以在这些节点上取消根磁盘的封装。