12.6. VIRTUAL SERVERS

VIRTUAL SERVERS 面板顯示出每一部目前已定義好之虛擬伺服器的資訊,每一個表格 的紀錄項代表虛擬伺服器的狀態、伺服器名稱指定給伺服器的虛擬 IP、虛擬 IP 的網路遮罩、服務所進行通訊的埠號、 所使用的協定以及虛擬的裝置介面。

圖形 12-5. VIRTUAL SERVERS 面板

VIRTUAL SERVERS 面板中所顯示的每一部伺服器都可以在隨後的畫面或 分部 中進行設定。

如要新增一項服務,請點選 ADD 按鈕,如要移除一項服務,請點選虛擬伺服器旁的 選擇鈕來選取它,再點選 DELETE 的按鈕。

如要啟用或停用表格中的虛擬伺服器,請點選它的選擇鈕,再點選 (DE)ACTIVATE 按鈕。

在新增完一部虛擬伺服器後,您可以點選在它左邊的選擇鈕再點選 EDIT 按鈕以顯示出 VIRTUAL SERVER 的分部來進行設定。

12.6.1. VIRTUAL SERVER 的分部

圖形 12-6 所示的 VIRTUAL SERVER 分部面板 允許您設定一部個別的虛擬伺服器。 與這部虛擬伺服器特定相關的分部連結位於這個頁面的上方,不過在您對 與這部虛擬伺服器相關的任何分部進行設定前,請完成這一頁,再點選 ACCEPT 按鈕。

圖形 12-6. VIRTUAL SERVERS 分部

Name

請為虛擬伺服器輸入一個描述性的名稱,這個名稱不是機器的主機名稱,所以請盡量 使這個名稱淺顯易懂,而且讓人容易辨認。 您甚至可以參考由虛擬伺服器使用的通訊協定,例如 HTTP。

Application port

請輸入服務應用程式將聽取的埠號,因為這個例子是用於 HTTP 服務,所以在此使用埠號 80。

Protocol

請在下拉式選單中選擇 UDP 或 TCP,網頁伺服器通常都是以 TCP 協定來進行通訊的,所以在以上的例子中 選擇了 TCP。

Virtual IP Address

請在這個文字欄位輸入虛擬伺服器的浮動 IP 位址。

Virtual IP Network Mask

使用下拉式選單設定這部虛擬伺服器的網路遮罩。

Firewall Mark

請勿在這個欄位輸入一個防火牆標記的整數數值,除非您要連結多埠通訊協定, 或者為分開卻相關的協定建立一個多埠的虛擬伺服器。 在這個例子中,以上的虛擬伺服器擁有一個 80 的防火牆標記,因為我們要使用防火牆標記數值 80 來連結在埠號 80 的 HTTP 連線到埠號 443 的 HTTPS 連線。 當您與持續性一併使用時,這個技術將可確保使用者不管存取安全 或非安全的網頁都將路由到相同的實時伺服器,以保留狀態資訊。

警告警告
 

請在這個欄位輸入一個防火牆標記以允許 IPVS 可以辨識擁有這個防火牆標記的封包都被同等地對待,不過您必須 在 Piranha 組態設定工具 執行進一步的設定來實際地指定防火牆標記。 請參考 第 11.3 節 以取得關於建立多埠服務的指示,以及參考 第 11.4 節 以取得建立一個高存取性 FTP 虛擬伺服器的指示。

Device

請輸入您想要 Virtual IP Address 欄位所定義之浮動 IP 位址要進行繫結的網路裝置名稱。

您應該要設定公眾浮動 IP 位址的別名為連接到公眾網路的乙太網路介面,在這個例子中, eth0 介面連接到公眾網路,所以應該要輸入 eth0:1 當作裝置名稱。

Re-entry Time

請以秒數輸入一個整數數值,以用來定義在現行的 LVS 路由器於發生系統失效的情況下,將實時伺服器帶回到 叢集的時間長短。

Service Timeout

請以秒數輸入一個整數數值,以用來定義一部實時伺服器被認定為完全失效並且於叢集中移除的時間。

Quiesce server

Quiesce server 選擇鈕被選取時,每當一部新的實時伺服器節點連上線時, 含有最少連線的表格將會重設為零,以使得現行的 LVS 路由器可以發放要求,如同所有的實時伺服器 都是新加入叢集似的。 這個選項可避免一部新的伺服器於加入叢集時被大量的連線所牽制而導致陷於停頓的狀態。

Load monitoring tool

LVS 路由器可以藉由使用 rupruptime 來監視許多實時伺服器 的負載情況,假如您從下拉式選單中選取 rup,每一部實時伺服器都必須執行 rstatd 服務,假如您選取 ruptime,每一部實時伺服器都必須執行 rwhod 服務。

注意警示
 

負載監視與負載平衡是不同的,而且在與權重的排程演算法結合使用時可能導致難以預測排程的行為, 而且假如您使用負載監視,叢集中的實時伺服器必須是 Linux 機器。

Scheduling

請從下拉式選單中選取您喜歡的排程演算法,預設值為 Weighted least-connection。 如需關於排程演算法的更多資訊,請參考 第 9.3.1 節

Persistence

假如系統管理員需要在用戶端處理期間,持續地與虛擬伺服器連線,請在這個文字欄位輸入連線逾時前, 允許連線狀態靜止的秒數。

重要重要
 

