使用本章中的过程以及规划卷管理中的规划信息为 VERITAS Volume Manager (VxVM) 安装和配置本地磁盘和多主机磁盘。有关详细信息,请参阅 VxVM 文档。
本章包含以下几个部分:
本节提供了在 Sun Cluster 配置中安装和配置 VxVM 软件的信息和过程。
下表列出了为 Sun Cluster 配置而安装和配置 VxVM 软件所需执行的任务。
表 4–1 SPARC: 任务对应关系:安装和配置 VxVM 软件
任务 |
参考 |
---|---|
1. 规划 VxVM 配置的布局。 | |
2. 确定如何在每个节点上创建根磁盘组。从 VxVM 4.0 开始,创建根磁盘组是可选的。 | |
3. 安装 VxVM 软件。 |
SPARC: 如何安装 VERITAS Volume Manager 软件 VxVM 安装文档 |
4. 如果需要,创建根磁盘组。您可以封装根磁盘或在本地的非根磁盘上创建根磁盘组。 | |
5.(可选)对封装的根磁盘进行镜像。 | |
6. 创建磁盘组。 |
从 VxVM 4.0 开始,创建根磁盘组是可选的。如果不需要创建根磁盘组,请继续执行SPARC: 如何安装 VERITAS Volume Manager 软件。
对于 VxVM 3.5,每个群集节点都要求在安装 VxVM 之后创建根磁盘组。VxVM 使用此根磁盘组存储配置信息,并受以下限制。
只有节点自身才能访问该节点的根磁盘组。
远程节点永远不能访问存储于其他节点的根磁盘组中的数据。
不要使用 scconf(1M) 命令将根磁盘组注册为磁盘设备组。
只要有可能,请在非共享磁盘上为每个节点配置根磁盘组。
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 4.1,请按照 VxVM 安装指南中的过程安装和配置 VxVM 软件和许可证。
对于 VxVM 4.1,scvxinstall 命令不再执行安装 VxVM 软件包和许可证的任务,而是执行必要的安装后任务。
在非交互模式下运行 scvxinstall 实用程序。
对于 VxVM 4.0 和早期版本,请使用以下命令:
# scvxinstall -i -L {license | none} |
安装 VxVM 但不封装根磁盘
安装指定的 license。none 参数指定不添加其他许可证密钥。
对于 VxVM 4.1,请使用以下命令:
# scvxinstall -i |
对于 VxVM 4.1,验证 VxVM 是否已安装但并未封装根磁盘
scvxinstall 实用程序还用于选择和配置群集范围的 vxio 驱动程序主设备号。有关更多信息,请参见 scvxinstall(1M) 手册页。
如果要启用 VxVM 群集属性,请提供群集属性的许可证密钥(如果尚未提供)。
有关如何添加许可证的信息,请参阅 VxVM 文档。
(可选的)安装 VxVM GUI。
有关安装 VxVM GUI 的信息,请参阅 VxVM 文档。
弹出 CD-ROM。
安装所有 VxVM 修补程序。
有关修补程序的位置和安装说明,请参见《Sun Cluster 3.1 8/05 发行说明(适用于 Solaris OS)》中的“修补程序和所需的固件级别”。
(可选的)对于 VxVM 4.0 和早期版本,如果不希望 VxVM 手册页驻留在群集节点中,请删除手册页软件包。
# pkgrm VRTSvmman |
重复执行步骤 1 至步骤 9 以将 VxVM 安装到任何其他节点上。
如果要启用 VxVM 群集属性,则必须在群集的所有节点上安装 VxVM。
如果您不想在一个或多个节点上安装 VxVM,请修改每个非 VxVM 节点上的 /etc/name_to_major 文件。
在安装了 VxVM 的节点上,确定 vxio 主编号设置。
# grep vxio /etc/name_to_major |
成为您不打算在其上安装 VxVM 的节点上的超级用户。
编辑 /etc/name_to_major 文件并添加一个条目以将 vxio 主设备号设置为 NNN(在步骤 a 中得到的编号)。
# vi /etc/name_to_major vxio NNN |
初始化 vxio 条目。
# drvconfig -b -i vxio -m NNN |
在无需安装 VxVM 的所有其他节点上重复执行步骤 a 至步骤 d。
完成后,群集中的每个节点在其 /etc/name_to_major 文件中应具有相同的 vxio 条目。
要创建根磁盘组,请转至SPARC: 如何封装根磁盘或SPARC: 如何在非根磁盘上创建根磁盘组。
否则,请继续执行步骤 13。
VxVM 3.5 要求创建根磁盘组。对于 VxVM 4.0 和更高版本,根磁盘组是可选的。
重新引导安装了 VxVM 的每个节点。
# shutdown -g0 -y -i6 |
要创建根磁盘组,请转至SPARC: 如何封装根磁盘或SPARC: 如何在非根磁盘上创建根磁盘组。
否则,请创建磁盘组。转至SPARC: 在群集中创建磁盘组。
执行该过程以通过封装根磁盘创建根磁盘组。对于 VxVM 3.5,根磁盘组是必需的。对于 VxVM 4.0 和更高版本,根磁盘组是可选的。有关更多信息,请参见 VxVM 文档。
如果要在非根磁盘上创建根磁盘组,应执行SPARC: 如何在非根磁盘上创建根磁盘组中的过程。
确保按照SPARC: 如何安装 VERITAS Volume Manager 软件中的说明安装了 VxVM。
成为安装了 VxVM 的节点上的超级用户。
封装根磁盘。
# scvxinstall -e |
封装根磁盘
有关更多信息,请参见 scvxinstall(1M)。
对安装了 VxVM 的任何其他节点重复执行上述过程。
要对封装的根磁盘进行镜像,请转至SPARC: 如何镜像封装的根磁盘。
否则,请转至SPARC: 在群集中创建磁盘组。
使用此过程,通过封装或初始化本地磁盘而不是根磁盘来创建根磁盘组。从 VxVM 4.0 开始,创建根磁盘组是可选的。
如果要在根磁盘上创建根磁盘组,应执行SPARC: 如何封装根磁盘中的过程。
如果要封装磁盘,则确保每个磁盘至少有两个具有 0 柱面的磁盘片。如果需要,请使用 format(1M) 命令为每个 VxVM 分片指定 0 柱面。
成为节点的超级用户。
启动 vxinstall 公用程序。
# vxinstall |
得到提示后,执行下列选择或输入。
要启用 VxVM 群集功能,请提供群集功能许可证密钥。
选择定制安装。
不要封装引导磁盘。
选择要添加到根磁盘组的所有磁盘。
不要接受自动重新引导。
如果创建的根磁盘组包含连接至多个节点的一个或多个磁盘,则启用 localonly 属性。
使用以下命令为根磁盘组中的每个共享磁盘启用原始磁盘设备组的 localonly 属性。
# scconf -c -D name=dsk/dN,localonly=true |
启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果根磁盘组使用的磁盘与多个节点连接,则启用该属性可以防止意外地将节点与该磁盘隔开。
有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。
# scswitch -S -h from-node |
清空所有资源组和设备组
指定要从中清空资源组或设备组的节点的名称
重新引导该节点。
# shutdown -g0 -y -i6 |
使用 vxdiskadm 命令以将多个磁盘添加到根磁盘组中。
如果根磁盘组包含多个磁盘,则该磁盘组具有磁盘容错功能。有关过程的信息,请参阅 VxVM 文档。
创建磁盘组。转至SPARC: 在群集中创建磁盘组。
安装 VxVM 并封装根磁盘后,在要对其已封装的根磁盘进行镜像的每个节点上执行此过程。
确保按照SPARC: 如何封装根磁盘中的说明封装了根磁盘。
镜像封装的根磁盘。
请按照 VxVM 文档中的过程进行操作。为了获得最高可用性并简化管理,使用本地磁盘进行镜像。有关其他指导信息,请参见镜像根磁盘指南。
不要使用法定设备镜像根磁盘。在某些情况下,使用法定设备镜像根磁盘可能会使节点不从根磁盘镜像启动。
显示 DID 映射。
# scdidadm -L |
从 DID 映射中,定位用于镜像根磁盘的磁盘。
从根磁盘镜像的设备 ID 名称中提取原始磁盘设备组名称。
原始磁盘设备组的名称遵循惯例 dsk/dN,其中 N 是数字。在以下输出中,从中提取原始磁盘设备组名称的那部分 scdidadm 输出行用黑体突出显示。
N node:/dev/rdsk/cNtXdY /dev/did/rdsk/dN |
# scconf -pvv | grep dsk/dN Device group name: dsk/dN … (dsk/dN) Device group node list: phys-schost-1, phys-schost-3 … |
如果节点列表包含多个节点名称,请从节点列表中删除除镜像根磁盘的节点以外的所有节点。
原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。
# scconf -r -D name=dsk/dN,nodelist=node |
启用原始磁盘设备组的 localonly 属性。
启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该属性可以防止意外地将节点与其引导设备隔开。
# scconf -c -D name=dsk/dN,localonly=true |
有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。
对群集中要镜像其已封装的根磁盘的每个节点重复该过程。
以下示例显示了为节点 phys-schost-1 的根磁盘所创建的一个镜像。该镜像在磁盘 c1t1d0 上创建,其原始磁盘设备组名称为 dsk/d2。磁盘 c1t1d0 是多主机磁盘,因此,已从该磁盘的节点列表中删除了节点 phys-schost-3 并启用了 localonly 属性。
(显示 DID 映射) # scdidadm -L … 2 phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 2 phys-schost-3:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 … (显示镜像磁盘的原始磁盘设备组的节点列表) # scconf -pvv | grep dsk/d2 Device group name: dsk/d2 … (dsk/d2) Device group node list: phys-schost-1, phys-schost-3 … (从节点列表中删除 phys-schost-3) # scconf -r -D name=dsk/d2,nodelist=phys-schost-3 (启用 localonly 属性) # scconf -c -D name=dsk/d2,localonly=true |
创建磁盘组。转至SPARC: 在群集中创建磁盘组。
本节介绍了如何在群集中创建 VxVM 磁盘组。
下表列出了为 Sun Cluster 配置创建 VxVM 磁盘组需要执行的任务。
表 4–2 SPARC: 任务对应关系:创建 VxVM 磁盘组
任务 |
参考 |
---|---|
1. 创建磁盘组和卷。 | |
2. 如果需要,可通过指定新的从设备号解决磁盘设备组之间出现的任何从设备号冲突。 | |
3. 检验磁盘组和卷。 |
使用此过程来创建 VxVM 磁盘组和卷。
磁盘组在群集中注册为磁盘设备组后,一定不要使用 VxVM 命令导入或导出 VxVM 磁盘组。Sun Cluster 软件可以处理所有需要输入或清除磁盘组的情况。有关如何管理 Sun Cluster 磁盘设备组的过程,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理磁盘设备组”。
从一个节点执行此过程,该节点与组成要添加的磁盘组的各个磁盘具有物理连接。
执行以下任务:
建立存储磁盘驱动器的映射。初次安装存储设备时,请参阅 Sun Cluster Hardware Administration Collection 中的相应手册。
完成以下配置规划工作单。
有关规划指南,请参见规划卷管理。
如果未创建根磁盘组,请确保按照SPARC: 如何安装 VERITAS Volume Manager 软件的步骤 13 中的说明已重新引导安装了 VxVM 的每个节点。
成为将拥有磁盘组的节点上的超级用户。
创建 VxVM 磁盘组和卷。
如果要安装 Oracle Real Application Clusters,请使用 VxVM 群集属性创建共享 VxVM 磁盘组(如《VERITAS Volume Manager Administrator's Reference Guide》中所述)。否则,请使用 VxVM 文档中介绍的标准过程来创建 VxVM 磁盘组。
如果节点出现故障,您可以使用脏区日志记录 (DRL) 减少卷恢复时间。但是,使用 DRL 可能减少 I/O 吞吐量。
如果未启用 VxVM 群集功能,请将磁盘组注册为 Sun Cluster 磁盘设备组。
如果启用 VxVM 群集功能,则不要将共享磁盘组注册为 Sun Cluster 磁盘设备组。转至SPARC: 如何检验磁盘组配置。
启动 scsetup(1M) 实用程序。
# scsetup |
选择菜单项 "Device groups and volumes"。
选择菜单项 "Register a VxVM disk group"。
按照说明操作,指定要注册为 Sun Cluster 磁盘设备组的 VxVM 磁盘组。
完成后,退出 scsetup 实用程序。
使用以下命令查看所显示的新磁盘的磁盘设备信息。
# scstat -D |
无法注册设备组 – 如果在尝试注册磁盘设备组时遇到错误消息 scconf: Failed to add device group - in use,请为磁盘设备组重新指定从设备号。请按照SPARC: 如何给磁盘设备组分配新的次编号中的过程进行操作。通过此过程可以指定与现有磁盘设备组所使用的从设备号不冲突的新的从设备号。
堆栈溢出 – 如果在使磁盘设备组联机时堆栈溢出,则线程堆栈大小的默认值可能不够大。在每个节点上,将条目 set cl_comm:rm_thread_stacksize=0xsize 添加到 /etc/system 文件中,其中 size 为大于 8000(默认设置)的数字。
配置更改 – 如果更改 VxVM 磁盘组或卷的任何配置信息,则必须使用 scsetup 实用程序注册配置更改。必须注册的配置更改包括添加或删除卷,以及更改现有卷的组、属主或许可。有关注册对磁盘设备组的配置更改的过程,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理磁盘设备组”。
如果因为次编号与另一磁盘组的次编号冲突而导致磁盘设备组注册失败,则必须给该新磁盘组分配一个未使用过的新次编号。遵照此过程,为磁盘组重编次编号。
成为群集中一个节点上的超级用户。
确定正在使用的次编号。
# ls -l /global/.devices/node@1/dev/vx/dsk/* |
选择其它任何未使用的 1000 的倍数作为新磁盘组的基本次编号。
将该新的基本次编号分配给磁盘组。
# vxdg reminor diskgroup base-minor-number |
此示例使用从设备号 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 磁盘设备组。转至SPARC: 如何创建并注册磁盘组。
请在群集的各个节点上都执行此过程。
检验在根磁盘组中是否只包含本地磁盘,并检验是否只在当前主节点上输入了磁盘组。
# vxdisk list |
# vxprint |
检验是否已将所有磁盘组注册为 Sun Cluster 磁盘设备组以及这些磁盘组是否联机。
# scstat -D |
转至配置群集。
本节介绍了如何在 Sun Cluster 配置中取消根磁盘的封装。
执行此过程以取消根磁盘的封装。
执行以下任务:
确保在根磁盘上只存在 Solaris 根文件系统。Solaris 根文件系统为根 (/)、交换文件、全局设备名称空间、/usr、/var、/opt 和 /home。
将驻留在根磁盘上的 Solaris 根文件系统以外的所有文件系统进行备份并从根磁盘中删除。
成为要取消封装的节点的超级用户。
从节点中清空所有资源组和设备组。
# scswitch -S -h from-node |
清空所有资源组和设备组
指定要从中清空资源组或设备组的节点的名称
# clinfo -n |
卸载此节点的全局设备文件系统,其中 N 为在步骤 3 中得到的节点 ID 号。
# umount /global/.devices/node@N |
查看 /etc/vfstab 文件并确定哪个 VxVM 卷对应于全局设备文件系统。
# 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 卷。
# vxedit -g rootdiskgroup -rf rm rootdiskxNvol |
请不要在全局设备文件系统中存储全局设备的设备条目以外的任何数据。删除 VxVM 卷时,全局设备文件系统中的所有数据都会遭到破坏。在根磁盘的封装被取消之后,仅恢复与全局设备条目相关的数据。
取消根磁盘的封装。
请不要接受从命令发出的关机请求。
# /etc/vx/bin/vxunroot |
有关详细信息,请参阅 VxVM 文档。
使用 format(1M) 命令将 512 MB 的分区添加到根磁盘中,以供全局设备文件系统使用。
使用 /etc/vfstab 文件中指定的同一个盘片,即:该根磁盘被封装之前分配给全局设备文件系统的那个盘片。
在您在步骤 8 中创建的分区上设置文件系统。
# newfs /dev/rdsk/cNtXdYsZ |
确定根磁盘的 DID 名称。
# scdidadm -l cNtXdY 1 phys-schost-1:/dev/rdsk/cNtXdY /dev/did/rdsk/dN |
在 /etc/vfstab 文件中,用在步骤 10 中标识的 DID 路径替换全局设备文件系统条目中的路径名。
原有条目应类似于以下内容。
# 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 |
安装全局设备文件系统。
# mount /global/.devices/node@N |
从群集的一个节点上,为所有原始磁盘设备和 Solstice DiskSuite 或 Solaris Volume Manager 设备的设备节点上重新装入全局设备文件系统。
# scgdevs |
VxVM 设备在下一次重新引导时创建。
重新引导该节点。
# reboot |
在群集的每个节点上重复该过程,以在这些节点上取消根磁盘的封装。