keepalived-1.4.2實踐:安裝與測試
一、下載安裝
1、作業系統:CentOS 7.4,先確保安裝了openssl,安裝方法:
yum -y install openssl-devel
沒有OpenSSL的話,configure會報錯:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files.2、解壓編譯
tar -zxf keepalived-1.4.2.tar.gz
chmod -R 777 keepalived-1.4.2
cd keepalived-1.4.2./configure #預設安裝
make
make install
會在以下路徑生成:
/usr/local/etc/keepalived/keepalived.conf
/usr/local/etc/sysconfig/keepalived
/usr/local/sbin/keepalived
然後我們需要手動做以下事情:
1、mkdir /etc/keepalived #新建資料夾
再把/usr/local/etc/keepalived/keepalived.conf拷貝到/etc/keepalived/keepalived.conf,
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
內容修改為:
- ! Configuration File for keepalived
- global_defs {
- notification_email { #指定Keepalived在發生事情的時候,傳送郵件通知,每行一個地址
- [email protected]
- [email protected]
- [email protected]
- }
- notification_email_from [email protected] #指定發件人
- smtp_server 192.168.200.1 #傳送email的smtp地址
- smtp_connect_timeout 30 #超時時間
- router_id lb01 #執行Keepalived的機器標識號,主從機必須不同
- ##vrrp_skip_check_adv_addr #註釋掉vrrp_strict相關是為了解決虛擬ip,ping不通的問題
- ##vrrp_strict
- ##vrrp_garp_interval 0
- ##vrrp_gna_interval 0
- }
- vrrp_instance VI_1 {
- state MASTER
- interface ens33 #物理網絡卡名稱,主節點和備節點需要相同
- virtual_router_id 100 #唯一的id,主從機必須相同
- priority 150 #優先順序,主節點大於備節點,建議至少相差50
- advert_int 1 #通訊檢查間隔時間1s
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 172.16.6.200 #虛擬ip,會繫結在ens33網絡卡
- }
- }
注意:配置keepalived後發現虛擬ip ping不通的解決辦法,vim /etc/keepalived/keepalived.conf。把vrrp_strict相關的語句註釋就可以了。
2、在路徑/etc/init.d/下新建keepalived.sh指令碼,內容如下,重點關注exec和sysconfig的路徑要對的上:
- #!/bin/sh
- #
- # keepalived High Availability monitor built upon LVS and VRRP
- #
- # chkconfig: - 86 14
- # description: Robust keepalive facility to the Linux Virtual Server project \
- # with multilayer TCP/IP stack checks.
- ### BEGIN INIT INFO
- # Provides: keepalived
- # Required-Start: $local_fs $network $named $syslog
- # Required-Stop: $local_fs $network $named $syslog
- # Should-Start: smtpdaemon httpd
- # Should-Stop: smtpdaemon httpd
- # Default-Start:
- # Default-Stop: 0 1 2 3 4 5 6
- # Short-Description: High Availability monitor built upon LVS and VRRP
- # Description: Robust keepalive facility to the Linux Virtual Server
- # project with multilayer TCP/IP stack checks.
- ### END INIT INFO
- # Source function library.
- . /etc/rc.d/init.d/functions
- exec="/usr/local/sbin/keepalived"
- prog="keepalived"
- config="/etc/keepalived/keepalived.conf"
- [ -e /usr/local/etc/sysconfig/$prog ] && /usr/local/etc/sysconfig/$prog
- lockfile=/var/lock/subsys/keepalived
- start() {
- [ -x $exec ] || exit 5
- [ -e $config ] || exit 6
- echo -n $"Starting $prog: "
- daemon $exec $KEEPALIVED_OPTIONS
- retval=$?
- echo
- [ $retval -eq 0 ] && touch $lockfile
- return $retval
- }
- stop() {
- echo -n $"Stopping $prog: "
- killproc $prog
- retval=$?
- echo
- [ $retval -eq 0 ] && rm -f $lockfile
- return $retval
- }
- restart() {
- stop
- start
- }
- reload() {
- echo -n $"Reloading $prog: "
- killproc $prog -1
- retval=$?
- echo
- return $retval
- }
- force_reload() {
- restart
- }
- rh_status() {
- status $prog
- }
- rh_status_q() {
- rh_status &>/dev/null
- }
- case "$1" in
- start)
- rh_status_q && exit 0
- $1
- ;;
- stop)
- rh_status_q || exit 0
- $1
- ;;
- restart)
- $1
- ;;
- reload)
- rh_status_q || exit 7
- $1
- ;;
- force-reload)
- force_reload
- ;;
- status)
- rh_status
- ;;
- condrestart|try-restart)
- rh_status_q || exit 0
- restart
- ;;
- *)
- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
- exit 2
- esac
- exit $?
二、執行測試
1、獲得許可權
chmod a+x /etc/init.d/keepalived
chmod a+x /usr/local/etc/sysconfig/keepalivedchmod a+x /usr/local/sbin/keepalived
2、啟動
/etc/init.d/keepalived start
或者 service keepalived start
啟動後,可以通過以下命令來檢視是否安裝正確,啟動後有3個keepalive程序表示正確:
- [[email protected] init.d]# ps -ef|grep keep|grep -v grep
- root 20163 1 0 10:03 ? 00:00:00 /usr/local/sbin/keepalived -D
- root 20164 20163 0 10:03 ? 00:00:00 /usr/local/sbin/keepalived -D
- root 20165 20163 0 10:03 ? 00:00:00 /usr/local/sbin/keepalived -D
- [[email protected] ~]# ip add|grep 172.16
- inet 172.16.6.161/24 brd 172.16.6.255 scope global ens33
- inet 172.16.6.200/32 scope global ens33
ifconfig只能檢視物理網絡卡,ip addr或者ip a才能看見虛擬ip,172.16.6.161是真實ip,172.16.6.200是虛擬ip
- [[email protected] init.d]# ip addr
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 00:0c:29:b9:7b:31 brd ff:ff:ff:ff:ff:ff
- inet 172.16.6.161/24 brd 172.16.6.255 scope global ens33
- valid_lft forever preferred_lft forever
- inet 172.16.6.200/32 scope global ens33
- valid_lft forever preferred_lft forever
- inet6 fe80::2176:1363:975e:6c17/64 scope link
- valid_lft forever preferred_lft forever
3、停止
/etc/init.d/keepalived stop
或者 service keepalived stop
4、通過終端命令來檢視虛擬ip是否生效存在:
正確狀態下,主機會生效,命令有返回查詢結果;備機不生效,命令無查詢結果。
主機異常時,備機才生效。
也就是說,正常兩個主機啟動keepalived的時候,應該是master 綁定了虛擬ip。通過命令 ip a 和ip add|grep 172.16.6.200,只有在master機器上能看到繫結的虛擬ip,而backup上是看不到的。
- [[email protected] ~]# ip add|grep 172.16.6.200
- inet 172.16.6.200/32 scope global ens33
5、本人的實測環境是:在一臺電腦開了2個CentOS 7虛擬機器,ip分別是
主伺服器A:172.16.6.161
備伺服器B:172.16.6.135
防火牆處於關閉狀態,我通過service keepalived stop命令來測試主備的變化。
按照以上的配置資訊,我現在遇到的問題:兩個keepalived啟動的時候,通過命令ip a和ip add|grep 172.16.6.200, 都能看到綁定了虛擬ip,相當於兩臺都是master,那怎麼辦呢?
出現這問題的場景是在伺服器網路環境中,因為路由交換層禁用了ARP的廣播限制,造成KEEPALIVE主備協議無法通過廣播的方式進行通訊,造成主備兩臺伺服器都強佔HAVIP地址,出現同時兩臺伺服器都有VIP地址的情況出現,必須通過配置來指定IP的兩臺伺服器間進行通訊。也就是說主備vvrp直接無法通訊的原因,改成單播就ok了:
主機配置keepalived.conf如下,重點關注unicast_src_ip和unicast_peer欄位。
- ! Configuration File for keepalived
- global_defs {
- notification_email { #指定Keepalived在發生事情的時候,傳送郵件通知,每行一個地址
- [email protected]
- [email protected]
- [email protected]
- }
- notification_email_from [email protected] #指定發件人
- smtp_server 192.168.200.1 #傳送email的smtp地址
- smtp_connect_timeout 30 #超時時間
- router_id lb01 #執行Keepalived的機器標識號,主從機必須不同
- ##vrrp_skip_check_adv_addr #註釋掉vrrp_strict相關是為了解決虛擬ip,ping不通的問題
- ##vrrp_strict
- ##vrrp_garp_interval 0
- ##vrrp_gna_interval 0
- }
- vrrp_instance VI_1 {
- state MASTER
- interface ens33 #物理網絡卡名稱,主節點和備節點需要相同
- virtual_router_id 100 #唯一的id,主從機必須相同
- priority 150 #優先順序,主節點大於備節點,建議至少相差50
- unicast_src_ip 172.16.6.161 #本地IP地址
- unicast_peer {
- 172.16.6.135 #對端IP地址,此地址一定不能忘記
- }
- advert_int 1 #通訊檢查間隔時間1s
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 172.16.6.200 #虛擬ip,會繫結在ens33網絡卡
- }
- }
備機配置keepalived.conf如下,重點關注unicast_src_ip和unicast_peer欄位。
- ! Configuration File for keepalived
- global_defs {
- notification_email { #指定Keepalived在發生事情的時候,傳送郵件通知,每行一個地址
- [email protected]
- [email protected]
- [email protected]
- }
- notification_email_from [email protected] #指定發件人
- smtp_server 192.168.200.1 #傳送email的smtp地址
- smtp_connect_timeout 30 #超時時間
- router_id lb02 #執行Keepalived的機器標識號,主從機必須不同
- ##vrrp_skip_check_adv_addr #註釋掉vrrp_strict相關是為了解決虛擬ip,ping不通的問題
- ##vrrp_strict
- ##vrrp_garp_interval 0
- ##vrrp_gna_interval 0
- }
- vrrp_instance VI_1 {
- state BACKUP
- interface ens33 #物理網絡卡名稱,主節點和備節點需要相同
- virtual_router_id 100 #唯一的id,主從機必須相同
- priority 100 #優先順序,主節點大於備節點,建議至少相差50
- unicast_src_ip 172.16.6.135 #本地IP地址
- unicast_peer {
- 172.16.6.161 #對端IP地址,此地址一定不能忘記
- }
- advert_int 1 #通訊檢查間隔時間1s
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 172.16.6.200 #虛擬ip,會繫結在ens33網絡卡
- }
- }
6、如果開啟firewall防火牆,則記得要放行VRRP預設的多播地址224.0.0.18,centos7下面改firewall防火牆命令如下:
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload相關推薦
keepalived-1.4.2實踐:安裝與測試
一、下載安裝1、作業系統:CentOS 7.4,先確保安裝了openssl,安裝方法: yum -y install openssl-devel沒有OpenSSL的話,configure會報錯: !!! OpenSSL is not properly installed on
spring boot 1.4.2.RELEASE+Thymeleaf+mybatis 整合通用maper,與分頁外掛:
spring boot 1.4.2.RELEASE+Thymeleaf+mybatis 整合通用maper,與分頁外掛: pom.xml <parent> <groupId>org.springframe
整合Nutch2.3.1/Hadoop2.5.2/Hbase1.1.5/Solr4.10.4構建搜尋引擎:安裝及執行
第一次寫部落格,之前從來沒有寫過部落格因為不知道要寫什麼,這次寫部落格是因為自己在學習東西的時候遇見很多問題,國內的技術資料基本都是比較老的,要不就是nutch2.x整合hadoop1.x的,沒有找到整合hadoop2.x的,對hbase的整合度也很少,自己在學習的時候,
1.4.2 暫停與恢復Activity
devel 過程 信號 fun ide 然而 -a 動作 好的 在正常使用app時,前端的activity有時會被其他可見的組件阻塞(obstructed),從而導致當前的activity進入Pause狀態。例如,當打開一個半透明的activity時(例如以對話框的形式),
Unity Shaders and Effects Cookbook (4-1)(4-2)靜態立方體貼圖的創建與使用
sampler lba into 現實生活 rate valid ase pro 執行 開始學習第4章 - 著色器的反射看完了1、2節,來記錄一下。反射主要是利用了 Cubemap 立方體貼圖。認識Cubemap立方體貼圖。就如同名字所說。在一個立方體上有6張圖。就這樣
Ionic開發1:安裝與新建項目
onclick 安卓 rdo start 開發工具 布局 情況 技術分享 成了 我們為什麽要選用Ionic(Hybrid)呢? 不必說那些花裏胡哨的話,我曾經是搞Native Android開發的,兩者的區別還是有體會的 比如:我要做一個手機qq好友列表類似得布局,只是布局
易學筆記-計算機底層-第1章:計算機系統漫遊/1.4 處理器處理記憶體中的指令/1.4.2 執行hello程式
執行hello程式 流程圖 解釋: 從鍵盤接受使用者輸入的hello 把該輸入通過IO橋送到匯流排介面,由匯流排介面送到暫存器 暫存器再通過I/O橋把hello送到主存 敲
lighttpd1.4.20原始碼分析:安裝與配置
1、有兩種渠道下載原始碼,分別是: http://www.lighttpd.net/download/ -- 官網https://github.com/lighttpd -- GitHub 官網下載的原始碼和GitHub的略有不同,我們以前者,也就是官網的為準。 2
mongodb學習-1:安裝與基本語句
1.安裝MongoDB - 安裝 - 配置環境變數 C:\Program Files\MongoDB\Server\3.2\bin - 在c盤根目錄 - 建立一個資料夾 data - 在data中建立一個
安裝k8s 1.9.0 實踐:問題集錦
[[email protected] ~]# systemctl status kubelet ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/etc/systemd/system/kubelet.
Linux-7.2 下 Solr4.10.4 單機模式的安裝與部署圖文詳解
《 Linux下Solr4.10.4搜尋引擎的安裝與部署 》 瞭解Solr: Solr是來自Apache Lucene專案的流行的,快速的,開源的NoSQL搜尋平臺。它的主要功能包括強大
Py之Beautiful Soup 4.2.0:Beautiful Soup 4.2.0的簡介、安裝、使用方法詳細攻略
Beautiful Soup 4.2.0的簡介 Beautiful Soup 是一個可以從HTML或XML檔案中提取資料的Python庫.它能夠通過你喜歡的轉換器實現慣用的文件導航,查詢,修改文件的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間
Laravel學習日記1:安裝與初識
前話: 一直使用ThinkPHP框架,最近計劃由tp3升級到tp5,結果發現tp5相關的文件都是收費的,準備棄之,換用Laravel。 工作的環境都是Linux,因此只討論Linux下的操作,不涉及windows相關。 相對於TP而
Flink 1.4.2的安裝
依賴需求 Java 1.8.0 Scala code runner version 2.11.2 Hadoop2.7 配置安裝 首先解壓安裝包flink-1.4.2-bin-hadoop27-scala_2.11.tgz [[email pro
在RedHat9.0下安裝Subversion 1.4.2
使用了多年的CVS,苦來酸甜都嚐遍。一直垂涎subversion,卻沒有機會。而今機緣巧合得以在部門內推廣subversion, 不亦悅乎。因部門開發需要使用RedHat9.0,伺服器一直使用這個版本的linux沒有升級。9.0自帶的subversion版本太低(0.17.1
3.1 Java以及Lucene的安裝與配置
clas font style edi 面向對象 上進 net ref ips Lucene是Java開發的一套用於全文檢索和搜索的開源程序庫,它面向對象多層封裝,提供了一個低耦合、與平臺無關的、可進行二次開發的全文檢索引擎架構,是這幾年最受歡迎的信息檢索程序庫[1]。對L
菜鳥運維筆記:安裝與配置Apacheserver
str .cn apach tps 官網 壓縮 ron entos 本地 前幾天在在阿裏花了49.5買了一個月的主機。試著好用再續費吧。 地域:青島可用區:青島可用區ACPU:1核內存:512MB帶寬:1Mbps操作系統:CentOS 6.5 64位雲盾:是
jQuery treeTable v 1.4.2
ica select angularjs ron tree repeat style cond 4.2 angularJs版本: 如圖所示即為treeTable的效果,三個紅色框每個微一級 外科>骨科>骨科一病區 html: <table class=
【轉】Poco 1.4.2 HTTPClientSession/HTTPRequest 使用使用代理(proxy)需要註意的一點
方法 xxx and aid csdn 代理 ref cpp logs Poco 1.4.2 HTTPClientSession/HTTPClientSession 在使用代理的時候,request的URI不能包含協議和主機。否則會出錯。 不使用代理的時候,以下代碼能正
初識vue 2.0(2):路由與組件
組件化 script -128 watch css image 暫時 效果 默認 1,在上一篇的創建工程中,使用的的模版 webpack-simple 只是創建了一個簡單的demo,並沒有組件和路由功能,此次采用了webpack模版,自動生成組件和路由。^_^ 在模版初始