下表列出了为 Sun Cluster 配置而配置 Solaris Volume Manager 软件所需执行的任务。按照以下顺序完成操作。
表 4–1 任务图:配置 Solaris Volume Manager 软件
任务 |
指导 |
---|---|
规划 Solaris Volume Manager 配置的布局。 | |
(仅限 Solaris 9)计算配置所需的卷名称和磁盘集的数目,并修改 /kernel/drv/md.conf 文件。 | |
在本地磁盘上创建状态数据库副本。 | |
(可选)对根磁盘上的文件系统进行镜像。 |
以下过程仅对 Solaris 9 OS 来说是必需的。如果群集是在 Solaris 10 OS 上运行,请继续执行如何创建状态数据库副本中的过程。
在 Solaris 10 版本中,Solaris Volume Manager 的功能已得到增强,它可以动态配置卷。不再需要编辑 /kernel/drv/md.conf 文件中的 nmd 和 md_nsets 参数。根据需要动态创建新卷。
本过程介绍如何确定配置所需的 Solaris Volume Manager 卷名称和磁盘集的数目。本过程还介绍如何修改 /kernel/drv/md.conf 文件以指定这些数目。
每个磁盘集的卷名称的默认数目是 128,但许多配置需要的数目要多于默认数目。着手配置前请增大这个数目,以便节省今后管理的时间。
同时,应尽可能使 nmd 字段和 md_nsets 字段的值保持最低。所有可能设备的内存结构由 nmd 和 md_nsets 确定,即使这些设备尚未创建也是如此。为了获得最佳性能,请使 nmd 和 md_nsets 的值仅比要使用的卷数略高一点。
准备好已填写完的设备组配置工作单。
计算群集中所需的磁盘集的总数,然后再添加一个磁盘集用于专用磁盘管理。
群集最多可以包含 32 个磁盘集,31 个磁盘集用于一般用途,外加一个磁盘集用于专用磁盘管理。磁盘集的默认数目为 4。您需要在步骤 3 中为 md_nsets 字段提供此值。
计算群集中的任何磁盘集预计需要的最大卷名称数目。
每个磁盘集最多可有 8192 个卷名称。您需要在步骤 3 中为 nmd 字段提供此值。
确定每个磁盘集预计需要的卷名称的数量。
如果使用的是本地卷,请确保其上挂载了全局设备文件系统 (/global/.devices/node@ nodeid) 的每个本地卷名称在整个群集中都是唯一的,并且没有使用与群集中的任何设备 ID 名称相同的名称。
选择专用于设备 ID 名称的数字范围,以及供每个节点专用于其本地卷名称的数字范围。例如,设备 ID 名称可以使用从 d1 到 d100 的范围。节点 1 上的本地卷名称可以使用从 d100 到 d199 的范围。节点 2 上的本地卷名称可以使用从 d200 到 d299 的范围。
计算您预计要在任何磁盘集中使用的卷名称的最大数量。
要设置的卷名称的数量基于卷名称值而不基于实际数量。例如,如果卷名称的范围为 d950 到 d1000,则 Solaris Volume Manager 软件要求您将值设置为 1000 个名称,而不是 50 个。
在每个节点上,成为超级用户并编辑 /kernel/drv/md.conf 文件。
所有群集节点(或群集对拓扑结构中的群集对)必须具有完全相同的 /kernel/drv/md.conf 文件,而不管每个节点为多少个磁盘集提供服务。不按本指南操作可能会导致严重的 Solaris Volume Manager 错误,并且可能丢失数据。
在每个节点上,执行重新配置后的重新引导。
phys-schost# touch /reconfigure phys-schost# shutdown -g0 -y -i6 |
在执行重新配置并重新引导之后,对 /kernel/drv/md.conf 文件进行的更改才能生效。
创建本地状态数据库副本。请转至如何创建状态数据库副本。
请对全局群集中的每个节点执行该过程。
成为超级用户。
在一个或多个本地设备上为每个群集节点创建状态数据库拷贝。
在指定要使用的分片时,请使用物理名称 (cNtXdY sZ) 而不是设备 ID 名称 (dN)。
phys-schost# metadb -af slice-1 slice-2 slice-3 |
要为状态数据提供保护(这是运行 Solaris Volume Manager 软件所必需的),则至少为每个节点创建三个副本。此外,您可以将拷贝放在多个设备上,以在其中一个设备出现故障时提供保护。
有关详细信息,请参见 metadb(1M) 手册页和您的 Solaris Volume Manager 文档。
检验副本。
phys-schost# metadb |
metadb 命令将显示副本列表。
以下示例显示了三个状态数据库副本。每个拷贝分别创建在不同的设备上。
phys-schost# metadb -af c0t0d0s7 c0t1d0s7 c1t0d0s7 phys-schost# metadb flags first blk block count a u 16 8192 /dev/dsk/c0t0d0s7 a u 16 8192 /dev/dsk/c0t1d0s7 a u 16 8192 /dev/dsk/c1t0d0s7 |
要镜像根磁盘上的文件系统,请转至镜像根磁盘。
否则,请转至在群集中创建磁盘集以创建 Solaris Volume Manager 磁盘集。
镜像根磁盘可防止因系统磁盘故障而关闭群集节点。四种类型的文件系统可驻留在根磁盘中。每种文件系统的镜像方法各不相同。
使用下列过程镜像各种类型的文件系统。
对于本地磁盘镜像,在指定磁盘名称时不要将 /dev/global 用作路径。如果为非群集文件系统的系统指定了该路径,系统将无法引导。
使用此过程可以镜像根 (/) 文件系统。
此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 B “Sun Cluster 面向对象的命令”。
成为超级用户。
将 root 分片置于单片(单向)串联中。
指定根磁盘分片的物理磁盘名称 (cNtXdY sZ)。
phys-schost# metainit -f submirror1 1 1 root-disk-slice |
创建第二个串联。
phys-schost# metainit submirror2 1 1 submirror-disk-slice |
创建具有一个子镜像的单向镜像。
phys-schost# metainit mirror -m submirror1 |
如果该设备是用于挂载全局设备文件系统 /global/.devices/node@nodeid 的本地设备,则镜像的卷名称在整个群集中必须是唯一的。
设置根 (/) 目录的系统文件。
phys-schost# metaroot mirror |
此命令编辑 /etc/vfstab 和 /etc/system 文件,以便可以通过元设备或卷上的根 (/) 文件系统来引导系统。有关更多信息,请参见 metaroot(1M) 手册页。
清理所有文件系统。
phys-schost# lockfs -fa |
该命令清理日志中的所有事务,并将这些事务写入所有已安装的 UFS 文件系统上的主文件系统中。有关更多信息,请参见 lockfs(1M) 手册页。
从节点中清空任何资源组或设备组。
phys-schost# clnode evacuate from-node |
指定要从中抽出资源组或设备组的节点的名称。
重新引导该节点。
此命令将重新挂载刚刚镜像的根 (/) 文件系统。
phys-schost# shutdown -g0 -y -i6 |
将第二个子镜像与镜像连接。
phys-schost# metattach mirror submirror2 |
有关更多信息,请参见 metattach(1M) 手册页。
如果用于镜像根磁盘的磁盘物理连接到多个节点(多主机),请对该磁盘禁用隔离功能。
如果引导设备与多个节点连接,则对某个设备禁用隔离功能可以防止意外地将节点与其引导设备隔离。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
指定一个设备属性。
对指定的设备禁用隔离功能。
有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。
如果主引导设备出现故障,可以通过这个备用引导设备引导。有关备用引导设备的更多信息,请参见《Solaris Volume Manager Administration Guide》中的“Special Considerations for Mirroring root (/)”或《Solaris Volume Manager Administration Guide》中的“Creating a RAID-1 Volume”。
phys-schost# ls -l /dev/rdsk/root-disk-slice |
请确保要在其上挂载全局设备文件系统 /global/.devices/node@ nodeid 的每个卷名称在整个群集中是唯一的。
以下示例显示了在节点 phys-schost-1 上创建镜像 d0 的过程,该镜像由分区 c0t0d0s0 上的子镜像 d10 和分区 c2t2d0s0 上的子镜像 d20 组成。设备 c2t2d0 是多主机磁盘,因此 隔离功能处于禁用状态。此示例还显示了要记录的备用引导路径。
phys-schost# metainit -f d10 1 1 c0t0d0s0 d11: Concat/Stripe is setup phys-schost# metainit d20 1 1 c2t2d0s0 d12: Concat/Stripe is setup phys-schost# metainit d0 -m d10 d10: Mirror is setup phys-schost# metaroot d0 phys-schost# lockfs -fa phys-schost# clnode evacuate phys-schost-1 phys-schost# shutdown -g0 -y -i6 phys-schost# metattach d0 d20 d0: Submirror d20 is attachedphys-schost# cldevice set -p default_fencing=nofencing c2t2d0 phys-schost# ls -l /dev/rdsk/c2t2d0s0 lrwxrwxrwx 1 root root 57 Apr 25 20:11 /dev/rdsk/c2t2d0s0 –> ../../devices/node@1/pci@1f,0/pci@1/scsi@3,1/disk@2,0:a,raw |
要镜像全局设备名称空间 /global/.devices/node@nodeid,请转至如何镜像全局设备名称空间。
要镜像无法卸载的文件系统,请转至如何镜像除根 (/) 文件系统以外的无法卸载的文件系统。
要镜像用户定义的文件系统,请转至如何镜像无法卸载的文件系统。
否则,请转至在群集中创建磁盘集以创建磁盘集。
此镜像过程中的某些步骤可能会导致产生类似于 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。
使用此过程可镜像全局设备名称空间 /global/.devices/node@nodeid/。
此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 B “Sun Cluster 面向对象的命令”。
成为超级用户。
将全局设备名称空间分片置于单片(单向)串联中。
请使用磁盘分片的物理磁盘名称 (cNtXd Y sZ)。
phys-schost# metainit -f submirror1 1 1 diskslice |
创建第二个串联。
phys-schost# metainit submirror2 1 1 submirror-diskslice |
创建具有一个子镜像的单向镜像。
phys-schost# metainit mirror -m submirror1 |
要在其上挂载全局设备文件系统 /global/.devices/node@nodeid 的镜像的卷名称在整个群集中必须是唯一的。
将第二个子镜像与镜像连接。
这一连接操作会启动子镜像的同步。
phys-schost# metattach mirror submirror2 |
编辑 /global/.devices/node@nodeid 文件系统的 /etc/vfstab 文件条目。
请将 device to mount 和 device to fsck 列中的名称替换为镜像名称。
phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/mirror /dev/md/rdsk/mirror /global/.devices/node@nodeid ufs 2 no global |
等待在步骤 5 中启动的镜像同步完成。
请使用 metastat(1M) 命令查看镜像状态并检验镜像同步是否完成。
phys-schost# metastat mirror |
如果用于镜像全局设备名称空间的磁盘物理连接到多个节点(多主机),请对该磁盘禁用隔离功能。
如果引导设备与多个节点连接,则对某个设备禁用隔离功能可以防止意外地将节点与其引导设备隔离。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
指定一个设备属性。
对指定的设备禁用隔离功能。
有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。
以下示例显示了创建镜像 d101 的过程,该镜像由分区 c0t0d0s3 上的子镜像 d111 和分区 c2t2d0s3 上的子镜像 d121 组成。/global/.devices/node@1 的 /etc/vfstab 文件条目被更新为使用镜像名称 d101。设备 c2t2d0 是多主机磁盘,因此隔离功能处于禁用状态。
phys-schost# metainit -f d111 1 1 c0t0d0s3 d111: Concat/Stripe is setup phys-schost# metainit d121 1 1 c2t2d0s3 d121: Concat/Stripe is setup phys-schost# metainit d101 -m d111 d101: Mirror is setup phys-schost# metattach d101 d121 d101: Submirror d121 is attached phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/d101 /dev/md/rdsk/d101 /global/.devices/node@1 ufs 2 no global phys-schost# metastat d101 d101: Mirror Submirror 0: d111 State: Okay Submirror 1: d121 State: Resyncing Resync in progress: 15 % done … phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 === DID Device Instances === DID Device Name: /dev/did/rdsk/d2 Full Device Path: phys-schost-1:/dev/rdsk/c2t2d0 Full Device Path: phys-schost-3:/dev/rdsk/c2t2d0 … phys-schost# cldevicegroup show | grep dsk/d2 Device Group Name: dsk/d2 … Node List: phys-schost-1, phys-schost-3 … localonly: false phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2 phys-schost# cldevice set -p default_fencing=nofencing c2t2d0 |
要镜像除根 (/) 文件系统以外的无法卸载的文件系统,请转至如何镜像除根 (/) 文件系统以外的无法卸载的文件系统。
要镜像用户定义的文件系统,请转至如何镜像无法卸载的文件系统。
否则,请转至在群集中创建磁盘集以创建磁盘集。
此镜像过程中的某些步骤可能会导致产生类似于 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。
使用此过程可以在正常使用系统期间镜像除根 (/) 文件系统以外的无法卸载的文件系统,例如,/usr、/opt 或 swap。
此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 B “Sun Cluster 面向对象的命令”。
成为超级用户。
将无法卸载的文件系统所在分片置于单片(单向)串联中。
指定磁盘分片的物理磁盘名称 (cNtX dYsZ)。
phys-schost# metainit -f submirror1 1 1 diskslice |
创建第二个串联。
phys-schost# metainit submirror2 1 1 submirror-diskslice |
创建具有一个子镜像的单向镜像。
phys-schost# metainit mirror -m submirror1 |
此镜像的卷名称在整个群集中不必是唯一的。
在每个节点上,为已镜像的每个无法卸载的文件系统编辑 /etc/vfstab 文件条目。
将 device to mount 和 device to fsck 列中的名称替换为镜像名称。
phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/mirror /dev/md/rdsk/mirror /filesystem ufs 2 no global |
从节点中清空任何资源组或设备组。
phys-schost# clnode evacuate from-node |
指定要从中移出资源组或设备组的节点的名称。
重新引导该节点。
phys-schost# shutdown -g0 -y -i6 |
将第二个子镜像连接到每个镜像。
这一连接操作会启动子镜像的同步。
phys-schost# metattach mirror submirror2 |
等待在步骤 9 中启动的镜像同步完成。
请使用 metastat(1M) 命令查看镜像状态并检验镜像同步是否完成。
phys-schost# metastat mirror |
如果用于镜像无法挂载的文件系统的磁盘物理连接到多个节点(多主机),请对该磁盘禁用隔离功能。
如果引导设备与多个节点连接,则对某个设备禁用隔离功能可以防止意外地将节点与其引导设备隔离。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
指定一个设备属性。
对指定的设备禁用隔离功能。
有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。
以下示例显示了如何在节点 phys-schost-1 上创建镜像 d1 以镜像驻留在 c0t0d0s1 上的 /usr。镜像 d1 由分区 c0t0d0s1 上的子镜像 d11 和分区 c2t2d0s1 上的子镜像 d21 组成。/usr 的 /etc/vfstab 文件条目被更新为使用镜像名称 d1。设备 c2t2d0 是多主机磁盘,因此隔离功能处于禁用状态。
phys-schost# metainit -f d11 1 1 c0t0d0s1 d11: Concat/Stripe is setup phys-schost# metainit d21 1 1 c2t2d0s1 d21: Concat/Stripe is setup phys-schost# metainit d1 -m d11 d1: Mirror is setup phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/d1 /dev/md/rdsk/d1 /usr ufs 2 no global … phys-schost# clnode evacuate phys-schost-1 phys-schost# shutdown -g0 -y -i6 phys-schost# metattach d1 d21 d1: Submirror d21 is attached phys-schost# metastat d1 d1: Mirror Submirror 0: d11 State: Okay Submirror 1: d21 State: Resyncing Resync in progress: 15 % done … phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 … DID Device Name: /dev/did/rdsk/d2 phys-schost# cldevicegroup show dsk/d2 Device Group Name: dsk/d2 … Node List: phys-schost-1, phys-schost-3 … localonly: false phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2 phys-schost# cldevice set -p default_fencing=nofencing c2t2d0 |
要镜像用户定义的文件系统,请转至如何镜像无法卸载的文件系统。
否则,请转至在群集中创建磁盘集以创建磁盘集。
此镜像过程中的某些步骤可能会导致产生类似于 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。
使用该过程可以镜像无法卸载的用户定义文件系统。在此过程中,不需要重新引导节点。
此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简称的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 B “Sun Cluster 面向对象的命令”。
成为超级用户。
卸载要镜像的文件系统。
确保文件系统中没有正在运行的进程。
phys-schost# umount /mount-point |
有关更多信息,请参见 umount(1M) 手册页以及《系统管理指南:设备和文件系统》中的第 19 章 “挂载和取消挂载文件系统(任务)”。
使包含可以卸载的用户定义的文件系统的分片处于单片(单向)串联状态。
指定磁盘分片的物理磁盘名称 (cNtX dYsZ)。
phys-schost# metainit -f submirror1 1 1 diskslice |
创建第二个串联。
phys-schost# metainit submirror2 1 1 submirror-diskslice |
创建具有一个子镜像的单向镜像。
phys-schost# metainit mirror -m submirror1 |
此镜像的卷名称在整个群集中不必是唯一的。
在每个节点上,为已镜像的每个文件系统编辑 /etc/vfstab 文件条目。
请将 device to mount 和 device to fsck 列中的名称替换为镜像名称。
phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/md/dsk/mirror /dev/md/rdsk/mirror /filesystem ufs 2 no global |
将第二个子镜像与镜像连接。
这一连接操作会启动子镜像的同步。
phys-schost# metattach mirror submirror2 |
等待在步骤 8 中启动的镜像同步完成。
请使用 metastat(1M) 命令查看镜像状态。
phys-schost# metastat mirror |
如果用于镜像用户定义文件系统的磁盘物理连接到多个节点(多主机),请对该磁盘禁用隔离功能。
如果引导设备与多个节点连接,则对某个设备禁用隔离功能可以防止意外地将节点与其引导设备隔离。
phys-schost# cldevice set -p default_fencing=nofencing submirror-disk |
指定一个设备属性。
对指定的设备禁用隔离功能。
有关 default_fencing 属性的更多信息,请参见 cldevice(1CL) 手册页。
安装已镜像的文件系统。
phys-schost# mount /mount-point |
有关更多信息,请参见 mount(1M) 手册页以及《系统管理指南:设备和文件系统》中的第 19 章 “挂载和取消挂载文件系统(任务)”。
以下示例显示了如何创建镜像 d4 以镜像驻留在 c0t0d0s4 上的 /export。镜像 d4 由分区 c0t0d0s4 上的子镜像 d14 和分区 c2t2d0s4 上的子镜像 d24 组成。/export 的 /etc/vfstab 文件条目被更新为使用镜像名称 d4。设备 c2t2d0 是多主机磁盘,因此隔离功能处于禁用状态。
phys-schost# umount /export phys-schost# metainit -f d14 1 1 c0t0d0s4 d14: Concat/Stripe is setup phys-schost# metainit d24 1 1 c2t2d0s4 d24: Concat/Stripe is setup phys-schost# metainit d4 -m d14 d4: Mirror is setup phys-schost# vi /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # # /dev/md/dsk/d4 /dev/md/rdsk/d4 /export ufs 2 no global phys-schost# metattach d4 d24 d4: Submirror d24 is attached phys-schost# metastat d4 d4: Mirror Submirror 0: d14 State: Okay Submirror 1: d24 State: Resyncing Resync in progress: 15 % done … phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 … DID Device Name: /dev/did/rdsk/d2 phys-schost# cldevicegroup show dsk/d2 Device Group Name: dsk/d2 … Node List: phys-schost-1, phys-schost-2 … localonly: false phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2 phys-schost# cldevice set -p default_fencing=nofencing c2t2d0 phys-schost# mount /export |
如果需要创建磁盘集,请转到以下任务之一:
要创建供 Oracle Real Application Clusters 使用的 Solaris Volume Manager for Sun Cluster 磁盘集,请转至《Sun Cluster Data Service for Oracle RAC Guide for Solaris OS》中的“How to Create a Multi-Owner Disk Set in Solaris Volume Manager for Sun Cluster for the Oracle RAC Database”。
要为任何其他应用程序创建磁盘集,请转至在群集中创建磁盘集。
如果您有足够的磁盘集来满足需要,则转到以下任务之一:
如果群集包含正好配置了两个磁盘附件和两个节点的磁盘集,则必须添加双串介体。请转至配置双串介体。
如果群集配置不需要双串介体,请转至如何创建群集文件系统。
此镜像过程中的某些步骤可能会导致产生类似于 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。