亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

heartbeat中怎么自動切換網絡參數

發布時間:2021-08-09 15:15:34 來源:億速云 閱讀:113 作者:Leah 欄目:系統運維

heartbeat中怎么自動切換網絡參數,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、環境

node0
eth0:192.168.32.30 service vip1:192.168.32.21 VMAC1:00:1E:68:1E:99:5E
eth2:10.160.100.30 heart RMAC:00:18:8B:8E:04:E2

node1  
eth0:192.168.32.31 service   vip1:192.168.32.21   VMAC1:00:1E:68:1E:99:5E
eth2:10.160.100.31 heart  vip2:192.168.32.22 VMAC2:00:1E:68:1E:88:5E                                                        RMAC:00:1E:68:1E:19:5E

node2  
eth0:192.168.32.32    service   vip2:192.168.32.22   VMAC2:00:1E:68:1E:88:5E
eth2:10.160.100.32    heart                               RMAC:00:1E:68:1E:16:7E

實驗要求:

1、當node0的網絡出現故障時,node1自動切換將自己的ip、hostname、mac地址改成vip1、vman1、 nodevir1;故障恢復后node0自動切換回來,將自己的ip、hostname、mac改成vip1、vman1、nodevir,node1恢 復自身的網絡參數

2、當node2的網絡出現故障時,node1自動切換將自己的ip、hostname、mac地址改成vip2、vman2、 nodevir2;故障恢復后node0自動切換回來,將自己的ip、hostname、mac改成vip2、vman2、nodevir2,node1 恢復自身的網絡參數

二、heartbeat安裝(三臺node操作一樣)

1、安裝libnet

[root@node1 ~]# tar -zxvf libnet-1.1.4.tar.gz

[root@node1 ~]# cd libnet-1.1.4

[root@node1 libnet-1.1.4]# ./configure

[root@node1 libnet-1.1.4]# make;make install

#libnet是一個高層次API工具,使用heartbeat需要用到他

2、安裝heartbeat

[root@node1 ~]# tar -zxvf heartbeat-2.1.3.tar.gz 

[root@node1 ~]# cd heartbeat-2.1.3

[root@node1 heartbeat-2.1.3]# ./ConfigureMe configure --disable-swig --disable-snmp-subagent

[root@node1 heartbeat-2.1.3]# make ; make install

[root@node1 heartbeat-2.1.3]# cp doc/ha.cf doc/haresource doc/anthkeys /etc/ha.d/

[root@node1 heartbeat-2.1.3]# cp ldirectord/ldiretord.cf /etc/ha.d/   

[root@node1 heartbeat-2.1.3]# grouadd -g 694 haclient

[root@node1 heartbeat-2.1.3]# useradd -u 694 -g 694 hacluster

#heartbeat的安裝包中默認包含ldirectord插件,該插件主要用于管理負載均衡,為保證ldirectord可用還行安裝perl-Mailtools

三、配置

1 node0配置

1.1 創建網絡參數修改腳本(/etc/ha.d/resource.d/Remac1)

[root@node0 resource.d]# vim /etc/ha.d/resource.d/Remac1   #Remac1也可存放在/etc/rc.d/init.d目錄

#!/bin/bash

#discription : Start Real Server

VMAC=00:1E:68:1E:99:5E

RMAC=00:1E:68:1E:19:5E

GATEWAY=192.168.32.254

. /etc/rc.d/init.d/functions

case "$1" in

  start)

  echo "Replace eth0's Real Mac addr to Virtual Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $VMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.21 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname nodevir

  /sbin/route add default gw $GATEWAY

  ;;

  stop)

echo "Restore eth0's Real Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $RMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.31 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname node1

  /sbin/route add default gw $GATEWAY

  ;;

  *)

  echo "Usage : $0 {start|stop}"

  exit 1

esac

1.2 heartbeat主配置文件(/etc/ha.d/ha.cf)

[root@node1 ha.d]# vim /etc/ha.d/ha.cf

#debugfile /var/log/ha-debug  

logfile /var/log/ha-log   

#指名heartbeat的日志存放位置。

#crm yes     

