none
NLB求救 RRS feed

  • 問題

  • 最近公司因為要做異地備援的關係,所以主機房的Web Server:ServerA跟備援機房的Web Server:ServerB要做NLB,

    NLB我已經設定好了,當我把備援機房ServerB的IIS停掉之後,NLB會幫我把Web Service導到主機房的ServerA沒有問題,

    不過要是反過來把主機房ServerA的IIS停掉,NLB一樣會導到ServerB沒錯,不過網頁就會開的很慢,在不然就是載入不完全,

    常常都無法顯示網頁,也就是說只要Web Service被NLB導到ServerB就會發生這種現象,而單獨連ServerB的網頁卻又沒問題,

    我有另外在這兩台機器上開FTP用NLB做測試,不管導到哪一台連線都很正常,唯獨Web Service導到ServerB會很不穩,而NLB

    不管是單點傳播或多點傳播、一張網卡還是兩張網卡我都設定過了,結果都一樣,小弟真的不知道是為什麼,希望知道的大哥可以幫一下小弟,以下是兩台機器的相關資料:

    ServerA與ServerB之間是透過6M專線連接

    ServerA:
    OS:2003 R2
    IP:10.2.1.11/21
    NLB IP:10.2.1.12/21

    ServerB:
    OS:2003 R2
    IP:10.2.7.11/21
    NLB IP:10.2.1.12/21

    而我在ServerA的事件檢視器中常常看到這三個NLB的LOG:
    NLB 叢集 10.2.1.12 : 初始交集在主機 1。  理由: 主機 2 正在加入叢集。
    NLB 叢集 10.2.1.12 : 初始交集在主機 1。  理由: 主機 2 正要離開叢集。
    NLB 叢集 10.2.1.12 : 主機 1 正在和主機 1,2 交集為預設主機以成為叢集的一部分。

    也就是說我的ServerB一直在離開跟加入叢集,這到底是為什麼????

    另外,如果NLB的問題真的無解的話,坊間還有其他跟NLB功能相似的軟體可以替代嗎?

    • 已編輯 sam316 2009年6月1日 下午 12:02
    2009年6月1日 上午 11:55

解答

  • Dear Vicent

    我大概知道問題出在哪了,一切都是連接阜規則中的篩選模式搞的鬼,原本我的篩選模式是選多重主機,相似性選,後來我把相似性改成單一,或者乾脆選單一主機後,

    NLB的連線就正常多了,雖然連到備援主機時稍慢,但網頁都開的起來了,也就是說篩選模式選多重主機時,相似性不能選無


    不過我又遇到一個新的問題,當我的叢集操作模式選多點傳播時,總公司local端電腦可以連到NLB的叢集IP,但我們其他外點分公司卻連叢集IP都ping不到,想這應該是多點

    傳播的問題,文件上有提過,所以我把叢集模式改成單點傳播,這時候問題就來了,當ServerA跟ServerB的NLB都設定好之後,一定會有一台網路是死的,client端ping的

    到ServerA時(ServerA的local IP,不是NLB的IP)就一定ping不到ServerB,這時把ServerB重開機,登入之後,client端換ping不到ServerA了,我記得單點模式是叢集

    內的主機無法互相溝通而已,但是不應該兩台只能活一台吧,這又是什麼問題??
    • 已標示為解答 Vincent Lin 2009年6月8日 上午 03:00
    2009年6月5日 下午 02:44

