標籤:主機 分享 發送 str 基於 電腦 常見 優先順序 分配
上面有一篇文章說windows第七層負載平衡,這次講講第四層負載平衡
TCP/IP協議族,第七層是應用程式層,第四層是傳輸層。第四層負載平衡主要通過IP進行轉化。
一些優秀的第四層負載平衡軟體,速度可以接近硬體負載平衡的效率。當然,論速度還是人家硬體的快一點點,畢竟人家那價格擺在那裡,一台F5,十幾萬,幾十萬,上百萬不等。
第四層重與第七層相比:優秀就是速度快,能感知叢集伺服器的狀態。缺點就是不能感知應用程式層軟體的狀態,比如IIS網站掛掉,但是如果伺服器沒有掛掉,轉化流量用繼續流入該伺服器。
現在很多的第四層負載平衡軟體,我是說LINUNX伺服器下。如果你使用了Windows,我還是建議大夥吃人家的全家桶吧。效能肯定不能最大化。但是論穩定性,維護性還是全家桶好使,省心,省力。
如果,你購買了微軟的正版系統,你還可以一個電話,讓人家工程師幫你解決問題。前提是,你得用的是全家桶。
常見的第四層負載平衡軟體:LVS,NLB,還有其它,一時想不起來了,懶得查了。
下面講講怎麼安裝NLB,當然我使用的是帶GUI的作業系統,一般情況LINUX的是不裝GUI的,但是window的黑框我還沒有習慣,還不會用,就先用帶GUI的吧
首先點服務管理員。
一直點“下一步”,直到勾上這個
安裝成功。
每一台參與NLB的伺服器,都需要安裝。這跟ARR不一樣,ARR只需要在轉寄伺服器上面安裝即可。
這裡作為示範例子,就給三台伺服器裝上NLB吧
分別是
192.168.99.8192.168.99.10192.168.99.11
簡單講講原理吧
所有請求會分發到每一台NLB伺服器,然後NLB伺服器根據演算法處理自己那一份請求。
那麼所有請求是怎麼分發給每一台伺服器昵,因為他們有一個公用的IP。也是就說,每台伺服器有兩個IP。
是的,每電腦可以有多個IP地址。
進階選項中,可以手動添加多個IP地址。
開啟網路Server Load Balancer管理器,建立叢集
一直點“下一步”,直到完成。
192.168.99.10,192.168.99.20的伺服器分別按下步驟操作。
一直點“下一步”,直到完成。
叢集部署完畢。
我們查看IP,你發現,多一個公用IP,192.168.99.20 這個就是群集的IP。
搭建好之後,我們就走一波試試,試跑成功之後,再來講講一些細節配置吧
首先IIS要做一些設定,因為我們將使用公用IP進行訪問,就是192.168.99.20
訪問http://192.168.99.20/api/home/GetUserChat
成功返回,老規則,現在用VS2017進行壓力測試,完事之後,講點細節配置這事就算完成啦。
測試成功,但是問題也是相當明顯
第一,資料的確廣發給每個伺服器,我們可以看,接收的資料大小都是一樣的5.4Mbps
第二,發送的資料大小卻完全不一樣,這說明處理不一樣。我們可以明顯看到,192.168.99.10這台伺服器,承擔了大部分的工作。CPU上升到94%,發送資料包也達到1.5Mbps。
很明顯叢集配置不合適。下面我們來講講細節細置
叢集操作模式:
單播:所有節點伺服器的MAC都會被改成叢集MAC,發送資料的時候源MAC將變成叢集MAC。缺點:交換器的MAC表無法綁定該MAC歸屬那個連接埠,所有資料包都進行廣播,造流量負擔。所有節點伺服器具有相同MAC,無法相通訊。也就是說,叢集節點,具有相同的IP和相同MAC地址。
多播:不會修改節點伺服器的MAC,而是為專節點伺服器添加多一個叢集MAC,節點之間可以通過專用IP進行相互連信。
單網卡多播,雙網卡單播。雙網卡可以設定內網網卡成為專用IP,解決單播節點不能相互連信問題。
叢集連接埠規則:
篩選模式:
多台主機:所有資料由多台伺服器處理。
單個主機:所有資料由一台伺服器處理,根據優先順序選出伺服器。
禁用此連接埠範圍:禁止這個連接埠的資料,進行處理。
多台主機模式下,相關性:
無:由負載平衡器根根演算法處理,基本上請求平均分配。
單一:同一個用戶端的請求,歸屬原來的處理的伺服器。
網路:根據IP的C類位址範圍來決定分配。也就是同一網段的請求,會分配某一伺服器上。
優先順序:叢集中所有轉寄根據連接埠規則進行處理,如果不符合連接埠規則,將統一由優先順序最小的伺服器進行處理。
為什麼我們開始時候,192.168.99.10承受大量的工作,因為連接埠規則沒有設定好,我們現在重新設定一下連接埠規則,再來測試一下吧。
之前預設設定
重新設定之後的配置
好,我們重新跑一趟壓力
網路接受和發送比較平等。
每個伺服器接受的請求數,大概相等。
每秒處理150個。與伺服器資料相吻合。
負載平衡基本達到與預期效果一致。
NLB叢集測試完畢。
windows第四層負載平衡--基於NLB負載平衡