日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

keepalived 原理,安装,配置

發(fā)布時(shí)間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keepalived 原理,安装,配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是Keepalived呢,keepalived觀其名可知,保持存活,在網(wǎng)絡(luò)里面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點(diǎn)故障(單點(diǎn)故障是指一旦某一點(diǎn)出現(xiàn)故障就會(huì)導(dǎo)致整個(gè)系統(tǒng)架構(gòu)的不可用)的發(fā)生,那說到keepalived時(shí)不得不說的一個(gè)協(xié)議就是VRRP協(xié)議,可以說這個(gè)協(xié)議就是keepalived實(shí)現(xiàn)的基礎(chǔ),那么首先我們來看看VRRP協(xié)議

一,keepalived的原理

1,VRRP協(xié)議
學(xué)過網(wǎng)絡(luò)的朋友都知道,網(wǎng)絡(luò)在設(shè)計(jì)的時(shí)候必須考慮到冗余容災(zāi),包括線路冗余,設(shè)備冗余等,防止網(wǎng)絡(luò)存在單點(diǎn)故障,那在路由器或三層交換機(jī)處實(shí)現(xiàn)冗余就顯得尤為重要,在網(wǎng)絡(luò)里面有個(gè)協(xié)議就是來做這事的,這個(gè)協(xié)議就是VRRP協(xié)議,Keepalived就是巧用VRRP協(xié)議來實(shí)現(xiàn)高可用性(HA)的

2,keepalived也是模塊化設(shè)計(jì),不同模塊復(fù)雜不同的功能,下面是keepalived的組件
core check vrrp libipfwc libipvs-2.4 libipvs-2.6
core:是keepalived的核心,復(fù)雜主進(jìn)程的啟動(dòng)和維護(hù),全局配置文件的加載解析等
check:負(fù)責(zé)healthchecker(健康檢查),包括了各種健康檢查方式,以及對(duì)應(yīng)的配置的解析包括LVS的配置解析
vrrp:VRRPD子進(jìn)程,VRRPD子進(jìn)程就是來實(shí)現(xiàn)VRRP協(xié)議的
libipfwc:iptables(ipchains)庫(kù),配置LVS會(huì)用到
libipvs*:配置LVS會(huì)用到
注意,keepalived和LVS完全是兩碼事,只不過他們各負(fù)其責(zé)相互配合而已

keepalived啟動(dòng)后會(huì)有三個(gè)進(jìn)程
父進(jìn)程:內(nèi)存管理,子進(jìn)程管理等等
子進(jìn)程:VRRP子進(jìn)程
子進(jìn)程:healthchecker子進(jìn)程

有圖可知,兩個(gè)子進(jìn)程都被系統(tǒng)WatchDog看管,兩個(gè)子進(jìn)程各自復(fù)雜自己的事,healthchecker子進(jìn)程復(fù)雜檢查各自服務(wù)器的健康程度,例如HTTP,LVS等等,如果healthchecker子進(jìn)程檢查到MASTER上服務(wù)不可用了,就會(huì)通知本機(jī)上的兄弟VRRP子進(jìn)程,讓他刪除通告,并且去掉虛擬IP,轉(zhuǎn)換為BACKUP狀態(tài)


二,keepalived安裝

[root@test1 ~]# wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz [root@test1 ~]# tar zxvf keepalived-1.2.1.tar.gz [root@test1 ~]# cd keepalived-1.2.1 [root@test1 keepalived-1.2.1]# ./configure --prefix=/usr/local/keepalived [root@test1 keepalived-1.2.1]# make && make install 安裝排錯(cuò): 1, configure: error:!!! OpenSSL is not properly installed on your system. !!!!!! Can not include OpenSSL headers files. !!! 解決方法: [root@test1 keepalived-1.2.1]# yum install -y openssl-devel 2, Use IPVS Framework : No IPVS sync daemon support : No 這里不是必須的,但是還是建議大家安裝上 [root@test1 keepalived-1.2.1]# cd /usr/src/kernels/ [root@test1 kernels]# yum install -y kernel-devel ipvsadm [root@test1 ~]# ln -s /usr/src/kernels/2.6.18-194.el5-x86_64/ /usr/src/linux


、keepalived安裝驗(yàn)證

1,檢查目錄及相應(yīng)的文件信息 [root@test1 ~]# cd /usr/local/keepalived/ bin/ etc/ sbin/ share/ 2,啟動(dòng)設(shè)置 [root@test1 ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ [root@test1 ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ [root@test1 ~]# mkdir /etc/keepalived [root@test1 ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ [root@test1 ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ [root@test1 ~]# service keepalived start Starting keepalived: [ OK ] [root@test1 ~]# ps aux|grep keepalived root 18846 0.0 0.1 35832 620 ? Ss 04:33 0:00 keepalived -D root 18847 0.2 0.3 37924 1556 ? S 04:33 0:00 keepalived -D root 18848 0.0 0.2 37924 1028 ? S 04:33 0:00 keepalived -D Keepalived正常運(yùn)行時(shí),共啟動(dòng)3個(gè)進(jìn)程,其中一個(gè)進(jìn)程時(shí)父進(jìn)程,負(fù)責(zé)監(jiān)控其子進(jìn)程,一個(gè)是vrrp子進(jìn)程;另外一個(gè)是checkers子進(jìn)程。


四,keepalived.conf的配置

global_defs {notification_email { #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè)}notification_email_from #指定發(fā)件人smtp_server localhost #指定smtp服務(wù)器地址smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí) } vrrp_sync_group VG_1{ #監(jiān)控多個(gè)網(wǎng)段的實(shí)例group {inside_network #實(shí)例名outside_network}notify_master /path/xx.sh #指定當(dāng)切換到master時(shí),執(zhí)行的腳本netify_backup /path/xx.sh #指定當(dāng)切換到backup時(shí),執(zhí)行的腳本notify_fault "path/xx.sh VG_1" #故障時(shí)執(zhí)行的腳本notify /path/xx.shsmtp_alert #使用global_defs中提供的郵件地址和smtp服務(wù)器發(fā)送郵件通知 } vrrp_instance inside_network {state BACKUP #指定那個(gè)為master,那個(gè)為backup,如果設(shè)置了nopreempt這個(gè)值不起作用,主備靠priority決定interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡dont_track_primary #忽略vrrp的interface錯(cuò)誤(默認(rèn)不設(shè)置)track_interface{ #設(shè)置額外的監(jiān)控,里面那個(gè)網(wǎng)卡出現(xiàn)問題都會(huì)切換eth0eth1}mcast_src_ip #發(fā)送多播包的地址,如果不設(shè)置默認(rèn)使用綁定網(wǎng)卡的primary ipgarp_master_delay #在切換到master狀態(tài)后,延遲進(jìn)行g(shù)ratuitous ARP請(qǐng)求virtual_router_id 50 #VPID標(biāo)記priority 99 #優(yōu)先級(jí),高優(yōu)先級(jí)競(jìng)選為masteradvert_int 1 #檢查間隔,默認(rèn)1秒nopreempt #設(shè)置為不搶占 注:這個(gè)配置只能設(shè)置在backup主機(jī)上,而且這個(gè)主機(jī)優(yōu)先級(jí)要比另外一臺(tái)高preempt_delay #搶占延時(shí),默認(rèn)5分鐘debug #debug級(jí)別authentication { #設(shè)置認(rèn)證auth_type PASS #認(rèn)證方式auth_pass 111111 #認(rèn)證密碼}virtual_ipaddress { #設(shè)置vip192.168.202.200} } virtual_server 192.168.202.200 23 {delay_loop 6 #健康檢查時(shí)間間隔lb_algo rr #lvs調(diào)度算法rr|wrr|lc|wlc|lblc|sh|dhlb_kind DR #負(fù)載均衡轉(zhuǎn)發(fā)規(guī)則NAT|DR|RUNpersistence_timeout 5 #會(huì)話保持時(shí)間protocol TCP #使用的協(xié)議persistence_granularity <NETMASK> #lvs會(huì)話保持粒度virtualhost <string> #檢查的web服務(wù)器的虛擬主機(jī)(host:頭)sorry_server<IPADDR> <port> # 備用機(jī),所有realserver失效后啟用real_server 192.168.200.5 23 {weight 1 #默認(rèn)為1,0為失效inhibit_on_failure #在服務(wù)器健康檢查失效時(shí),將其設(shè)為0,而不是直接從ipvs中刪除notify_up <string> | <quoted-string> #在檢測(cè)到server up后執(zhí)行腳本notify_down <string> | <quoted-string> #在檢測(cè)到server down后執(zhí)行腳本TCP_CHECK {connect_timeout 3 #連接超時(shí)時(shí)間nb_get_retry 3 #重連次數(shù)delay_before_retry 3 #重連間隔時(shí)間connect_port 23 健康檢查的端口的端口bindto <ip>}HTTP_GET | SSL_GET{url{ #檢查url,可以指定多個(gè)path /digest <string> #檢查后的摘要信息status_code 200 #檢查的返回狀態(tài)碼}connect_port <port>bindto <IPADD>connect_timeout 5nb_get_retry 3delay_before_retry 2}SMTP_CHECK{host{connect_ip <IP ADDRESS>connect_port <port> #默認(rèn)檢查25端口bindto <IP ADDRESS>}connect_timeout 5retry 3delay_before_retry 2helo_name <string> | <quoted-string> #smtp helo請(qǐng)求命令參數(shù),可選}MISC_CHECK{misc_path <string> | <quoted-string> #外部腳本路徑misc_timeout #腳本執(zhí)行超時(shí)時(shí)間misc_dynamic #如設(shè)置該項(xiàng),則退出狀態(tài)碼會(huì)用來動(dòng)態(tài)調(diào)整服務(wù)器的權(quán)重,返回0 正常,不修改;返回1,檢查失敗,權(quán)重改為0;返回2-255,正常,權(quán)重設(shè)置為:返回狀態(tài)碼-2}} }real_server 192.168.0.20 80 { //真實(shí)IP web的IPweight 1 //默認(rèn)為1,0為失效HTTP_GET {connect_port 80 //健康檢查端口connect_timeout 3 //鏈接超時(shí)時(shí)間nb_get_retry 3 //重鏈次數(shù)delay_before_retry 3 //重連講時(shí)間(秒)}} }


轉(zhuǎn)載于:https://blog.51cto.com/wolfword/1218416

總結(jié)

以上是生活随笔為你收集整理的keepalived 原理,安装,配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。