WIN2003+SQL2008故障轉移羣集實施手冊

WIN2003+SQL2008故障轉移羣集實施手冊
1前言

此文檔的目標結果爲:在英文WinServer2003EER2sp2上成功運行簡體中文slq2008std故障轉移集羣,在真實生產環境整個部署週期大概2天完成。

環境搭建採用的是WinServer2003EER2sp2_EN+slq2008std_CS,硬件部分使用WM6.0來模擬。

注意要點:

1.微軟默認slq2008std故障轉移集羣的任何一個節點都不能安裝在域控上,大家搭建測試環境時請注意此點以免浪費時間。

2.截止200959日微軟SQL2008故障轉移集羣不支持中文的WinServer2003操作系統環境,實施時請使用英文版本,並在部署SQL2008故障轉移集羣之前爲操作系統安裝KB937444系統補丁。

3.部署完成後若需要更改節點IP或虛擬IP時,需重裝端點的操作系統(詳情諮詢微軟)。所以實施前的溝通和規劃工作十分重要。

4.仲裁磁盤內不能存放數據,並且必須使用單獨的一塊硬盤。硬盤上的某一分區作爲仲裁磁盤後此硬盤將不能再做其他用途。

2知識介紹2.1羣集介紹

服務器羣集是一組協同工作並運行 Microsoft 羣集服務(Microsoft Cluster ServiceMSCS)的獨立服務器。它爲資源和應用程序提供高可用性、故障恢復、可伸縮性和可管理性。它允許客戶端在出現故障和計劃中的暫停時,依然能夠訪問應用程序和資源。如果羣集中的某一臺服務器由於故障或維護需要而無法使用,資源和應用程序將轉移到可用的羣集節點上。(說明:本文檔編寫的目的是爲了幫助大家實現所關心的如何完成典型SQL羣集的配置步驟,不會涉及到其他,例如:如何安裝羣集應用程序,如 Exchange 羣集等)

2.2羣集專業術語

      :  構建羣集的物理計算機

羣集服務    :  運行羣集管理器或運行羣集必須啓動的服務

      :  IP地址、磁盤、服務器應用程序等都可以叫做資源

共享磁盤    :  羣集節點之間通過光纖 SCSI  電纜等共同連接的磁盤櫃或存儲

仲裁資源    :  構建羣集時,有一塊磁盤會用來仲裁信息,其中包括當前的服務狀態各個節點的狀態以及羣集轉移時的一些日誌

資源狀態    :  主要指資源目前是處於聯機狀態還是脫機狀態

資源依賴    :  資源之間的依存關係

               :  故障轉移的最小單位

虛擬服務器: 提供一組服務--如數據庫文件和打印共享等

故障轉移    :  應用從宕機的節點切換到正常聯機的節點

故障回覆    :  某節點從宕機狀態轉爲聯機狀態後,仍然繼續宕機前的工作,爲其他節點分流

3安裝羣集前的準備工作3.1環境搭建及要求

在生產環境中實施時要事先做好規劃,並徵求客戶的意見,確保一次部署成功。大多數返工都是可以事先避免的。

並在部署完成後爲客戶做好系統備份。

3.1.1拓撲圖3.1.2軟件配置說明

1. DC 軟件配置信息

OS:Windows Server 2003  R2 SP2  中文企業版

Role: Active Directory 域控制器

Domain:edentest.com

ServerName:www.edentest.com

IP:192.168.0.254   (以“橋接”方式連接)

Netmask:255.255.255.0

Gateway:192.168.0.254

2. Cluster Node A 軟件配置信息

OS: Windows Server 2003 R2 SP2 英文企業版

Role: Member Server

ServerName:ClusterNodeA.edentest.com

IP1:192.168.0.1

Netmask1:255.255.255.0

Gateway1:192.168.0.254   (以“橋接”方式連接)

Dns1:192.168.0.254

IP2: 1 0 . 0 . 0 . 1            (以“VMnet2”方式連接)

Netmask2:255.0.0.0

Gateway2:None

DNS2:None

3.Cluster Node B 軟件配置信息

OS: Windows Server 2003 R2 SP2 英文企業版

Role: Member Server

ServerName:ClusterNodeB.edentest.com

IP1:192.168.0.2

Netmask1:255.255.255.0

Gateway1:192.168.0.254   (以“橋接”方式連接)

Dns1:192.168.0.254

IP2: 1 0 . 0 . 0 . 2            (以“VMnet2”方式連接)

