由于主、備存儲上對Live volume的卷使用相同的設(shè)備ID,當(dāng)主機(jī)掃描到備存儲上的卷時,不會將這個卷當(dāng)做一個新的設(shè)備,而是原設(shè)備多了幾條路徑。
下面以一個500GB卷為例,在沒有映射備存儲上的卷前,主機(jī)上看到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
映射備存儲上的卷后,主機(jī)上看到一共看到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 <-到備存儲的路徑
關(guān)閉主存儲后,主機(jī)上就只能看到到備存儲的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的實(shí)現(xiàn)主要有兩個關(guān)鍵點(diǎn),一是SC存儲內(nèi)部對Live Volume卷使用與主卷相同的設(shè)備ID,二是通過主機(jī)上的多路徑對設(shè)備封裝后只有一個卷,這個卷同時有到主存儲和備存儲的路徑。一旦主存儲出現(xiàn)意外(如斷電導(dǎo)致整個存儲不可用),主機(jī)上的IO只是發(fā)生路徑的切換,整個切換過程應(yīng)用不會中斷,保障業(yè)務(wù)的連續(xù)運(yùn)行。
Oracle RAC + LVAF架構(gòu)模型
通過Oracle RAC 與LVAF結(jié)合,能實(shí)現(xiàn)一個雙機(jī)雙柜的架構(gòu)模型。在主機(jī)層面通過Oracle RAC實(shí)現(xiàn)高可用性,當(dāng)一個主機(jī)出現(xiàn)故障后,RAC中的其它節(jié)點(diǎn)能繼續(xù)提供數(shù)據(jù)庫服務(wù)。在存儲層面,當(dāng)一臺存儲出現(xiàn)故障后,IO切換到另一臺存儲上。下面以A、B兩個站點(diǎn)為例,對該系統(tǒng)架構(gòu)模型進(jìn)行說明。
1. A、B兩個站點(diǎn)各有一臺戴爾PowerEdge R910服務(wù)器和一套戴爾SC4020存儲。
2. 在一臺Windows虛擬機(jī)上安裝Dell Storage Manager提供管理和LVAF仲裁服務(wù)。
3. 在存儲SC4020-A上創(chuàng)建一個數(shù)據(jù)卷Data Disk和一個Voting Disk,將卷同時映射給服務(wù)器R910-A、R910-B。
4. 在服務(wù)器上使用ASMLIB封裝數(shù)據(jù)卷Data Disk和 Voting Disk。
5. 服務(wù)器A、B之間運(yùn)行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. 將數(shù)據(jù)卷Data Disk和Voting Disk卷配置成Live Volume Auto Failover,將數(shù)據(jù)從SC4020-A 同步復(fù)制到SC4020-B。
7. 在SC4020-B上將數(shù)據(jù)卷Data Disk和 Voting Disk卷對應(yīng)的Live Volume卷也映射給服務(wù)器R910-A、R910-B;在服務(wù)器上查看,每個設(shè)備各有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磁盤超時的參數(shù)asm_hbeatiowait,該參數(shù)在Oracle11.2.0.4中默認(rèn)是15秒,建議修改為120秒。
SQL> alter system set “_asm_hbeatiowait”=120 scope=spfile sid=’*’;
System altered.
更改后重啟CRS服務(wù),使參數(shù)生效。
LVAF切換測試
使用HammerDB對RAC數(shù)據(jù)庫進(jìn)行壓力測試,在壓力測試過程中,直接拔掉主存儲的電源,模擬主存儲出現(xiàn)故障。這時Live Volume會發(fā)生自動切換,在HammerDB的管理界面上可以看到,應(yīng)用出現(xiàn)短暫停頓后繼續(xù)運(yùn)行。
通過合理的架構(gòu)測試,Oracle RAC + Dell SC Live Volume Auto-Failover能避免因單個主機(jī)或存儲失效而導(dǎo)致的業(yè)務(wù)服務(wù)中斷,最大限度的保障業(yè)務(wù)的連續(xù)運(yùn)行。