虛擬IP地址(VIP) 是一個不與特定計算機或一個計算機中的網(wǎng)絡(luò)接口卡(NIC)相連的IP地址。數(shù)據(jù)包被發(fā)送到這個VIP地址樟凄,但是所有的數(shù)據(jù)還是經(jīng)過真實的網(wǎng)絡(luò)接口聘芜。VIPs大部分用于連接冗余;一個VIP地址也可能在一臺計算機或NIC發(fā)生故障時可用缝龄,交由另一個可選計算機或NIC響應(yīng)連接汰现。虛擬IP地址的例子如:一個Loopback(無電路IP地址)作為不與在主機或路由器中任何一個特定接口(或電路)相關(guān)的IP地址。
IP技術(shù)的一種叔壤,增強網(wǎng)絡(luò)管理瞎饲,發(fā)揮出VLAN的優(yōu)勢,改變了網(wǎng)絡(luò)結(jié)構(gòu),合理分配網(wǎng)絡(luò)資源炼绘,均衡網(wǎng)絡(luò)負載嗅战,有效降低網(wǎng)上廣播信息,方便對用戶的分組管理。
通常情況下俺亮,兩臺服務(wù)器都具有一塊以上的網(wǎng)卡驮捍,每塊網(wǎng)卡都應(yīng)該有一個IP地址,同時脚曾,還應(yīng)該有一個漂移IP地址东且,該地址為工作IP地址。因此斟珊,最簡單的主從方式下,雙機系統(tǒng)要占用3個網(wǎng)絡(luò)地址富纸。
在分配IP地址時囤踩,要分清工作IP地址和主機自由地址。如在主從方式晓褪、單網(wǎng)卡的情況下堵漱,主機一地址為200.10.10.1,主機二的地址為200.10.10.2涣仿,工作地址為200.10.10.3勤庐,正常情況下示惊,工作主機的自由地址是被工作地址取代的(若主機一在工作,主機一得地址由200.10.10.1變?yōu)?00.10.10.3)愉镰。在發(fā)生主機切換的情況下米罚,主機一的地址恢復(fù)為200.10.10.1,而主機二的地址會由200.10.10.2變?yōu)?00.10.10.3丈探,這就是地址漂移录择。
高可用性HA(High Availability)指的是通過盡量縮短因日常維護操作(計劃)和突發(fā)的系統(tǒng)崩潰(非計劃)所導(dǎo)致的停機時間,以提高系統(tǒng)和應(yīng)用的可用性碗降。HA系統(tǒng)是目前企業(yè)防止核心計算機系統(tǒng)因故障停機的最有效手段隘竭。
實現(xiàn)HA的方式,一般采用兩臺機器同時完成一項功能讼渊,比如數(shù)據(jù)庫服務(wù)器动看,平常只有一臺機器對外提供服務(wù),另一臺機器作為熱備爪幻,當這臺機器出現(xiàn)故障時菱皆,自動動態(tài)切換到另一臺熱備的機器。
怎么實現(xiàn)故障檢測的笔咽?
心跳搔预,采用定時發(fā)送一個數(shù)據(jù)包,如果機器多長時間沒響應(yīng)叶组,就認為是發(fā)生故障拯田,自動切換到熱備的機器上去。
怎么實現(xiàn)自動切換甩十?
虛擬IP船庇。何為虛擬IP,就是一個未分配給真實主機的IP侣监,也就是說對外提供數(shù)據(jù)庫服務(wù)器的主機除了有一個真實IP外還有一個虛擬IP鸭轮,使用這兩個IP中的 任意一個都可以連接到這臺主機,所有項目中數(shù)據(jù)庫鏈接一項配置的都是這個虛IP橄霉,當服務(wù)器發(fā)生故障無法對外提供服務(wù)時窃爷,動態(tài)將這個虛IP切換到備用主機。
開始我也不明白這是怎么實現(xiàn)的姓蜂,以為是軟件動態(tài)改IP地址按厘,其實不是這樣,其實現(xiàn)原理主要是靠TCP/IP的ARP協(xié)議钱慢。因為ip地址只是一個邏輯 地址逮京,在以太網(wǎng)中MAC地址才是真正用來進行數(shù)據(jù)傳輸?shù)奈锢淼刂罚颗_主機中都有一個ARP高速緩存束莫,存儲同一個網(wǎng)絡(luò)內(nèi)的IP地址與MAC地址的對應(yīng)關(guān) 系懒棉,以太網(wǎng)中的主機發(fā)送數(shù)據(jù)時會先從這個緩存中查詢目標IP對應(yīng)的MAC地址草描,會向這個MAC地址發(fā)送數(shù)據(jù)。操作系統(tǒng)會自動維護這個緩存策严。這就是整個實現(xiàn) 的關(guān)鍵穗慕。
下邊就是我電腦上的arp緩存的內(nèi)容。
(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為對外提供數(shù)據(jù)庫服務(wù)的主機。
192.168.1.218為熱備的機器栗竖。
192.168.1.219為虛IP暑脆。
大家注意紅字部分,219狐肢、217的MAC地址是相同的添吗。
再看看那217宕機后的arp緩存
(192.168.1.219) at 00:21:5A:DB:7F:C2 [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
這就是奧妙所在。當218 發(fā)現(xiàn)217宕機后會向網(wǎng)絡(luò)發(fā)送一個ARP數(shù)據(jù)包份名,告訴所有主機192.168.1.219這個IP對應(yīng)的MAC地址是00:21:5A:DB:7F:C2碟联,這樣所有發(fā)送到219的數(shù)據(jù)包都會發(fā)送到mac地址為00:21:5A:DB:7F:C2的機器,也就是218的機器僵腺。