使用本章中的过程以及规划卷管理中的规划信息为 Veritas Volume Manager (VxVM) 安装和配置本地磁盘和多主机磁盘。有关详细信息,请参阅 VxVM 文档。
本章包含以下几节:
本节提供了在 Sun Cluster 配置中安装和配置 VxVM 软件的信息和过程。
下表列出了为 Sun Cluster 配置而安装和配置 VxVM 软件所需执行的任务。按照以下顺序完成操作。
表 5–1 任务表:安装和配置 VxVM 软件
任务 |
指导 |
---|---|
规划 VxVM 配置的布局。 | |
(可选)确定如何在每个节点上创建根磁盘组。 | |
安装 VxVM 软件。 |
如何安装 Veritas Volume Manager 软件 VxVM 安装文档 |
(可选)创建根磁盘组。您可以封装根磁盘或在本地的非根磁盘上创建根磁盘组。 | |
(可选)对封装的根磁盘进行镜像。 | |
创建磁盘组。 |
根磁盘组的创建是可选操作。如果您不打算创建根磁盘组,请参见如何安装 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 发行说明中的“修补程序和必需的固件级别”。
在其他所有节点上重复执行步骤 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) 命令将 0 柱面指定给每个 VxVM 分片。
成为超级用户。
启动 vxinstall 实用程序。
phys-schost# vxinstall |
当 vxinstall 实用程序出现提示时,请进行以下选择或输入。
SPARC:要启用 VxVM 群集功能,请提供群集功能的许可证密钥。
选择定制安装。
不要封装引导磁盘。
选择要添加到根磁盘组的所有磁盘。
不要接受自动重新引导。
如果创建的根磁盘组包含一个或多个连接到多个节点的磁盘,请确保对此类磁盘禁用隔离功能。
使用以下命令对根磁盘组中的每个共享磁盘禁用隔离功能。
phys-schost# cldevice set -p default_fencing=nofencing device |
指定一个设备属性。
对指定的设备禁用隔离功能。
如果根磁盘组使用的磁盘与多个节点连接,则对该设备禁用隔离功能可以防止意外地将节点与该磁盘隔离。
有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。
phys-schost# clnode evacuate from-node |
指定要从中移出资源组或设备组的节点的名称。
重新引导该节点。
phys-schost# shutdown -g0 -y -i6 |
使用 vxdiskadm 命令将多个磁盘添加到根磁盘组中。
如果根磁盘组包含多个磁盘,则该磁盘组具有磁盘容错功能。有关过程的信息,请参阅 VxVM 文档。
创建磁盘组。请转至在群集中创建磁盘组。
安装 VxVM 并封装根磁盘后,在要对其已封装的根磁盘进行镜像的每个节点上执行此过程。
确保按照SPARC: 如何封装根磁盘中的说明封装了根磁盘。
成为超级用户。
列出设备。
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 |
镜像封装的根磁盘。
为了获得最高可用性并简化管理,使用本地磁盘进行镜像。有关其他指导信息,请参见根磁盘镜像指导。
不要使用法定设备镜像根磁盘。在某些情况下,使用法定设备镜像根磁盘可能会使节点不从根磁盘镜像启动。
设备组名称的格式为 dsk/dN,其中 dN 为 DID 设备名称。
phys-schost# cldevicegroup list -v dsk/dN |
显示详细的输出。
输出类似于以下内容。
Device group Type Node list ------------ ---- --------- dsk/dN Local_Disk phys-schost-1, phys-schost-3 |
如果该节点列表包含多个节点名称,请从节点列表中删除已镜像其根磁盘的节点除外的所有节点。
原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。
phys-schost# cldevicegroup remove-node -n node dsk/dN |
指定要从设备组节点列表中删除的节点。
对原始磁盘设备组中与多个节点相连的所有磁盘禁用隔离功能。
如果引导设备与多个节点连接,则对某个设备禁用隔离功能可以防止意外地将节点与其引导设备隔离。
phys-schost# cldevice set -p default_fencing=nofencing device |
设置设备属性的值。
对指定的设备禁用隔离功能。
有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。
对群集中要镜像其已封装的根磁盘的每个节点重复该过程。
以下示例显示了为节点 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 设备组。 | |
如有必要,请通过分配新的从设备号来解决设备组之间的从设备号冲突。 | |
检验磁盘组和卷。 |
使用此过程来创建 VxVM 磁盘组和卷。
从一个节点执行此过程,该节点与组成要添加的磁盘组的各个磁盘具有物理连接。
执行以下任务:
建立存储磁盘驱动器的映射。初次安装存储设备时,请参见 Sun Cluster Hardware Administration Collection 中的相应手册。
完成以下配置规划工作单。
有关规划指导,请参见规划卷管理。
如果未创建根磁盘组,请确保已按照如何安装 Veritas Volume Manager 软件的步骤 12 中所述对重新引导了装有 VxVM 的每个节点。
成为将拥有磁盘组的节点上的超级用户。
创建 VxVM 磁盘组和卷。
请遵循以下特殊说明:
SPARC:如果要安装 Oracle Real Application Clusters,请使用 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 设备组。
启动 clsetup 实用程序。
phys-schost# clsetup |
选择菜单项 "Device groups and volumes"。
选择菜单项 "Register a VxVM disk group"。
按照说明指定要注册为 Sun Cluster 设备组的 VxVM 磁盘组。
完成后,退出 clsetup 实用程序。
逐出并重新导入每个本地磁盘组。
phys-schost# vxdg deport diskgroup # vxdg import dg |
重新启动每个本地磁盘组。
phys-schost# vxvol -g diskgroup startall |
检验每个本地磁盘组的仅限本地状态。
如果磁盘组的 flags 属性的值为 nogdl,则说明该磁盘组已正确配置为仅限本地访问。
phys-schost# vxdg list diskgroup | grep flags flags: nogdl |
使用以下命令查看所显示的新磁盘的磁盘设备信息。
phys-schost# cldevicegroup status |
请转至如何验证磁盘组配置。
栈溢出-如果在设备组联机时发生了栈溢出,则说明线程栈大小的默认值可能不够大。在每个节点上,将条目 set cl_haci: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 系统管理指南(适用于 Solaris OS)》中的“如何备份群集配置”。
请遵循以下指导信息来管理 Sun Cluster 配置中的 VxVM 磁盘组:
VxVM 设备组-已注册为设备组的 VxVM 磁盘组由 Sun Cluster 软件来管理。将某个磁盘组注册为设备组之后,切勿使用 VxVM 命令来导入或逐出该 VxVM 磁盘组。Sun Cluster 软件可以处理所有需要导入或逐出设备组的情况。有关如何管理设备组的过程,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理设备组”。
本地磁盘组-本地 VxVM 磁盘组不是由 Sun Cluster 软件来管理。请按照在非群集系统中的方式使用 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 根文件系统包括 root (/)、swap、全局设备名称空间、/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 |
在群集的每个节点上重复该过程,以在这些节点上取消根磁盘的封装。