DAY-46 linux集群架構(gòu)-keepalived高可用

1.什么是高可用?為什么要設(shè)置高可用

高可用:兩臺(tái)相同的機(jī)器啟動(dòng)著相同的業(yè)務(wù)姜骡,當(dāng)有一臺(tái)機(jī)器宕機(jī)時(shí)弃理,另外一臺(tái)機(jī)器能快速的接管,而對(duì)于用戶來說滔金,是無感的

為什么要設(shè)計(jì)高可用:
減少系統(tǒng)不能服務(wù)的時(shí)間色解,比如4個(gè)9,5個(gè)9

2.高可用使用什么工具來實(shí)現(xiàn)餐茵?硬件還是軟件

軟件的方式:keepalived

3.keepalived如何使用高可用

keepalived軟件是基于VRRP協(xié)議實(shí)現(xiàn)的科阎。
VRRP虛擬路由冗余協(xié)議,主要用于解決單點(diǎn)故障忿族。

4.VRRP如何誕生的锣笨,VRRP的原理是什么蝌矛?

我們的VRRP其實(shí)是通過軟件或硬件的形式在Master和Backup外面增加一個(gè)虛擬MAC地址(簡稱VMAC)與虛擬IP地址(簡稱VIP);
當(dāng)我們的pc請(qǐng)求VIP時(shí)错英,無論是Master處理還是Backup處理入撒,PC僅會(huì)在ARP緩存表中記錄VMAC與VIP的對(duì)應(yīng)關(guān)系。

image

6.高可用核心概念總結(jié)

1.如何確定誰是主從節(jié)點(diǎn):優(yōu)先級(jí)

2.如果Master故障椭岩,Backup自動(dòng)接管后茅逮,Master恢復(fù)后會(huì)奪權(quán)嗎?(搶占式判哥、非搶占式)

3.如果兩臺(tái)服務(wù)器都認(rèn)為自己是Master會(huì)出現(xiàn)什么問題献雅?(腦裂)

7.keepalived高可用安裝

部署在負(fù)載均衡上
10.0.0.5
10.0.0.6

1.安裝
yum install keepalived -y

2.配置

2.配置
#主配置
[root@lb01 ~]# cat /etc/keepalived/keepalived.conf 
global_defs {     
    router_id lb01   
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 50
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
}
    virtual_ipaddress {
        10.0.0.3
    }
}

#從配置
[root@lb02 ~]# cat /etc/keepalived/keepalived.conf global_defs {
    router_id lb02
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.3
    }
}

3.啟動(dòng)

[root@lb01 ~]# systemctl start keepalived
[root@lb01 ~]# systemctl enable keepalived

4.驗(yàn)證

[root@lb01 ~]# ip addr|grep 10.0.0.3

PS:正常情況下,主配置有VIP塌计,從沒有

8.keepalived高可用地址飄移測(cè)試

1.用Windows的cmd測(cè)試
ping 10.0.0.3
停止lb01上的keepalived挺身,會(huì)自動(dòng)切換到lb02上
當(dāng)主恢復(fù)后,會(huì)自動(dòng)切換到lb01上

2.arp地址切換:
arp -a

3.抓包

9.keepalived高可用 搶占式與非搶占式

1.搶占式:
master故障-->backup頂上-->master恢復(fù)-->master頂上       #默認(rèn)
2.非搶占式
master故障-->backup頂上-->master恢復(fù)-->backup繼續(xù)工作-->當(dāng)backup故障-->master頂上

搶占式:硬件配置不一樣
非搶占式:硬件配置一致锌仅,業(yè)務(wù)不允許多次切換 

非搶占式配置

要求:兩臺(tái)機(jī)器配置一樣

1章钾、兩個(gè)節(jié)點(diǎn)的state都必須配置為BACKUP(官方建議)
2、兩個(gè)節(jié)點(diǎn)都在vrrp_instance中添加nopreempt參數(shù)
3技扼、其中一個(gè)節(jié)點(diǎn)的優(yōu)先級(jí)必須要高于另外一個(gè)節(jié)點(diǎn)的優(yōu)先級(jí)伍玖。
兩臺(tái)服務(wù)器都角色狀態(tài)啟用nopreempt后,必須修改角色狀態(tài)統(tǒng)一為BACKUP剿吻,唯一的區(qū)分就是優(yōu)先級(jí)窍箍。

