集成 IBM GPFS on IBM AIX 与 IBM Storwize V7000 Unified 的高级复制功能

一个复制 AIX 上 GPFS 数据的灾难恢复解决方案

作者展示了如何使用新 IBM® Storwize V7000® Unified 存储系统的高级复制功能来为 IBM AIX® 操作系统上的 IBM General Parallel File System (IBM GPFS™) 集群构建一个灾难恢复 (DR) 解决方案。本文还介绍并例举了将基于存储单元的复制与 GPFS 软件相集成的一些概念。

Rogerio de Rizzio, 顾问软件工程师, IBM

http://www.ibm.com/developerworks/aix/library/au-aix-integrate_ibm_gpfs/rogerio.jpg>Rogerio de Rizzio 是一名顾问软件工程师,在 IBM Smart Analytics Systems 核心工程团队的 IBM 巴西软件实验室工作。他拥有圣保罗大学的物理学学士学位、计算机网络硕士学位和信息技术管理硕士学位。他在 UNIX 和 Linux、存储、高可用性和灾难恢复 (HA/DR) 以及数据库方面有 15 年的从业经验。



2012 年 10 月 08 日

解决方案概述

我们可以来看一个典型的 GPFS 集群,其中一对节点是一个给定文件系统的冗余管理器,集群中的其他所有服务器都将该文件系统挂载为客户端。在 图 1 中只展示了主站点和辅助站点的 GPFS 管理器。需要从主 GPFS 集群中的所有服务器上复制的数据存储在每台服务器的 /repvol 目录下挂载的共享 GPFS 中。名为 server03server04 的服务器是这个文件系统的 GPFS 管理器,它们也是基础共享磁盘的 Network Shared Disk (NSD) 服务器。基础共享磁盘是使用 Storwize V7000 Unified 存储系统内的 0% 瘦配置虚拟磁盘 (VDisk) 构建的。

为保持主站点和辅助站点之间的配置对称,我们在 Storwize V7000 Unified 系统内为每个站点创建了两个 200GB 的瘦配置 VDisk。在主站点上,其中一个 VDisk 处于空闲状态,而另一个 Vdisk 通过构建 /repvol GPFS 所在的存储区域网络 (SAN) 提供给了服务器 server03server04。这个 VDisk 通过 Storwize V7000 Unified Global Mirror 功能被复制到辅助站点上,这是一种异步类型的复制。辅助站点的对等 VDisk 永远不会提供给 server05server06 服务器,而是用作一个增量 IBM Tivoli® Storage FlashCopy® Manager 映像的源,不时地进行刷新,并挂载在这些服务器的 /repvol 目录中。FlashCopy 映像是使用第二个 200GB 的瘦配置 VDisk 创建的。每次在辅助站点挂载 /repvol 目录时,其中包含的数据均可供该集群中的所有服务器使用。建立主站点与辅助站点之间的物理连接的方式是:配置 SAN 交换机中的 E_Ports,并使用一个低延迟的链接(比如密集波分多路复用 (DWDM) 或暗光纤)将它们互连起来。

图 1. 全文使用的配置的表示

过程中使用的名称

为了让以下过程更加清晰易懂,我们没有使用通用表述,而是采用一些具体的名称:

主站点 Storwize V7000 名称:V7000_7
主站点 Storwize V7000 VDisk 名称:mdisk1_vdiskP1 和 mdisk1_vdiskP2
主站点 Foundation Modules 主机名:server03 server04

辅助站点 Storwize V7000 名称:V7000_6
辅助站点 Storwize V7000 VDisk 名称:mdisk1_vdiskS1 和 mdisk1_vdiskS2
辅助站点 Foundation Modules 主机名:server05 server06

除了前面描述的过程之外,还需要注意提示信息。提示信息中的字符串显示了您要在何处运行命令。

创建基本组件

这个过程创建必要的组件(即主站点和辅助站点上 Storwize V7000 Unified 存储系统内的 VDisk),将它们提供给各自的服务器,并创建一个会被复制的 GPFS NSD 和文件系统。