Netmask2:255.0.0.0

Gateway2:None

DNS2:None

3.1.3硬件配置說明

1.網卡

A.羣集中的每個節點需要有兩個網卡。一個用來連接您的公共網絡,一個用來進行羣集節點間的通訊,俗稱“心跳連接”

B.心跳線必須通過交叉線直接連接羣集節點,不能通過任何路由設備。因爲羣集心跳數據包的生存時間 TTL 值爲1。我們知道數據包在每經過一個路由節點時,TTL 值都會減一。

2.共享磁盤

A.除操作系統所在磁盤外,還需要兩個額外的 SCSI 磁盤。一個用來做仲裁磁盤,另一個用來充當數據共享磁盤。

B.共享磁盤必須位於系統驅動器所用的控制器以外的另一個控制器上。不要和操作系統所在的磁盤使用同一總線。

C.所有共享磁盤,包括仲裁磁盤,必須在物理上附加到一個共享總線。

D.仲裁磁盤空間大小最小 50 MB爲了得到最佳的 NTFS 文件系統性能,建議採用最小 500MB 的磁盤分區。

E.所有共享磁盤必須配置爲基本磁盤,而不能爲動態磁盤。

F.共享磁盤不支持軟件容錯,不要再試圖對共享磁盤做軟 RAID

G.如果您使用的是 64 位版本的 Windows Server 2003 的系統,需要注意的是,所有共享磁盤必須配置爲主引導記錄(MBR),也就是建立主分區。也不要試圖配置爲 GPT 磁盤,因爲它不能作爲羣集磁盤得到支持。

H.羣集磁盤上的所有分區必須格式化爲 NTFS

I.羣集節點的操作系統必須採用同架構的版本,不能節點 A 採用 32 位系統,而節點 B 卻使用 64 位系統。

(說明:在本文檔中,模擬的 SCSI 共享磁盤櫃均是通過 VMware Workstation 自帶的相關工具來創建)

3.2創建共享磁盤3.2.1創建仲裁磁盤

進入 VMware Workstation軟件安裝目錄,在命令提示符窗口敲入如下命令:

vmware-vdiskmanager.exe -c -s 600Mb -a lsilogic -t 2 “D:\VirtualMachines\ShareDisks”\Quorum.vmd

3.2.2創建共享磁盤

進入 VMware Workstation軟件安裝目錄,在命令提示符窗口敲入如下命令:

vmware-vdiskmanager.exe -c -s 2Gb -a lsilogic -t 2 “D:\VirtualMachines\ShareDisks”\ShareDisk.vmdk

3.2.3完成後檢驗

進入 D:\Virtual Machines\ShareDisks中,可以看到步驟 23 創建的 4 個虛擬磁盤文件。

3.2.4共享磁盤

通過前面的操作,我們已經成功的創建了羣集所需要的共享磁盤。接下來將虛擬磁盤文件附加到 ClusterNodeA ClusterNodeB 上。

1.進入 ClusterNodeA 所對應的虛擬系統目錄(不是虛擬機軟件安裝目錄),找到.vmxVMware 配置文件),用記事本打開,添加如下記錄:

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

scsi1.present = "TRUE"

scsi1.virtualDev = "lsilogic"

scsi1:5.present = "TRUE"

scsi1:5.fileName = "D:\Virtual Machines\ShareDisks\Quorum.vmdk"

scsi1:6.present = "TRUE"

scsi1:6.fileName = "D:\Virtual Machines\ShareDisks\ShareDisk.vmdk"

2. ClusterNodeB上重複前一個操作,並做相應的修改

3.關閉 VMware Workstation 軟件後再次打開,會發現先前創建的共享磁盤均附加到ClusterNodeA ClusterNodeB 上了

4.   驗證:

1) 共享磁盤屬於 SCSI 通道 1,和系統盤 SCSI 通道 0 不在一個共享總線上,符合集羣需求

2) 共享磁盤的仲裁磁盤和數據磁盤均位於 SCSI 通道 1 上,亦符合集羣需求

4網絡以及系統配置4.1SQL羣集用戶組和帳戶

1.羣集服務需要一個屬於可運行羣集服務的每個節點上的本地管理員組成員的域用戶帳戶。因爲安裝羣集服務時需要用到這個用戶名和密碼,所以該用戶帳戶必須在配置羣集服務前予以創建。該用戶帳戶只能專門用於運行羣集服務,而不能屬於個人。出於安全考慮該賬戶應是普通的域賬戶,而不是域管理員賬戶。

