Windows Server 2003 下實現網路負載均衡(2) (轉)

夜色狼發表於2014-03-31

四、測試

    在第一臺機器上,關閉網路負載平衡管理器後,用滑鼠右鍵單擊“網路負載平衡群集”,從出現的選單中選擇“連線到現存的”,將會彈出“連線”介面。輸入第一臺計算機的名稱或IP地址,點選“連線”按鈕,在“群集”下面將列出群集的IP地址,選擇此IP地址,並點選“完成”按鈕,連線群集即可完成。

    ipconfig /all 執行結果:

    第一臺機器:

    C:/>ipconfig /all
    Windows IP Configuration

       Host Name . . . . . . . . . . . . : win2003-1
       Primary Dns Suffix  . . . . . . . :
       Node Type . . . . . . . . . . . . : Hybrid
       IP Routing Enabled. . . . . . . . : No
       WINS Proxy Enabled. . . . . . . . : No

    Ethernet adapter 本地連線:

       Connection-specific DNS Suffix  . :
       Description . . . . . . . . . . . : VMware Accelerated AMD PCNet Adapter
       Physical Address. . . . . . . . . : 00-0C-29-04-B1-21
       DHCP Enabled. . . . . . . . . . . : No
       IP Address. . . . . . . . . . . . : 192.168.0.200
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       IP Address. . . . . . . . . . . . : 10.0.0.201
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Default Gateway . . . . . . . . . :

    第二臺機器:
    C:/>ipconfig/all
    Windows IP Configuration

       Host Name . . . . . . . . . . . . : win2003-2
       Primary Dns Suffix  . . . . . . . :
       Node Type . . . . . . . . . . . . : Hybrid
       IP Routing Enabled. . . . . . . . : No
       WINS Proxy Enabled. . . . . . . . : No

    Ethernet adapter 本地連線 :

       Connection-specific DNS Suffix  . :
       Description . . . . . . . . . . . : VMware Accelerated AMD PCNet Adapter
       Physical Address. . . . . . . . . : 00-0C-29-CE-C8-65
       DHCP Enabled. . . . . . . . . . . : No
       IP Address. . . . . . . . . . . . : 192.168.0.200
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       IP Address. . . . . . . . . . . . : 10.0.0.202
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Default Gateway . . . . . . . . . :

    可以看到,每個本地連線的網路卡都在原來的內部地址之外,又加入了IP地址192.168.0.200。雖然都在一個區域網中,它們還沒衝突,很奇怪吧?因為是“虛擬IP”嘛。

    測試一下群集的效果:

    1,分別在 win2003-1、win2003-2、win2003-3 上配置 IIS,建立虛擬主機,IP為192.168.0.200,主機頭為cluster.mydomain.com。
    再建立指令碼 index.htm,分別為:
    win2003-1 上:
    <html>
      This windows 2003 - 1
    </html>

    win2003-2 上:
    <html>
      This windows 2003 - 2
    </html>

    win2003-3 上:
    <html>
      This windows 2003 - 3
    </html>

    2,找一臺可以訪問 192.168.0.200 的機器,ping 一下 192.168.0.200,應該是通的。再執行 arp -a 命令,可以看到:
    192.168.0.200  03-bf-c0-a8-00-c8   dynamic
    說明 03-bf-c0-a8-00-c8 的 mac 地址也是虛擬的。

    然後修改 hosts 檔案,加一條記錄:
    192.168.0.200   cluster.mydomain.com

    再重新開啟瀏覽器,訪問網站 http://cluster.mydomain.com,應該看到其中一臺機器上的網頁,顯示 This windows 2003 - ……
    一般看到的是 win2003-1 上的網頁顯示“This windows 2003 - 1”。

    這時,人為的關閉win2003-1機器,或禁止其網路卡,使其不提供 Web 服務。再開啟訪問網站 http://cluster.mydomain.com,應該看到另兩臺機器中,其中一臺機器上的網頁。說明網路負載平衡已經發揮作用,有效的進行了無縫的故障轉移。注意在實際的生產環境中,各機器上的網站其內容是完全相同的(同步),儘管發生了轉移,其外在表現則是完全相同的,這正是網路負載平衡要達到的目的。網路負載平衡的另一個作用,是進行負載的動態均衡分配,可以用一些壓力工具來驗證。

五、遇到的問題
    在加第二臺伺服器的時候,一直加不上去,報如下錯誤:“沒有介面可用於安裝新的群集”。
    原因:作試驗時,其它機器是從第一臺機器的 Windows 2003 克隆建立的。克隆的虛擬機器,其MAC地址等引數可能是一樣的,導致了該錯誤的出現。
    解決方法:在裝置管理器中,解除安裝(刪除)原先的網路卡。重新安裝一下,就可以了。

六、改進設想
    1,所有機器所在的區域網最好是千兆網路卡和千兆交換機組建的千兆乙太網。
    2,本實驗使用了“內部IP”,以確保IP地址不夠的問題。實際使用時,最好讓內部IP和虛擬IP(即對外提供Web服務的IP)均為公網IP,這樣在遠端登入管理時,可直接登入指定的伺服器,因為遠端服務也會被網路負載平衡進行動態路由,想登入哪臺伺服器不能被有效控制。
    3,如果可能,儘量為伺服器配置雙網路卡,讓網路負載平衡由多塊網路卡分擔。

七、群集下應用程式的會話(session)問題

    對真正的負載平衡來說,每當使用者點選一個連線時,它就改變伺服器的狀態,每當瀏覽一個新頁面時都潛在地丟失他們的 session 資訊。所以群集會對網站應用程式的會話(session)產生影響。
    所以在實施網路負載平衡之前,一定要對網站應用進行稽核。

    為適應網路負載平衡的網站結構,網站程式碼一般一般採取以下辦法:

    ○ 不使用 session
    ○ 使用 cookies
    ○ 購買第三方元件來處理 session 的存貯和管理
    ○ 僅對 Web 的第一次點選進行負載平衡,即只要進入某臺伺服器,就不再動態切換。

相關文章