#是否開啟Cluster Resource Manager(集群資源管理)功能。  

bcast eth2   

#指明心跳使用以太網廣播方式,并且是在eth2接口上進行廣播。  

keepalive 2 

#指定心跳間隔時間為2秒(即每兩秒鐘在eth2上發送一次廣播)。  

deadtime 60 

#指定備用節點在30秒內沒有收到主節點的心跳信號后,則立即接管主節點的服務資源。  

warntime 20 

#指定心跳延遲的時間為十秒。當10秒鐘內備份節點不能接收到主節點的心跳信號時,就會往日志中寫入一個警告日志,但此時不會切換服務。  

initdead 240  

#在某些系統上,系統啟動或重啟之后需要經過一段時間網絡才能正常工作,該選項用于解決這種情況產生的時間間隔。取值至少為deadtime的兩倍。   

udpport 694   #設置廣播通信使用的端口,694為默認使用的端口號。  

#baud 19200    #設置串行通信的波特率。  

#serial /dev/ttyS0   #選擇串行通信設備,用于雙機使用串口線連接的情況。如果雙機使用以太網。  

#ucast eth0 192.168.1.2 #采用網卡eth2的udp單播來組織心跳,后面跟的IP地址應為雙機對方的IP地址。 

#mcast eth0 225.0.0.1 694 1 0 #采用網卡eth0的Udp多播來組織心跳,一般在備用節點不止一臺時使用。Bcast、ucast和mcast分別代表廣播、單播和多播,是組織心跳的三種方式,任選其一即可。

auto_failback on 

#用來定義當主節點恢復后,是否將服務自動切回,heartbeat的兩臺主機分別為主節點和備份節點。主節點在正常情況下占用資源并運行所有 的服務,遇到故障時把資源交給備份節點并由備份節點運行服務。在該選項設為on的情況下,一旦主節點恢復運行,則自動獲取資源并取代備份節點,如果該選項 設置為off,那么當主節點恢復后,將變為備份節點,而原來的備份節點成為主節點。  

#stonith baytech /etc/ha.d/conf/stonith.baytech   

# stonith的主要作用是使出現問題的節點從集群環境中脫離,進而釋放集群資源,避免兩個節點爭用一個資源的情形發生。保證共享數據的安全性和完整性。  

#watchdog /dev/watchdog 

#該選項是可選配置,是通過Heartbeat來監控系統的運行狀態。使用該特性,需要在內核中載入"softdog"內核模塊,用來生成實際的設備文件,

如果系統中沒有這個內核模塊,就需要指定此模塊,重新編譯內核。編譯完成輸入"insmod softdog"加載該模塊。然后輸入"grep  misc /proc/devices"(應為10),輸入"cat /proc/misc |grep  watchdog"(應為130)。最后,生成設備文件:"mknod /dev/watchdog c 10 130" 。即可使用此功能。

node node0   #主節點主機名,可以通過命令“uanme –n”查看。  

node node1   #備用節點主機名。  

ping 192.168.32.254

#選擇ping的節點,ping 節點選擇的越好,HA集群就越強壯,可以選擇固定的路由器作為ping節點,但是最好不要選擇集群中的成員作為ping節點,ping節點僅僅用來測試網絡連接。  

ping_group group1 192.168.12.251 192.168.12.239   #類似于ping。  

#respawn hacluster /usr/local/ha/lib/heartbeat/ipfail  

#apiauth pingd gid=haclient uid=hacluster 

apiauth pingd gid=root uid=root

respawn hacluster /usr/local/ha/lib/heartbeat/pingd -m 100 -d 5s 

#該選項是可選配置,列出與heartbeat一起啟動和關閉的進程,該進程一般是和heartbeat集成的插件,這些進程遇到故障可以自動 重新啟動。最常用的進程是pingd,此進程用于檢測和監控網卡狀態,需要配合ping語句指定的ping  node來檢測網絡的連通性。其中hacluster表示啟動pingd進程的身份。

#下面的配置是關鍵,也就是激活crm管理,開始使用v2 style格式  

crm respawn   

#注意,還可以使用crm yes的寫法,但這樣寫的話,如果后面的cib.xml配置有問題  

