使用该过程,可以在正常使用系统期间镜像无法卸载的根文件系统 (/) 以外的文件系统,例如 /usr、/opt 或 swap。
成为群集中一个节点上的超级用户。
将无法卸载的文件系统所驻留的盘片置于单盘片(单向)并置中。
指定该磁盘片的物理磁盘名称 (cNtX dYsZ)。
# metainit -f submirror1 1 1 diskslice |
创建第二个并置。
# metainit 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 from-node |
清空所有资源组和设备组
指定要从中清空资源组或设备组的节点的名称
重新引导该节点。
# shutdown -g0 -y -i6 |
将第二个子镜像连接到每个镜像。
这一连接操作会启动子镜像的同步。
# metattach mirror submirror2 |
等待在步骤 9 中启动的镜像同步完成。
使用 metastat(1M) 命令查看镜像状态并检验镜像同步是否完成。
# metastat mirror |
如果用于镜像无法卸载的文件系统的磁盘已物理连接至多个节点(是多主机的),则启用 localonly 属性。
请执行以下步骤为用于镜像可卸载文件系统的磁盘启用原始磁盘设备组的 localonly 属性。如果引导设备与多个节点连接,则必须启用 localonly 属性以防止意外地将节点与其引导设备隔开。
如有必要,则使用 scdidadm -L 命令显示原始磁盘设备组的完整设备 ID 路径名称。
在以下示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列(完整设备 ID 路径名称)的一部分。
# scdidadm -L … 1 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 … |
如果节点列表包含多个节点名称,请从节点列表中删除除对其根磁盘进行了镜像的节点以外的所有节点。
原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。
# scconf -r -D name=dsk/dN,nodelist=node |
指定原始磁盘设备组在群集范围内唯一的名称
指定要从节点列表中删除的节点的名称
启用 localonly 属性。
启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该属性可以防止意外地将节点与其引导设备隔开。
# scconf -c -D name=rawdisk-groupname,localonly=true |
指定原始磁盘设备组的名称
有关 localonly 属性的更多信息,请参见 scconf_dg_rawdisk(1M) 手册页。
下面的示例显示了在节点 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 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 (在 phys-schost-1 中移动资源组和设备组) # 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 … (标识已镜像磁盘的原始磁盘设备组的设备 ID 名称) # scdidadm -L … 1 phys-schost-3:/dev/rdsk/c2t2d0 /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 |
要镜像用户定义的文件系统,请转到如何镜像无法卸载的文件系统。
否则,请转到在群集中创建磁盘组以创建磁盘组。
此镜像过程中的某些步骤可能会导致类似 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。