參考鏈接:高手教你用VCS配置DB2雙機
高手教你用VCS DB2雙機高級配置
高手教你用Symantec VCS配置Oracle雙機
VCS是一個機群管理軟件,最大的特點在于多平臺和產品的兼容性,同時也提供了集群環境的全面的可用性管理,降低計劃的和非計劃的停機時間。
集群軟件的分類
一般來講,集群軟件分為三種:
高性能集群(High performance cluster,HPC),它是利用一個集群中的多臺機器共同完成同一件任務,使得完成任務的速度和可靠性都遠遠高于單機運行的效果。彌補了單機性能上的不足。該集群在天氣預報、環境監控等數據量大,計算復雜的環境中應用比較多;
負載均衡集群(Load balance cluster, LBC),它是利用一個集群中的多臺單機,完成許多并行的小的工作。一般情況下,如果一個應用使用的人多了,那么用戶請求的相應時間就會增大,機器的性能也會受到影響,如果使用負載均衡集群,那么集群中任意一臺機器都能相應用戶的請求,這樣集群就會在用戶發出服務請求之后,選擇當時負載最小,能夠提供最好的服務的這臺機器來接受請求并相應,這樣就可用用集群來增加系統的可用性和穩定性。這類集群在網站中使用較多;
高可用性集群(High availability cluster,HAC),它是利用集群中系統 的冗余,當系統中某臺機器發生損壞的時候,其他后備的機器可以迅速的接替它來啟動服務,等待故障機的維修和返回。最大限度的保證集群中服務的可用性。這類系統一般在銀行,電信服務這類對系統可靠性有高的要求的領域有著廣泛的應用。
VCS是屬于其中的高可用性的集群,它能夠在最短的時間內保證服務的可用性。對于當機時間有嚴格要求的需求來說,VCS可以提供良好的服務保證。
VCS環境的搭建與邏輯結構
與所有的集群軟件一樣,VCS需要內部心跳線來通信,監控整個集群中所有節點的狀態,為了保證高可用性,一般選擇兩條心跳線,以免某條網線發生故障影響系統的使用。
心跳線的連接有兩種方法,直連或者通過通過交換機連接。如果使用的是交換機連接的方式,需要配置兩個交換機分別接在不同的心跳上面。這樣可以避免因為交換機故障而破壞系統使用。此外,心跳線使用的網卡最好不是公網網卡,因為心跳信息是每時每刻都要往外面發送數據,如果用公網網卡作為心跳網卡,第一可能會影響公網的使用速率;第二是可能在公網網絡中增加了大量的垃圾信息,增加網絡負載。
如果需要連接SAN存儲,那么光纖卡也是不可或缺的。雖然一般的光纖卡上面都配置有兩個光纖口,但是盡快選擇兩塊不同的光纖卡以免單一光纖卡成為了高可用環境的瓶頸所在。
VCS 使用的心跳協議叫做LLT(低延遲傳輸協議,Low Latency Transport),LLT運行在IP之下。這個協議比IP更快且更可靠。這能確保集群成員保持同步和在集群中能馬上聯系對方;
在LLT上方的協議是GAB(組成員服務和廣播,Group Membership Services/Atomic Broadcast),它負責發送廣播,接收集群中所有節點的相應,得出集群中節點的狀態信息;它也能接受上層服務的注冊,將上層服務發出的命令通過LLT發送到各個節點中去。
HAD(高可用進程, hign availability daemon)就是VCS的主要進程,它在gab上注冊之后,可以監控管理整個集群中節點的狀態。
Agent是veritas提供或者個人用戶自己實現的代理,用來實現用戶特定的應用。舉例來說,oracle服務就可以是一個代理,該代理可以通過監控oracle數據庫的進程來判斷oracle數據庫的運行狀態。VCS了解到判斷方法后,會通過GAB和LLT服務來監控集群中所有節點上這些進程,從而監控oracle數據庫的狀態以及切換。
從下圖可以看出VCS邏輯結構的關系圖:
VCS邏輯結構圖
VCS的使用
啟動VCS的圖形界面,/opt/VRTSvcs/bin/hagui,默認的用戶名和密碼分別是admin、password,在安裝過程中可以選擇添加其他的用戶。
VCS中有兩個概念,一個是服務組(service group),另外一個是資源(resource)。資源是監控的最小單位,可以監控某個特定的硬件或者軟件的狀態。多個資源可以構成一個服務組,共同監控一個應用的運行。多個組也可以組成一個更大的服務組。
舉例說起來比較容易,以oracle應用為例來說明一下:
首先應該創建一個oracle服務組,然后在該組里面添加所需的節點,oracle服務將在這些節點中進行切換,保證服務的高可用性。
另外,如果需要啟動oracle,那么至少需要以下資源能夠正常工作:
網卡:提供oracle服務所需的IP地址所在的網卡;網卡設置必須指明設備名稱;
IP地址:提供oracle服務的IP地址必須在該主機上時刻存在;IP地址必須指明IP地址和設備,掩碼和廣播地址是可選的;
目錄1:$ORACLE_HOME所在的目錄必須存在;目錄必須指明目錄名,如果是共享磁盤,還需要指明設備地址和文件系統類型;
目錄2:Oracle數據做存放的位置必須存在;
Oracle代理:監控oracle進程的存在以及系統表空間可以訪問;Oracle代理必須指明SID,數據庫的owner,$ORACLE_HOME這些變量;
除此之外,如果oracle數據需要放在共享磁盤上面,那么還要添加磁盤組資源和 卷資源
建立各個資源的依賴關系
添加了resource之后還不夠,VCS無法了解到用戶的具體的需求,所以不能做出合適的判斷。這時需要在各個資源直接建立起依賴關系。這個以來關系是很好建立的:
Oracle服務的正常使用依賴其他三個資源:IP地址存在,數據庫程序所在目錄存在和數據庫文件所在目的的存在。所以它有三個以來關系,我們可以在VCS中將oracle資源分別與其他的三個資源link起來。
IP資源的存在必須依賴網卡的正常,所以需要將IP資源與網卡資源link起來。
如果oracle文件目錄或者數據目錄是存放在共享磁盤上,那么該文件目錄(mount point)依賴卷,卷依賴與磁盤組,也需要link起來。
這樣,如下圖所示,所有的資源都有機的聯系到一起了,在左邊的oracle服務組上點擊右鍵,可以選擇oracle online到某一個節點,然后還可以選擇從該節點切換(switch to)到其他節點。這樣,整個VCS的配置就完成了。