#會導致heartbeat直接重啟該服務器,所以,測試時建議使用respawn的寫法  

#下面是對傳輸的數據進行壓縮,是可選項  

compression     bz2  

compression_threshold 2  

#注意,v2 style不支持ipfail功能,須使用pingd代替  

1.3 資源文件(/etc/ha.d/haresources)

[root@node0 ha.d]# vim /etc/ha.d/haresources

node0 Remac1    

#haresources文件用于指定雙機系統的主節點、集群IP、子網掩碼、廣播地址以及啟動的服務等集群資源,文件每一行可以包含一個或多個資源腳本名,資源之間使用空格隔開,參數之間使用兩個冒號隔開,在兩個HA節點上該文件必須完全一致,此文件的一般格式為:

node-name network  <resource-group> 

#node-name表示主節點的主機名,必須和ha.cf文件中指定的節點名一致,network用于設定集群的IP地址、子網掩碼、網絡設 備標識等,需要注意的是,這里指定的IP地址就是集群對外服務的IP地址,resource-group用來指定需要heartbeat托管的服務,也就 是這些服務可以由heartbeat來啟動和關閉,如果要托管這些服務,必須將服務寫成可以通過start/stop來啟動和關閉的腳步,然后放到 /etc/init.d/或者/etc/ha.d/resource.d/目錄下,heartbeat會根據腳本的名稱自動去/etc/init.d或者 /etc/ha.d/resource.d/目錄下找到相應腳步進行啟動或關閉操作。

#LSB: Linux標準腳本文件(init  script),通常放在/etc/init.d/目錄下,heartbeat1.x版本之前的管理腳本一半放在/etc/ha.d /resource.d,在這里是/usr/local/ha/etc/ha.d/resource.d 

OCF:Open Cluster Framework,默認放在/usr/lib/resource.d/heartbeat/目錄下;在這里是/usr/local/ha/etc/ha.d/resource.d

#下面介紹一下ocf和lsb格式的區別: 

LSB格式的腳本必須支持status功能,必須能接收start,stop,status,三個參數;而如果是OCF格式,則必須支持start,stop,monitor三個參數.其中status和monitor參數是用來監控資源的,非常重要. 

例如LSB風格的腳本,運行./Mysql status時候, 返回值包含OK或則running則表示資源正常,返回值包含stopped或者No則表示資源不正常。 假如是OCF風格的腳本,運行./Mysql monitor時候, 返回0表示資源是正常的, 返回7表示資源出現問題. 

#下面對配置方法進行具體說明:

node1 IPaddr::192.168.60.200/24/eth0/  Filesystem::/dev/sdb5::/webdata::ext3  httpd tomcat 

#其中,node1是HA集群的主節點,IPaddr為heartbeat自帶的一個執行腳步,heartbeat首先將執行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start的操作,也就是虛擬出一個子網掩碼為255.255.255.0,IP為192.168.60.200的地址,此IP為heartbeat對外提供服務的網絡地址,同時指定此IP使用的網絡接口為eth0,接著,heartbeat將執行共享磁盤分區的掛載操作,“Filesystem::/dev/sdf1::/data1::ext3”相當于在命令行下執行mount操作,即“mount &ndash;t ext3 /dev/sdf1 /data1”,最后依次啟動httpd和tomcat服務。

1.4 認證文件(/etc/ha.d/authkeys)

[root@node0 resource.d]# vim /etc/ha.d/authkeys

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!

#authkeys文件用于設定heartbeat的認證方式,共有三種可用的認證方式:crc、md5和sha1,三種認證方式的安全性依次提高,但是占用的系統資源也依次增加。如果heartbeat集群運行在安全的網絡上,可以使用crc方式,如果HA每個節點的硬件配置很高,建議使用sha1,這種認證方式安全級別最高,如果是處于網絡安全和系統資源之間,可以使用md5認證方式。這里我們使用crc認證方式,設置如下:

auth 1  

1 crc  

#2 sha1 sha1_any_password  

#3 md5 md5_any_password 