配置文件

global_defs {
    router_id lb01
}

vrrp_instance VI_1 {
    state BACKUP        #用戶都為BACKUP
    nopreempt           #非搶占式,加入命令
    interface eth0
    virtual_router_id 50
    priority 150        #只需要優(yōu)先級(jí)不一樣即可
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
}
    virtual_ipaddress {
        10.0.0.3
    }
}

兩個(gè)配置文件都這樣

10.keepalived高可用與Nginx集成

keepalived地址漂移實(shí)現(xiàn)高可用

Nginx借用keepalived提供的VIP地址

image

11.如果Nginx宕機(jī)丽旅,會(huì)導(dǎo)致用戶請(qǐng)求失敗椰棘,但keepalived并不會(huì)切換,所以需要寫一個(gè)腳本檢測(cè)Nginx存活狀態(tài)榄笙,如果Nginx宕機(jī)邪狞,嘗試重啟Nginx,重啟不成功茅撞,停掉keepalived

#腳本                 注意:主配置
[root@lb01 ~]# mkdir /scripts
    [root@lb01 ~]# vim /scripts/check_web.sh
    #!/usr/bin/bash

    nginx_port=$(netstat -lntp|grep :80|wc -l)
    if [ $nginx_port -ne 1 ];then

        systemctl start nginx &>/dev/null
        rc=$?
        sleep 3
        if [ $rc -ne 0 ];then
            systemctl stop  keepalived 
        fi
    fi
    [root@lb01 ~]# chmod +x /scripts/check_web.sh 

    2.keeplaived調(diào)用該腳本
    [root@lb01 ~]# cat /etc/keepalived/keepalived.conf 
    global_defs {     
        router_id lb01   
    }

定義腳本名稱,以及腳本所在的路徑
    vrrp_script check_web {
       script "/scripts/check_web.sh"
       interval 5
    }

    vrrp_instance VI_1 {
        state MASTER
        #nopreempt
        interface eth0
        virtual_router_id 50
        priority 150
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
    }
        virtual_ipaddress {
            10.0.0.3
        }

        #調(diào)用腳本名稱
        track_script {
            check_web
        }
    }

3.模擬nginx停止,檢查nginx是否會(huì)被拉起

4.模擬nginx故障,檢查keeplaived的VIP是否會(huì)漂移至備節(jié)點(diǎn)

12.keepalived高可用腦裂與故障解決

腦裂(split-brain)帆卓,指在一個(gè)高可用(HA)系統(tǒng)中,當(dāng)聯(lián)系著的兩個(gè)節(jié)點(diǎn)斷開聯(lián)系時(shí)米丘,本來為一個(gè)整體的系統(tǒng)剑令,分裂成兩個(gè)獨(dú)立的節(jié)點(diǎn),開始爭(zhēng)搶資源拄查,結(jié)果會(huì)導(dǎo)致系統(tǒng)混亂吁津,數(shù)據(jù)損壞。

對(duì)于一個(gè)無狀態(tài)服務(wù)的HA堕扶,無所謂腦裂
但是碍脏,對(duì)于有狀態(tài)的服務(wù)(MySQL)的HA梭依,必須要嚴(yán)格防止腦裂。
#但有些生產(chǎn)環(huán)境下的系統(tǒng)按照無狀態(tài)服務(wù)HA的那一套去配置有狀態(tài)服務(wù)典尾,結(jié)果可想而知...

模仿腦裂配置:

開啟防火墻役拴,同時(shí)重啟keepalived服務(wù),模仿腦裂

#解決腦裂的案例            ***從配置
master  10.0.0.3
backup  10.0.0.3
1.在備上編寫檢測(cè)腳本, 測(cè)試如果能ping通主并且備節(jié)點(diǎn)還有VIP的話則認(rèn)為產(chǎn)生了腦列
[root@lb02 conf.d]# cat /scripts/check_spilt.sh 
vip=10.0.0.3
master_ip=10.0.0.5

