本示例用于完成在群集中设置 SRDF 复制所需执行的特定于 Sun Cluster 的步骤。本示例假定您已执行以下任务:
已针对阵列间的复制完成 LUN 配对。
在存储设备和群集节点上安装了 SRDF 软件。
本示例涉及一个四节点群集,其中两个节点连接到一个 symmetrix,另外两个节点连接到第二个 symmetrix。SRDF 设备组名为 dg1。
在所有节点上运行以下命令。
# symcfg discover ! This operation might take up to a few minutes. # symdev list pd Symmetrix ID: 000187990182 Device Name Directors Device --------------------------- ------------ -------------------------------------- Cap Sym Physical SA :P DA :IT Config Attribute Sts (MB) --------------------------- ------------- ------------------------------------- 0067 c5t600604800001879901* 16D:0 02A:C1 RDF2+Mir N/Grp'd RW 4315 0068 c5t600604800001879901* 16D:0 16B:C0 RDF1+Mir N/Grp'd RW 4315 0069 c5t600604800001879901* 16D:0 01A:C0 RDF1+Mir N/Grp'd RW 4315 ... |
在 RDF1 端的所有节点上,键入:
# symdg -type RDF1 create dg1 # symld -g dg1 add dev 0067 |
在 RDF2 端的所有节点上,键入:
# symdg -type RDF2 create dg1 # symld -g dg1 add dev 0067 |
从群集中的一个节点上,键入:
# symdg show dg1 Group Name: dg1 Group Type : RDF1 (RDFA) Device Group in GNS : No Valid : Yes Symmetrix ID : 000187900023 Group Creation Time : Thu Sep 13 13:21:15 2007 Vendor ID : EMC Corp Application ID : SYMCLI Number of STD Devices in Group : 1 Number of Associated GK's : 0 Number of Locally-associated BCV's : 0 Number of Locally-associated VDEV's : 0 Number of Remotely-associated BCV's (STD RDF): 0 Number of Remotely-associated BCV's (BCV RDF): 0 Number of Remotely-assoc'd RBCV's (RBCV RDF) : 0 Standard (STD) Devices (1): { -------------------------------------------------------------------- Sym Cap LdevName PdevName Dev Att. Sts (MB) -------------------------------------------------------------------- DEV001 /dev/rdsk/c5t6006048000018790002353594D303637d0s2 0067 RW 4315 } Device Group RDF Information ... # symrdf -g dg1 establish Execute an RDF 'Incremental Establish' operation for device group 'dg1' (y/[n]) ? y An RDF 'Incremental Establish' operation execution is in progress for device group 'dg1'. Please wait... Write Disable device(s) on RA at target (R2)..............Done. Suspend RDF link(s).......................................Done. Mark target (R2) devices to refresh from source (R1)......Started. Device: 0067 ............................................ Marked. Mark target (R2) devices to refresh from source (R1)......Done. Merge device track tables between source and target.......Started. Device: 0067 ............................................ Merged. Merge device track tables between source and target.......Done. Resume RDF link(s)........................................Started. Resume RDF link(s)........................................Done. The RDF 'Incremental Establish' operation successfully initiated for device group 'dg1'. # # symrdf -g dg1 query Device Group (DG) Name : dg1 DG's Type : RDF2 DG's Symmetrix ID : 000187990182 Target (R2) View Source (R1) View MODES -------------------------------- ------------------------ ----- ------------ ST LI ST Standard A N A Logical T R1 Inv R2 Inv K T R1 Inv R2 Inv RDF Pair Device Dev E Tracks Tracks S Dev E Tracks Tracks MDA STATE -------------------------------- -- ------------------------ ----- ------------ DEV001 0067 WD 0 0 RW 0067 RW 0 0 S.. Synchronized Total -------- -------- -------- -------- MB(s) 0.0 0.0 0.0 0.0 Legend for MODES: M(ode of Operation): A = Async, S = Sync, E = Semi-sync, C = Adaptive Copy D(omino) : X = Enabled, . = Disabled A(daptive Copy) : D = Disk Mode, W = WP Mode, . = ACp off # |
对 RDF1 和 RDF2 端执行相同的过程。
可以在 dymdg show dg 命令输出的 PdevName 字段下查看。
在 RDF1 端,键入:
# symdg show dg1 Group Name: dg1 Group Type : RDF1 (RDFA) ... Standard (STD) Devices (1): { -------------------------------------------------------------------- Sym Cap LdevName PdevName Dev Att. Sts (MB) -------------------------------------------------------------------- DEV001 /dev/rdsk/c5t6006048000018790002353594D303637d0s2 0067 RW 4315 } Device Group RDF Information ... |
要获取对应的 DID,请键入:
# scdidadm -L | grep c5t6006048000018790002353594D303637d0 217 pmoney1:/dev/rdsk/c5t6006048000018790002353594D303637d0 /dev/did/rdsk/d217 217 pmoney2:/dev/rdsk/c5t6006048000018790002353594D303637d0 /dev/did/rdsk/d217 # |
要列出对应的 DID,请键入:
# cldevice show d217 === DID Device Instances === DID Device Name: /dev/did/rdsk/d217 Full Device Path: pmoney2:/dev/rdsk/c5t6006048000018790002353594D303637d0 Full Device Path: pmoney1:/dev/rdsk/c5t6006048000018790002353594D303637d0 Replication: none default_fencing: global # |
在 RDF2 端,键入:
可以在 dymdg show dg 命令输出的 PdevName 字段下查看。
# symdg show dg1 Group Name: dg1 Group Type : RDF2 (RDFA) ... Standard (STD) Devices (1): { -------------------------------------------------------------------- Sym Cap LdevName PdevName Dev Att. Sts (MB) -------------------------------------------------------------------- DEV001 /dev/rdsk/c5t6006048000018799018253594D303637d0s2 0067 WD 4315 } Device Group RDF Information ... |
要获取对应的 DID,请键入:
# scdidadm -L | grep c5t6006048000018799018253594D303637d0 108 pmoney4:/dev/rdsk/c5t6006048000018799018253594D303637d0 /dev/did/rdsk/d108 108 pmoney3:/dev/rdsk/c5t6006048000018799018253594D303637d0 /dev/did/rdsk/d108 # |
要列出对应的 DID,请键入:
# cldevice show d108 === DID Device Instances === DID Device Name: /dev/did/rdsk/d108 Full Device Path: pmoney3:/dev/rdsk/c5t6006048000018799018253594D303637d0 Full Device Path: pmoney4:/dev/rdsk/c5t6006048000018799018253594D303637d0 Replication: none default_fencing: global # |
从 RDF2 端,键入:
# cldevice combine -t srdf -g dg1 -d d217 d108 # |
从群集中的任何节点上,键入:
# cldevice show d217 d108 cldevice: (C727402) Could not locate instance "108". === DID Device Instances === DID Device Name: /dev/did/rdsk/d217 Full Device Path: pmoney1:/dev/rdsk/c5t6006048000018790002353594D303637d0 Full Device Path: pmoney2:/dev/rdsk/c5t6006048000018790002353594D303637d0 Full Device Path: pmoney4:/dev/rdsk/c5t6006048000018799018253594D303637d0 Full Device Path: pmoney3:/dev/rdsk/c5t6006048000018799018253594D303637d0 Replication: srdf default_fencing: global # |
此过程可在校园群集的主工作间彻底失败、故障转移至辅助工作间并且主工作间重新联机后,执行数据恢复。校园群集的主工作间是主要节点和存储站点。工作间彻底故障是指该工作间内的主机和存储同时故障。如果主工作间失败,Sun Cluster 会自动故障转移至辅助工作间,使辅助工作间的存储设备可读写,并启用相应设备组和资源组的故障转移。
主工作间重新联机后,可手动从 SRDF 设备组恢复被写入至辅助工作间的数据,并重新同步数据。此过程可通过将原辅助工作间(此过程使用 phys-campus-2 作为辅助工作间)中的数据同步至原主工作间 (phys-campus-1),以恢复 SRDF 设备组。此过程还会将 phys-campus-2 和 phys-campus-1 上的 SRDF 设备组类型分别更改为 RDF1 和 RDF2。
在执行手动故障转移之前,必须先配置 EMC 复制组和 DID 设备,并注册 EMC 复制组。有关创建 Solaris Volume Manager 设备组的信息,请参见如何添加和注册设备组 (Solaris Volume Manager)。有关创建 Veritas Volume Manager(Veritas 卷管理器) 设备组的信息,请参见如何在封装磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))。
这些说明演示了一种在主工作间完成故障转移并重新联机后手动恢复 SRDF 数据的方法。有关其他方法,请查阅 EMC 文档。
登录校园群集的主工作间以执行这些步骤。在上述过程中,dg1 为 SRDF 设备组名称。发生故障时,此过程中的主工作间为 phys-campus-1,辅助工作间为 phys-campus-2。
登录校园群集的主工作间,并成为超级用户或担任可提供 solaris.cluster.modify RBAC 授权的角色。
从主工作间中,使用 symrdf 命令查询 RDF 设备的复制状态并查看有关这些设备的信息。
phys-campus-1# symrdf -g dg1 query |
处于 split 状态的设备组未同步。
如果 RDF 对的状态为 split,且设备组类型为 RDF1,则强制执行 SRDF 设备组的故障转移。
phys-campus-1# symrdf -g dg1 -force failover |
查看 RDF 设备的状态。
phys-campus-1# symrdf -g dg1 query |
故障转移完成后,可交换位于执行故障转移的设备上的数据。
phys-campus-1# symrdf -g dg1 swap |
检验 RDF 设备的状态及其他相关信息。
phys-campus-1# symrdf -g dg1 query |
在主工作间中建立 SRDF 设备组。
phys-campus-1# symrdf -g dg1 establish |
确认设备组处于同步状态,且设备组类型为 RDF2。
phys-campus-1# symrdf -g dg1 query |
本示例提供在校园群集的主工作间故障转移至辅助工作间、记录数据并重新联机后,手动恢复 EMC SRDF 数据所必需的 Sun Cluster 特定步骤。在本示例中,SRDF 设备组名为 dg1,标准逻辑设备为 DEV001。发生故障时,主工作间为 phys-campus-1,辅助工作间为 phys-campus-2。从校园群集的主工作间 phys-campus-1 中执行这些步骤。
phys-campus-1# symrdf -g dg1 query | grep DEV DEV001 0012RW 0 0NR 0012RW 2031 O S.. Split phys-campus-1# symdg list | grep RDF dg1 RDF1 Yes 00187990182 1 0 0 0 0 phys-campus-1# symrdf -g dg1 -force failover ... phys-campus-1# symrdf -g dg1 query | grep DEV DEV001 0012 WD 0 0 NR 0012 RW 2031 O S.. Failed Over phys-campus-1# symdg list | grep RDF dg1 RDF1 Yes 00187990182 1 0 0 0 0 phys-campus-1# symrdf -g dg1 swap ... phys-campus-1# symrdf -g dg1 query | grep DEV DEV001 0012 WD 0 0 NR 0012 RW 0 2031 S.. Suspended phys-campus-1# symdg list | grep RDF dg1 RDF2 Yes 000187990182 1 0 0 0 0 phys-campus-1# symrdf -g dg1 establish ... phys-campus-1# symrdf -g dg1 query | grep DEV DEV001 0012 WD 0 0 RW 0012 RW 0 0 S.. Synchronized phys-campus-1# symdg list | grep RDF dg1 RDF2 Yes 000187990182 1 0 0 0 0 |