劉鵬 靳文婷
[摘要] 本文首先介紹了故障轉(zhuǎn)移集群技術(shù)在檔案管理系統(tǒng)中的實(shí)現(xiàn)原理,通過(guò)對(duì)石油銷售企業(yè)檔案管理系統(tǒng)中故障轉(zhuǎn)移集群的研究,闡述了當(dāng)數(shù)據(jù)庫(kù)服務(wù)器處理客戶請(qǐng)求發(fā)生故障時(shí),故障轉(zhuǎn)移集群技術(shù)是如何應(yīng)用于檔案管理系統(tǒng)中,保證客戶請(qǐng)求正常處理的。
[關(guān)鍵詞] 故障轉(zhuǎn)移集群技術(shù); 檔案管理系統(tǒng); 數(shù)據(jù)庫(kù)服務(wù)器; SQL Server
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 16. 043
[中圖分類號(hào)]F272.7[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673 - 0194(2012)16- 0074- 02
1故障轉(zhuǎn)移集群概述
網(wǎng)絡(luò)中的多個(gè)服務(wù)器構(gòu)成一個(gè)組,并以單一系統(tǒng)的模式加以管理。一個(gè)客戶向集群提出服務(wù)請(qǐng)求時(shí),集群作為一個(gè)獨(dú)立的服務(wù)器對(duì)客戶提出的服務(wù)請(qǐng)求進(jìn)行處理。集群配置是用于提高可用性的解決方案。
故障轉(zhuǎn)移集群是用于實(shí)現(xiàn)SQL Server數(shù)據(jù)庫(kù)服務(wù)器高可用性的解決方案。一個(gè)集群通常由多臺(tái)服務(wù)器組成,每臺(tái)服務(wù)器稱為一個(gè)節(jié)點(diǎn)。通過(guò)使用冗余節(jié)點(diǎn)來(lái)減少宕機(jī)時(shí)間,為檔案系統(tǒng)數(shù)據(jù)庫(kù)業(yè)務(wù)的高可用性提供了有力的保障。
2故障轉(zhuǎn)移集群在石油銷售企業(yè)檔案管理系統(tǒng)項(xiàng)目中的應(yīng)用
2.1故障轉(zhuǎn)移集群技術(shù)的實(shí)現(xiàn)原理
SQL Server支持本地集群,即所有節(jié)點(diǎn)都在同一個(gè)子網(wǎng)內(nèi),通常位于同一個(gè)物理地點(diǎn);如果節(jié)點(diǎn)跨越不同區(qū)域,則必須把所有的節(jié)點(diǎn)都配置到同一個(gè)VLAN中,客戶在訪問(wèn)不同節(jié)點(diǎn)服務(wù)器時(shí)所訪問(wèn)的地址都在同一個(gè)子網(wǎng)內(nèi)。
SQL Server故障轉(zhuǎn)移集群有兩個(gè)核心層次,一個(gè)是Windows系統(tǒng)層,一個(gè)是SQL Server數(shù)據(jù)庫(kù)層。Windows故障轉(zhuǎn)移集群是一個(gè)平臺(tái),提供了與應(yīng)用無(wú)關(guān)的故障轉(zhuǎn)移的基本功能,比如節(jié)點(diǎn)之間心跳檢測(cè)、故障轉(zhuǎn)移策略管理等。SQL Server故障轉(zhuǎn)移集群提供了具體應(yīng)用的故障轉(zhuǎn)移功能。安裝SQL Server故障轉(zhuǎn)移集群前,必須要先把所用的節(jié)點(diǎn)加入到同一個(gè)Windows故障轉(zhuǎn)移集群中。
SQL Server的故障轉(zhuǎn)移集群也支持多實(shí)例。每一個(gè)SQL Server故障轉(zhuǎn)移集群的實(shí)例都有一個(gè)虛擬的網(wǎng)絡(luò)標(biāo)識(shí),客戶通過(guò)該標(biāo)識(shí)訪問(wèn)集群數(shù)據(jù)庫(kù)。當(dāng)客戶訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器時(shí),只是針對(duì)特定的服務(wù)器集群地址進(jìn)行訪問(wèn),集群內(nèi)部有很多服務(wù)器節(jié)點(diǎn),客戶是不能指定的。正常處理客戶請(qǐng)求時(shí),只有一個(gè)節(jié)點(diǎn)上的SQL Server?qū)嵗幱谶\(yùn)行狀態(tài),此節(jié)點(diǎn)稱為活動(dòng)節(jié)點(diǎn),而所有其他節(jié)點(diǎn)則稱為被動(dòng)節(jié)點(diǎn)。集群的虛擬網(wǎng)絡(luò)名字總是映射到當(dāng)前活動(dòng)節(jié)點(diǎn)的IP上。
故障轉(zhuǎn)移有兩種形式:① 由管理員發(fā)起的,一般是在對(duì)當(dāng)前活動(dòng)節(jié)點(diǎn)進(jìn)行系統(tǒng)維護(hù)之前先把整個(gè)集群轉(zhuǎn)移到其他節(jié)點(diǎn)上;② 系統(tǒng)檢測(cè)到故障時(shí)自動(dòng)進(jìn)行的故障轉(zhuǎn)移。Windows故障轉(zhuǎn)移集群會(huì)首先停止當(dāng)前活動(dòng)節(jié)點(diǎn)上的SQL Server?qū)嵗M(jìn)程,然后根據(jù)該實(shí)例的故障轉(zhuǎn)移策略選擇一個(gè)新的節(jié)點(diǎn),最后在此新節(jié)點(diǎn)上啟動(dòng)SQL Server的實(shí)例進(jìn)程,同時(shí)獲得對(duì)SAN的獨(dú)占訪問(wèn)權(quán)。這個(gè)節(jié)點(diǎn)就成為了新的活動(dòng)節(jié)點(diǎn),虛擬網(wǎng)絡(luò)名字也隨之映射到此新節(jié)點(diǎn)上,從而保證客戶應(yīng)用還能正常連接數(shù)據(jù)庫(kù)。由于數(shù)據(jù)都是存儲(chǔ)在共享的SAN上的,在故障轉(zhuǎn)移過(guò)程中并不需要數(shù)據(jù)復(fù)制。宕機(jī)時(shí)間只發(fā)生在故障轉(zhuǎn)移時(shí)短暫的瞬間,即舊的活動(dòng)節(jié)點(diǎn)的實(shí)例進(jìn)程被停止后,到新的活動(dòng)節(jié)點(diǎn)的實(shí)例進(jìn)程正常工作之前。當(dāng)然,故障轉(zhuǎn)移之前的客戶連接都會(huì)被中斷,所有未完成的事務(wù)都會(huì)被回滾,并且故障轉(zhuǎn)移完成之后,客戶端需要重新連接數(shù)據(jù)庫(kù)。
2.2故障的檢測(cè)和轉(zhuǎn)移策略
故障的種類多種多樣。如前所述,Windows故障轉(zhuǎn)移集群為集群應(yīng)用提供了底層服務(wù),對(duì)于網(wǎng)絡(luò)故障、磁盤故障等,都是由它來(lái)檢測(cè)的。而每個(gè)SQL Server集群實(shí)例自身的故障(比如拒絕客戶端連接、無(wú)響應(yīng)等)則是由一個(gè)為SQL Server定制的集群資源來(lái)檢測(cè)的,稱為“SQL Server資源”,其任務(wù)就是定期去查詢數(shù)據(jù)庫(kù)的狀態(tài)。通過(guò)輕量查詢“LooksAlive”默認(rèn)配置每5秒鐘檢查數(shù)據(jù)庫(kù)服務(wù)器的狀態(tài),本身并不會(huì)失去數(shù)據(jù)庫(kù)連接,查詢次數(shù)也較多,對(duì)數(shù)據(jù)庫(kù)造成的影響很小。
故障發(fā)生時(shí),轉(zhuǎn)移策略可以很好地滿足客戶需求。當(dāng)然,客戶還可以隨時(shí)根據(jù)自己的特殊需求,用Windows集群管理器對(duì)集群實(shí)例內(nèi)的每個(gè)資源單獨(dú)配置不同的策略。如果要轉(zhuǎn)移到新節(jié)點(diǎn),則同實(shí)例內(nèi)部的所有其他資源都會(huì)跟著轉(zhuǎn)移。集群內(nèi)部的狀態(tài)信息都會(huì)同時(shí)記載到集群日志和Windows事件瀏覽器中,所以一旦集群發(fā)生了異常,總可以通過(guò)研究這些信息了解系統(tǒng)狀態(tài)變化的全過(guò)程。
2.3故障轉(zhuǎn)移集群配置
根據(jù)規(guī)劃,石油銷售企業(yè)檔案管理系統(tǒng)采用PC服務(wù)器,所有服務(wù)器安裝中文版Windows Server 2008 R2操作系統(tǒng)(x64位),每臺(tái)服務(wù)器操作系統(tǒng)均安裝在硬盤的第一個(gè)主分區(qū)上,用于生產(chǎn)系統(tǒng)。
為確保檔案系統(tǒng)操作系統(tǒng)和應(yīng)用部署,集成現(xiàn)有的AD環(huán)境和ERMS權(quán)限認(rèn)證平臺(tái),生產(chǎn)系統(tǒng)服務(wù)器均加入PTR域,通過(guò)域用戶(ERMS)進(jìn)行集中控制、安全管理、應(yīng)用軟件部署等。
每臺(tái)服務(wù)器都同時(shí)連接兩個(gè)網(wǎng)段,分別是廣域網(wǎng)網(wǎng)絡(luò)和內(nèi)部專用網(wǎng)絡(luò)。廣域網(wǎng)地址主要用于檔案系統(tǒng)Web服務(wù)訪問(wèn)、遠(yuǎn)程操作系統(tǒng)維護(hù)等;內(nèi)部專用網(wǎng)絡(luò)主要實(shí)現(xiàn)集群心跳網(wǎng)絡(luò)、檔案系統(tǒng)Web服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器交互及服務(wù)器遠(yuǎn)程控制管理等。通過(guò)ERMS登陸到節(jié)點(diǎn)服務(wù)器,建立數(shù)據(jù)庫(kù)服務(wù)器“故障轉(zhuǎn)移集群”,具體配置如下:
(1) 打開“服務(wù)器管理器”,“功能”,“故障轉(zhuǎn)移群集”,選擇“創(chuàng)建集群向?qū)А薄?/p>
(2) 在選擇服務(wù)器框中,通過(guò)瀏覽的方式,加入所有群集節(jié)點(diǎn)名。
(3) 在“驗(yàn)證警告”中,選擇運(yùn)行配置驗(yàn)證測(cè)試。
(4) 等待驗(yàn)證測(cè)試完成后,繼續(xù)進(jìn)行群集建立。驗(yàn)證完成后,可以看到驗(yàn)證報(bào)告,其中如果有紅色的錯(cuò)誤應(yīng)糾正后重新驗(yàn)證,有黃色的警告信息可以選擇“查看報(bào)告”查看后決定是否糾正。
(5) 返回安裝向?qū)В斎肴杭停桑械刂贰?/p>
(6) 完成群集建立,查看報(bào)告檢查建立日志。
(7) 完成服務(wù)器集群配置后,對(duì)已規(guī)劃的集群存儲(chǔ)修改其“卷標(biāo)”,準(zhǔn)確定位和判斷數(shù)據(jù)存儲(chǔ)信息。在可用存儲(chǔ)中,依次選擇每個(gè)可用磁盤,在屬性中,修改其顯示名為正確的卷標(biāo)。
3總結(jié)
石油銷售企業(yè)檔案管理系統(tǒng)通過(guò)故障轉(zhuǎn)移集群技術(shù)成功實(shí)現(xiàn)了系統(tǒng)高可用性,避免了服務(wù)器在處理客戶請(qǐng)求時(shí)長(zhǎng)時(shí)間等待、同步數(shù)據(jù)傳輸遺漏等問(wèn)題,保證了客戶訪問(wèn)系統(tǒng)數(shù)據(jù)的實(shí)時(shí)性、完整性,同時(shí)保證了石油銷售企業(yè)檔案管理系統(tǒng)運(yùn)行穩(wěn)定。
主要參考文獻(xiàn)
[1] [美]Rich Seifert. 千兆以太網(wǎng)技術(shù)與應(yīng)用[M]. 郎波,譯. 北京:機(jī)械工業(yè)出版社,2000.
[2] 王亞平. 數(shù)據(jù)庫(kù)系統(tǒng)工程師教程[M]. 北京:清華大學(xué)出版社,2004.
[3] 馮萍. 計(jì)算機(jī)軟件技術(shù)及應(yīng)用基礎(chǔ)[M]. 北京:清華大學(xué)出版社,2009.