2.創建域用戶組sqlenginesqlagent和用戶sqladmin

3.並將域組添加到兩臺節點的本地管理員組。

4.2添加羣集 A 記錄

如果您需要將運行在羣集服務上的應用程序服務(該服務器即爲虛擬服務器)以域名的形式對內或對外發布,您可能需要在域控制器的 DNS 管理器中添加羣集名的 A記錄。例如,本次試驗中,我給節點 A 和節點 B 通過羣集虛擬出來的地址 192.168.0.10 分配一個對應的 A記錄名:ClusterTest.edentest.com

4.3ClusterNodeA上的共享磁盤配置

1.啓動 ClusterNodeA(不要開啓 ClusterNodeB,使其保持關閉狀態。這樣有助於保證附加到共享總線的磁盤上的數據不會丟失或遭到破壞。)

2.打開 ClusterNodeA  “磁盤管理”系統會自動找到先前創建的兩個共享磁盤。進入“磁盤初始化和轉化嚮導”。

3.將兩塊磁盤格式化成“基本磁盤”,並分別建立“主磁盤分區”

4.給仲裁磁盤分配一個約定成俗的驅動器號 Q,同時把卷標改成“Quorum(使用其他盤符有可能在安裝SQL羣集時通不過校驗)。

5.按照同樣的方法,對共享數據磁盤進行操作。分配驅動器號爲 R,卷標名爲 Data(具體過程略)。另外,需要補充一點的是,通常,驅動器盤符“Q”用於仲裁磁盤,而“RS”等字母則常用於數據磁盤。儘管您可以按照個人喜好隨意更改,但是建議採用約定成俗的規定。

6.對共享磁盤的操作完成後,建議驗證一下磁盤是否可讀寫。方法是新建一些文件後再刪除,看看是否都正常。

4.4網絡配置

1.爲了接下來的實驗更加直觀,建議把節點的兩塊網卡進行重命名操作。生產環境要求這樣操作。

2.Cluster 網卡(以下改稱爲心跳網卡)的 TCP/IP 屬性如下。不要對心跳網卡設置默認網關和 DNS 地址。

3.點擊網卡的高級按鈕按照下圖修改心跳網卡的TCP/IP 屬性,目的是禁止心跳網卡的 DNS NetBios查詢。這樣能夠消除可能出現的通信問題,也有利於減少不必要的網絡流量。因爲服務器羣集節點間的通信對於羣集的順暢運轉至關重要。

4.按照微軟官方推薦的做法,如果您擁有一個能夠以不同速度進行傳輸的網卡,那麼您應該手動指定同一個速度及雙工模式。不要對傳輸速度應用自動選擇設置,因爲某些適配器在確定速度時可能丟掉一些數據包。這直接影響到羣集節點之間的通訊質量。                       Microsoft 建議您將同一路徑上的所有設備設定爲“10 M”和“半雙工”。同時,如果您的網卡支持 Teaming冗餘,而您又無法確保該特性和羣集之間的兼容性時,建議取消該特性。(以下爲生產環境中的HP Server 截圖,第一張圖片中的卸載的紅圈有誤,應點擊屬性,因爲沒有真機所以無法再次截圖)

5.至此,有關 ClusterNodeA的前期網絡和系統的相關配置已結束。接下來按照類似的方法對 ClusterNodeB進行配置。

4.5ClusterNodeB上的共享磁盤配置

1.關閉 ClusterNodeA,開啓 ClusterNodeB。在此期間,請保持 ClusterNodeA處於關閉狀態。原因前面已經說明,不再贅述。

2.打開 ClusterNodeB 的磁盤管理器,可以看到之前創建的共享磁盤同樣被系統發現了。只是由於 Windows Server 2003 系統的設計使然,沒有自動爲其分配驅動器號。我們需要手工對它分配和 ClusterNodeA相同的驅動器號,建議將卷標也進行修改。卷標名建議和 ClusterNodeA 上的保持一致。

4.6語言問題

因爲操作系統爲英文但是SQL是中文,所以很顯然的要考慮到中文顯示。

1.打開控制面板選擇“區域和語言”

2.按照下圖修改默認屬性,之後操作系統即可正常顯示中文。

5安裝WinServer羣集服務5.1新建一個羣集

(時間關係此部分沒有重新截圖,真實環境下應爲英文操作系統)

