Win2008 R2/2012 網(wǎng)絡(luò)負(fù)載平衡NLB相關(guān)內(nèi)容
使用網(wǎng)絡(luò)負(fù)載均衡技術(shù)可以實(shí)現(xiàn)一些應(yīng)用程序的可用性和可伸縮性,常用的應(yīng)用程序有:IIS、防火墻、VPN以及一些關(guān)鍵業(yè)務(wù)。每一個(gè)節(jié)點(diǎn)運(yùn)行應(yīng)用程序的一個(gè)副本。NLB在群集中的多個(gè)主機(jī)中分發(fā)傳入的客戶端請求??梢詣討B(tài)地添加主機(jī),也可以將所有流量引導(dǎo)到指定的單個(gè)主機(jī),這個(gè)主機(jī)就稱為默認(rèn)主主機(jī)。在一個(gè)群集中最多支持 32 臺計(jì)算機(jī)。
當(dāng)計(jì)算機(jī)意外出現(xiàn)故障或者脫機(jī)時(shí),將斷開與出現(xiàn)故障或脫機(jī)的服務(wù)器之間的活動連接。但是,如果您有意關(guān)閉主機(jī),則可以在使計(jì)算機(jī)脫機(jī)之前,使用 drainstop 命令處理所有活動的連接。任何一種情況下,都可以在準(zhǔn)備好時(shí)將脫機(jī)計(jì)算機(jī)明確地重新加入群集,并重新共享群集負(fù)載,以便使群集中的其他計(jì)算機(jī)處理更少的流量。
NLB 群集中的主機(jī)會交換檢測消息以保持有關(guān)群集成員身份的數(shù)據(jù)的一致性。默認(rèn)情況下,當(dāng)主機(jī)在五秒之內(nèi)未能發(fā)送檢測消息時(shí),該主機(jī)便出現(xiàn)了故障。當(dāng)主機(jī)出現(xiàn)故障時(shí),群集中的剩余主機(jī)將聚合在一起并執(zhí)行以下操作:
確定哪些主機(jī)仍然是群集中的活動成員。
選擇優(yōu)先級最高的主機(jī)作為新的默認(rèn)主機(jī)。
確保所有新的客戶端請求都由仍然活動的主機(jī)進(jìn)行處理。
在聚合期間,仍然活動的主機(jī)會查找一致的檢測信號。如果無法發(fā)送檢測信號的主機(jī)開始提供一致的檢測信號,則它會在聚合過程中重新加入群集。當(dāng)新的主機(jī)嘗試加入群集時(shí),它會發(fā)送檢測消息,該消息也會觸發(fā)聚合。當(dāng)所有群集主機(jī)對當(dāng)前的群集成員身份達(dá)成一致之后,會向剩余主機(jī)重新分發(fā)客戶端負(fù)載,并完成聚合。
通常聚合只需幾秒鐘,因此由群集中斷的客戶端服務(wù)是非常少的。在聚合期間,仍然活動的主機(jī)會繼續(xù)處理客戶端請求,而不會影響現(xiàn)有連接。如果所有主機(jī)在幾個(gè)檢測期間報(bào)告的群集成員身份和分發(fā)映射都一致,則聚合結(jié)束。
就其安裝和部署來說非常簡單,無須多言,有幾點(diǎn)需要注意:
1. 相關(guān)性:
無:NLB會根據(jù)源主機(jī)的IP 地址和端口將其請求指派給其中的一臺服務(wù)器處理。
單一:NLB只根據(jù)源主機(jī)的IP地址將其請求指派給其中的一臺服務(wù)器處理。
網(wǎng)絡(luò):根據(jù)源主機(jī)的網(wǎng)絡(luò)地址,即IP地址中的最高3個(gè)字節(jié)。例如,200.201.111.0的將其請求指派給其中的一臺服務(wù)器處理。
2. 操作模式:
單播:每一個(gè)節(jié)點(diǎn)的網(wǎng)卡MAC地址會被替換成一個(gè)相同的群集MAC地址。通過此MAC地址來接收外部來的連接請求。但也存在一定的問題,如下:
交換機(jī)上每一個(gè)端口注冊的MAC地址必須唯一: 如果兩個(gè)節(jié)點(diǎn)都連接到二層交換機(jī),那么交換機(jī)在注冊MAC地址的時(shí)候就會在存在問題。微軟的解決方法是使用MaskSourceMAC功能來解決,它根據(jù)每一臺服務(wù)器的主機(jī)ID來更改外送數(shù)據(jù)包中以太幀頭部的MAC地址,將群集MAC中的第2組改為主機(jī)ID如01或者是02。此地址僅在以太幀中,通過抓包可以查看到,通過arp -a應(yīng)該是看不到的,有興趣的朋友可以測試。
啟用MaskSourceMAC:將注冊表中[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WLBS\Parameters\Interface\{D46BAFF5-EF6D-47B0-8A87-0088A8C73010}]中的MaskSourceMAC設(shè)置為1,系統(tǒng)默認(rèn)已經(jīng)為1,因此不用修改。
交換機(jī)泛洪:如果路由器接收到發(fā)往群集IP地址的數(shù)據(jù)包時(shí),它會通過ARP協(xié)議請求群集IP地址所對應(yīng)的MAC地址,此地址是真正替換之前的群集MAC,但因?yàn)闆]有在交換機(jī)上注冊,因此要進(jìn)行廣播。
如果希望徹底解決,可以將NLB群集中的所有服務(wù)器連接到一個(gè)集線器,然后再將集線器連接到交換機(jī)的一個(gè)端口。同時(shí)禁用前面的MaskSourceMAC功能,這樣這個(gè)端口只會注冊群集的MAC地址。這樣的話,當(dāng)路由器將目的地為群集MAC的數(shù)據(jù)包發(fā)到交換機(jī)后,交換機(jī)只會通過這個(gè)端口轉(zhuǎn)發(fā)到集線器,不會到其他端口,HUB再發(fā)給所有服務(wù)器。
至于,采用多播后兩節(jié)點(diǎn)之間不能通訊的問題,在Windows Server 2008 以后是可以的。但考慮性能問題或者是其他業(yè)務(wù)需要同時(shí)訪問這兩個(gè)節(jié)點(diǎn)時(shí),還是建議另外使用一個(gè)網(wǎng)卡。
多播:如果使用多播模式,則所有節(jié)點(diǎn)在一個(gè)多播組中,它們在擁有一個(gè)共同的多播MAC地址之外每一個(gè)網(wǎng)卡依然會保留原來的MAC地址。因此節(jié)點(diǎn)成員之間通訊沒有問題。但群集之外的其他客戶端想同時(shí)訪問兩臺服務(wù)器還是不可以的,只能訪問其中一個(gè)如DNS解析,這是NLB的機(jī)制。
多播的缺點(diǎn)在于:
有的路由器不支持:路由器接收到要轉(zhuǎn)發(fā)給群集IP地址的數(shù)據(jù)包時(shí),會通過ARP尋求MAC地址,有的路由器只接受單播地址,而不接受多播MAC地址,因此會有問題。解決方法可以考慮在路由器內(nèi)新建靜態(tài)ARP映射表,如果不行,就只能使用單播模式。只要能解決在路由器內(nèi)新建ARP靜態(tài)映射,兼容性還是很好的。
。。3. 管理器使用:基本使用在此不多說,但在筆者的實(shí)際應(yīng)用中發(fā)現(xiàn)以下問題:
在工作組環(huán)境下,使用網(wǎng)絡(luò)負(fù)載平衡管理器查看連接狀態(tài)時(shí),一切正常,如下圖所示:
但是在域環(huán)境下,也就是如果兩個(gè)節(jié)點(diǎn)是成員服務(wù)器的話,則會發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)通過管理器查看是正常的,但另一個(gè)節(jié)點(diǎn)查看時(shí),會出現(xiàn)有的節(jié)點(diǎn)不可訪問的現(xiàn)象,如下圖所示:
解決方法:通過使用主機(jī)列表連接到現(xiàn)有網(wǎng)絡(luò)負(fù)載平衡群集,具體如下:
步驟1: 在記事本中鍵入主機(jī)列表:
例如,現(xiàn)在節(jié)點(diǎn)02上無法正確顯示所有主機(jī),則我們就到節(jié)點(diǎn)02上創(chuàng)建一個(gè)文本文件host.txt,內(nèi)容如下:
步驟2:通過管理器加載主機(jī)列表,如下圖所示:
然后,等待幾分鐘之后,即可顯示完整的訂購信息,如下圖所示:
我的理解是,省去了DNS解析的過程,因?yàn)楝F(xiàn)在NLB已經(jīng)正常起作用了,DNS作為一個(gè)客戶端與節(jié)點(diǎn)1可以正常通訊,則必須與節(jié)點(diǎn)2無法通訊,如下圖所示:
如果 NLB 管理器日志顯示 Access denied, error connecting to "host",則必須通過使用作為所有主機(jī)上管理員組成員的登錄名重新連接群集??梢酝ㄟ^以下方法來完成該操作:通過“運(yùn)行身份”使用不同登錄名進(jìn)行登錄,或通過單擊 NLB 管理器“選項(xiàng)”菜單中的“憑據(jù)”提供 NLB 管理器可使用的備用登錄名。另外需要知道,NLB的日志就是管理器下方顯示的內(nèi)容,就是記錄到文件中也是這些內(nèi)容。
綜上所述,建議NLB可以部署在工作組環(huán)境,也可以部署在域環(huán)境,但相對來說還是工作組環(huán)境要簡單些,當(dāng)然還要考慮到實(shí)際環(huán)境中對域及DNS的要求;如果只有一塊網(wǎng)卡,建議使用多播;如果有兩塊網(wǎng)卡,最好是單播。以上實(shí)驗(yàn)如果是在Hyper-v環(huán)境下,需要啟用網(wǎng)卡的MAC地址欺騙。不建議使用WorkStation這樣的單機(jī)虛擬軟件實(shí)現(xiàn)。
本文出自 “杜飛” 博客
相關(guān)文章
Win2008 R2 IIS7 PHP 5.4 環(huán)境搭建圖文教程
大家好,有段時(shí)間沒有寫東西了,今天為大家?guī)淼氖窃赪indows Server 2008 R2上利用IIS搭建一個(gè)運(yùn)行PHP網(wǎng)頁的環(huán)境,接下來就開工吧2013-06-06win2003安裝wincache的步驟分享加速php運(yùn)行
wincache是微軟為配合fastcgi為推出的php加速器,如果你的php是在fastcgi模式下運(yùn)行的,一般php 5.3.*版本都是默認(rèn)fastcgi模式的,那么都可以通過wincache加速器來加速運(yùn)行php2013-08-08win2003禁止用戶遠(yuǎn)程登錄的設(shè)置方法
有時(shí)候我們需要新增加一些用戶,又怕被黑客利用,我們就可以設(shè)置禁止這些用戶登錄服務(wù)器2013-09-09Windows下安裝Redis及使用Python操作Redis的方法
這篇文章主要介紹了Windows下安裝Redis及使用Python操作Redis的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03認(rèn)識w3wp.exe進(jìn)程,從根本上解決占用資源較大問題
近在互聯(lián)網(wǎng)上提這個(gè)問題的網(wǎng)友較多,典型問題:這幾天服務(wù)器總是運(yùn)行緩慢,遠(yuǎn)程登錄后發(fā)現(xiàn)一個(gè)w3wp.exe的進(jìn)程占用了100% cpu.2010-06-06win2003 service pack2 IIS 無法復(fù)制CONVLOG.EXE CONVLOG.EX_問題處理
在安裝的時(shí)候出現(xiàn)一個(gè)錯(cuò)誤提示“安裝程序無法復(fù)制文件CONVLOG.EX_”,上網(wǎng)找了下資料,說是在運(yùn)行-中輸入”esentutl /p %windir%/security/database/secedit.sdb ” 就可以了2011-03-03阿里云Windows 2008一鍵安裝包配置php web環(huán)境圖文安裝教程(IIS+Php+Mysql)
這篇文章主要介紹了阿里云Windows 2008一鍵安裝包配置web環(huán)境圖文安裝教程(IIS+Php+Mysql),當(dāng)前使用2008 r2的朋友越來越多了,這個(gè)安裝包對于快速架設(shè)php運(yùn)行環(huán)境是非常不錯(cuò)的工具2016-10-10win2003 服務(wù)器超出最大連接+強(qiáng)制重啟服務(wù)器(方法)
有時(shí)候我們在遠(yuǎn)處連接服務(wù)器的時(shí)候,提示服務(wù)器超出最大連接,那么可以參考下面的方法解決。2011-08-08