通过使用本附录中的过程以及 "规划卷管理" 中的规划信息为 Solstice DiskSuite 软件安装和配置您的本地和多主机磁盘。有关进一步信息,请参阅 Solstice DiskSuite。
本附录中包含下列过程。
存储磁盘驱动器的映射。
从 《Sun Cluster 3.0 发行说明》获得下列完成的配置规划工作表。有关规划指南,请参阅 "规划卷管理"。
"本地文件系统布局工作表"
"磁盘设备组配置工作表"
"卷管理器配置工作表"
"元设备工作表 (Solstice DiskSuite)"
下表列出了为配置 Sun Cluster 而安装和配置 Solstice DiskSuite 软件需要执行的任务。
如果您使用 SunPlex Manager 来安装 Solstice DiskSuite 软件,则过程" 如何安装 Solstice DiskSuite 软件"至" 如何创建元设备状态数据库的复制品"已经完成。
任务 |
有关说明,请转到... |
---|---|
规划 Solstice DiskSuite 配置的布局。 | |
安装 Solstice DiskSuite 软件。 | |
计算需您配置所需要的元设备名称数和磁盘集数,并修改 /kernel/drv/md.conf 文件。 | |
在本地磁盘中创建元设备状态数据库的复制品。 | |
(可选)镜像根磁盘上的文件系统。 | |
使用 metaset 命令创建磁盘集。 | |
创建磁盘集。 将磁盘驱动器添加到磁盘集中。 | |
为磁盘集中的驱动器重新分区,以便为第 1 至 6 片分配空间。 | |
列出设备 ID 伪驱动程序映射并在 /etc/lvm/md.tab 文件中定义元设备。 | |
在 初始化 md.tab 文件。 | |
对于双串配置,请配置介体主机,检查介体数据的状态,并且在必要时修正错误的介体数据。 | |
配置群集。 |
如果使用 SunPlex Manager 来安装 Solstice DiskSuite 软件,则不要执行此过程。您应继续执行 " 镜像根磁盘"。
对群集中的每个节点执行该任务。
成为群集节点的超级用户。
如果从 CD-ROM 安装,请将共有 2 张 CD-ROM 的 Solaris 8 软件中的第 2 张插入节点的 CD-ROM 驱动器。
该步骤假定卷管理守护程序 vold(1M) 正在运行并且配置为管理 CD-ROM 设备。
安装 Solstice DiskSuite 软件包。
如果有要安装的 Solstice DiskSuite 软件修补程序,则不要在安装 Solstice DiskSuite 软件后重新引导。
以下面示例中显示的顺序安装软件包。
# cd /cdrom/sol_8_sparc_2/Solaris_8/EA/products/DiskSuite_4.2.1/sparc/Packages # pkgadd -d . SUNWmdr SUNWmdu [SUNWmdx] optional-pkgs |
SUNWmdr 和 SUNWmdu 软件包是所有 Solstice DiskSuite 安装必需的。SUNWmdx 软件包还是 64 位 Solstice DiskSuite 安装所必需的。
有关可选软件包的信息,请参阅 Solstice DiskSuite 安装文档。
如果是从 CD-ROM 中安装的,请弹出 CD-ROM。
安装 Solstice DiskSuite 修补程序。
有关修补程序的位置和安装说明的信息,请参阅 《Sun Cluster 3.0 U1 发行说明》。
从群集中的一个节点上,手动输入 Solstice DiskSuite 的全局设备名称空间。
# scgdevs |
设置群集中的元设备名称和磁盘集的期望数目。
如果使用 SunPlex Manager 来安装 Solstice DiskSuite 软件,则不要执行此过程。您应继续执行 " 镜像根磁盘"。
此过程说明如何计算您的配置所需的元设备名称的数量,以及如何修改 /kernel/drv/md.conf 文件。
每个磁盘集的元设备名称的缺省数目是 128,但许多配置需要的数目要大于该缺省数目。着手配置前请增大这个数目,以便节省今后管理的时间。
计算群集中任一磁盘集所需的元设备名称的最大数目。
每个磁盘集最多可有 8192 个元设备名称。您需要在 nmd 字段中提供这个计算值。
计算每个磁盘集所需的元设备名称的数量。
如果使用本地元设备,需确保每个本地元设备名称在整个群集内都唯一,不与该群集内的任何设备 ID (DID) 同名。
选择专用于 DID 名称的数值范围,以及供每个节点专用于其本地元设备名称的数值范围。例如,DID 可以使用从 d1 到 d1000 之间的名称范围;节点 1 上的本地元设备可以使用 d1100 到 d1199 之间的名称范围;节点 2 上的本地元设备可以使用 d1200 到 d1299 之间的名称范围,依次类推。
确定要在任何磁盘集中使用的元设备名称的最大数目。
要设置的元设备名称的数量取决于元设备名称的值,而不是实际数量。例如,如果元设备名称的范围在 d950 到 d1000 之间,则 Solstice DiskSuite 软件需要 1000 个名称,而不是 50 个名称。
群集中的每个磁盘集最多可以有 8192 个元设备名称。
计算群集中磁盘集的总预期数,然后为专用磁盘管理添加一个磁盘集。 群集最多可以有 32 个磁盘集。磁盘集的缺省数目是 4。您需要在 md_nsets 字段中提供这个计算值。
在每个节点上编辑 /kernel/drv/md.conf 文件。
/kernel/drv/md.conf 文件。 所有群集节点(或群集对拓扑中的群集对)必须有完全相同的 /kernel/drv/md.conf 文件,而不管每个节点向多少个磁盘集提供服务的。不按本指南操作可能导致严重的 Solstice DiskSuite 错误并且可能损失数据。
在每个节点上执行重新配置后的重新引导。
# touch /reconfigure # shutdown -g0 -y -i6 |
执行重新配置后的重新引导之后,对 /kernel/drv/md.conf 文件所作的更改才可生效。
创建本地复制品。
如果使用 SunPlex Manager 来安装 Solstice DiskSuite 软件,则不要执行此过程。应继续执行" 镜像根磁盘"。
对群集中的每个节点执行该过程。
成为群集节点的超级用户。
使用 metadb 命令在一个或多个本地磁盘上创建每个群集节点的复制品。
有关详细信息,请参阅 metadb(1M) 手册页和 Solstice DiskSuite 文档。
要为元设备状态数据提供保护(这是运行 Solstice DiskSuite 软件所必需的),请至少为每个节点创建三个复制品。此外,将复制品放在多个磁盘上可在其中的一个磁盘出现故障时免遭损失。
检验复制品。
# metadb |
是否打算镜像根磁盘上的文件系统?
下面的示例显示了三个元设备状态数据库复制品,分别是在不同的磁盘上创建的。
# metadb -af c0t0d0s7 c0t1d0s7 c1t0d0s7 # metadb flags first blk block count a u 16 1034 /dev/dsk/c0t0d0s7 a u 1050 1034 /dev/dsk/c0t1d0s7 a u 2084 1034 /dev/dsk/c1t0d0s7 |
镜像根磁盘可防止因系统磁盘故障而关闭群集节点。四种类型的文件系统可驻留在根磁盘中。文件系统类型的镜像方法各不相同。
这些镜像过程中的某些步骤可能导致类似于下面的错误消息,这种消息不会造成损害,因而可以忽略。
metainit:dg-schost-1: d1s0: not a metadevice |
对于本地磁盘镜像,在指定磁盘名称时不要将 /dev/global 用作路径。如果为非群集文件系统的系统指定了该路径,系统将无法引导。
使用此过程镜像根 (/) 文件系统。
成为群集中一个节点上的超级用户。
使用 metainit(1M) 命令使根片处于单片(单向)并置状态。
# metainit -f submirror1 1 1 root-disk-slice |
再创建一个并置状态。
# metainit -f submirror2 1 1 submirror-disk-slice |
创建带有一个子镜像的单向镜像。
# metainit mirror -m submirror1 |
镜像的元设备名称在整个群集中必须是唯一的。
运行 metaroot(1M) 命令。
该命令编辑 /etc/vfstab 文件和 /etc/system 文件,以便系统可以通过元设备上的根 (/) 文件系统来引导。
# metaroot mirror |
运行 lockfs(1M) 命令。
该命令将所有事务从日志中刷新出来,并将这些事务写入所有已安装的 UFS 文件系统的主文件系统中。
# lockfs -fa |
从节点抽出所有资源组或设备组。
# scswitch -S -h node |
抽出所有资源组和设备组
指定要从中抽出资源或设备组的节点的名称
重新引导节点。
# shutdown -g0 -y -i6 |
使用 metattach(1M) 命令将第二个子镜像连接到镜像。
# metattach mirror submirror2 |
如果用于镜像根磁盘的磁盘物理连接到多个节点(多端口连接),请启用用于镜像根磁盘的磁盘的原始磁盘设备组的 localonly 特性。
如果引导设备与多个节点连接,则必须启用 localonly 特性以防止意外地将节点与其引导设备隔开。
如果必要,请使用 scdidadm -L 命令来显示原始磁盘设备组的完整设备 ID (DID) 伪驱动程序名称。
在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列(即完整的 DID 伪驱动程序名称)的一部分。
# scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 # scconf -c -D name=dsk/d2,localonly=true |
有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。
使用 scconf(1M) 命令可启用 localonly 特性。
# scconf -c -D name=rawdisk-groupname,localonly=true |
指定原始磁盘设备组的名称
记录替代引导路径,将来可能会用到。
# ls -l /dev/rdsk/root-disk-slice |
确保镜像的每个元设备名称在整个群集中是唯一的。
是否打算镜像全局名称空间 /global/.devices/node@nodeid?
如果是,则转到"如何镜像全局名称空间"。
如果否,则转到步骤 14。
是否打算镜像无法卸装的文件系统?
如果是,则转到"如何镜像不能卸装的文件系统"。
如果否,则转到步骤 15。
是否打算镜像用户定义的文件系统?
如果是,则转到"如何镜像用户定义的文件系统"。
如果否,则转到"如何创建磁盘集"来创建磁盘集。
下面的示例显示如何在 phys-schost-1 节点上创建镜像 d0,该镜像由分区 c0t0d0s0 的子镜像 d10 和分区 c2t2d0s0 的子镜像 d20 构成。磁盘 c2t2d0 是一个多端口的磁盘,因而可启用 localonly 特性。
(创建镜像) # metainit -f d10 1 1 c0t0d0s0 d11:Concat/Stripe is setup # metainit -f d20 1 1 c2t2d0s0 d12: Concat/Stripe is setup # metainit d0 -m d10 d10: Mirror is setup # metaroot d0 # lockfs -fa (重新引导节点) # scswitch -S -h phys-schost-1 # shutdown -g0 -y -i6 (连接第二个子镜像) # metattach d0 d20 d0:Submirror d20 is attached (启用镜像磁盘的原始磁盘设备组的 localonly 特性) # scconf -c -D name=dsk/d2,localonly=true (记录替代引导路径) # 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 -f submirror1 1 1 diskslice |
再创建一个并置状态。
# metainit -f submirror2 1 1 submirror-diskslice |
创建带有一个子镜像的单向镜像。
# metainit mirror -m submirror1 |
镜像的元设备名称在整个群集中必须是唯一的。
将第二个子镜像与镜像连接。
连接时将对子镜像进行同步。
# metattach mirror submirror2 |
编辑 /global/.devices/node@nodeid 文件系统的 /etc/vfstab 文件条目。
用镜像名称替代 device to mount 和 device to fsck 两列中的名称。
# 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) 命令查看镜像状态。
# metastat mirror |
如果用于镜像全局名称空间的磁盘物理连接到多个节点(多端口连接),请启用用于镜像全局名称空间的磁盘的原始磁盘设备组的 localonly 特性。
如果引导设备与多个节点连接,则必须启用 localonly 特性以防止意外地将节点与其引导设备隔开。
如果必要,请使用 scdidadm -L 命令来显示原始磁盘设备组的完整设备 ID (DID) 伪驱动程序名称。
在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列(即完整的 DID 伪驱动程序名称)的一部分。
# scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 # scconf -c -D name=dsk/d2,localonly=true |
有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。
使用 scconf(1M) 命令可启用 localonly 特性。
# scconf -c -D name=rawdisk-groupname,localonly=true |
-D name=rawdisk_groupname指定原始磁盘设备组的名称 示例—镜像用户定义的文件系统
是否打算镜像无法卸装的文件系统?
如果是,则转到"如何镜像不能卸装的文件系统"。
如果否,则转到步骤 11。
是否打算镜像用户定义的文件系统?
如果是,则转到"如何镜像用户定义的文件系统"。
如果否,则转到"如何创建磁盘集"来创建磁盘集。
下面的示例显示了镜像 d101 的创建方法,该镜像是由 c0t0d0s3 分区的子镜像 d111 和分区 c2t2d0s3 的子镜像 d121 构成的。/global/.devices/node@1 的 /etc/vfstab 文件条目已被更新为使用镜像名称 d101。磁盘 c2t2d0 是一个多端口磁盘,所以已启用 localonly 特性。
(创建镜像) # metainit -f d111 1 1 c0t0d0s3 d111:Concat/Stripe is setup # metainit -f d121 1 1 c2t2d0s3 d121: Concat/Stripe is setup # metainit d101 -m d111 d101: Mirror is setup # metattach d101 d121 d101:Submirror d121 is attached (编辑 /etc/vfstab 文件) # 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 (查看同步状态) # metastat d101 d101:Mirror Submirror 0: d111 State: Okay Submirror 1: d121 State: Resyncing Resync in progress: 15 % done ... (标识镜像磁盘的原始磁盘设备组的 DID 名称) # scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c2t2d0 /dev/did/rdsk/d2 (启用镜像磁盘的原始磁盘设备组的 localonly 特性) # scconf -c -D name=dsk/d2,localonly=true |
使用该过程镜像无法在正常系统使用期间卸装的文件系统,如 /usr、/opt 或 swap
成为群集中一个节点上的超级用户。
使不可卸装文件系统所在的片处于单片(单向)并置状态。
# metainit -f submirror1 1 1 diskslice |
再创建一个并置状态。
# metainit -f submirror2 1 1 submirror-diskslice |
创建带有一个子镜像的单向镜像。
# metainit mirror -m submirror1 |
镜像的元设备名称在群集中不必是唯一的。
在每个节点上,为镜像的每个可卸装的文件系统编辑 /etc/vfstab 文件条目。
用镜像名称替代 device to mount 和 device to fsck 两列中的名称。
# 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 |
从节点抽出所有资源组或设备组。
# scswitch -S -h node |
抽出所有资源组和设备组
指定要从中抽出资源或设备组的节点的名称
重新引导节点。
# shutdown -g0 -y -i6 |
将第二个子镜像与每个镜像连接。
连接时将对子镜像进行同步。
# metattach mirror submirror2 |
等待在 步骤 9 中启动的镜像同步的完成。
使用 metastat(1M) 命令查看镜像状态。
# metastat mirror |
如果用于镜像不可卸装的文件系统的磁盘物理连接到多个节点(多端口连接),请启用用于镜像不可卸装的文件系统的磁盘的原始磁盘设备组的 localonly 特性。
如果引导设备与多个节点连接,则必须启用 localonly 特性以防止意外地将节点与其引导设备隔开。
如果必要,请使用 scdidadm -L 命令来显示原始磁盘设备组的完整设备 ID (DID) 伪驱动程序名称。
在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列(即完整的 DID 伪驱动程序名称)的一部分。
# scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 # scconf -c -D name=dsk/d2,localonly=true |
有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。
使用 scconf(1M) 命令可启用 localonly 特性。
# scconf -c -D name=rawdisk-groupname,localonly=true |
指定原始磁盘设备组的名称
是否打算镜像用户定义的文件系统?
如果是,则转到"如何镜像用户定义的文件系统"。
如果否,则转到"如何创建磁盘集"来创建磁盘集。
下面的示例显示了在节点 phys-schost-1 上创建镜像 d1,以便镜像 c0t0d0s1 上的 /usr 的方法。镜像 d1 由分区 c0t0d0s1 中的子镜像 d11 和分区 c2t2d0s1 中的子镜像 d21 组成。用于 /usr 的 /etc/vfstab 文件条目被更新为使用镜像名称 d1。磁盘 c2t2d0 是一个多端口磁盘,所以已启用 localonly 特性。
(创建镜像) # metainit -f d11 1 1 c0t0d0s1 d11:Concat/Stripe is setup # metainit -f d21 1 1 c2t2d0s1 d21: Concat/Stripe is setup # metainit d1 -m d11 d1:Mirror is setup (编辑 /etc/vfstab 文件) # 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 (重新引导节点) # scswitch -S -h phys-schost-1 # shutdown -g0 -y -i6 (连接第二个子镜像) # metattach d1 d21 d1:Submirror d21 is attached (查看同步状态) # metastat d1 d1:Mirror Submirror 0: d11 State: Okay Submirror 1: d21 State: Resyncing Resync in progress: 15 % done ... (标识镜像磁盘的原始磁盘设备组的 DID 名称) # scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c2t2d0 /dev/did/rdsk/d2 (启用镜像磁盘的原始磁盘设备组的 localonly 特性) # scconf -c -D name=dsk/d2,localonly=true |
使用此过程镜像用户定义的文件系统。在此过程中,不需要重新引导节点。
成为群集中一个节点上的超级用户。
使用户定义的文件系统所在的片处于单片(单向)并置状态。
# metainit -f submirror1 1 1 diskslice |
再创建一个并置状态。
# metainit -f submirror2 1 1 submirror-diskslice |
创建带有一个子镜像的单向镜像。
# metainit mirror -m submirror1 |
镜像的元设备名称在群集中不必是唯一的。
在每个节点中,为镜像的每个用户定义的文件系统编辑 /etc/vfstab 文件条目。
用镜像名称替代 device to mount 和 device to fsck 两列中的名称。
# 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 |
将第二个子镜像与镜像连接。
连接时将对子镜像进行同步。
# metattach mirror submirror2 |
等待在 步骤 7 中启动的镜像同步的完成。
使用 metastat(1M) 命令查看镜像状态。
# metastat mirror |
如果用于镜像用户定义的文件系统的磁盘物理连接到多个节点(多端口连接),则启用用于镜像用户定义的文件系统的磁盘的原始磁盘设备组的 localonly 特性。
如果引导设备与多个节点连接,则必须启用 localonly 特性以防止意外地将节点与其引导设备隔开。
如果必要,请使用 scdidadm -L 命令来显示原始磁盘设备组的完整设备 ID (DID) 伪驱动程序名称。
在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列(即完整的 DID 伪驱动程序名称)的一部分。
# scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 # scconf -c -D name=dsk/d2,localonly=true |
有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。
使用 scconf(1M) 命令可启用 localonly 特性。
# scconf -c -D name=rawdisk-groupname,localonly=true |
指定原始磁盘设备组的名称
创建磁盘集。
转到 "如何创建磁盘集"。
下面的示例显示创建镜像 d4 以镜像位于 c0t0d0s4中的 /home的方法。镜像 d4 由分区 c0t0d0s4 中的子镜像 d14 和分区 c2t2d0s4 中的子镜像 d24 组成。用于 /home 的 /etc/vfstab 文件条目已被更新为使用镜像名称 d4。磁盘 c2t2d0 是一个多端口磁盘,所以已启用 localonly 特性。
(创建镜像) # metainit -f d14 1 1 c0t0d0s4 d14:Concat/Stripe is setup # metainit -f d24 1 1 c2t2d0s4 d24: Concat/Stripe is setup # metainit d4 -m d14 d4:Mirror is setup (编辑 /etc/vfstab 文件) # 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 /home ufs 2 no global (连接第二个子镜像) # metattach d4 d24 d4:Submirror d24 is attached (查看同步状态) # metastat d4 d4:Mirror Submirror 0: d14 State: Okay Submirror 1: d24 State: Resyncing Resync in progress: 15 % done ... (标识镜像磁盘的原始磁盘设备组的 DID 名称) # scdidadm -L ... 1 phys-schost-3:/dev/rdsk/c2t2d0 /dev/did/rdsk/d2 (启用镜像磁盘的原始磁盘设备组的 localonly 特性) # scconf -c -D name=dsk/d2,localonly=true |
为每个创建的磁盘集执行此过程。
如果已使用 SunPlex Manager 来安装 Solstice DiskSuite,有一至三个磁盘集可能已存在。有关由 SunPlex Manager 创建的元集的信息,请参阅 "使用 SunPlex Manager 安装 Sun Cluster 软件"。
确保您打算创建的磁盘集符合以下要求之一。
如果正好用两个磁盘串来进行配置,则磁盘集必须正好与两个节点连接并且正好使用两个介体主机,这两个主机必须是用于该磁盘集那两个主机。有关如何设置介体的详细信息,请参阅 "介体概述"。
如果用两个以上的磁盘串来进行配置,则确保对于任何两个磁盘串 S1 和 S2,这些串的磁盘数总和超出第三个串 S3 的磁盘数目。用一个公式来表示,该需求为 count(S1) + count(S2) > count(S3)。
确保 root 是组 14 的一个成员。
# vi /etc/group ... sysadmin::14:root ... |
确保有本地元设备状态数据库的复制品。
有关说明,请参阅 " 如何创建元设备状态数据库的复制品"。
成为将主控磁盘集的群集节点的超级用户。
创建磁盘集。
该命令还将磁盘集注册为 Sun Cluster 磁盘设备组。
# metaset -s setname -a -h node1 node2 |
指定磁盘集名称
添加(创建)磁盘集
指定将主控磁盘集的主节点的名称
指定将主控磁盘集的辅助节点的名称
检验新磁盘集的状态。
# metaset -s setname |
将驱动器添加到磁盘集内。
转到 "为磁盘集添加驱动器"。
使用下面的命令可以创建两个磁盘集,dg-schost-1 和 dg-schost-2,并已将它们所在的节点 phys-schost-1 和 phys-schost-2 指定为潜在主节点。
# metaset -s dg-schost-1 -a -h phys-schost-1 phys-schost-2 # metaset -s dg-schost-2 -a -h phys-schost-1 phys-schost-2 |
将磁盘驱动器添加到磁盘集内时,Solstice DiskSuite 对它进行如下重新分区,以便磁盘集的元设备状态数据库可以存放到驱动器上。
每个驱动器有一小部分保留在第 7 片中,供 Solstice DiskSuite 软件使用。每个驱动器的剩余空间放在第 0 片中。
只有在第 7 片未正确设置的情况下,才在将驱动器添加到磁盘集时对驱动器进行重新分区。
重新分区时将丢失磁盘中的所有现有数据。
如果第 7 片从 0 柱面开始,并且磁盘的大小足以包含一个状态数据库复制品,则不对磁盘进行重新分区。
成为节点的超级用户。
确保已创建磁盘集。
有关说明,请参阅 "如何创建磁盘集"。
列出设备 ID (DID) 映射。
# scdidadm -L |
选择将主控或可能主控磁盘集的群集节点共享的驱动器。
为磁盘集添加驱动器时,请使用完整的 DID 伪驱动程序名称。
输出的第一列是 DID 实例编号,第二列是完整路径(物理路径),第三列是完整的 DID 伪驱动程序名称(伪路径)。对于相同的 DID 实例编号,共享驱动器具有多个条目。
在下面的示例中,DID 实例编号为 2 的条目指示一个由 phys-schost-1 和 phys-schost-2 共享的驱动器,完整的 DID 名称为 /dev/did/rdsk/d2。
1 phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1 2 phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 2 phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 3 phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3 3 phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3 ... |
获取磁盘集的所有权。
# metaset -s setname -t |
指定磁盘集名称
获取磁盘集的所有权
将驱动器添加到磁盘集中。
使用完整的 DID 伪驱动程序名称。
# metaset -s setname -a DIDname |
将磁盘驱动器添加到磁盘集
共享磁盘的设备 ID (DID) 名称
向磁盘集添加驱动器时不要使用低级别设备名称 (cNtXdY)。因为低级别设备名称是本地名称,并且在群集中不是唯一的,使用该名称可能使元集合不能切换。
检验磁盘集和驱动器的状态。
# metaset -s setname |
是否打算对驱动器进行重新分区以便在元设备中使用?
如果是,则转到"如何对磁盘集内的驱动器重新分区"。
如果否,则转到"如何创建 md.tab 文件",使用 md.tab 文件定义元设备。
使用 metaset 命令可将磁盘驱动器 /dev/did/dsk/d1 和 /dev/did/dsk/d2 添加到磁盘集 dg-schost-1 中。
# metaset -s dg-schost-1 -a /dev/did/dsk/d1 /dev/did/dsk/d2 |
使用 metaset(1M) 命令可以对磁盘集内的驱动器重新分区,使每个驱动器有一小部分保留在第 7 片中,供 Solstice DiskSuite 软件使用。每个驱动器的剩余空间放在第 0 片中。 要更有效地使用磁盘,请使用该过程修改磁盘的布局。如果为第 1 至 6 片分配了空间,则可在设置元设备时使用这些片。
成为群集节点的超级用户。
使用 format(1M) 命令可更改磁盘集中每个驱动器的磁盘分区。
当您为一个驱动器重新分区时,必须满足以下条件,以避免 metaset(1M) 命令对磁盘重新分区。
从足以存放状态数据库复制品(约 2 兆字节)的柱面 0 开始创建分区 7。
将第 7 片中的 Flag 字段设置为 V_UNMT(不可卸装)并且不要将它设置为只读。
不允许第 7 片重叠磁盘中的任何其他片。
有关详细信息,请参阅 format(1M) 手册页。
使用 md.tab 文件定义元设备。
在群集中的每个节点上创建一个 /etc/lvm/md.tab 文件。使用 md.tab 文件为创建的磁盘集定义元设备。
如果使用的是本地元设备,需确保本地元设备名称不同于用于构成磁盘集的设备 ID (DID) 名称。例如,如果在磁盘集中使用 DID 名称 /dev/did/dsk/d3,则不要将本地元设备命名为 /dev/md/dsk/d3。该要求不适用于共享元设备,这种元设备使用命名惯例 /dev/md/setname/{r}dsk/d#。
为避免在群集环境中可能产生的本地元设备之间的混淆,请使用一种可以使每个本地元设备名称在群集中都唯一的命名方案。例如,为节点 1 选择 d100-d199 之间的名称,为节点 2 使用 d200-d299 之间的名称,依次类推。
成为群集节点的超级用户。
列出在创建 md.tab 文件时引用的 DID 映射。
在 md.tab 文件中用完整的 DID 伪驱动程序名称代替较低级别的设备名称 (cNtXdY)。
# scdidadm -L |
在下面的示例中,输出的第一列是 DID 实例编号,第二列是完整路径(物理路径),第三列是完整的 DID 伪驱动程序名称(伪路径)。
1 phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1 2 phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 2 phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2 3 phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3 3 phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3 ... |
创建一个 /etc/lvm/md.tab 文件并使用您的首选文本编辑器来手工编辑该文件。
有关如何创建 md.tab 文件的详细信息,请参阅 Solstice DiskSuite 文档和 md.tab(4) 手册页。
如果磁盘上有将用于子镜像的现有数据,则必须在元设备安装之前备份该数据并且将其恢复到镜像中。
激活 md.tab 文件中定义的元设备。
转到 "如何激活元设备"。
下面的 md.tab 文件样例定义名为 dg-schost-1 的磁盘集的元设备。md.tab 文件中的各行的排序并不重要。
dg-schost-1/d0 -t dg-schost-1/d1 dg-schost-1/d4 dg-schost-1/d1 -m dg-schost-1/d2 dg-schost-1/d2 1 1 /dev/did/rdsk/d1s4 dg-schost-1/d3 1 1 /dev/did/rdsk/d55s4 dg-schost-1/d4 -m dg-schost-1/d5 dg-schost-1/d5 1 1 /dev/did/rdsk/d3s5 dg-schost-1/d6 1 1 /dev/did/rdsk/d57s5 |
md.tab 文件样例的构成如下。
第一行将 trans 元设备 d0 定义为由一个主 (UFS) 元设备 d1 和一个日志设备 d4 组成。-t 表示这是一个 trans 元设备。主设备和日志设备由它们在 -t 标志后的位置指定。
dg-schost-1/d0 -t dg-schost-1/d1 dg-schost-1/d4 |
第二行将主设备定义为元设备的镜像。此定义中的 -m 表示一个镜像设备,子镜像之一 d2 与镜像设备 d1 关联。
dg-schost-1/d1 -m dg-schost-1/d2 |
类似地,第五行将日志设备 d4 定义为一个元设备镜像。
dg-schost-1/d4 -m dg-schost-1/d5 |
第三行将主设备的第一个子镜像 d2 定义为一个单向条。
dg-schost-1/d2 1 1 /dev/did/rdsk/d1s4 |
第四行定义主设备的第二个子镜像 d3。
dg-schost-1/d3 1 1 /dev/did/rdsk/d55s4 |
最后定义日志设备子镜像 d5 和 d6。在此示例中,创建了每个子镜像的简单元设备。
dg-schost-1/d5 1 1 /dev/did/rdsk/d3s5 dg-schost-1/d6 1 1 /dev/did/rdsk/d57s5 |
执行此过程可激活在 md.tab 文件中定义的元设备。
成为群集节点的超级用户。
确保 md.tab 文件位于 /etc/lvm 目录中。
确保您对将要执行命令的节点上的磁盘集具有所有权。
获取磁盘集的所有权。
# metaset -s setname -t |
指定磁盘集名称
获取磁盘集的所有权
激活磁盘集的元设备,该设备是在 md.tab 文件中定义的。
# metainit -s setname -a |
激活 md.tab 文件中的所有元设备
为每个主设备和日志设备连接第二个子镜像 (submirror2)。
当激活 md.tab 文件中的元设备时,只连接了主设备和日志设备的第一个子镜像 (submirror1),所以必须手动连接 submirror2。
# metattach mirror submirror2 |
如有必要,请从与磁盘连接的另一个节点运行 metainit (1M) 命令。该步骤对于群集对拓扑是必需的,并非所有节点都能访问该拓扑中的磁盘。
检查元设备的状态。
# metastat -s setname |
有关详细信息,请参阅 metastat (1M) 手册页。
群集是否包含刚好用两个磁盘群组和两个节点配置的磁盘集?
如果是,则这些磁盘集需要介体。要添加介体主机,请转到 "介体概述"。
如果否,则转到"如何添加群集文件系统"来创建群集文件系统。
在下面的示例中,在 md.tab 文件中为磁盘集 dg-schost-1 定义的所有元设备均被激活。然后主设备 dg-schost-1/d1 和日志设备 dg-schost-1/d4 的第二子镜像被激活。
# metainit -s dg-schost-1 -a # metattach dg-schost-1/d1 dg-schost-1/d3 # metattach dg-schost-1/d4 dg-schost-1/d6 |
介体或介体主机是存储介体数据的群集节点。介体数据提供其他介体的位置信息,并包含一个提交计数,该计数与存储在数据库复制品中的提交计数完全相同。该提交计数用于确认介体数据与数据库复制品中的数据是否同步。
对于正好用两个磁盘串和两个群集节点配置的所有 Solstice DiskSuite 磁盘集,介体是必需的。磁盘串由一个磁盘群组、其物理磁盘、群组到节点的电缆以及接口适配卡组成。使用介体使 Sun Cluster 软件能够确保在双串配置的单串失败实例中展示最当前数据。下列规则适用于使用介体的双串配置。
磁盘集必须正好用两个介体主机来配置,并且这两个介体主机必须是用于磁盘集的那两个群集节点。
磁盘集不能有两个以上的介体主机。
不能为不满足双串和双主机标准的磁盘集配置介体。
这些规则不要求整个群集刚好有两个节点。而只要求这些具有两个磁盘串的磁盘集必须正好与两个节点连接。这些规则之下允许有 N+1 群集和许多其他拓扑。
在您的配置需要介体时执行此过程。
成为一个节点的超级用户,该节点当前主控着您要为其添加介体主机的磁盘集。
运行 metaset (1M) 命令以将与磁盘集连接的每个节点添加为该磁盘集的介体主机。
# metaset -s setname -a -m mediator-host-list |
指定磁盘集名称
添加到磁盘集
指定将作为磁盘集的介体主机来添加的节点的名称
有关 metaset 命令的介体特定的选项的详细信息,请参阅 mediator(7) 手册页。
检查介体数据的状态。
转到 "如何检查介体数据的状态"。
下面的示例将节点 phys-schost-1 和 phys-schost-2 作为磁盘集 dg-schost-1的介体主机来添加。这两个命令都从节点 phys-schost-1 中运行。
# metaset -s dg-schost-1 -a -m phys-schost-1 # metaset -s dg-schost-1 -a -m phys-schost-2 |
按照 "如何添加介体主机" 中的说明,添加介体主机。
运行 medstat 命令。
# medstat -s setname |
指定磁盘集名称
有关详细信息,请参阅 medstat (1M) 手册页。
"状态"字段中的值是否为 Bad?
如果是,转到 "如何修正错误的介体数据" 以修复受影响的介体主机。
如果否,则转到"如何添加群集文件系统"来创建群集文件系统。
执行此过程以修复错误的介体数据。
要确定介体主机是否包含错误介体数据,请按过程 "如何检查介体数据的状态" 操作。
成为拥有受影响的磁盘集的节点的超级用户。
从所有受影响的磁盘集中删除包含错误介体数据的介体主机。
# metaset -s setname -d -m mediator-host-list |
指定磁盘集名称
从磁盘集中删除
指定将作为磁盘集的介体主机来删除的节点的名称
恢复介体主机。
# metaset -s setname -a -m mediator-host-list |
添加到磁盘集
指定将作为磁盘集的介体主机来添加的节点的名称
有关 metaset 命令的介体特定的选项的详细信息,请参阅 mediator(7) 手册页。
创建群集文件系统。
转到 "如何添加群集文件系统"。
下面的示例有助于解释在使用 Solstice DiskSuite 软件时确定放在每个磁盘集中的磁盘数目的过程。在该示例中,使用了三个存储设备,并且现有的应用程序正在 NFS (两个文件系统,各为 5 GB)和两个 Oracle 数据库(一个为 5 GB,另一个为 10 GB)上运行。
下表显示用于确定样例配置中所需驱动程序数目的计算结果。如果有三个存储设备,则可能需要 28 个驱动器,应在这三个存储设备之间尽可能均匀地分配这些驱动器。注意,给 5 GB 文件系统额外提供 1 GB 的磁盘空间,因为所需的磁盘数是上舍入得出的。
表 A-2 确定配置所需的驱动器
使用 |
数据 |
所需的磁盘存储器 |
所需的驱动器 |
---|---|---|---|
nfs1 |
5 GB |
3x2.1 GB 磁盘 * 2 (镜像) |
6 |
nfs2 |
5 GB |
3x2.1 GB 磁盘 * 2 (镜像) |
6 |
oracle1 |
5 GB |
3x2.1 GB 磁盘 * 2 (镜像) |
6 |
oracle2 |
10 GB |
5x2.1 GB 磁盘 * 2 (镜像) |
10 |
下表显示在两个磁盘集和四个数据服务之间分配驱动器。
表 A-3 磁盘集的划分
磁盘集 |
数据服务 |
磁盘 |
存储设备 1 |
存储设备 2 |
存储设备 3 |
---|---|---|---|---|---|
dg-schost-1 |
nfs1/oracle1 |
12 |
4 |
4 |
4 |
dg-schost-2 |
nfs2/oracle2 |
16 |
5 |
6 |
5 |
最初,将每个存储设备中的四个磁盘(总共 12 个磁盘)分配给 dg-schost-1,而将每个存储设备中的五个或六个磁盘(总共 16 个磁盘)分配给 dg-schost-2。
两个磁盘集均未分配任何热备用磁盘。每个磁盘集的每个存储设备至少有一个热备用磁盘,就可以使一个驱动器成为热备用的(恢复完全双向镜像)。