所有回覆

  • 感覺像是虛擬的NLB IP再轉網頁封包到備援主機的時候發生了一些問題
    NLB本身的功能應該是正常的
    你在備援主機上有安裝防毒軟體或是防火牆嗎?
    有的話建議測試看看都移除掉之後會不會有改善

    2009年6月2日 上午 03:36
  • Dear Vincent

    備援主機沒有安裝firewall,而防毒軟體我移掉之後狀況還是一樣,而我在ServerA又發現一個LOG:

    NLB 叢集 10.2.1.12 : 初始交集在主機 1。  理由: 主機 2 有不明原因的交集。

    但我明明只有這兩台做NLB,哪來不明原因的交集?

    難道我真的要去找其他可以替代NLB的軟體~~~~
    2009年6月2日 上午 06:33
  • 我是覺得跟NLB比較沒有關係..兩台Server中間有透過什麼網路防火牆之類的設備嗎?
    如果可以的話..分別在Client端 & 這台Server上面分別截取一下瀏覽網頁時發生問題的封包
    然後上傳到免費空間上來看看

    2009年6月2日 上午 07:53
  • Dear Vincent

    兩台Server間是用6M專線做連接,沒有透過防火牆之類的設備,只是這兩台Server都是虛擬機器,分別在兩台Vmware ESX機器中

    我有把NLB導到備援主機時,client端與備援主機的封包用windows內建的擷取軟體抓下來,不知道有沒有用

    http://cid-8e4edf3d8bf7ed2f.skydrive.live.com/browse.aspx/%e5%b0%81%e5%8c%85
    2009年6月2日 上午 10:43
  • 封包可以說是同一個時間點抓的,也許有差個十幾二十秒,不過大致上是同一個時段

    2009年6月2日 上午 11:21
  • 看了一下...封包內容大概是Client端一直在要求Server提供資料..可是Server完全不理他
    所以造成打開網頁會很慢..而且有些東西會出不來

    方便測試看看把Server B 關掉後...Client端在連線時會不會有同樣的狀況 (透過NLB導向至Server A)
    另外..可以的話建立一個簡單的測試網頁(幾個文字幾張圖片)..然後在使用Client端進行連線看看狀況如何
    2009年6月3日 上午 02:08
  • Dear Vincent

    我又重新測了一下NLB,當ServerA與ServerB都開機時,client端透過叢集IP連線到網頁時,網頁可以正常開啟,但會稍慢,不像直接連

    ServerA或ServerB那麼快,但是不管ServerA或ServerB關機時,client端連網頁就會變得很慢,而且都會開啟不完全,只是這個狀況在

    ServerA關機時(也就是NLB導到ServerB)比較嚴重且明顯...另外,我有照您的建議建一個簡單的網頁,幾個文字及兩張照片,當ServerA與

    ServerB都開機時,開啟測試網頁都很快很正常,ServerA或ServerB關機時,也是會發生載入不完全的狀況,只是發生的機率少很多,為了避免

    搞了半天是我NLB設定有問題,我附上兩台機器的NLB設定給您參考,看看是不是哪裡設錯了,麻煩您了~~

    http://cid-8e4edf3d8bf7ed2f.skydrive.live.com/browse.aspx/%e5%b0%81%e5%8c%85
    2009年6月3日 上午 05:53
  • NLB上面的設定看起來沒什麼大問題
    可以重新安裝IIS Service看看有沒有改善嗎?
    IIS應該是在NLB之前建立的吧?
    2009年6月3日 上午 06:22
  • IIS是在NLB之前建立的沒錯,重新安裝IIS就真的比較困難了,而且單獨開ServerA及ServerB的網頁都正常,我想IIS應該是沒問題才是,以前

    我們是用DNS Round Robin的方式在做blance,後來發現NLB比較好用,才想說要用NLB做blance,但NLB卻遇到這種怪問題,看來這問題還真

    的蠻難解的,不知道除了NLB以外,Vincent還知道有什麼軟體可以達到跟NLB一樣的功能?還是我只能再回頭用DNS Round Robin?
    2009年6月3日 上午 06:51
  • 要不要試著重新架設NLB看看..
    挑一台不是要組成NLB的電腦..然後打開網路負載平衡管理員
    透過此介面去設定NLB看看會不會改善

    啟用網路負載平衡
    http://technet.microsoft.com/zh-tw/library/cc783110(WS.10).aspx
    2009年6月4日 上午 06:53
  • Dear Vicent

    我大概知道問題出在哪了,一切都是連接阜規則中的篩選模式搞的鬼,原本我的篩選模式是選多重主機,相似性選,後來我把相似性改成單一,或者乾脆選單一主機後,

    NLB的連線就正常多了,雖然連到備援主機時稍慢,但網頁都開的起來了,也就是說篩選模式選多重主機時,相似性不能選無


    不過我又遇到一個新的問題,當我的叢集操作模式選多點傳播時,總公司local端電腦可以連到NLB的叢集IP,但我們其他外點分公司卻連叢集IP都ping不到,想這應該是多點

    傳播的問題,文件上有提過,所以我把叢集模式改成單點傳播,這時候問題就來了,當ServerA跟ServerB的NLB都設定好之後,一定會有一台網路是死的,client端ping的

    到ServerA時(ServerA的local IP,不是NLB的IP)就一定ping不到ServerB,這時把ServerB重開機,登入之後,client端換ping不到ServerA了,我記得單點模式是叢集

    內的主機無法互相溝通而已,但是不應該兩台只能活一台吧,這又是什麼問題??
    • 已標示為解答 Vincent Lin 2009年6月8日 上午 03:00
    2009年6月5日 下午 02:44
  • 如果你的NLB Host都是只有一張網卡的話
    使用單點傳播的話..只會有兩台NLB Host不能互相溝通的情形..其他還是可以ping得到的
    如果你是外面Client無法ping到其中一台NLB Host的話
    建議先將所有防火牆都關閉看看有沒有改善

    另外..我不清楚你的NLB是怎麼做的
    我的LAB環境是這樣子使用..給你參考

    NLB由A & B兩台電腦組成
    然後透過C電腦底下的負載平衡管理員建立新叢集
    設定完成後再將另外一台電腦加入到叢集
    之後要管理的話都透過C電腦進行管理動作

    2009年6月8日 上午 02:54
  • Dear Vicent

    我大概知道問題出在哪了,一切都是連接阜規則中的篩選模式搞的鬼,原本我的篩選模式是選多重主機,相似性選,後來我把相似性改成單一,或者乾脆選單一主機後,

    NLB的連線就正常多了,雖然連到備援主機時稍慢,但網頁都開的起來了,也就是說篩選模式選多重主機時,相似性不能選無


    原來是篩選模式使用相似性無的原因..難怪會部分圖片出不來.

    篩選模式的意思可以在下面網址得到了解

    Windows Server網路負載平衡
    http://neo_lin_42.blog.ithome.com.tw/post/620/5568

    建立新的網路負載平衡連接埠規則
    http://technet.microsoft.com/zh-tw/library/cc733056(WS.10).aspx
    2009年6月8日 上午 02:58
  • Vincent:

    你給的連結中有提到"伺服器的Private IP必須是固定,而且在相同的網段",這裡指的相同網段是指要在同一個class C裡面嗎?

    因為我們公司的IP網段是10.2.1.0/21,10.2.1.0~10.2.6.254在主機房,10.2.7.X在備援機房,兩個機房中間沒有任何軟硬體防火牆或

    Router,彼此透過專線連接,而我有試過,同在10.2.1.0網段中的NLB運作上都很正常,而一台10.2.1.X(主要機器),另一台10.2.7.X(備援

    機器),這樣NLB就會出現很多怪現象,而我設定NLB的方法也是透過第三台機器用負載平衡管理員來設定的,所以難道NLB要在同一個class C網

    段才能正常運作??

    2009年6月8日 上午 09:05
  • 不在同一個網段的話應該也可以正常運作才對
    我在測試環境裡面..新加了一個別的網段的機器進來原先的NLB Cluster(unicast)
    然後在使用ping的動作去ping三台NLB Host..都是正常的

    你的Windows Firewall有打開嗎?
    有的話先將其關掉後在觀察看看

    2009年6月8日 上午 10:35
  • 我發現當我在同一個網路環境中(Server都在主機房或Server都在備援機房)做NLB測試,當NLB設定unicast時,不管同網段還是不同網段,

    NLB的運作都很正常,要是一台在主機房,一台在備援機房,設定unicast時,剛開始只能ping到ServerA,ping不到ServerB,但過了8~10分

    鐘之後,ServerB就像醒了一樣ping得到了,這時候NLB運作就很正常,然後把ServerA關機,也是要等8~10分鐘NLB才會把流量轉到ServerB

    去,真不知道為什麼都要等8~10分鐘,我windows firewall是關閉的,大概也只能把原因歸咎到那條6M專線上了吧
    2009年6月10日 上午 04:31