Keepalived配置和測試過程for linux
Keepalived配置和測試過程for linux
安裝環境:
兩臺server:System x3650 M3
Node1:硬碟:130G CPU:2顆E5620 @ 2.40GHz 記憶體:4G
Node2:硬碟:130G CPU:2顆E5620 @ 2.40GHz 記憶體:8G
1、 安裝redhat 6.4系統
用U盤安裝rhel-server-6.4-x86_64-dvd.iso
分割槽:
/boot 200M
/boot/efi 200M
Swap 4096M
/ 13000M
只安裝Basic版本,不要安裝桌面
需要在language裡面選擇chinese包
安裝系統完成後設定網路卡eth0
2、 設定keepalived
Node1:
! Configuration File for keepalived
global_defs {
router_id 234567 #router_id,配置一個網路唯一的ID
}
vrrp_instance VI_3 { #為keeplived例項號,一般一臺伺服器只有1個例項,不用更改
state BACKUP #為keepalived初始狀態,此處需要設定成BACKUP
nopreempt #配置為非搶佔模式,在node1切到node2,vip從node1飄到node2後,node1恢復後,服務不會再切回node1,而是繼續讓node2做MASTER,服務在node2上面繼續跑
interface eth0 #為啟用keepalived的介面,根據實際情況設定
virtual_router_id 40 #為keepalived虛擬ID,同一叢集必須相同
priority 100 #服務優先順序,MASTER設定為100,BACKUP設定為90
advert_int 1 #心跳區間設定為1秒
authentication {
auth_type PASS
auth_pass 10101010 #設定驗證密碼,同一叢集必須相同
}
virtual_ipaddress {
172.16.0.120 dev eth0 label eth0:0 #設定服務IP,dev label可省略
}
notify_master "/etc/keepalived/notify.sh master" #切換成master,執行一次指令碼
notify_backup "/etc/keepalived/notify.sh backup" #切換成backup,執行一次指令碼
notify_fault "/etc/keepalived/notify.sh fault" #切換成fault,執行一次指令碼
}
Node2:
! Configuration File for keepalived
global_defs {
router_id 123456
}
vrrp_instance VI_3 {
state BACKUP
nopreempt
interface eth0
virtual_router_id 40
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 10101010
}
virtual_ipaddress {
172.16.0.120 dev eth0 label eth0:0
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
3、 設定notify. sh
Node1:
#!/bin/bash
#
case $1 in
master)
service httpd restart #此行為應用啟動指令碼,根據應用更改
echo "master" >>/etc/keepalived/log
;;
backup)
service httpd stop #此行為應用啟動指令碼,根據應用更改
echo "backup" >>/etc/keepalived/log
;;
fault)
service httpd stop #此行為應用啟動指令碼,根據應用更改
echo "fault" >>/etc/keepalived/log
;;
esac
Node2:
#!/bin/bash
#
case $1 in
master)
service httpd restart
echo "master" >>/etc/keepalived/log
;;
backup)
service httpd stop
echo "backup" >>/etc/keepalived/log
;;
fault)
service httpd stop
echo "fault" >>/etc/keepalived/log
;;
esac
4、 其他設定
關閉兩個系統的防火牆
設定keepalived服務開機啟動:chkconfig keepalived on
5、 進行keepalived服務切換試驗
初始狀態:
Node1:
Node2:
重啟Node1上的keepalived服務:Vip從node1漂移到了node2
VIP掉了一個包(advert_int 1 #心跳區間設定為1秒)間隔是1秒
Node1上的httpd服務停止,Node1變成backup
Node2上的httpd服務啟動,Node2變成master
重啟Node2上的keepalived服務:
Vip從node2漂移到了node1
在重啟keepalived的時候,每個節點的VIP會進行漂移,在VIP漂移到某個節點的時候,這個節點的httpd服務也相應會起來。而沒有VIP節點的httpd服務會關閉。
比如:
Node1的IP:172.16.0.121
Node2的IP:172.16.0.122
VIP:172.16.0.120
Httpd的服務在哪個節點,那麼就可以透過那個節點的IP和VIP共同訪問Apache的測試網頁。
6、 用插拔網線來測試服務漂移情況
拔出Node1上的網線:
服務漂到Node2上
插上Node1上的網線:
Node2的VIP沒有漂回到Node1,因為在Node1上設定了非搶佔模式
拔出Node2的網線
VIP漂到了Node1上
插上Node2的網線
VIP仍然在node1上,沒有漂到node2上
測試OK
表示keepalived的非搶佔模式成功
如果遇到非搶佔模式不成功的話,因為這兩臺伺服器都是透過交換機連線的,可以把連線交換機的埠設定為快速轉發即可
int eth 1/0/1
stp disable
stp edged-port enable
因為可能是網路埠的延遲導致了非搶佔不生效,比如說拔下node1的網線再插上,可能系統認為網路埠已經起來了,但是因為stp的存在,導致兩臺伺服器網路之間的互信有延遲,node1可能認為node2是非存活狀態,就把自己當做master拉起來了,等兩端網路互信完成,就沒有透過非搶佔,而是直接比較優先順序,node1優先順序高,繼續維持master狀態。
所以這裡加快了網路埠的轉發速度,使網路埠在第一時間實現互通,node1第一時間認為node2是存活的,就應用了非搶佔模式,node1變成了backup,node2還是做master。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2121215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mha+keepalived安裝配置過程
- 軟體效能測試有哪些測試過程?
- Linux-NFS——配置過程LinuxNFS
- ORACLE包和過程依賴關係測試(轉)Oracle
- 系統測試-從研發到測試過程
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- 軟體測試面試過程解析面試
- linux iSCSI target配置全過程Linux
- 滲透測試對app安全測試實戰過程分享APP
- Ubuntu上snmp安裝、配置、啟動及遠端測試完整過程Ubuntu
- APP自動化測試過程概述APP
- [原創]儲存過程效能測試儲存過程
- 全面的儲存過程 測試可用儲存過程
- WCDMA測試庫故障處理過程
- 回顧專案測試全過程,測試如何回答 “測完了嗎?”
- 軟體測試技術基礎學習之測試過程
- 拷貝linux下冷備份db到win下測試過程Linux
- vue測試安裝和配置Vue
- 在開發過程中怎樣利用單元和功能測試
- Mask RCNN測試過程經驗總結CNN
- 我的測試儲存過程程式碼儲存過程
- 效能測試過程中最佳化-3:
- 軟體測試裁員後進入硬體行業做測試的過程和小感觸行業
- JB的測試之旅-Linux下配置Linux
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 軟體系統測試有哪些測試過程?系統測試報告如何收費?測試報告
- proc 開發環境配置(測試透過)開發環境
- 在平時的測試過程中,測試需要做推進工作嗎?
- 電商APP測試過程中遇到的問題APP
- 測試過程中如何快速定位一個 bug
- 測試過程中如何快速定位一個bug
- 測試過程需不需要踐行敏捷?敏捷
- 【軟體測試】軟體及其開發過程
- 使用dbms_profiler測試儲存過程效能儲存過程
- 軟體測試過程中的度量與分析
- 軟體測試過程的持續改進
- 軟體測試過程中的痛點思考
- Spring、Spring Boot和TestNG測試指南 – 共享測試配置Spring Boot