假如您在以上的 Firewall Mark 欄位輸入一個數值,您也應該為持續性輸入一個數值。 而且也請您確定,假如您一併使用防火牆標記與持續性,每一部含有防火牆標記的虛擬伺服器的持續性時間是 相同的。 如需關於持續性與防火牆標記的更多資訊,請參考 第 9.5 節

Persistence Network Mask

如要限制一個特定子網路的持續性,請從下拉式選單中選取適當的網路遮罩。

注請注意
 

在防火牆標記出現之前,由子網路來限制的持續性是用來連結連線的一種粗糙的方法,現在最好是使用將防火牆標記 與持續性一起使用來達到相同的效果。

警告警告
 

在這個面板作任何變更後,請記得點選 ACCEPT 按鈕,以確保在您選擇一個新的面板後, 不會遺失任何所作的變更。

12.6.2. REAL SERVER 分部

點選面板頂端的 REAL SERVER 分部將會顯示 EDIT REAL SERVER 分部,它將會為一個特定虛擬服務顯示出實體伺服器主機的狀態。

圖形 12-7. REAL SERVER 分部

點選 ADD 按鈕來新增一部新的伺服器,如要刪除一部既有的伺服器,請選取旁邊 的選擇鈕,再點選 DELETE 按鈕。 點選 EDIT 按鈕將會 載入 EDIT REAL SERVER 面板,如 圖形 12-8 所示。

圖形 12-8. REAL SERVER 設定面板

這個面板包含三個輸入欄位:

Name

實時伺服器的一個描述性名稱。

提示建議
 

這個名稱不是機器的主機名稱,所以請盡量取一個淺顯易懂的名稱,而且讓人容易辨認。

Address

實時伺服器的 IP 位址。 因為已經為關聯的虛擬伺服器指定了聆聽的連接埠,請勿增加一個埠號。

Weight

用來表示這部主機與主機群中其他主機之系統能力的一個整數數值,這個數值可以是獨斷性的,不過請將它視為 與叢集中其他實時伺服器相對的一個比例。 如需關於伺服器權重的更多資訊,請參考 第 9.3.2 節

警告警告
 

在這個面板作任何變更後,請記得點選 ACCEPT 按鈕,以確保在您選擇一個新的面板後, 不會遺失任何所作的變更。

12.6.3. EDIT MONITORING SCRIPTS 分部

點選此頁面頂部的 MONITORING SCRIPTS 連結,EDIT MONITORING SCRIPTS 分部允許系統管理員指定一個 send/expect 字串順序以用來檢驗虛擬伺服器的服務在實時伺服器上是正常運作的。 這裡也是系統管理員可以用來指定自訂程式碼以檢查需要動態變動資料之服務的地方。

圖形 12-9. EDIT MONITORING SCRIPTS 分部

Sending Program

如需更進階的服務檢查,您可以使用這個欄位來指定指向服務檢查程式碼的路徑。 這個功能性對於需要動態變更資料的服務(如 HTTPS 或 SSL)特別有幫助。

如要使用這個功能性,您必須撰寫一個可以傳回本文回應的程式碼,將它設定為可被執行,並且在 Sending Program 欄位輸入它的路徑。

提示建議
 

為了確保實時伺服器群中的每一部伺服器都經過檢查,請在 Sending Program 欄位使用特殊的記號 %h 在該程式碼的路徑之後。 當 nanny 系統程式呼叫此程式碼時,這個記號將會被每一部實時伺服器的 IP 位址所取代。

當您撰寫一個外部服務檢查的程式碼時,以下為一個可用來當作指引的範例程式碼:

#!/bin/sh

TEST=`dig -t soa example.com @$1 | grep -c dns.example.com

if [ $TEST != "1" ]; then
	echo "OK
else
	echo "FAIL"
fi

注請注意
 

假如在 Sending Program 欄位輸入一個外部的程式,那麼 Send 欄位將會被忽視。

Send

請在這個欄位輸入一個 nanny 系統程式將傳送到每一部實時伺服器的字串, 預設情況下,這個 send 欄位將會為 HTTP 填好必要的值。 取決於您的需求,您可以更改這個欄位的值。 假如您將此欄位留空,nanny 系統程式將會試著開啟連接埠,並且假設該服務已經執行中 (假如成功的話)。

這個欄位只允許一個 send 序列,而且只能使用可列印的、ASCII 字元以及下列的跳脫字元:

  • \n 代表新的一行。

  • \r 代表換行字元。

  • \t 代表 Tab。

  • \ 代表跳脫隨後的下一個字元。

Expect

請輸入伺服器正常運作時應該傳回的一個本文回應(textual response),假如您撰寫自己的傳送程式, 請輸入在成功時您要它傳送的回應。

提示建議
 

如要決定該傳送什麼給一項服務,您可以開啟一個 telnet 連線到一部實時伺服器的連接埠, 然後查看傳回什麼資訊。 例如,FTP 成功連線時將回報 220 ,所以您可以在 Send 欄位輸入 quit,而在 Expect 欄位輸入 220

警告警告
 

在這個面板作任何變更後,請記得點選 ACCEPT 按鈕,以確保在您選擇一個新的面板後, 不會遺失任何所作的變更。

一旦您使用 Piranha 組態設定工具 設定好虛擬伺服器後,您必須複製特定的設定檔案到備援的 LVS 路由器, 請參考 第 12.7 節 以取得詳細資訊。