#需要說明的一點是:無論auth后面指定的是什么數字,在下一行必須作為關鍵字再次出現,例如指定了“auth 6”,下面一定要有一行“6 認證類型”。最后確保這個文件的權限是600(即-rw-------)。

2 node1配置

2.1 創建網絡參數修改腳本(/etc/ha.d/resource.d/Remac1&2)

[root@node1 ~]# vim /etc/ha.d/resource.d/Remac1    #備份node0的網絡參數修改腳本

#!/bin/bash

#discription : Start Real Server

VMAC=00:1E:68:1E:99:5E  

RMAC=00:1E:68:1E:19:5E                              #注意:與node0中Remac1中RMAC不一樣

GATEWAY=192.168.32.254

. /etc/rc.d/init.d/functions

case "$1" in

  start)

  echo "Replace eth0's Real Mac addr to Virtual Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $VMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.21 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname nodevir

  /sbin/route add default gw $GATEWAY

  ;;

  stop)

echo "Restore eth0's Real Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $RMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.31 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname node1

  /sbin/route add default gw $GATEWAY

  ;;

  *)

  echo "Usage : $0 {start|stop}"

  exit 1

esac

[root@node1 ~]# cat /etc/ha.d/resource.d/Remac2   #備份node2的網絡參數修改腳本

#!/bin/bash

#discription : Start Real Server

VMAC=00:1E:68:1E:88:5E

RMAC=00:1E:68:1E:19:5E                            #注意:與node中Remac1中RMAC不一樣

GATEWAY=192.168.32.254

. /etc/rc.d/init.d/functions

case "$1" in

  start)

  echo "Replace eth0's Real Mac addr to Virtual Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $VMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.22 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname nodevir2

  /sbin/route add default gw $GATEWAY

  ;;

  stop)

echo "Restore eth0's Real Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $RMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.31 broadcast 192.168.32.255 netmask 255.255.255.0  

  /bin/hostname node1

  /sbin/route add default gw $GATEWAY

  ;;

  *)

  echo "Usage : $0 {start|stop}"

  exit 1

esac

2.2 主配置文件(/etc/ha.d/ha.cf)

[root@node1 ~]# vim /etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 60

warntime 20

initdead 240

udpport 694

auto_failback on

node    node0            #主node0,排列順序越靠前越優先

node    node2            #主node2

node    node1            #備node1  

ping 192.168.32.254

respawn root /usr/lib/heartbeat/ipfail

apiauth ipfail gid=root uid=root

deadping 60

#注意:由于修改網絡參數需要重啟網卡,需要大量的時間,所以在此將所有時間參數設置比較長。

2.3 資源文件(/etc/ha.d/haresource)

[root@node1 ~]# cat /etc/ha.d/haresources

node0 Remac1

node2 Remac2

#備份nod0用Remac1腳本,備份node2用Remac2腳本

2.4 認證文件(/etc/ha.d/authkeys)

同node0

3 node2配置

3.1 創建網絡參數修改腳本(/etc/ha.d/resource.d/Remac2) 

[root@node2 ~]# cat /etc/ha.d/resource.d/Remac2  

#!/bin/bash

#discription : Start Real Server

VMAC=00:1E:68:1E:88:5E

RMAC=00:1E:68:1E:16:7E

GATEWAY=192.168.32.254

. /etc/rc.d/init.d/functions

case "$1" in

  start)

  echo "Replace eth0's Real Mac addr to Virtual Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $VMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.22 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname nodevir2

  /sbin/route add default gw $GATEWAY

  ;;

  stop)

echo "Restore eth0's Real Mac addr"

  /sbin/ifconfig eth0 down

  /sbin/ifconfig eth0 hw ether $RMAC

  /sbin/ifconfig eth0 up

  /sbin/ifconfig eth0 192.168.32.32 broadcast 192.168.32.255 netmask 255.255.255.0

  /bin/hostname node2

  /sbin/route add default gw $GATEWAY

  ;;

  *)

  echo "Usage : $0 {start|stop}"

  exit 1

esac

3.2 主配置文件(/etc/ha.d/ha.cf)

[root@node1 ~]# vim /etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility     local0

keepalive 2

deadtime 60

