Keepalived 原理 元件 核心配置

2021-08-28 05:55:06 字數 3666 閱讀 2487

keepalived是乙個類似於layer2,4,7交換機制的軟體。是linux集群管理中保證集群高可用的乙個服務軟體,其功能是用來防止單點故障。

keepalived是基於vrrp協議實現的保證集群高可用的乙個服務軟體,主要功能是實現真機的故障隔離和負載均衡器間的失敗切換,防止單點故障。在了解keepalived原理之前先了解一下vrrp協議。

vrrp協議:virtual route redundancy protocol虛擬路由冗餘協議。是一種容錯協議,保證當主機的下一跳路由出現故障時,由另一台路由器來代替出現故障的路由器進行工作,從而保持網路通訊的連續性和可靠性。在介紹vrrp之前先介紹一些關於vrrp的相關術語:

虛擬路由器:由乙個 master 路由器和多個 backup 路由器組成。主機將虛擬路由器當作預設閘道器。

vrid:虛擬路由器的標識。有相同 vrid 的一組路由器構成乙個虛擬路由器。

master 路由器:虛擬路由器中承擔報文**任務的路由器。

backup 路由器: master 路由器出現故障時,能夠代替 master 路由器工作的路由器。

優先順序: vrrp 根據優先順序來確定虛擬路由器中每台路由器的地位。

非搶占方式:如果 backup 路由器工作在非搶占方式下,則只要 master 路由器沒有出現故障,backup 路由器即使隨後被配置了更高的優先順序也不會成為master 路由器。

搶占方式:如果 backup 路由器工作在搶占方式下,當它收到 vrrp 報文後,會將自己的優先順序與通告報文中的優先順序進行比較。如果自己的優先順序比當前的 master 路由器的優先順序高,就會主動搶占成為 master 路由器;否則,將保持 backup 狀態。

keepalived是模組化設計,不同模組負責不同的功能,core模組為keepalived的核心,負責主程序的啟動、維護以及全域性配置檔案的載入和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模組是來實現vrrp協議的。下面是keepalived的元件 :

核心元件:

vrrp stack

checkers

控制項:配置檔案分析器

io復用器

記憶體管理元件

a)core

是keepalived的核心,負責主程序的啟動和維護,全域性配置檔案的載入解析等 。

b)check

負責healthchecker(健康檢查),包括了各種健康檢查方式,以及對應的配置的解析包括lvs的配置解析 。

c)vrrp

vrrpd子程序,vrrpd子程序就是來實現vrrp協議的 。

d)libipfwc

iptables(ipchains)庫,配置lvs會用到 。

f)libipvs*

配置lvs會用到

[root@localhost ~]# cat /etc/sysconfig/keepalived

# options for keepalived. see `keepalived --help' output and keepalived(8) and

# keepalived.conf(5) man pages for a list of all options. here are the most

# common ones :

## --vrrp -p only run with vrrp subsystem.

# --check -c only run with health-checker subsystem.

# --dont-release-vrrp -v dont remove vrrp vips & vroutes on daemon stop.

# --dont-release-ipvs -i dont remove ipvs topology on daemon stop.

# --dump-conf -d dump the configuration data.

# --log-detail -d detailed log messages.

# --log-facility -s 0-7 set local syslog facility (default=log_daemon)

#keepalived_options="-d"

keepalived只有乙個配置檔案keepalived.conf,裡面主要包括以下幾個配置區域,分別是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

如下keepalived.conf預設配置檔案

[root@localhost ~]# cat /etc/keepalived/keepalived.conf

! configuration file for keepalived

global_defs

notification_email_from [email protected]

smtp_server 192.168.200.1

smtp_connect_timeout 30

router_id lvs_devel

vrrp_skip_check_adv_addr

vrrp_strict

vrrp_garp_interval 0

vrrp_gna_interval 0

}vrrp_instance vi_1

virtual_ipaddress

}virtual_server 192.168.200.100 443

url

connect_timeout 3

nb_get_retry 3

delay_before_retry 3}}

}virtual_server 10.10.10.2 1358

url

url

connect_timeout 3

nb_get_retry 3

delay_before_retry 3}}

real_server 192.168.200.3 1358

url

connect_timeout 3

nb_get_retry 3

delay_before_retry 3}}

}virtual_server 10.10.10.3 1358

url

url

connect_timeout 3

nb_get_retry 3

delay_before_retry 3}}

real_server 192.168.200.5 1358

url

url

connect_timeout 3

nb_get_retry 3

delay_before_retry 3}}

}

幫助示例參照/usr/share/doc/keepalived-1.3.5/samples目錄

Keepalived工作原理

keepalived是以vrrp協議為實現基礎的,vrrp全稱virtual router redundancy protocol,即虛擬路由冗餘協議。虛擬路由冗餘協議,可以認為是實現路由器高可用的協議,即將n臺提供相同功能的路由器組成乙個路由器組,這個組裡面有乙個master和多個backup,m...

Keepalived工作原理

keepalived是以vrrp協議為實現基礎的 vrrp virtual router redundancy protocol 虛擬路由冗餘協議 可以認為是實現路由器高可用的協議,即將n臺提供相同功能的路由器組成乙個路由器組,這個組裡面有乙個master和多個backup,master上面有乙個對...

keepalived原理詳解

keealived介紹一下 keepalived keepalived是常用的一種高可用技術,它起初就是專門為lvs設計的,為了監控並檢查lvs下面的集群結點的狀態,並且具有配置lvs的功能,後來加入了實現高可用的vrrp功能,使得他不僅可以支援lvs,還可以支援nginx,mysql的高可用服務。...