天天看點

LVS之NET與DR模型的實作

NET模型是一個比較簡單叢集模型,其工作方式也比較容易了解。如圖

LVS之NET與DR模型的實作

VIP要是一個使用者可見的IP,也就是公網IP

DIP與RIP要在一個IP網段内,可以是私有IP

使用者通路時通路的是director,也就是一個叢集服務。但是使用者并不能清除的知道自己通路的是一個叢集服務,使用者看到的隻是director通過VIP提供的服務,是以使用者在發送請求時其目标IP指向的是VIP。VIP在接收到使用者請求之後通過指定的算法将請求通過DIP轉發給realserver,realserver得到請求封包之後會在最短的時間内處理并将封包回傳給DIP,DIP再将響應封包轉交給VIP,VIP将響應封包送還給使用者。你不必驚訝,NET叢集的工作就是這麼簡單,不要想得太複雜。

下面以NET模型為例來實作一個簡單的web叢集

由于資源限制,執行個體中使用虛拟機來實作。

首先準備好兩台虛拟機當做兩台web伺服器,這裡我們隻是來說明NET模型的實作的,所有對一些共享存儲之類的不做深究。

再準備一台支援ipvs的虛拟機,給其提供兩塊網卡,用來做director。

使用者就用我們的主機來實作下面我們做一些規劃:

VIP:192.168.0.3

DIP:172.16.22.210

RIP1:172.16.22.111

RIP2:172.16.22.112

客戶機IP:192.168.0.234

我們假設VIP是公網IP,DIP和RIP都是内網IP,所有我們将DIP和RIP的網卡設定為host-only,而VIP要保證能夠與客戶機通信,這樣的話準備工作就已經齊備了。

首先打開兩台做web伺服器的虛拟機,将其網關指為DIP。别忘了安裝上web服務,并提供頁面,由于我們是為了測試NET模型,所有将兩台web服務提供的頁面差別開來。 Realserver1的網頁内容為111,Realserver2的頁面内容為s12。下面來更改一下兩台伺服器的網關。在指令行模式執行setup指令,選擇Network configuration下一步選擇Edit Devices接下來選擇網卡回車将Default gateway IP一項的IP位址改為DIP的IP位址,Realserver2的過程相同。如圖

注意:各realserver之間的時間要保持一緻,其時間偏差不應該超出1秒鐘

Realserver1:

LVS之NET與DR模型的實作

Realserver2:

LVS之NET與DR模型的實作

更改過後重新開機網絡服務其更改才會生效。做完這些步驟,我們的測試伺服器就已将完成了。

然後為director提供ipvs服務,要注意的是ipvs服務系統自帶的yum包不一定會有,有的話可以直接安裝,沒有的話就需要去下載下傳安裝了,安裝過程不再給出。

安裝并啟動之後為其提供排程規則,并開啟轉發功能,使其能夠在兩塊網卡之間轉發資料。

LVS之NET與DR模型的實作

圖中主機已經啟動了轉發功能,如果其值為0将其修改為1即可。

這樣一個簡單的NET模型的web叢集就已經可以通路了。打開浏覽器來看一下是否可以完成切換:

LVS之NET與DR模型的實作

至此,一個成功的NET模型就已經實作了!

下面再來看一下DR模型:

DR模型的工作方式與NET有所差别,如圖:

LVS之NET與DR模型的實作

DR模型的director與NET相似,接收了所有的請求封包,并将其通過DIP轉發給RIP。但是,DR模型的VIP不處理響應封包,響應封包是通過路由裝置直接響應給使用者的。這樣就節省了director的資源。但是使用者請求的是目标IP是VIP,如果RIP直接響應給使用者的話,使用者發現沒有對此IP發送請求,是不會接收的。是以我們還必須用VIP的位址來響應給使用者。可是VIP不處理響應封包,我們改如何來實作呢?這裡就用到了網卡的别名。可以給RIP的網卡定義一個别名,将其位址設為VIP的位址。由于是網卡的别名,是隐藏的位址,是以不會發生IP沖突。一般情況下别名的位址是不用來通信的,隻用來響應使用者的請求的叢集服務。

DR模型的實作要比NET模型多一個路由,是以需要再準備一台虛拟機來當做路由來使用。

規劃:

RIP2:172.16.22.112

内部路由接口:172.16.161.20

外部路由接口:192.168.0.177

以外部主機作為客戶機,準備四台虛拟機:

兩台作為realserver,将其網卡調整為Host-only;

一台作為director,将DIP的網卡調整為Host-only,VIP的網卡調整為與使用者和路由可以直接通信的類型;

另外一台作為路由,也為其添加兩塊網卡,一塊作為内部路由接口,将其調整為Host-only,另外一塊作為外部路由接口,要保證能與外部主機通信。

下面來實作一下這個過程:

前面講過realserver要使用VIP的位址直接響應給使用者的,是以給realserver的網卡配置上别名,不過在這之前将其RIP的網關指向路由裝置使其能夠到外網中去(别忘了檢視時間是否一緻):

LVS之NET與DR模型的實作
LVS之NET與DR模型的實作

修改網關之後要修改核心參數,然後定義别名,并給别名添加路由條目(注意:一定要先修改核心參數,然後在定義别名):

Realserver1和Realserver2的步驟完全相同:

LVS之NET與DR模型的實作

做完之後别忘了啟動web服務。(這裡跟NET模型用的是同樣的realserver,web頁面已經存在)

配置Director:

首先開啟director主機的轉發功能,使其可以實作網卡間的資料轉發,然後為VIP提供一條跟RIP的别名相同的路由條目,最後啟動ipvs功能,并添加規則:

LVS之NET與DR模型的實作

路由不需要怎麼配置,隻要開啟轉發功能即可,完成之後可以用我們的客戶機(也就是我們實體主機)來驗證一下是否可以通信:

LVS之NET與DR模型的實作

這裡隻給出兩個,但是最好是都驗證一下,保證每一台主機間都可以通信。如果可以那麼就用浏覽器來試一下吧:

LVS之NET與DR模型的實作

完成之後,還可以看一下Director的封包記錄:

LVS之NET與DR模型的實作

繼續閱讀