(轉)虛擬IP原理及使用

轉:https://www.cnblogs.com/jmcui/p/13055283.html

一、前言

高可用性 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)實現雙機熱備以及自動切換主備,讀者可以自行搜索研究。

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