Keepalived高可用

Keepalived高可用

高可用介紹

    1.什么是高可用
    2.高可用使用什么方式實(shí)現(xiàn)
        硬件
        軟件  keepalived
    3.keepalived如何實(shí)現(xiàn)高可用?
        通過(guò)vrrp協(xié)議實(shí)現(xiàn)的高可用. 虛擬路由冗余協(xié)議    
            VMAC和VIP實(shí)現(xiàn)高可用技術(shù)方案      地址漂移
    4.keepalived核心概念
    1.如何確定誰(shuí)是主節(jié)點(diǎn)誰(shuí)是備節(jié)點(diǎn)是掰。(投票選舉思灌??jī)?yōu)先級(jí)?)
    2.如果Master故障配并,Backup自動(dòng)接管,那Master恢復(fù)后會(huì)奪權(quán)嗎仔燕?(搶占式螟蝙、非搶占式)
    3.如果兩臺(tái)服務(wù)器都認(rèn)為自己是Master會(huì)出現(xiàn)什么問(wèn)題?(腦裂)

keepalived 服務(wù)安裝配置

1.keepalived安裝

    [root@lb01 ~]# yum install keepalived -y
    [root@lb02 ~]# yum install keepalived -y

2.keepalived主配置

        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
        }
    }

3.keepalived備份配置文件

    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
        }
    }

4.keepalived啟動(dòng)

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

5.主配置文件和備配置文件的區(qū)別

    Keepalived配置區(qū)別  Master配置    Backup節(jié)配置
    route_id(唯一標(biāo)識(shí))      lb01    lb02
    state(角色狀態(tài))         MASTER  BACKUP
    priority(優(yōu)先級(jí))       150     100

測(cè)試

        1.測(cè)試IP地址是否會(huì)自動(dòng)漂移  systemctl stop keepalived
        2.測(cè)試漂移之后,檢查windows的arp緩存表   arp -a
        3.使用wireshark抓包分析

搶占式(默認(rèn))和非搶占式

    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í)迎捺。
    PS: 兩臺(tái)服務(wù)器都角色狀態(tài)啟用nopreempt后举畸,必須修改角色狀態(tài)統(tǒng)一為BACKUP查排,唯一的區(qū)分就是優(yōu)先級(jí)。

配置步驟

        1.修改state 為backup
        2.增加nopreempt

如何將keepalived與nginx負(fù)載均衡結(jié)合

        強(qiáng)調(diào): keepalived只做地址漂移,keepalived與nginx沒(méi)有任何關(guān)系.
        user --> blog.oldboy.com  --> 10.0.0.3 --->lb01  -->80 --->nginx
    
        1.先讓10.0.0.6 能夠正常的訪問(wèn)到對(duì)應(yīng)的業(yè)務(wù)  scp
        2.修改windows Host解析,指向到10.0.0.6
        3.接入keepalived技術(shù),修改windows Host解析  10.0.0.3
        4.測(cè)試一臺(tái)出現(xiàn)故障,另一臺(tái)是否能自動(dòng)接管,并且正常訪問(wèn)

如何使用keepalived (生產(chǎn))

        1.需要有硬件服務(wù)器,在云上不需要keepalived,阿里云自帶高可用.
        2.申請(qǐng)?zhí)摂MIP,是內(nèi)網(wǎng)的,公網(wǎng)能不能申請(qǐng)

keepalived檢測(cè)腦裂

檢測(cè)腦裂腳本

vip=10.0.0.3
master_ip=10.0.0.5
while true;do

    #1.通過(guò)ping命令測(cè)試主是否是通
    ping -c 2 -W 3 $master_ip &>/dev/null
    
    #2.ping的通master的ip,同時(shí)本地還存在一個(gè)vip地址
    if [ $? -eq 0 -a `ip add|grep "$vip"|wc -l` -eq 1 ];then
        echo "ha is split brain.warning."
    else
        echo "ha is ok"
    fi
    sleep 5
done

nginx故障問(wèn)題解決

1.嘗試?yán)餹ginx

2.如果拉不起nginx抄沮,則把keepalived殺死

腳本文件

[root@lb01 ~]# cat /scripts/check_web.sh
#!/bin/sh
nginxpid=$(ps -C nginx --no-header|wc -l)
#1.判斷Nginx是否存活,如果不存活則嘗試啟動(dòng)Nginx
if [ $nginxpid -eq 0 ];then
    systemctl start nginx
    sleep 3
    #2.等待3秒后再次獲取一次Nginx狀態(tài)
    nginxpid=$(ps -C nginx --no-header|wc -l) 
    #3.再次進(jìn)行判斷, 如Nginx還不存活則停止Keepalived,讓地址進(jìn)行漂移,并退出腳本  
    if [ $nginxpid -eq 0 ];then
        systemctl stop keepalived
   fi