1.開啓 ClusterNodeA,同時保持 ClusterNodeB 處於關閉狀態。展開 ClusterNodeA 的“開始”菜單,定位到“程序”“管理工具”,打開“羣集管理器”

2.選擇“創建新羣集”

3.輸入您公司的域名和事先準備好的羣集名。並且在 DNS 中對該羣集名建立對應的 A記錄。

4.輸入新羣集中的第一個節點的計算機名,這裏我們選擇 ClusterNodeA

5.這時會對羣集配置進行一個完全分析。如果有任何一項無法通過檢測,務必檢查原因、排除問題。故障排除後,不需要重新再來,只需點一下“重新分析”按鈕就行。

6.輸入羣集的 IP地址,該地址是 ClusterNodeA ClusterNodeB 共同虛擬出來的羣集 IP FQDN 地址對應於前面的 ClusterTest.test.com.

7.輸入前面創建的羣集服務帳號。該帳號可以不是域管理員,但是必須是各節點的本地管理員。

8.下圖是配置信息彙總。如果發現配置有錯誤,可以點擊“上一步”進行更改。否則點擊“下一步”,開始羣集創建。

9.可以查看創建過程是否順利。一般來說,只要前面羣集前的分析沒有問題,創建過程一般都不會有問題的。

10.完成新建服務器羣集嚮導。至此,我們已經成功的在 ClusterNodeA上配置了羣集服務。

11.打開羣集管理器,驗證 ClusterNodeA上的羣集服務已成功安裝。資源所有者均爲ClusterNodeA,並均處於聯機狀態。

5.2B節點加入現有羣集

1.開啓 ClusterNodeB 節點,同時不要關閉 ClusterNodeA,否則無法加入現有羣集。打開羣集管理器,選擇“添加節點到羣集”“瀏覽”,找到之前創建的羣集名 ClusterTest。點擊“確定”

2.進入添加節點嚮導。

3.選擇您要添加到現有羣集的節點。我這裏選擇 ClusterNodeB

4.下一步至完成

5.至此,我們成功的在 ClusterNodeA 上新建了一個名爲 ClusterTest 的羣集,併成功將

ClusterNodeB 加入該羣集中。

6.細心的您在 ClusterNodeB加入到現有羣集後,可能會發現無法在 ClusterNodeB 上訪問原有的共享磁盤。如下圖所示。不要奇怪,只是正常現象。因爲在羣集服務中,同一時刻只能有一個節點對資源擁有所有權。在我這個例子中,此刻仲裁磁盤的所有者是 ClusterNodeA,所以 ClusterNodeB無法訪問。反過來,如果所有者是 ClusterNodeB,則會變成 ClusterNodeA無法訪問共享磁盤。

5.3配置羣集服務5.3.1羣集網絡配置

1.進行專用網絡配置。打開羣集管理器,單擊“羣集配置”單擊“網絡”右鍵選擇 Heartbeat的屬性。

2.選擇“爲羣集使用啓用這個網絡”和“只用於內部羣集通訊(專用網絡)

對上圖中的幾個選項,我稍微做一下解釋:

爲羣集使用啓用這個網絡: 如果選定了該複選框,羣集服務將使用該網絡。默認對所有網絡選定該複選框。

只用於客戶端訪問(公用網絡):如果您想讓羣集服務僅使用該網絡適配器與其它客戶端進行外部通信,那麼選擇該選項。該網絡適配器將不進行節點對節點通信。

只用於內部羣集通信(專用網絡):如果您想讓羣集僅使用該網絡進行節點對節點通信,那麼選擇該選項。

所有通信(混合網絡):如果您想讓羣集服務使用該網絡適配器進行節點對節點通信和外部客戶端通信,那麼選擇該選項。默認對所有網絡選定該複選框。

