一、前言
高可用性 HA(High Availability)指的是通過盡量縮短因日常維護操作(計劃)和突發的系統崩潰(非計劃)所導緻的停機時間,以提高系統和應用的可用性。HA 系統是目前企業防止核心計算機系統因故障停機的最有效手段。
實作 HA 的方式,一般采用兩台機器同時完成一項功能,比如資料庫伺服器,平常隻有一台機器對外提供服務,另一台機器作為熱備,當這台機器出現故障時,自動動态切換到另一台熱備的機器。
二、虛拟IP技術原理
1. 怎麼實作故障檢測?
心跳檢測技術。采用定時發送一個資料包,如果機器一定時間沒響應,就認為是發生故障,自動切換到熱備的機器上去。
2. 怎麼實作主備自動切換?
虛拟IP技術。虛拟IP,就是一個未配置設定給真實主機的IP,也就是說對外提供資料庫伺服器的主機除了有一個真實IP外還有一個虛IP,使用這兩個IP中的任意一個都可以連接配接到這台主機,所有項目中資料庫連結一項配置的都是這個虛IP,當伺服器發生故障無法對外提供服務時,動态将這個虛IP切換到備用主機。
其實作原理主要是靠 TCP/IP 的 ARP 協定。因為IP位址隻是一個邏輯位址,在以太網中 MAC 位址才是真正用來進行資料傳輸的實體位址,每台主機中都有一個 ARP 高速緩存,存儲同一個網絡内的 IP 位址與 MAC 位址的對應關系,以太網中的主機發送資料時會先從這個緩存中查詢目标 IP 對應的 MAC 位址,會向這個 MAC 位址發送資料。作業系統會自動維護這個緩存。這就是整個實作的關鍵,比如下面這個 ARP 緩存示例:
(192.168.1.219) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.217) at 00:21:5A:DB:68:E8 [ether] on bond0
(192.168.1.218) at 00:21:5A:DB:7F:C2 [ether] on bond0
其中,192.168.1.217、192.168.1.218 是兩台真實的電腦,192.168.1.217 為對外提供資料庫服務的主機,192.168.1.218 為熱備的機器,192.168.1.219 為虛IP,注意219、217的 MAC 位址是相同的。當 218 發現 217 當機後會向網絡發送一個 ARP 資料包,告訴所有主機 192.168.1.219 這個IP對應的MAC位址是 00:21:5A:DB:7F:C2,這樣所有發送到 219 的資料包都會發送到 MAC 位址為 00:21:5A:DB:7F:C2 的機器,也就是 218 的機器。
三、配置和删除虛拟IP
假如主機有一個網卡 eth1,其對應一個IP為 192.168.1.217,現對其設定一個虛拟IP 192.168.1.219:
ifconfig eth1:1 192.168.1.219 netmask 255.255.255.0
删除該虛拟IP:
ip addr del 192.168.1.219 dev eth1
不過在網絡運維中,更常見的是使用
keepalived配置虛拟ip(vip)實作雙機熱備以及自動切換主備,讀者可以自行搜尋研究。