1. 程式人生 > >keepalive基礎知識及主備模型搭建

keepalive基礎知識及主備模型搭建

其中 devel ring ice inux 文件中 實現 unit emd

lvs模型屬於單點故障,對real server的健康狀態檢查可以通過寫腳本實現,keepalived可以實現高可用:

keepalive:vrrp協議在Linux主機上以守護進程方式的實現; 能夠根據配置文件生成ipvs規則,並對各RS的健康做檢測;vrrp_script, vrrp_track;

keepalive組件:

核心組件:(checkers vrrp stack ipvs wrapperwatch dog)、IO復用器、內存管理、配置文件分析器

keepalive配置前提:

1.各節點時間要同步;ntp server 、chrony server

2.確保iptables及selinux不會成為障礙;

心跳信息傳遞方式:單播,廣播-會廣播整段網絡,組播

3.(可選)各節點之間可通過主機名互相通信;

節點的名稱設定與hosts文件中解析的主機名都要嚴格保持一致;

4.(可選)各節點之間基於密鑰認證的方式通過ssh互信通信;

配置文件:主配置文件:/etc/keepalived/keepalived.conf

Unit file: /usr/lib/systemd/system/keepalived.service

配置文件:/etc/sysconfig/keepalived

配置文件一共分為3段:GLOBAL CONFIGURATION、 VRRPD CONFIGURATION、LVS CONFIGURATION

global_defs {

notification_email {

...

}:收件人郵箱地址

notification_email_from:發件人郵箱地址

smtp_server:郵件發送服務器IP;

smtp_connect_timeout:郵件服務器建立連接的超時時長;

router_id LVS_DEVEL:物理節點的標識符;建議使用主機名,字符串;

vrrp_mcast_group4:IPV4多播地址,默認224.0.0.18;

vrrp_instance NAME

常用配置:

state MASTER|BACKUP:在當前VRRP實例中此節點的初始狀態;

interface IFACE_NAME:vrrp用於綁定vip的接口;

virtual_router_id #:當前VRRP實例的VRID,可用範圍為0-255,默認為51;

priority #:當前節點在虛擬路由的優先級,可用範圍0-255;

advert_int 1:通告時間間隔;

authentication { # Authentication block

# PASS||AH

# PASS - Simple Passwd (suggested)

# AH - IPSEC (not recommended))

auth_type PASS

# Password for accessing vrrpd.

# should be the same for all machines.

# Only the first eight (8) characters are used.

auth_pass 1234

}

virtual_ipaddress { 定義虛擬IP

<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>

192.168.200.17/24 dev eth1

192.168.200.18/24 dev eth2 label eth2:1

或者單獨給IP

}

track_interface:定義要監聽的接口

nopreempt:非搶占模式

# notify scripts, alert as above通告腳本

notify_master <STRING>|<QUOTED-STRING> [username [groupname]]

notify_backup <STRING>|<QUOTED-STRING> [username [groupname]]

notify_fault <STRING>|<QUOTED-STRING> [username [groupname]]

notify_stop <STRING>|<QUOTED-STRING> [username [groupname]]


keepalive主備簡單配置實現節點高可用:

配置環境:centos7主機兩臺,安裝軟件方式:yum -y install keepalived,ntp服務同步;配置模型如下圖:

技術分享圖片

編輯配置文件:vim /etc/keepalived/keepalived.cof

註:配置virtual_server段註釋掉,紅色框為第二個節點配置文件要修改內容:

技術分享圖片

啟動服務查看狀態:

模擬主節點故障:

1.查看master節點信息

技術分享圖片

2.backup信息:進入主節點模式

技術分享圖片

重啟主節點服務檢查狀態:開始健康狀態檢查,重新進入master模式

技術分享圖片

定義vrrp_notify通知命令在vrrp_instance

vim /etc/keepalived/keepalived.cof

技術分享圖片

通知腳本示例,給予執行權限,重啟服務;

技術分享圖片

檢查主機郵件信息:郵件接收正常

技術分享圖片

配置virtual-server;keepalived +lvs高可用基於DR模型

技術分享圖片

檢查ipvs集群狀態,以及監聽地址信息:

技術分享圖片

技術分享圖片

通過本地請求:

技術分享圖片

技術分享圖片

模擬場景測試:其中master故障,郵件通知,backup轉為主節點,測試訪問頁面正常;

real server都出現故障時訪問服務至sorry_server;

根據需要添加會話保持:persistence_timeout <INT> 持久連接

技術分享圖片








keepalive基礎知識及主備模型搭建