回顾 Storwize V7000 Unified 文档中的介绍,管理磁盘 (MDisk) 是反映物理存储容量的一个逻辑实体,可以是用给定的独立磁盘冗余阵列 (RAID) 格式配置的直接连接驱动阵列,也可以是可通过 SAN 访问的另一个存储系统上的逻辑单元数 (LUN)。为了使用 MDisk 提供的存储容量,必须将其插入到一个存储池(MDisk 组)中。给定存储池的主要性能在于,它将属于它的所有 MDisk 划分为大小相同的盘区。 盘区大小可以是 16、32、64、128、256、512、1024、2048、4096 或 8192 MB。一个 Storwize V7000 Unified 系统可以管理 2^22 盘区。例如,在盘区大小为 16 MB 的情况下,系统可以管理高达 16 MB × 4,194,304 = 64 TB 的存储。

对某个存储池上的盘区进行分组,以形成卷,也称为 VDisk。Storwize V7000 Unified 系统将 VDisks 映射到主机(服务器)。主机不会看到 MDisk 和驱动器。

假定我们已经定义了一个 MDisk 组(存储池),用 ID 1 表示,我们继续用可用的空闲盘区创建所需大小的 VDisk。

在主站点上,创建 VDisk 并将它们映射到主机:

IBM_2076:V7000_7:superuser> mkvdisk -mdiskgrp 1 -iogrp 0 -size 200
-unit gb -rsize 0% -autoexpand -name mdisk1_vdiskP1
                                  
IBM_2076:V7000_7:superuser> mkvdisk -mdiskgrp 1 -iogrp 0 -size 200
-unit gb -rsize 0% -autoexpand -name mdisk1_vdiskP2
                                     
IBM_2076:V7000_7:superuser> mkvdiskhostmap -force -host server03
mdisk1_vdiskP2
                
IBM_2076:V7000_7:superuser> mkvdiskhostmap -force -host server04
mdisk1_vdiskP2

创建大小为 200 GB 的 VDisk,但在创建这个 VDisk 的时候没有分配任何盘区,这可以用参数 -rsize 0% 来表示。盘区是按需分配的,不过主机将这些卷看作是它们拥有全部的容量。这就是瘦配置的卷的特色。

在我们打算使用 mdisk1_vdiskP2 创建 GPFS NSD 时,这意味着必须同时从 server03server04 访问该 VDisk,-force 选项是 mkvdiskhostmap 命令所必需的。

在完成 Storwize V7000 Unified 系统内的映射之后,服务器中的 AIX 必须重新执行一次扫描来识别新磁盘。

server03# cfgmgr -s                
server04# cfgmgr -s

要探究哪个 AIX hdisk 与映射的 VDisk 对应,首先需要列出 VDisk 的惟一 ID:

IBM_2076:V7000_7:superuser>lsvdisk disk1_vdiskP2
vdisk_UID 60050768028282292800000000000003

然后我们可以使用一段简单的脚本(如以下代码所示)查找 AIX 操作系统识别的所有 hdisk 中援引的 vdisk_UID:

*********************

#!/bin/ksh
 
