Windows 2008 & SQL Server 2008以NLB及複寫功能達成HA

今天晚上Jason與公司即將畢業的同事辦歡送會,在會中與同部們的伙伴們討論到某個案子因硬體設備相當的缺乏
但是該單位又想達成HA架構,一來是可以讓公司人員有反應的時間,畢竟公司地處南方,要到各地比較不方便
加上高鐵減班直達高鐵成變成每站停的慢鐵,有沒有辦法可以透過即有的功能來達成HA的架構呢?…

今天晚上Jason與公司即將畢業的同事辦歡送會,在會中與同部們的伙伴們討論到某個案子因硬體設備相當的缺乏
但是該單位又想達成HA架構,一來是可以讓公司人員有反應的時間,畢竟公司地處南方,要到各地比較不方便
加上高鐵減班直達高鐵成變成每站停的慢鐵,有沒有辦法可以透過即有的功能來達成HA的架構呢?

有幾個因素必須滿足,首先以Web base的專案來舉例,有兩台web及兩台db,但是沒有shared storage可供使用成為claster架構
假設透過loadbalance及複寫功能來達成呢?
LoadBalance的設定請看小弟的所寫的劣帖:Windows Server 2008怎麼設定網路負載(Network LoadBalance)

WEB 部份
●兩台web伺服器
●loadbalance架構(多重主機-設定為無模式;Active/Active)來達成80port的負載
●資料透過DFS達成File Replication

DB 部份
●兩台資料庫伺服器
●loadbalance架構(單一主機;Active/Standby)來達成1433port的負載
●資料庫的資料同步透過合併式複寫達成

明天來實作看看,如果可用的話,再把詳細的步驟與各位網友鄉民分享


完全HA的假想圖

 

2009/8/4 更新

經過上篇文章SQL Server 2008 複寫實作中將複寫環境建置起來之後,配合前幾個前寫的Windows Server 2008怎麼設定網路負載(Network LoadBalance)Netowork LoadBalance下ASP.NET工作階段的Session states如何處理?,測試環境之下把HA架構測試了一下,下面是我的實作步驟,供大家參考看看…

我們先從一個遠端使用者連入電腦後資訊流的過程來跟大家解釋及說明…
1.使用者輸入網址後,DNS解析後指向Web Load Balance IP。
2.此時Web接禺使用者發出的query時,將session states指向到SQL Server Network Load Balance IP中。
3.Session States透過合併式複寫將Session寫到ASPState資料庫。
4.Web server在將Session回存到資料庫後,讀取Web.config資料庫連結字串取出動態頁面的連接內容
5.讀出字串後,連接到SQL Server Network Load Balance IP,存取所需的資料庫
6.資料庫連結時透過Load Balance分配將資料庫的內容取出
7.經由Web程式整合後再由負責的Web將所需的資訊回覆予使用者。

在實作的部份小弟切割為下列順序:
1.設定web為80 port Load Balance架構
2.設定SQL為1433 port Load Balance架構
3.設定SQL的Session states轉存資料庫(ASPState)
4.設定SQL複寫功能,複寫ASPState及所需存取的資料庫。
5.設定WEB.CONFIG轉存Session連接資訊及manchineKey,若無使用view state則可不需處理ManchineKey問題。
6.開站!!測試,開壓力測試工具實際測試,WEB端流量還是有偏重一某一台,DB則都指向主機視別元最小的伺服器上。

以上希望大家參考一下…

 


Anything keeps Availability.
Anywhere keeps Integrity.
Anytime keeps Confidentiality.
keep A.I.C. = Information Security