HA+LVS 高可用叢集
阿新 • • 發佈:2018-11-01
keepalived:採用VRRP熱備份協議,可一主多備,優先順序不同。
NFS不做 NAT模式那一篇有
使用keepalived實現雙機熱備。
chkconfig NetworkManager off
chkconfig iptables off
cat /etc/sysconfig/selinux #例行公事四臺都要這樣。
裝外掛兩臺lvs都要裝
yum -y install kernel-devel openssl-devel popt-devel ipvsadm keepalived
modprobe ip_vs #載入ipvs模組 兩臺lvs都需要
#修改核心引數( /etc/sysctl.conf)檔案,關閉ICMP重定向。
vim /etc/sysctl.conf
sysctl -p
chkconfig --add keepalived
chkconfig keepalived on
#新增為系統服務 開機自啟 兩臺都要
配置主排程器
/etc/keepalived/keepalived.conf # 主配檔案 以下為主配檔案的內容 ! Configuration File for keepalived global_defs { notification_email { [email protected]
[email protected] [email protected] } notification_email_from [email protected] #郵箱 smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL1 #本路由器名稱 } vrrp_instance VI_1 { #定義vrrp熱備份例項 state MASTER #熱備狀態 MASTER表示主伺服器 BACKUP表示備份 interface eth0 #承載VIP地址的物理介面 virtual_router_id 51 #承載路由器的ID號,每個熱備組要保持一致 priority 100 #優先順序,越大優先順序越高,也叫佔先權 advert_int 1 #通告間隔秒數(心跳頻率) authentication { #認證資訊 每個熱備組保持一致 auth_type PASS #認證型別 auth_pass 1111 #密碼字串 } virtual_ipaddress { #指定漂移地址(vip)可以有多個 200.0.0.100 } } virtual_server 200.0.0.100 80 { #虛擬伺服器(vip)地址、埠 delay_loop 15 #健康檢查的間隔時間 lb_algo rr #rr輪詢排程演算法 lb_kind DR #直接路由(DR)群集模式 !persistence_timeout 50 #連線保持時間,啟用就去掉感嘆號,這個配置檔案"!"代表註釋 protocol TCP #應用服務採用TCP協議 real_server 200.0.0.4 80 { #第二個web節點地址、埠 weight 1 #權重 TCP_CHECK { #健康檢查方式 connect_port 80 #檢查的目標埠 connect_timeout 3 #連線超時(秒) nb_get_retry 3 #重試次數 delay_before_retry 3 #重試間隔(秒) } } real_server 200.0.0.3 80 { #第三個web節點地址、埠 weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
service keepalived start
ip a #啟動服務 檢視漂移地址
從排程器配置
scp [email protected]:/etc/sysctl.conf /etc/
sysctl -p #從主伺服器複製檔案,重新整理
scp [email protected]:/etc/keepalived/keepalived.conf /etc/keepalived/
這裡把主配檔案需要改的東西列出來
router_id LVS_DEVEL2 #改本路由器名字
state BACKUP #BACKUP從伺服器模式
priority 90 #優先順序 要低於主排程器
chkconfig --add keepalived
chkconfig keepalived on
service keepalived start
web1伺服器的配置
#修改核心引數 /etc/sysctl.conf檔案,關閉ARP應答。
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
# ifcfg-lo:0配置群集ip地址200.0.0.100,子網掩碼為255.255.255.255
DEVICE=lo:0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=200.0.0.100
NETMASK=255.255.255.255
ifup lo:0
#建立測試網頁
echo 111111 > /var/www/html/index.html
service httpd start
route add -host 200.0.0.100 dev lo:0 #寫路由記錄,最好寫進/etc/rc.local 開機自動執行
web 2 配置與web1基本相同
scp [email protected]:/etc/sysctl.conf /etc/
sysctl -p
scp [email protected]:/etc/sysconfig/network-scripts/ifcfg-lo:0 /etc/sysconfig/network-scripts/
ifup lo:0 #遠端複製過來,啟用
echo 55555555 > /var/www/html/index.html
service httpd start
route add -host 200.0.0.100 dev lo:0
client訪問
分配給了不同的伺服器
poweroff
#關閉主排程器
主出現問題 由從接管服務
#主正常之後,漂移地址變回來了。