在本次實驗中,我們僅使用到了兩個網絡:Public Connection(內網連接網卡名稱爲LanHeartbeat Connection(心跳線網卡名稱爲Cluster)。基於最常見的配置,我們將這兩個網絡分別作爲混合網絡和專用網絡。

3.同樣,進行公用網絡配置

4.配置心跳網絡優先,由於羣集服務總是嘗試使用列於首位的網絡適配器進行節點間的遠程過程調用(RPC)通信。只有當羣集服務無法使用第一個網絡適配器進行通信時,纔會使用列表上的下一個網絡適配器。所以我們需要調整一下心跳適配器的優先級。啓動羣集管理器。右擊羣集名稱,然後單擊“屬性”,在彈出的對話框中單擊“網絡優先級”選項卡。將 Cluster 上移至頂部。

5.3.2仲裁磁盤配置

啓動“羣集管理器”。右擊左上角的羣集名稱,然後單擊“屬性”。單擊“仲裁”選項卡。在“仲裁資源”列表框中,選擇“磁盤 Q

5.3.3創建一個啓動延時(此操作非必須)

當出現所有的羣集節點均同時啓動並嘗試附加到仲裁資源的情況時,羣集服務可能無法啓動。例如:在發生電源故障後,同時對所有節點恢復電力時,可能出現這種情況。(儘管可能性比較低,但是還是有可能發生的。要避免這種情況,可以編輯其中一臺節點的 boot.ini 文件。 Timeout設置不同的值,以避免兩個節點同時啓動。

打開 ClusterNodeA 上系統盤根目錄下的 boot.ini 文件,按下圖修改。

因爲如果是單操作系統,無論你如何設置timeout 的值都是沒有用的。只有多系統纔會讀取這個值。所以我們複製同樣的記錄來實現啓動延遲的目的。

6安裝SQL Server前的準備

1.在兩個節點上添加DTC服務

2.在服務器A中打開集羣管理工具,在集羣中創建組--SQL Group”,並將用於存儲共享數據的磁盤資源移動到“SQL Group”中。

3.在“SQL Group”中添加新資源,資源名稱爲“MSDTC IP”資源,資源類型選擇“IP Address”,點擊下一步繼續。兩臺服務器均爲資源的可能所有者,點擊NEXT繼續。

4.此處按照默認設置,沒有資源依賴關係,點擊NEXT繼續即可。

5.設置MSDTC IP資源自身的IP地址。此地址用戶自行設定。至此,MSDTC IP資源添加完成。

6.在“SQL Group”中添加MSDTC NAME資源,資源類型選擇Network Name

7.兩臺服務器均爲資源的可能所有者。

8.此處將MSDTC IP作爲MSDTC NAME所依賴的資源。

9.勾選DNS Registration Must Succeed,點擊Finish完成MSDTC NAME資源的添加。

10.在“SQL Group”中添加MSDTC資源,資源類型選擇Distributed Transaction Coordinate

11.兩臺服務器均爲資源的可能所有者。

12.將所有資源包括磁盤、MSDTC IP MSDTC NAME 全部作爲MSDTC資源的依賴資源。

13.MSDTC服務進行移動組測試,確認可以正常工作。如果出現建立的MSDTC服務在移動過程中兩個節點不斷失敗,可使用“msdtc -resetlog”命令將MSDTC日誌傳送到Q盤上(注,只需在MSDTC服務當前聯機的節點上運行一次即可)。

7安裝SQL2008故障轉移集羣7.1準備工作

插入SQL 2008光盤後,安裝嚮導會自動對系統進行檢查,並安裝PowerShell.Net3.5.

7.2創建故障轉移集羣

1.在節點A上打開安裝界面,選擇創建 SQL Server故障轉移集羣

2.系統配置檢查全部通過。

3.選擇下一步,勾取需要安裝的組件。本次僅安裝SQL數據庫引擎服務和 SQL複製,此部分安裝內容需和客戶溝通我方只負責建議,由客戶來決定具體安裝內容。

4.若需更改安裝路徑可點擊“瀏覽來更改”

5.單擊下一步,選擇安裝路徑

6.下一步至IP地址配置,將SQL羣集IP地址設置爲0.170

7.在安全策略中輸入之前在域控上添加的組名。

8.在服務器配置中設置SQL使用的帳戶,此帳戶就是我們之前設置的域帳戶。

9.設置完成後選擇“排序規則”,將數據庫的默認排序規則設置爲

10.繼續下一步,數據庫引擎配置。選中sqladmin添加爲sql管理員。

11.繼續下一步至安裝完成。

12.打開羣集管理器界面,查看sql group的屬性檢查兩個節點是否都爲資源所有者,如沒有需要手動添加。並在故障回覆標籤中設置爲“允許立即回覆”。

7.3添加節點並完成

1.MSDTC資源轉移到節點B上,並檢查羣集服務是否運行正常。

2.在節點B上運行添加節點嚮導。

3.大部分配置參數與創建新節點是相同此處不再複述,然後一路下一步至完成。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章