warntime 20

initdead 240

udpport 694

auto_failback on

node    node2            #主node2,排列順序越靠前越優先

node    node1            #備node1  

ping 192.168.32.254

respawn root /usr/lib/heartbeat/ipfail

apiauth ipfail gid=root uid=root

deadping 60

#注意:由于修改網絡參數需要重啟網卡,需要大量的時間,所以在此將所有時間參數設置比較長。

3.3 資源文件(/etc/ha.d/haresource)

[root@node1 ~]# cat /etc/ha.d/haresources

node2 Remac2

3.4 認證文件(/etc/ha.d/authkeys)

同node0

四、測試heartbeat的高可用功能

    如何才能得知HA集群是否正常工作,模擬環境測試是個不錯的方法,在把Heartbeat高可用性集群放到生產環境中之前,需要做如下幾個步驟的測試,從而確定HA是否正常工作: 

1 正常關閉和重啟主節點的heartbeat

  首先在主節點node1上執行“service heartbeat  stop”正常關閉主節點的Heartbeat進程,此時通過ifconfig命令查看主節點網卡信息,正常情況下,應該可以看到主節點已經釋放了集群的 服務IP地址,同時也釋放了掛載的共享磁盤分區,然后查看備份節點,現在備份節點已經接管了集群的服務IP,同時也自動掛載上了共享的磁盤分區。

   在這個過程中,使用ping命令對集群服務IP進行測試,可以看到,集群IP一致處于可通狀態,并沒有任何延時和阻塞現象,也就是說在正常關閉主節點的情況下,主備節點的切換是無縫的,HA對外提供的服務也可以不間斷運行。

    接著,將主節點heartbeat正常啟動,heartbeat啟動后,備份節點將自動釋放集群服務IP,同時卸載共享磁盤分區,而主節點將再次接管集 群服務IP和掛載共享磁盤分區,其實備份節點釋放資源與主節點綁定資源是同步進行的。因而,這個過程也是一個無縫切換。

2  在主節點上拔去網線

    拔去主節點連接公共網絡的網線后,heartbeat插件ipfail通過ping測試可以立刻檢測到網絡連接失敗,接著自動釋放資源,而就在此時,備用節點的ipfail插件也會檢測到主節點出現網絡故障,在等待主節點釋放資源完畢后,備用節點馬上接管了集群資源,從而保證了網絡服務不間斷持續運行。

   同理,當主節點網絡恢復正常時,由于設置了“auto_failback on”選項,集群資源將自動從備用節點切會主節點。

3 關閉主節點的系統

  在主節點拔去電源后,備用節點的heartbeat進程會立刻收到主節點已經shutdown的消息,備用節點就開始進行資源的接管,這種情況其實和主節點網絡故障的現象類似。

4 讓主節點系統內核崩潰

   當主節點系統崩潰后,網絡也就失去了響應,那么備用節點的heartbeat進程就會立刻檢測到主節點網絡故障,然后進行資源切換,但是由于主節點系統內 核崩潰,導致自身不能卸載所占有的資源,例如共享磁盤分區、集群服務IP等,那么此時如果沒有類似Stonith設備的話,就會出現資源爭用的情況,但是 如果有Stonith備,Stonith設備會首先將故障的主節點電源關閉或者重啟此節點等操作,這樣就讓主節點釋放了集群資源,當Stonith設備 完成所有操作時,備份節點才拿到接管主節點資源的所有權,從而接管主節點的資源。

看完上述內容,你們掌握heartbeat中怎么自動切換網絡參數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰来县| 禹城市| 隆安县| 蒙山县| 玉溪市| 名山县| 台东市| 石河子市| 临西县| 沛县| 墨江| 新郑市| 曲麻莱县| 海丰县| 金秀| 茶陵县| 田林县| 兴海县| 南皮县| 连云港市| 威海市| 平度市| 蓬莱市| 项城市| 鲁山县| 阜阳市| 崇明县| 山东| 理塘县| 安远县| 河北省| 长春市| 泰顺县| 大港区| 盐城市| 滦平县| 洪江市| 和田市| 漳平市| 张家港市| 平利县|