fi

配置keepalived支持腳本

1.給腳本增加執(zhí)行權(quán)限

[root@lb01 conf.d]# chmod +x /scripts/check_web.sh

2.修改keepalived配置文件

[root@lb01 conf.d]# 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 BACKUP
    priority 150
    nopreempt
    interface eth0
    virtual_router_id 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
}
    virtual_ipaddress {
        10.0.0.3
    }

    #調(diào)用并運(yùn)行該腳本
    track_script {
        check_web
    }
}

keepalived高可用總結(jié)

1.高可用目的
    減少系統(tǒng)故障時(shí)間
2.高可用通常使用keepalived來(lái)實(shí)現(xiàn)
3.keepalived底層借助的是vrrp虛擬路由冗余協(xié)議
4.vrrp誕生\vrrp解決了什么問(wèn)題
    1.用戶手動(dòng)修改IP   (人員過(guò)多的情況,  pass)
    2.將backup機(jī)器的地址改為master的IP
        1.arp緩存表的問(wèn)題:
            1.清理所有用戶的arp緩存表,讓其重新廣播   那master恢復(fù)了怎么辦?
    3.vrrp解決這樣問(wèn)題?
        新增一個(gè)vip  ->vmac(對(duì)應(yīng)的是真實(shí)服務(wù)器的mac地址)
            1.用戶只需要鏈接vip,無(wú)需在關(guān)心底層有多少機(jī)器
            2.當(dāng)master故障,backup頂上時(shí),會(huì)通知客戶端更新vip對(duì)應(yīng)的vmac
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末跋核,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叛买,更是在濱河造成了極大的恐慌砂代,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件率挣,死亡現(xiàn)場(chǎng)離奇詭異刻伊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門捶箱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)智什,“玉大人,你說(shuō)我怎么就攤上這事丁屎≤В” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵晨川,是天一觀的道長(zhǎng)证九。 經(jīng)常有香客問(wèn)我,道長(zhǎng)共虑,這世上最難降的妖魔是什么愧怜? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮妈拌,結(jié)果婚禮上叫搁,老公的妹妹穿的比我還像新娘。我一直安慰自己供炎,他們只是感情好渴逻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著音诫,像睡著了一般惨奕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竭钝,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天梨撞,我揣著相機(jī)與錄音,去河邊找鬼香罐。 笑死卧波,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的庇茫。 我是一名探鬼主播港粱,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼旦签!你這毒婦竟也來(lái)了查坪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宁炫,失蹤者是張志新(化名)和其女友劉穎偿曙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羔巢,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡望忆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年罩阵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片启摄。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡永脓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鞋仍,到底是詐尸還是另有隱情常摧,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布威创,位于F島的核電站落午,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏肚豺。R本人自食惡果不足惜溃斋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吸申。 院中可真熱鬧梗劫,春花似錦、人聲如沸截碴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)日丹。三九已至走哺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哲虾,已是汗流浹背丙躏。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留束凑,地道東北人晒旅。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像汪诉,于是被迫代替她去往敵國(guó)和親废恋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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

  • Keepalive:http://www.keepalived.org/《老男孩Linux運(yùn)維》 Keepaliv...
    Zhang21閱讀 4,751評(píng)論 0 10
  • day09 keepalived高可用 1.什么是高可用摩瞎,為什么要設(shè)計(jì)高可用? 兩臺(tái)機(jī)器啟動(dòng)著相同的業(yè)務(wù)系統(tǒng),當(dāng)有...
    5不忘初心0閱讀 273評(píng)論 0 0
  • 1.Keepalived高可用軟件 Keepalived軟件起初是專為L(zhǎng)VS負(fù)載均衡軟件設(shè)計(jì)的拴签,用來(lái)管理并監(jiān)控LV...
    cuiyao50閱讀 333評(píng)論 0 1
  • 內(nèi)容涉及 高可用原理高可用配置文件高可用服務(wù)常見(jiàn)問(wèn)題實(shí)現(xiàn)高可用服務(wù)雙主功能 keepalivd----------...
    一只打不死的小強(qiáng)閱讀 978評(píng)論 0 0
  • keepalived高可用 昨日練習(xí) 需求: 公司網(wǎng)站在停機(jī)維護(hù)時(shí)泡躯,指定的IP能夠正常訪問(wèn)侵俗,其他的IP跳轉(zhuǎn)到維護(hù)頁(yè)...
    so_q閱讀 312評(píng)論 0 0