数据库一般作为IT业务系统的核心,因数据库故障而导致企业服务中断或数据丢失,这都是非常严重的后果。IT建设者们正不断努力地在寻找最佳的解决方案,来保障数据库系统连续运行。
在主机层面,Oracle RAC可以在一定程度上避免因为主机的硬件或软件故障引起的非计划停机和业务中断。在存储层面,Dell SC Storage Live Volume Auto-Failover (LVAF) 提供的存储双活解决方案能避免因单套存储因素引起的服务中断。而如何将Oracle RAC 与 Dell SC LVAF结合起来,目前是许多Dell客户关心的话题。
让我们一起看看,如何进行合理的架构设计,充分发挥Oracle RAC 与 Dell SC LVAF的优势,最大限度保障业务的连续运行。
Live Volume Auto-Failover特点
Live Volume Auto-Failover (LVAF) 是Dell SC系列存储内置的存储双活解决方案。主存储使用Live Volume同步复制的方式将卷从主存储复制到备存储,然后在备存储上也将该卷映射给前端的主机,主机能同时看到主、备存储上的卷。
由于主、备存储上对Live volume的卷使用相同的设备ID,当主机扫描到备存储上的卷时,不会将这个卷当做一个新的设备,而是原设备多了几条路径。
下面以一个500GB卷为例,在没有映射备存储上的卷前,主机上看到2条到主存储的路径。
[root@ljjr910-a ~]# multipath -ll
mpathd(36000d31000f19000000000000000020f) dm-3 COMPELNT,Compellent Vol
size=500G features=’1 queue_if_no_path’ hwhandler=’0′ wp=rw
`-+- policy=’round-robin 0′ prio=1 status=active
|- 3:0:9:2 sdb 8:16 active ready running
`- 3:0:17:2 sde 8:64 active ready running
映射备存储上的卷后,主机上看到一共看到4条路径,其中2条是到主存储的路径,2条是到备存储的路径。
[root@ljjr910-a ~]# multipath -ll
mpathd (36000d31000f19000000000000000020f) dm-3 COMPELNT,Compellent Vol
size=500G features=’1 queue_if_no_path’ hwhandler=’0′ wp=rw
`-+- policy=’round-robin 0′ prio=1 status=active
|- 3:0:9:2 sdb 8:16 active ready
running <-到主存储的路径
|- 3:0:17:2 sde 8:64 active ready
running <-到主存储的路径
|- 3:0:13:2 sdg 8:96 active ready
running <-到备存储的路径
`- 3:0:19:2 sdi 8:128 active ready
running <-到备存储的路径
关闭主存储后,主机上就只能看到到备存储的2条路径。
[root@ljjr910-a ~]# multipath -ll
mpathd(36000d31000f19000000000000000020f) dm-3 COMPELNT,Compellent Vol
size=500G features=’1 queue_if_no_path’ hwhandler=’0′ wp=rw
`-+- policy=’round-robin 0′ prio=1 status=active
|- 3:0:13:2 sdg 8:96 active ready running
`- 3:0:19:2 sdi 8:128 active ready running
Live Volume Auto-Failover的实现主要有两个关键点,一是SC存储内部对Live Volume卷使用与主卷相同的设备ID,二是通过主机上的多路径对设备封装后只有一个卷,这个卷同时有到主存储和备存储的路径。一旦主存储出现意外(如断电导致整个存储不可用),主机上的IO只是发生路径的切换,整个切换过程应用不会中断,保障业务的连续运行。
Oracle RAC + LVAF架构模型
通过Oracle RAC 与LVAF结合,能实现一个双机双柜的架构模型。在主机层面通过Oracle RAC实现高可用性,当一个主机出现故障后,RAC中的其它节点能继续提供数据库服务。在存储层面,当一台存储出现故障后,IO切换到另一台存储上。下面以A、B两个站点为例,对该系统架构模型进行说明。
1. A、B两个站点各有一台戴尔PowerEdge R910服务器和一套戴尔SC4020存储。
2. 在一台Windows虚拟机上安装Dell Storage Manager提供管理和LVAF仲裁服务。
3. 在存储SC4020-A上创建一个数据卷Data Disk和一个Voting Disk,将卷同时映射给服务器R910-A、R910-B。
4. 在服务器上使用ASMLIB封装数据卷Data Disk和 Voting Disk。
5. 服务器A、B之间运行Oracle RAC。
[root@ljjr910-a ~]# crs_stat -t
Name Type Target State
Host
———————————————————————–
ora.DATA.dg ora….up.type ONLINE ONLINE ljjr910-a
ora.GRID.dg ora….up.type ONLINE ONLINE ljjr910-a
ora….ER.lsnr ora….er.type ONLINE ONLINE ljjr910-a
ora….N1.lsnr ora….er.type ONLINE ONLINE ljjr910-b
ora.asm ora.asm.type ONLINE ONLINE ljjr910-a
ora.cvu ora.cvu.type ONLINE ONLINE ljjr910-b
ora.dsc.db ora….se.type ONLINE ONLINE ljjr910-a
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora….SM1.asm application ONLINE ONLINE ljjr910-a
ora….-A.lsnr application ONLINE ONLINE ljjr910-a
ora….0-a.gsd application OFFLINE OFFLINE
ora….0-a.ons application ONLINE ONLINE ljjr910-a
ora….0-a.vip ora….t1.type ONLINE ONLINE ljjr910-a
ora….SM2.asm application ONLINE ONLINE ljjr910-b
ora….-B.lsnr application ONLINE ONLINE ljjr910-b
ora….0-b.gsd application OFFLINE OFFLINE
ora….0-b.ons application ONLINE ONLINE ljjr910-b
ora….0-b.vip ora….t1.type ONLINE ONLINE ljjr910-b
ora….network ora….rk.type ONLINE ONLINE ljjr910-a
ora.oc4j ora.oc4j.type ONLINE ONLINE ljjr910-b
ora.ons ora.ons.type ONLINE ONLINE ljjr910-a
ora.scan1.vip ora….ip.type ONLINE ONLINE ljjr910-b
6. 将数据卷Data Disk和Voting Disk卷配置成Live Volume Auto Failover,将数据从SC4020-A 同步复制到SC4020-B。
7. 在SC4020-B上将数据卷Data Disk和 Voting Disk卷对应的Live Volume卷也映射给服务器R910-A、R910-B;在服务器上查看,每个设备各有4条路径。
[root@ljjr910-a ~]# multipath -ll
mpathe (36000d31000f190000000000000000267) dm-2 COMPELNT,Compellent Vol
size=1.0G features=’1 queue_if_no_path’ hwhandler=’0′ wp=rw
`-+- policy=’round-robin 0′ prio=1 status=active
|- 3:0:7:1 sda 8:0 active ready running
|- 3:0:11:1 sdc 8:32 active ready running
|- 3:0:15:1 sdh 8:112 active ready running
`- 3:0:21:1 sdj 8:144 active ready running
mpathd (36000d31000f19000000000000000020f) dm-3 COMPELNT,Compellent Vol
size=500G features=’1 queue_if_no_path’ hwhandler=’0′ wp=rw
`-+- policy=’round-robin 0′ prio=1 status=active
|- 3:0:9:2 sdb 8:16 active ready running
|- 3:0:17:2 sde 8:64 active ready running
|- 3:0:13:2 sdg 8:96 active ready running
`- 3:0:19:2 sdi 8:128 active ready running
8. 本次测试只使用了一个Voting Disk,如果使用了多个Voting Disk,则需要修改ASM磁盘超时的参数asm_hbeatiowait,该参数在Oracle11.2.0.4中默认是15秒,建议修改为120秒。
SQL> alter system set “_asm_hbeatiowait”=120 scope=spfile sid=’*’;
System altered.
更改后重启CRS服务,使参数生效。
LVAF切换测试
使用HammerDB对RAC数据库进行压力测试,在压力测试过程中,直接拔掉主存储的电源,模拟主存储出现故障。这时Live Volume会发生自动切换,在HammerDB的管理界面上可以看到,应用出现短暂停顿后继续运行。
通过合理的架构测试,Oracle RAC + Dell SC Live Volume Auto-Failover能避免因单个主机或存储失效而导致的业务服务中断,最大限度的保障业务的连续运行。