大家作伙來

關於我自己

I'm...


Microsoft MVP:Enterprise Security
Since 2010

我服務於

登豐數位科技 | 也可以宣傳你的粉絲專頁

部落格觀查

Locations of visitors to this page

我是廣告啦~

DotBlogs! Cogate!!!

最新回應

今天晚上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




DotBlogs Tags: LoadBalance MS-SQL NLB windows 2008 備份備援 複寫

回應

  • 痕痕 2009/7/16 下午 05:54 回覆

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

    Dear Jason
    最近忙不忙呀~一直在期待您實作出來的詳細步驟呢~
    因為本身也想研究一下~只是一直不知要從何下手~
    加油囉~

  • dotjason 2009/7/16 下午 06:36 回覆

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

    to 痕痕 : 謝謝您…我會在近期把事情忙完,但可能會要一點時間,不過呢…我應該會把它切開來,一半講複寫,另一半做NLB,再做組合,應該可以騙個三篇,大家一起討論討論,謝謝您的鼓勵!!

  • 痕痕 2009/7/17 上午 10:39 回覆

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

    呵呵~您太客氣了~手上有事情忙就應該要先忙完呀~有空時再來研究討論這一塊~在這我有個問題~也提出來讓您順便想想~如圖中的DB Server的部份有分Active及Standby兩個~不知道有沒有可能應用點對點複寫的方式做到同時兩台都是Active的狀況~這樣子就可以提升整體的效能~希望不會浪費您太多時間~有空時再研究一下囉!!

  • dotjason 2009/7/17 下午 01:28 回覆

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

    to 痕痕 : 圖上雖然有特別的描述到是要以active, standby的模式來運作,主要是為了解決loadbanance的判斷會造成服務等待的問題,db之間採以複寫來達成資料的同步,但若不解決loadbalance的逾時問題,可能會造成資料一致性喪失,而且,前端的AspState也得要透過db來做session view states的轉存,若不是指定在同一台,就得要把aspstate也做複寫,如此一來,其效能的影響可知有多大,服務是以可用性為最高原則,但是資料庫是以一致性(完整性)為主要目的,這個矛盾下,不知道有無其它網友鄉民們有其它的看法嗎??

  • 小天 2009/12/16 下午 05:30 回覆

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

    想請問Jason大大,所謂的2008的NLB

    是指2003的cluster嗎?

    因為2008跟2003裡面的功能雖然差不多

    但內容改很多

    例如我要在2008架設叢集,但是找不到

    叢集管理員。

  • Jason 2009/12/16 下午 10:36 回覆

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

    to 小天 :

    在windows 2003 中的cluster叫做叢集服務管理員,是與NLB兩種不同的服務,而NLB是架構在網路層的HA架構。

    而windows 2008的叢集則必須看版本才有囉,必須是要企業版或是datacenter才有了,詳細的內容請看下面的版本比較:

    http://www.microsoft.com/taiwan/windowsserver2008/prodinfo/differentiated-features.aspx

  • TW Jerry 2010/10/29 下午 06:34 回覆

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

    請教用NLB及複寫達成的SQL HA
    當故障發生時,服務接手的速度跟MSCS的SQL Cluster比較,兩者速度會差很多嗎?
    另外當故障的那台Serverc回復上線後
    DB資料的複寫依然會自動進行,不需要人工操作嗎?

  • Jason 2010/10/29 下午 07:33 回覆

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

    to TW Jerry :
    首先必須先解釋的,Cluster的速度一定比複寫快,而資料庫最重要的是一致性,複寫若主要站回復後是可以透過交易複寫做資料碰撞而進行一致性比對,但是若您選擇的是單一的快照複寫則不適用喔!

  • Lion 2010/11/2 下午 06:23 回覆

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

    Jason您好:
    我最近碰到一個問題是關於SQL server 2005的部份,因為需求我必須要在兩地架設各自的資料庫伺服器,兩邊的資料庫的設計完全一樣,兩邊會同時由不同的使用者輸入資料,我現在想要在某一個時間點同步這兩個伺服器(A新增的資料傳給B,B新增的資料也傳給A),我查了一下相互訂閱似乎是個方法,請問還有什麼方法可以達成嗎,方便給我一些提示嗎,謝謝

  • Jason 2010/11/2 下午 07:41 回覆

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

    to Lion :

    互相訂閱是一個方法,但是若您是透過交易式複寫來達成同步,則訂閱端有任何資料的變更,也會同步到發散端,不知道您主要的目標是要達成何種型態的同步呢?

    若非即時,可能會有需要DBA進行資料調解的問題產生喔!

  • Lion 2010/11/3 下午 04:58 回覆

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

    Jason您好:
    您提到"透過交易式複寫來達成同步,則訂閱端有任何資料的變更,也會同步到發散端"此一做法,不會造成死結嗎?
    此種做法可以針對整個資料庫而不是單一個TABLE嗎?
    若我的做法受限於非即時,您指的DBA資料調解是什麼意思呢?
    謝謝

  • Lion 2010/11/5 下午 01:10 回覆

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

    Jason您好:
    前兩個問題我已找到方法解決,第一個是使用replication來發佈及訂閱即可,
    第二個是可以針對整個資料庫,
    至於第三個問題,目前還沒碰到,所以也不知道怎麼解決

  • Jason 2010/11/11 下午 01:47 回覆

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

    to Lion :
    調解的意思與死結很相近,但是因為交易式複寫或是合併式複寫的特性都是為了高可用性,但是,在資料一致性確認的部份,就像您提到的死結問題相同,A君對Svr-A的資料庫與B群對Svr-B的資料庫同時對同一個表、同一個欄位做修改,在Svr-A及Svr-B來不及通知鎖定時,可能會產生資料一致性喪失,那麼在此時就會在複寫出現需要調解的需求,由管理者來判斷要以何者複寫何者,不過目前為止,只要是即時處理,多數都沒有產生這個問題! 有發現的都是前後分別互相覆蓋資料,只要保留最後一個值是正確的,那麼就是DBA要去詢問一下其正確的資料。


*標 題:

*姓 名:

 電子郵件: (將不會被顯示)

 個人網頁:

*回應

登入後使用進階評論

Please add 1 and 5 and type the answer here: