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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keepalived 原理,安装,配置

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keepalived 原理,安装,配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是Keepalived呢,keepalived觀其名可知,保持存活,在網絡里面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現故障就會導致整個系統架構的不可用)的發生,那說到keepalived時不得不說的一個協議就是VRRP協議,可以說這個協議就是keepalived實現的基礎,那么首先我們來看看VRRP協議

一,keepalived的原理

1,VRRP協議
學過網絡的朋友都知道,網絡在設計的時候必須考慮到冗余容災,包括線路冗余,設備冗余等,防止網絡存在單點故障,那在路由器或三層交換機處實現冗余就顯得尤為重要,在網絡里面有個協議就是來做這事的,這個協議就是VRRP協議,Keepalived就是巧用VRRP協議來實現高可用性(HA)的

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

keepalived啟動后會有三個進程
父進程:內存管理,子進程管理等等
子進程:VRRP子進程
子進程:healthchecker子進程

有圖可知,兩個子進程都被系統WatchDog看管,兩個子進程各自復雜自己的事,healthchecker子進程復雜檢查各自服務器的健康程度,例如HTTP,LVS等等,如果healthchecker子進程檢查到MASTER上服務不可用了,就會通知本機上的兄弟VRRP子進程,讓他刪除通告,并且去掉虛擬IP,轉換為BACKUP狀態


二,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 安裝排錯: 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安裝驗證

1,檢查目錄及相應的文件信息 [root@test1 ~]# cd /usr/local/keepalived/ bin/ etc/ sbin/ share/ 2,啟動設置 [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正常運行時,共啟動3個進程,其中一個進程時父進程,負責監控其子進程,一個是vrrp子進程;另外一個是checkers子進程。


四,keepalived.conf的配置

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


轉載于:https://blog.51cto.com/wolfword/1218416

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。