ping -c2 $master_ip &>/dev/null
if [ $? -eq 0 ];then
    ip_check=$(ip addr | grep "$vip" | wc -l)
    if [ $ip_check -eq 1 ];then
        echo "腦列"
        systemctl stop keepalived
    fi
fi

[root@lb02 conf.d]# cat /etc/keepalived/keepalived.conf 
global_defs {
    router_id lb02
}

vrrp_script check_spilt {
   script "/scripts/check_spilt.sh"
   interval 3
}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface eth0
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.3
    }

    track_script {
    check_spilt
    }

}

keepalived 使用環(huán)境

image
1.不能在公有云上使用
    2.公有云要想實(shí)現(xiàn)負(fù)載均衡高可用-----> 購買的SLB  自帶高可用
    3.虛擬IP咋使--->真實(shí)的硬件環(huán)境:

<article class="_2rhmJa"></article>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末急黎,一起剝皮案震驚了整個(gè)濱河市扎狱,隨后出現(xiàn)的幾起案子侧到,更是在濱河造成了極大的恐慌勃教,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匠抗,死亡現(xiàn)場(chǎng)離奇詭異故源,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)汞贸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門绳军,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矢腻,你說我怎么就攤上這事门驾。” “怎么了多柑?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵奶是,是天一觀的道長。 經(jīng)常有香客問我竣灌,道長聂沙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任初嘹,我火速辦了婚禮及汉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屯烦。我一直安慰自己坷随,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布驻龟。 她就那樣靜靜地躺著温眉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迅脐。 梳的紋絲不亂的頭發(fā)上芍殖,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音谴蔑,去河邊找鬼豌骏。 笑死龟梦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窃躲。 我是一名探鬼主播计贰,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蒂窒!你這毒婦竟也來了躁倒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤洒琢,失蹤者是張志新(化名)和其女友劉穎秧秉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衰抑,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡象迎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呛踊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砾淌。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谭网,靈堂內(nèi)的尸體忽然破棺而出汪厨,到底是詐尸還是另有隱情,我是刑警寧澤愉择,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布劫乱,位于F島的核電站,受9級(jí)特大地震影響薄辅,放射性物質(zhì)發(fā)生泄漏要拂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一站楚、第九天 我趴在偏房一處隱蔽的房頂上張望脱惰。 院中可真熱鬧,春花似錦窿春、人聲如沸拉一。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔚润。三九已至,卻和暖如春尺栖,著一層夾襖步出監(jiān)牢的瞬間嫡纠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留除盏,地道東北人叉橱。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像者蠕,于是被迫代替她去往敵國和親窃祝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 14keepalived高可用 第一章 keepalived介紹 keepalived軟件起初是專為LVS負(fù)載均衡...
    小鎮(zhèn)青年Jack閱讀 804評(píng)論 0 1
  • 第一章 keepalived介紹 keepalived軟件起初是專為LVS負(fù)載均衡軟件設(shè)計(jì)的,用來管理并監(jiān)控LVS...
    被運(yùn)維耽誤的廚子閱讀 3,529評(píng)論 0 7
  • HA Cluster的實(shí)現(xiàn)方案 vrrp協(xié)議的實(shí)現(xiàn):keepalivedVRRP協(xié)議的目的就是為了解決靜態(tài)路由單點(diǎn)...
    SRE1閱讀 1,150評(píng)論 0 11
  • Keepalive:http://www.keepalived.org/《老男孩Linux運(yùn)維》 Keepaliv...
    Zhang21閱讀 4,764評(píng)論 0 10
  • 陽春三月踱侣,以陽光為先導(dǎo)粪小,風(fēng)、樹木抡句、河流探膊、人們的衣襟一齊加入了春之列、春之暖玉转、春之輝煌與思索突想。 小草首先捧出了星星點(diǎn)...
    wy王巖閱讀 296評(píng)論 0 7