分类: 服务器与存储
2010-09-07 23:01:48
下面简单解释一下起工作方式(其中绿色 [第一组] 为生产站点磁盘
1. 绿色和橙色磁盘之间进行PPRC-XD异步操作
2. 绿色磁盘组根据预先设置的时间,生成“一致性组”(Consistency Group),并记录状态
3. 采用PPRC-XD异步操作方式,将且只将“一致性组”记录下来的数据传递从绿色磁盘组传递到橙色磁盘组
4. 3完成后,立刻将橙色磁盘组数据FlashCopy到蓝色磁盘组,进行一致性数据保留
5. 4完成后,回到步骤1
由于有“一致性组”的保护,虽然采用异步方式,一旦每一个“一致性组”数据包传递成功的那一时刻,橙色磁盘组的数据是一致的;由于步骤4,蓝色磁盘组将能够保留最近一次“完全一致性”的数据。一旦出现灾难,客户丢失的是两次生成“一致性组”间隔之间的数据。
ESS/DS8000/DS6000能够每3~5秒生成一次“一致性组”,意味着客户即使采用异步方式,也有可能只丢失3~5秒的数据。一般的异步方式,客户会丢失几个小时以上的数据,并且操作十分繁琐。
2 Global Mirror规划
Global Mirror需要十分仔细地规划,详细内容请参考DS8000 Series Copy Services in Open Environments sg246788. 本文示例的环境及其拓扑图如下,我们用ESS和DS8000分别作为Global Mirror的源和目标,充分展示了Global Mirror的灵活性:
在本文中我们将使用DScli 方式来管理 copy service,我们在图中的Primary Server 和Secondary Server 上都安装了与存储微码相对应的DScli:
2.1 最低要求(微码及其他):
ESS800: 2.4.3.65
DS8000: 6.0.500.52(code bundle)
ESS/DS8000上都要有PPRC license以及fiber channel卡。不可以用ESCON卡。
2.2 在ESS和DS8000上建立相符的ID/PASSWORD
我们在ESS和DS8000建立一个具有admin组权限的ID/PASSWORD: admin/passw0rd
方法:
ESS800: GUI: ESS Specialist->User tab-> Modify Users
DS8000: DScli: mkuser -pw passw0rd -group admin admin
2.3 网络连接:
2.4 PPRC卷大小的考虑问题:
由于在ESS和DS8000中缺省状态下对GB的解释不同:
ESS方式:1GB=109 B=1,000,000,000B
DS缺省方式:1GB= 230 B=1,024*1024*1024B
所以我们要特别小心定义卷:
1.在ESS 上察看 ESS卷大小:
ESS Specialist->Storage Allocation->Open System Storage->Modify VolumesAssignments
2.以该卷大小为准定义在DS8000上卷的大小,使用特殊参数-type ess
dscli> mkfbvol -extpool p4 -cap 40 -type ess 0600-0605
Date/Time: 2006年10月24日 下午02时54分49秒 IBM DSCLI Version: 5.1.600.278 DS: IBM.2107-7547491
CMUC00025I mkfbvol: FB volume 0600 successfully created.
CMUC00025I mkfbvol: FB volume 0601 successfully created.
CMUC00025I mkfbvol: FB volume 0602 successfully created.
CMUC00025I mkfbvol: FB volume 0603 successfully created.
CMUC00025I mkfbvol: FB volume 0604 successfully created.
CMUC00025I mkfbvol: FB volume 0605 successfully created.
可以看到新定义的卷是在 cap (10^9B) 列中存在的。通过这种方式我们可以保证参加Global Mirror的卷大小是完全一致的。
以下是我们在生产中心ESS800和容灾中心DS8000的上LSS和A/B/C/D卷的定义,容量均为40G:
盘 LSS 卷标
A 16/17 1600 1700
B 06/07 0600 0700
C 06/07 0601 0701
D 06/07 0602 0702
3 配置ESS Copy Service Server
启动ESS Specialist:
点击Tools:
选择第二行:Define Copy Services active servers
点击Define Servers:
键入Copy Service ServerA和ServerB的地址:
再定义Client,点击Define Clients, 把所有参加Copy Service的所有ESS的cluster都定义为client, 其中Client1 ClusterBay0 Host Name等处不能乱填,要填入在ESS的hosts文件中定义的host名字(注意:当改变ESS cluster IP地址时,ESS /etc/hosts文件中会保留原来的IP地址的解析,一定要将其删除!):
在所有的ESS上分别定义以上的server和client,然后分别用下图中的Restart来重启Copy Services Server:
配置好后,我们可以通过DScli来调用Copy Services Server了.
4 Global Mirror场景
在本文中我们将探讨在Global Mirror中可能发生的各个阶段的任务。
4.1 建立Global Mirror环境
要建立Global Mirror环境,要做一下几步:
1. 确定PPRC link可用的光纤端口:
2. 建立从LSSA到LSSB的PPRC PATH
3. 建立从卷A到卷B 的Global Copy 对
-建议等到从卷A到卷B的初始拷贝完成再进行下一步。
4. 建立从卷B到卷C 的FlashCopy 关系
5. 在每个LSS 上建立 Global Mirror session (要使用相同的session ID,这里我们设为1)
6. 在每个LSS 上把所有的卷A 加到 session 中
7. 启动 Global Mirror
4.2 清除Global Mirror环境
1. 终止 Global Mirror session
2. 从 Global Mirror session中删除所有原卷(A)
3. 关闭 Global Mirror session.
4. 在容灾中心DS8000上去掉 B 和 C 卷的FlashCopy关系
5. 在生产中心ESS800上去掉 A 和 B 卷的Global Copy 关系
6. 去掉 PPRC paths.
4.3 生产中心故障或维护,切换到容灾中心
(注意,灾难发生后,我们将用B 卷,如果测试用的D 卷 也是在同一台host上,请先将其umount 文件系统,varyoffvg等等,这样将会避免由于B和D都是来源于A,其pvid相同带来的问题)
1. 终止 Global Mirror session
2. 在容灾中心DS8000上去掉 B 到D 卷的FlashCopy关系(如果我们曾在演习中使用过B 到D 卷的 FlashCopy关系的话)
3. Fail over B -> A. (让B可以被host访问)
4. 检查B 卷的状态是否为revertible(验证 Consistency Group 是否有效)
通常情况下是不会出现Revertible的,所以不用采取额外的步骤,但是如果有的话,请并参照下表采取相应的步骤:
5. 在 B 卷上恢复一致性数据 (B 到 C的反向快速 FlashCopy-FRR ). 并等待它结束
6. 重新建立从卷B到卷C 的FlashCopy 关系(在上一步中会自动去掉卷B到卷C的关系)
7. 在容灾中心的卷B上开始恢复生产。
4.4 生产中心恢复,从容灾中心切换回来
现在将备份站点的数据复制回主站点。注意,如果是容灾演习,请停止主站点的host对A 卷的访问(如umount 文件系统,varyoffvg等等)。
1. 建立从LSSB到LSSA的PPRC PATH
2. Failback Global copy B->A(开始从B到A复制数据)
3. 查询状态:B->A 的增量数据(Global Copy first pass)是否拷贝完成
4. 停止容灾中心的卷B上的应用
5. 查询状态:B->A 的增量数据(Global Copy Out Of Sync Tracks)是否拷贝完成
6. 建立从LSSA到LSSB的PPRC PATH,如果它们不存在的话
7. Fail over A-> B. (让A可以被host访问)
8. Failback Global copy A->B(开始从A到B复制数据)
9. 启动 Global Mirror.
10.在生产中心启动应用
4.5 容灾演习并在容灾中心获得测试用的D卷
Global Mirror的机制允许你快速在如何在备份站点获得计划内的复本(D 卷),它是生产卷(A 卷)的一个快照,可以用来进行容灾测试、复制质量测试、备份、数据挖掘、应用测试等等。在我们的实践中充分体会到它的重要性和易用性,以及对生产卷最小的干扰性。在我们的测试环境中可以在1分多钟的时间内获得一组D 卷组,并恢复Global Mirror 的进程。
我们可以通过执行以下的任务达到此目的:
1. 查询Global Mirror环境并检查环境是否健康
2. 暂停 Global Mirror并等待暂停执行完毕
3. 暂停 Global Copy A -> B.
4. Fail over B -> A. (让B可以被host访问)
5. 在容灾中心去掉 B 到D 卷的FlashCopy关系(如果我们曾在演习中使用过B 到D 卷的FlashCopy关系的话)
6. 在 B 卷上恢复一致性数据 (B 到 C的反向快速 FlashCopy-FRR ).
7. 等待FRR结束
8. 重新建立从卷B到卷C 的FlashCopy 关系(在上一步中会自动去掉卷B到卷C的关系)
9. 重新建立从卷B到卷D 的FlashCopy 关系
10. Failback Global copy A->B(开始从A到B复制数据)
11.恢复 Global Mirror.
12. 在容灾中心的D卷上测试刚才获取的生产数据。
5 实现Global Mirror 的脚本
由于在上节说述各个场景中需要执行多个命令来达到所需要的结果,实现起来比较复杂,作者编写了脚本来实现这些任务,将实现Global Mirror的复杂程度大大降低。
脚本以Windows2003为例,在安装了DScli 后,只要把所附的脚本拷贝到DScli安装目录下的profile目录,并按Global Mirror规划要求修改相应的ESSsource.profile, DS8Ksource.profile, GMconfig.cmd定义文件后, 执行“GM_main_menu.CMD GMconfig.cmd”,GM_main_menu.CMD主程序将会根据选项调用所有其他程序完成Global Mirror环境的建立、清除、生产中心故障或维护,切换到容灾中心、生产中心恢复,从容灾中心回切、容灾演习并在容灾中心获得测试用的D卷等任务。
受篇幅所限,我们将相关脚本放置于IBM技术支持中心的网站上,请在以下网站上 搜索“Global Mirror”,可以找到本文相关的脚本。