前面我們通過Veritas Cluster Server for DB2雙機-入門一文已經向大家介紹了DB2雙機的基本原理和配置方法,本文將接續上文,繼續介紹DB2的高級需求-大規模並行處理(Massively Parallel Processing, MPP)-環境下,用戶如何利用VCS配置雙機互備環境。
需要強調的是,本文是接續上文Veritas Cluster Server for DB2雙機-入門,繼續進行雙機介紹,因此在看本文之前,最好先看看本文上篇Veritas Cluster Server for DB2雙機-入門。
MPP簡介
首先介紹一下DB2的大規模並行處理(MPP)的含義。MPP其實就是多台計算機協同工作,共同完成同一個任務,目的就是為了能夠使用一些比較廉價的服務器一起工作,提供給用戶單機無法完成的服務。而雙機互備就是指當這些機器中的某一天出現故障的時候,其他的服務器可以接管運行在其上的服務請求,保證服務的高可用性。
大規模並行處理有兩種方式:無共享並行方式和共享磁盤並行方式。
無共享並行方式是指集群中的數據庫系統各自使用自己的數據資源,將協調程序發給自己的數據請求在自己的數據庫上面查詢,再將結果返回,由協調程序來將各個數據庫發過來的數據組合成大的數據集並且發送給用戶。這種工作模式的優點是易於部署,結構簡單清晰;缺點是缺乏高可用性,節點中任何一個節點的損壞都會導致其數據資源不可獲得,破壞了數據請求的完整性。其工作模式如下圖所示:
圖1 無共享並行體系結構
共享磁盤共享方式是指多個數據庫同時工作,但是他們所讀寫的資源都是在一個共享的磁盤庫中。他們之間的訪問沖突是通過鎖機制來解決的。它的優點是高可用性,任何一個節點的故障都不會對數據訪問造成影響,每一個節點都可以訪問全部的數據資源;這種缺點當然也是有缺點的:隨著服務器數量的增加,鎖的數量以及數據庫訪問失敗的頻率也會指數級的增加,會成為數據庫訪問的瓶頸。然而,在目前的實際應用中,一般集群數量不會太多,所有這個因素可以忽略不記,而其帶來的高可用性是大多用戶選擇它的主要原因。其工作原理如圖所示:
圖2,共享磁盤並行體系結構
Symantec SFCFS簡介
SFCFS的全稱是Storage Foundation Cluster File System;它是symantec旗下SF產品線的一員,其具體的安裝配置過程稍後會有仔細的講解。現在就讓用戶大概了解一下:SFCFS其實和SF是非常相似的,都是用來管理磁盤和文件系統的。對於磁盤組,卷和文件系統的概念和SF是完全一樣的。它和SF唯一的不同是它支持多個節點同時訪問一個文件系統上面的數據,由SFCFS來進行文件鎖管理,而SF中對於文件系統的訪問是具有獨占性的。SFCFS允許多個節點同時訪問的特點就是針對數據庫的並行操作的需求而來的,所以它非常適合進行數據庫的並行處理模式的管理。
DB2的配置
在DB2的配置中,我們先做好如下假設:由system1和system2來組成集群,其IP分別是192.168.0.1 192.168.02,磁盤組名為DB2DG,卷為DB2Vol,文件系統將掛載在/home/db2目錄下。
注意:在配置過程中將不再說明DB2的基礎配置,配置的詳細信息請看Veritas Cluster Server for DB2雙機-入門。
1.安裝SFCFS的程序在system1和system2上;
2.創建SFCFS需要使用的共享磁盤和共享文件系統(原理和細節稍後會有專題,這裡只是配置):
a)在兩台機器上面運行下面命令:
i.# vxdctl -c mode
得到的結果可能是下面兩個中的任意一個:
cluster active - MASTER
cluster active – SLAVE
注意,下述的命令只能在返回是master的那台機器執行,因為它是整個cluster中的主節點。
b)創建共享磁盤組
# vxdg -s init DB2DB c0t0d0; -s就是共享(share)的意思;
c)將新建的磁盤組以共享模式加入到system1和system2:
# vxdg deport DB2DG
# vxdg -s import DB2DG
注意:如果在這裡沒有用-s參數,那麼磁盤組將被第一個執行導入的系統使用,其他系統的導入操作將會失敗。必須以共享模式導入才能被多個系統使用。
d)創建卷:
# vxassist -g DB2DG make DB2Vol 5g
e)創建文件系統:
# mkfs -F vxfs -o largefiles /dev/vx/rdsk/DB2DG/DB2Vol
f)將新建的文件系統以共享模式加載到兩台機器上面:
# mkdir /home/db2
# mount -F vxfs -o cluster /dev/vx/dsk/DB2DG/DB2Vol /home/db2
3.在兩台機器創建相同的數據庫管理組和管理員,並且加上DB2的注冊碼(配置方法見入門篇):
4.安裝DB2的程序到兩台機器上,將數據文件指定到共享盤所在的目錄/home/db2下面;
5.修改db2nodes.cfg文件;
這裡我想詳細的講述一下這個文件的格式,因為這個文件的配置正確與否之間關系到了配置能否成功,而對於這個文件的內容,即使很多DB2的老用戶也不是很清楚:
這個文件的一個常見配置如下所示:
0 sysA 0
1 sysA 1
2 sysB 0
3 sysC 0
4 sysD 0
這個文件的每一行是一個節點的信息,其中第一列數字是唯一編號,表示後面的系統分區是一個集群的成員;第二列是主機的名稱,一般就是系統的名稱,表示這個成員是運行在哪台主機上的;第三列是端口偏移量,如果某個系統上面部署了多個分區提供數據庫服務的話,DB2將通過不同的端口服務來區別不同的分區。
所以,根據上述解釋,將該文件修改如下:
0 system1 0
1 system2 1
6.確認數據庫安裝配置正常:
在每一台機器執行下列命令:
# su - db2inst1
$ db2start
$ db2stop
如果配置正確,那麼下列命令在各個系統都能工作正常。
這樣,數據庫的配置就已經完成了。
VCS的配置
1.配置集群文件系統服務組:
在安裝了SFCFS之後,VCS自動為集群文件系統創建一個原始的服務組,我們只需要稍微改變它一下即可。
a)在該磁盤組下面創建Cluster Disk group資源和Cluster Volume資源;並修改其屬性,讓它們控制DB2DG和DB2Vol的狀態;
b)在原有的集群掛載點資源(CFSMount)上設置依賴屬性,讓其依賴於集群卷;在設置集群卷依賴與集群磁盤組;
c)設置後的關系圖如圖所示:
圖3,集群文件系統依賴關系圖
2.配置DB2服務組:
a)創建DB2資源,IP資源和網卡資源,分別設定其屬性,IP就是各個系統的主機IP地址;
b)設置資源間的依賴關系:DB2數據庫依賴IP資源,IP資源依賴網卡資源;
c)設置好的關系圖如圖所示:
圖4,DB2數據庫的依賴關系
3.建立集群服務組和DB2服務組之間的依賴關系:
a)右鍵點擊VCS界面左側新建的DB2服務組;
b)選擇“link”,然後選擇CFS服務組,選擇online local以及soft模式;
c)這樣DB2服務組就依賴與CFS服務組的狀態了,如果CFS在某台系統故障,則其上的數據庫服務就會停止,對其資源的請求將會被DB2轉移到其他數據庫節點上面;
4.測試工作狀態:
讓DB2服務組在兩台機器同時上線,如果成功,則說明配置已經生效,並能正常使用。
數據庫作為現在數據管理不可或缺的一個部分,在生產環境中有著重要的地位。因此,如何能夠使數據庫能夠穩定,高效的工作,成為每一個數據庫管理員和系統管理員重要的工作。所以配置數據庫雙機互備和雙機熱備的配置方法,是每一個數據庫管理員的基礎。
通過本文及一些相關文章大家已經了解到DB2數據庫的管理和配置方法,下面我們還將為大家介紹Oracle和Sybase的集群的配置方法,並可以比較這些主流數據庫的不同之處。