通过使用本附录中的过程以及 "规划卷管理" 中的规划信息为 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。
两个磁盘集均未分配任何热备用磁盘。每个磁盘集的每个存储设备至少有一个热备用磁盘,就可以使一个驱动器成为热备用的(恢复完全双向镜像)。