在 TCP/IP 的架構(gòu)下,所有想上網(wǎng)的電腦,不論是用何種方式連上網(wǎng)路,都必須要有一個(gè)唯一的 IP-address。事實(shí)上IP地址是主機(jī)硬件地址的一種抽象,簡(jiǎn)單的說(shuō),MAC地址是物理地址,IP地址是邏輯地址。
虛擬IP,就是一個(gè)未分配給真實(shí)主機(jī)的IP,也就是說(shuō)對(duì)外提供服務(wù)器的主機(jī)除了有一個(gè)真實(shí)IP外還有一個(gè)虛IP,使用這兩個(gè)IP中的任意一個(gè)都可以連接到這臺(tái)主機(jī)。
虛擬IP一般用作達(dá)到HA(High Availability)的目的,比如讓所有項(xiàng)目中數(shù)據(jù)庫(kù)鏈接一項(xiàng)配置的都是這個(gè)虛IP,當(dāng)主服務(wù)器發(fā)生故障無(wú)法對(duì)外提供服務(wù)時(shí),動(dòng)態(tài)將這個(gè)虛IP切換到備用服務(wù)器。
ARP是地址解析協(xié)議,它的作用很簡(jiǎn)單,將一個(gè)IP地址轉(zhuǎn)換為MAC地址,然后給傳輸層使用。
每臺(tái)主機(jī)中都有一個(gè)ARP高速緩存,存儲(chǔ)同一個(gè)網(wǎng)絡(luò)內(nèi)的IP地址與MAC地址的對(duì)應(yīng)關(guān) 系,以太網(wǎng)中的主機(jī)發(fā)送數(shù)據(jù)時(shí)會(huì)先從這個(gè)緩存中查詢(xún)目標(biāo)IP對(duì)應(yīng)的MAC地址,會(huì)向這個(gè)MAC地址發(fā)送數(shù)據(jù)。操作系統(tǒng)會(huì)自動(dòng)維護(hù)這個(gè)緩存。
在Linux下可以使用arp命令操作ARP高速緩存。
比如存在物理機(jī)A(IP是192.168.192.54 )和物理機(jī)器B(IP是192.168.192.40),A作為對(duì)外服務(wù)的主服務(wù)器(比如數(shù)據(jù)庫(kù)主庫(kù)),B作為備份機(jī)器,兩臺(tái)服務(wù)器之間的通信是通過(guò)Heartbeat,即主服務(wù)器會(huì)定時(shí)的給備份服務(wù)器發(fā)送數(shù)據(jù)包,告知主服務(wù)器服務(wù)正常,當(dāng)備份服務(wù)器在規(guī)定時(shí)間內(nèi)沒(méi)有收到主服務(wù)器的Heartbeat,就會(huì)認(rèn)為主服務(wù)器宕機(jī),則備份服務(wù)器就會(huì)升級(jí)為主服務(wù)器。假設(shè)物理機(jī)A的ARP緩存如下:
12345 |
|
另外物理機(jī)器B(IP是192.168.192.40)的ARP緩存如下:
12345 |
|
當(dāng)機(jī)器B通過(guò)BeatHeart得知機(jī)器A對(duì)外服務(wù)質(zhì)量低于預(yù)期的時(shí)候(比如發(fā)生故障,服務(wù)無(wú)響應(yīng)),會(huì)將自己的ARP緩存發(fā)送出去,讓路由器修改路由表,告知虛擬地址應(yīng)該指向我(物理機(jī)器B,192.168.192.40),這時(shí)候,外界再次訪(fǎng)問(wèn)虛擬IP的時(shí)候,機(jī)器B會(huì)變成主服務(wù)器,而A降級(jí)為備份服務(wù)器。這就完成了主從機(jī)器的自動(dòng)切換,這一切對(duì)外界是透明的。
上面的VIP自動(dòng)切換的過(guò)程就稱(chēng)之為IP漂移。
我們可以通過(guò)Keepalived來(lái)實(shí)現(xiàn)這個(gè)過(guò)程。 Keepalived是一個(gè)基于VRRP協(xié)議(Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議)來(lái)實(shí)現(xiàn)的LVS(負(fù)載均衡器)服務(wù)高可用方案,可以利用其來(lái)避免單點(diǎn)故障。一個(gè)LVS服務(wù)會(huì)有2臺(tái)服務(wù)器運(yùn)行Keepalived,一臺(tái)為主服務(wù)器(MASTER),一臺(tái)為備份服務(wù)器(BACKUP),但是對(duì)外表現(xiàn)為一個(gè)虛擬IP,主服務(wù)器會(huì)發(fā)送特定的消息給備份服務(wù)器,當(dāng)備份服務(wù)器收不到這個(gè)消息的時(shí)候,即主服務(wù)器宕機(jī)的時(shí)候, 備份服務(wù)器就會(huì)接管虛擬IP,繼續(xù)提供服務(wù),從而保證了高可用性。
聯(lián)系客服