1、vrrp 概述node
1.VRRP協議linux
虛擬路由冗餘協議,是IETF提出的解決局域網中配置靜態網關出現單點失效現象的路由協議.服務器
VRRP普遍應用在邊緣網絡中,它的設計目標是支持特定狀況下IP數據流量失敗轉移不會引發混網絡
亂,准許主機使用單路由器,及時在在實際第一跳路由器使用失敗的情形下仍可以維護路由器 ssh
間的連通性。ide
2.VRRP基本術語spa
3.VRRP工做原理設計
4.VRRP的主要功能3d
1.master 路由器的選擇功能router
2.master 路由器的狀態通告
3.VRRP 認證功能
5.VRRP高可用工做模型
1.主備模型
聯網業務由master路由器承擔,當master路由器出現故障時候,纔會由選出來的backup路由器
接替主路由器的工做
2.主主模型
在路由器的一個接口上能夠建立多個虛擬機路由器,似的該路由器能夠在一個虛擬路由器中做
爲master路由器,同時在其它的虛擬路由器中做爲backup路由器,主主模型備份方式能夠實現
負載分擔的功能
2、keepalived高可用調度器
1.keepalived 的功能
keepalived程序是vrrp協議在linux主機上以守護進程方式的實現。可以根據配置
文件生成ipvs規則,並對各RealServer的健康作檢測,以及loadbalance主機和Backup
主機之間failover的實現
CentOS 6.4+,程序包已經在base源提供;
2.程序組件有
1.核心程序 、IO複用器、內存管理、配置文件分析器
3.keepalived高可用幾圈配置前提
1.各節點時間要同步,不能超過1s,一半使用網絡時間服務器(ntp-server)
2.確保iptables及selinux不會成爲障礙
3.各節點之間可經過主機名想通訊,節點的名稱設定與hosts文件中解析的主機名都要保持一
致,#uname -n 得到的主機名,與解析的主機名要相同;
4.各節點之間基於祕鑰認證的方式經過ssh互信通訊;
備註:第3.4條非必須
3、keepalived 環境配置詳解
1.程序包的安裝
yum instll keepalived -y
備註:CentOS 6.4+,程序包已經在base源提供
2.生成的配置文件有
主配置文件:/etc/keepalived/keepalived.conf
Unit file:/usr/lib/systemd/system/keepalived.service
配置文件:/etc/sysconfig/keepalived
全局配置詳解;
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
3.配置vrrp實例:
vrrp instance:虛擬路由器
vrrp_instance Name {
...
}
vrrp synchronization group
vrrp_sync_group Name {
...
}
1)基本配置;
2)認證方式配置;
3)虛擬IP地址配置
4.keepalived主備模型配置
1.主節點配置
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
}
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200
}
}
2.備用節點配置
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 51
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200
}
}
主備節點配置完畢後進行服務的啓動工做
主節點;systemctl start keepalived.service
而後使用ip addr list 進行查看工做,以下所示
eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:48:cf:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.107/24 brd 192.168.1.255 scope global dynamic eno16777736
valid_lft 5109sec preferred_lft 5109sec
inet 192.168.1.200/32 scope global eno16777736
valid_lft forever preferred_lft forever 這個就是虛擬vip 已經顯示在這裏了。
inet6 fe80::20c:29ff:fe48:cf50/64 scope link
valid_lft forever preferred_lft forever
若是如今主節點中止服務的話,備用節點將自動上線,來代替主節點的工做。以下所示
使用命令systemctl stop keepalived.servcie
咱們來看一下備節點的狀況
eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:08:0d:91 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.129/24 brd 192.168.1.255 scope global dynamic eno16777736
valid_lft 4305sec preferred_lft 4305sec
inet 192.168.1.200/32 scope global eno16777736 如今備用節點已經獲得了IP地址。
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe08:d91/64 scope link
valid_lft forever preferred_lft forever
若是主服務自動上線的話,咱們的備用節點又會自動退出,主節點繼續工做,備用節點去後臺暫時休息。
5.keepalived 雙主配置
節點1-node1:
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 171
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 0c5UMiJo
}
virtual_ipaddress {
192.168.1.200 dev eno16777736 label eno16777736:0
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
priority 98vrrp_instance VI_2 {
state BACKUP
interface eno16777736
virtual_router_id 172
advert_int 1
authentication {
auth_type PASS
auth_pass 0c6UMiJo
}
virtual_ipaddress {
192.168.1.201 dev eno16777736 label eno16777736:1
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
節點2-node2:
vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 171
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 0c5UMiJo
}
virtual_ipaddress {
192.168.1.200 dev eno16777736 label eno16777736:0
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
vrrp_instance VI_2 {
state MASTER
interface eno16777736
virtual_router_id 172
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 0c6UMiJo
}
virtual_ipaddress {
192.168.1.201 dev eno16777736 label eno16777736:1
}
track_script {
chk_down
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
好了,就寫到這裏吧,寫博客看來也挺痛苦的,繼續加油,師傅領進門修行靠我的。繼續跟着馬哥前行吧。