USAGE="usage :
get_hdisk_ids.ksh <first hdisk number> <last hdisk
number>"
 if (($# != 2))
 then
 print "$USAGE"
 exit 1
 fi
                
 i=$1
 last=$2
               
 while ((i <= last))
 do
 print -n "hdisk$i"
 /usr/sbin/lsattr -El hdisk$i -a unique_id | awk '{print $2}'
 ((i += 1))
 done
*********************
                
server03# ./get_hdisk_ids.ksh 2 125 |grep
60050768028282292800000000000003
hdisk101 33213 60050768028282292800000000000003 04214503IBMfcp

在 server03 上,mdisk1_vdiskP2 被认作是 hdisk101。在 server04,mdisk1_vdiskP2 被认作是 hdisk103。

我们继续在辅助站点以相同的方式创建 VDisk:

IBM_2076:V7000_6:superuser>mkvdisk -mdiskgrp 1 -iogrp 0 -size 200
-unit gb -rsize 0% -autoexpand -name mdisk1_vdiskS1

IBM_2076:V7000_6:superuser>mkvdisk -mdiskgrp 1 -iogrp 0 -size 200
-unit gb -rsize 0% -autoexpand -name mdisk1_vdiskS2

IBM_2076:V7000_6:superuser> mkvdiskhostmap -force -host server05
mdisk1_vdiskS2

IBM_2076:V7000_6:superuser> mkvdiskhostmap -force -host server06
mdisk1_vdiskS2
server05# cfgmgr -s
server06# cfgmgr -s

在 server05,mdisk1_vdiskS2 被认作是 hdisk142。在 server06,mdisk1_vdiskS2 被认作是 hdisk158。

在主站点上,使用一个名为 DescFile 的描述文件,如以下代码中所示,创建 GPFS NSD 和文件系统:

server03# cat DescFile
hdisk101:server03,server04::dataAndMetadata::nsd_repvol:
 
server03# mmcrnsd -F DescFile                
 
server03# cp DescFile DescFileFS
server03# cat DescFileFS
# hdisk101:server03,server04::dataAndMetadata::nsd_repvol:
nsd_repvol:server03:server04:dataAndMetadata:4011::system
 
server03# mmcrfs /repvol repvolfs -F DescFileFS -B 64k
 
server03# mmmount repvolfs -N "server03,server04"

此时,我们创建了一个 GPFS,并将其挂载到 /repvol 目录。

首次建立主站点与辅助站点之间的关系

辅助站点的服务器 (server05, server06) 必须能够通过 IP 网络供主站点的服务器 (server03, server04) 进行访问。

  1. 验证 /repvol 目录已挂载在两台主服务器中:
    server03# mmlsnsd
    File system Disk name NSD servers
    ------------------------------------------ repvolfs nsd_repvol server03,server04 server03# mmlsmount repvolfs -L File system repvolfs is mounted on 2 nodes: 172.23.1.15 server04 172.23.1.14 server03

    将与 GPFS repvolfs 文件系统相关的信息传播到辅助站点的服务器:


  2. server03# mmfsctl repvolfs syncFSconfig -n targetNodesFile
    server03# cat targetNodesFile
    server05
    server06

    主站点和辅助站点的 Storwize V7000 Unified 存储单元必须通过扩展的 SAN 进行彼此交互:
    IBM_2076:V7000_6:superuser>lspartnershipcandidate
    id configured name
    00000200A0208A2C no V7000_7             
                    
    IBM_2076:V7000_7:superuser>lspartnershipcandidate
    id configured name
    00000200A0A08A4A no V7000_6
                    
    IBM_2076:V7000_6:superuser>mkpartnership -bandwidth 2000 V7000_7
    
    IBM_2076:V7000_6:superuser>lspartnership
    id name location partnership bandwidth
    00000200A0A08A4A V7000_6 local
    00000200A0208A2C V7000_7 remote fully_configured 2000
                    
    IBM_2076:V7000_7:superuser>mkpartnership -bandwidth 2000 V7000_6
                    
    IBM_2076:V7000_7:superuser>lspartnership
    id name location partnership bandwidth
    00000200A0208A2C  V7000_7 local
    00000200A0A08A4A V7000_6 remote   fully_configured 2000
  3. 在主站点中的 VDisk 与辅助站点中的 VDisk 之间建立一个 Global Mirror 复制:
    IBM_2076:V7000_7:superuser>mkrcrelationship -master mdisk1_vdiskP2 -aux 
    mdisk1_vdiskS1 -cluster V7000_6 -global
    IBM_2076:V7000_7:superuser>startrcrelationship rcrel1
  4. 在辅助站点的 Storwize V7000 Unified 系统创建增量 FlashCopy 映像:
    IBM_2076:V7000_6:superuser> mkfcmap -source mdisk1_vdiskS1 -target
    mdisk1_vdiskS2 -copyrate 0 -cleanrate 0
  5. 在主站点上,刷新和挂起 /repvol 文件系统中的 I/O:
    server03# mmfsctl repvolfs suspend
  6. 在辅助站点上,验证复制处于 consistent_synchronized 状态:
    IBM_2076:V7000_6:superuser>lsrcrelationship
    id name
    master_cluster_id master_cluster_name master_vdisk_id
    master_vdisk_name aux_cluster_id aux_cluster_name aux_vdisk_id
    aux_vdisk_name primary consistency_group_id consistency_group_name
    state bg_copy_priority progress copy_type cycling_mode
    5  rcrel1 00000200A0A08A4A  V7000_7 5
    mdisk1_vdiskP2     00000200A0208A2C   V7000_6 5 mdisk1_vdiskS1 
    master  consistent_synchronized       
    50 global none
  7. 在辅助站点上,启动 FlashCopy 映像:
    IBM_2076:V7000_6:superuser> startfcmap -prep fcmap1
    IBM_2076:V7000_6:superuser>lsfcmap

    状态必须是 copying。对于增量 FlashCopy 映像(快照),复制进程仍然处在 0%
  8. 在主站点上,继续 /repvol 文件系统上的 I/O:
    server03# mmfsctl repvolfs resume
  9. 在辅助站点上,更新 GPFS NSD 信息:
    server05# mmchnsd "nsd_repvol:server05,server06"
    server05# mmmount repvolfs -o ro -N "server05,server06"

    此时,可以在辅助站点首次访问 /repvol 中的数据。

定期刷新辅助站点的数据

当两个站点都处于活动状态时,可以执行以下步骤,更新被复制的数据供辅助站点使用。

  1. 解除挂载辅助站点上的 /repvol:
    server05# mmumount repvolfs -N "server05,server06"
  2. 在主站点,刷新和挂起 /repvol 文件系统上的 I/O:
      server03# mmfsctl repvolfs suspend

    在辅助站点,验证复制是否处于 consistent_synchronized 状态:
    IBM_2076:V7000_6:superuser>lsrcrelationship
    id name
    master_cluster_id master_cluster_name master_vdisk_id master_vdisk_name aux_cluster_id aux_cluster_name aux_vdisk_id aux_vdisk_name primary consistency_group_id consistency_group_name state bg_copy_priority progress copy_type cycling_mode 5 rcrel1 00000200A0A08A4A V7000_7 5 mdisk1_vdiskP2 00000200A0208A2C V7000_6 5 mdisk1_vdiskS1 master consistent_synchronized 50 global none
  3. 在辅助站点,刷新增量 FlashCopy 映像:
    IBM_2076:V7000_6:superuser>stopfcmap fcmap1
    IBM_2076:V7000_6:superuser>startfcmap -prep fcmap1
  4. 在主站点,继续 /repvol 文件系统上的 I/O:
    server03# mmfsctl repvolfs resume
  5. 在辅助站点,挂载 /repvol:
    server05# mmmount repvolfs -o ro -N "server05,server06"

当主站点停用时访问辅助站点的数据

如果主站点停用时,解除挂载辅助站点上的 /repvol:

server05# mmumount repvolfs -N "server05,server06"

在辅助站点上,即使复制处于 consistent_synchronized 状态,也并不表示复制卷中的文件是一致的。在停用主站时,而且是意外情况造成停用时,正写入 /repvol 文件系统的一些文件可能会遭到损坏。考虑到复制是发生在物理层面(VDisk 层)上,所以主站点和辅助站点的 VDisk 的各个扇区可能是相同的,但 VDisk 的逻辑内容,即其中的文件,可能是不一致的。因此,在使用之前必须验证其完整性。

在辅助站点上,刷新增量 FlashCopy 映像:

IBM_2076:V7000_6:superuser>stopfcmap fcmap1
IBM_2076:V7000_6:superuser>startfcmap -prep fcmap1

在辅助站点上,挂载 /repvol 文件系统:

server05# mmmount repvolfs -o ro -N "server05,server06"

在使用存储在 /repvol 中的文件之前,使用与各个应用程序相关的工具检查其一致性。例如,如果正在复制数据库归档的事务日志,那么数据库通常会提供工具来验证这些文件的完整性。

产品版本

本文使用的 IBM 产品版本是:

  • AIX 7.1
  • GPFS 3.4.0.9
  • Storwize V7000 Unified 存储 – 代码级别 6.3.0.0

参考资料

学习

  • 有关 IBM Storwize V7000 Unified 存储系统的更多信息,请查阅 信息中心
  • 有关 GPFS 的信息,请访问 集群产品信息中心
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=839439
ArticleTitle=集成 IBM GPFS on IBM AIX 与 IBM Storwize V7000 Unified 的高级复制功能
publish-date=10082012