Common Access Redundancy Protocol (CARP, 共用地址冗餘協議)

原作 Tom Rhodes.

  Common Access Redundancy Protocol, 或簡稱 CARP 能夠使多臺主機共享同一 IP 地址。 在某些配置中, 這樣做可以提高可用性, 或實現負載均衡。 下面的例子中, 這些主機也可以同時使用其他的不同的 IP 地址。

  要啓用 CARP 支持, 必須在 FreeBSD 內核配置中增加下列選項, 並重新聯編內核:

device carp

  這樣就可以使用 CARP 功能了, 一些具體的參數, 可以通過一系列 sysctl OID 來調整。 設備可以通過 ifconfig 命令來加載:

# ifconfig carp0 create 

  在真實環境中, 這些接口需要一個稱作 VHID 的標識編號。 這個 VHID 或 Virtual Host Identification (虛擬主機標識) 用於在網絡上區分主機。

29.12.1 使用 CARP 來改善服務的可用性 (CARP)

  如前面提到的那樣, CARP 的作用之一是改善服務的可用性。 這個例子中, 將爲三臺主機提供故障轉移服務, 這三臺服務器各自有獨立的 IP 地址, 並提供完全一樣的 web 內容。 三臺機器以 DNS 輪詢的方式提供服務。 用於故障轉移的機器有兩個 CARP 接口, 分別配置另外兩臺服務器的 IP 地址。 當有服務器發生故障時, 這臺機器會自動得到故障機的 IP 地址。 這樣以來, 用戶就完全感覺不到發生了故障。 故障轉移的服務器提供的內容和服務, 應與其爲之提供熱備份的服務器一致。

  兩臺機器的配置, 除了主機名和 VHID 之外應完全一致。 在我們的例子中, 這兩臺機器的主機名分別是 hosta.example.orghostb.example.org。 首先, 需要將 CARP 配置加入到 rc.conf。 對於 hosta.example.org 而言, rc.conf 文件中應包含下列配置:

hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpast 192.168.1.50/24"

  在 hostb.example.org 上, 對應的 rc.conf 配置則是:

hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"

注意: 在兩臺機器上由 ifconfigpass 選項指定的密碼必須是一致的, 這一點非常重要。 carp 設備只會監聽和接受來自持有正確密碼的機器的公告。 此外, 不同虛擬主機的 VHID 必須不同。

  第三臺機器, provider.example.org 需要進行配置, 以便在另外兩臺機器出現問題時接管。 這臺機器需要兩個 carp 設備, 分別處理兩個機器。 對應的 rc.conf 配置類似下面這樣:

hostname="provider.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"

  配置兩個 carp 設備, 能夠讓 provider.example.org 在兩臺機器中的任何一個停止響應時, 立即接管其 IP 地址。

注意: 默認的 FreeBSD 內核 可能 啓用了主機間搶佔。 如果是這樣的話, provider.example.org 可能在正式的內容服務器恢復時不釋放 IP 地址。 此時, 管理員可以 “提醒” 一下接口。 具體做法是在 provider.example.org 上使用下面的命令:

# ifconfig carp0 down && ifconfig carp0 up 

這個操作需要在與出現問題的主機對應的那個 carp 接口上進行。

  現在您已經完成了 CARP 的配置, 並可以開始測試了。 測試過程中, 可以隨時重啓或切斷兩臺機器的網絡。

  如欲瞭解更多細節, 請參見 carp(4) 聯機手冊。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章