linux雙機熱備
『壹』 linux伺服器雙機熱備詳細過程
通常說的雙機熱備是指兩台機器都在運行,但並不是兩台機器都同時在提供服務。
當提供服務的一台出現故障的時候,另外一台會馬上自動接管並且提供服務,而且切換的時間非常短。
下面來以keepalived結合tomcat來實現一個web伺服器的雙機熱備過程:
keepalived的工作原理是VRRP虛擬路由冗餘協議。
在VRRP中有兩組重要的概念:VRRP路由器和虛擬路由器,主控路由器和備份路由器。
VRRP路由器是指運行VRRP的路由器,是物理實體,虛擬路由器是指VRRP協議創建的,是邏輯概念。一組VRRP路由器協同工作,共同構成一台虛擬路由器。Vrrp中存在著一種選舉機制,用以選出提供服務的路由即主控路由,其他的則成了備份路由。
當主控路由失效後,備份路由中會重新選舉出一個主控路由,來繼續工作,來保障不間斷服務。
兩台物理伺服器和一個虛擬伺服器(vip):master:redhat2.6.18-53.el5192.168.8.4;backup:redhat2.6.18-53.el5192.168.8.6;vip:192.168.8.100。
節點A192.168.8.4(主節點),節點B192.168.8.6(備用節點),虛擬IP(對外提供服務的IP192.168.8.100)
在這種模式下,虛擬IP在某時刻只能屬於某一個節點,另一個節點作為備用節點存在。
當主節點不可用時,備用節點接管虛擬IP(即虛擬IP漂移至節點B),提供正常服務。
keepalived的原理可以這樣簡單理解:
keepalived安裝在兩台物理伺服器上,並相互監控對方是否在正常運行。
當節點A正常的時候:節點A上的keepalived會將下面的信息廣播出去:
192.168.8.100這個IP對應的MAC地址為節點A網卡的MAC地址
其它電腦如客戶端和NodeB會更新自己的ARP表,對應192.168.8.100的MAC地址=節點A網卡的MAC地址。
當節點A發生故障的時候,節點B上的keepalived會檢測到,並且將下面的信息廣播出去:
192.168.8.100這個IP對應的MAC地址為節點B網卡的MAC地址
其它電腦如客戶端會更新自己的ARP表,對應192.168.8.100的MAC地址=節點B網卡的MAC地址。
(1)linux雙機熱備擴展閱讀:
雙機熱備特指基於active/standby方式的伺服器熱備。伺服器數據包括資料庫數據同時往兩台或多台伺服器執行寫操作,或者使用一個共享的存儲設備。在同一時間內只有一台伺服器運行。
當其中運行著的一台伺服器出現故障無法啟動時,另一台備份伺服器會通過軟體診測(一般是通過心跳診斷)將standby機器激活,保證應用在短時間內完全恢復正常使用。
Keepalived的運行原理是基於VRRP(虛擬路由冗餘協議)機制,在VRRP中有兩個重要的概念:VRRP路由器和虛擬路由器,主控路由器和備份路由器。
VRRP路由器是一種實體路由器設備,而虛擬路由器則是基於VRRP協議構建的虛擬路由器,是軟性的虛擬概念,一組VRRP路由器協同工作,共同構造一台虛擬伺服器。
VRRP協議支持一種選舉機制,主要用來選出用來提供服務的路由即主控路由,其它的就是備份路由了,當主控路由失效之後,備份路由中重新選出一個主控路由(往往按照設置好的優先順序別重新分配),接管主控服務,繼續工作,來保證不間斷的提供服務。
『貳』 存儲伺服器
存儲伺服器指一個管理資源並為用戶提供服務的計算機服務,有卡帶是存儲也有raid磁碟陣列的存儲,可以放一些公司要存儲的東西,公司的人員可以通過web進出也可以通過拓林思的turbolinux系統直接連接登陸,需要有網路服務的。存儲東西一般硬碟需要大的。通常分為文件伺服器、資料庫伺服器和應用程序伺服器。運行以上軟體的計算機或計算機系統也被稱為伺服器。相對於普通PC來說,伺服器在穩定性、安全性、性能等方面都要求更高,因此CPU、晶元組、內存、磁碟系統、網路等硬體和普通PC有所不同。
資料來源:專業的linux操作系統、雙機熱備負載均衡的公司——拓林思軟體
『叄』 Linux雙機熱備中如何設置心跳線
雙機熱備使用lifekeeper或其他軟體,所謂心跳線就是兩台伺服器之間再搭一個內網進行通信。所以每台機器上要再准備一個網卡才行。
1、如果是虛擬機,每台新增一個網卡然後,然後兩台伺服器設置新網卡的ip在同一個內網段,能相互ping通即可;如果是實體機需要新增網卡,然後像虛擬機一樣設置ip。
2、確保新的ip能ping通後,再在雙機中新增心跳線即可。
心跳線主要是保障主線斷了,兩台伺服器還能通過內網線路通信。
『肆』 linux下的伺服器雙機熱備份,如何做
Linux上的heartbeat雙機熱備服務架設
【一】 安裝前環境設定
兩台主機硬體環境(不必完全一致):
CPU: Xeon 3G *2 (EM64T)
MEM: 2G
NIC: Intel 1G *2
eth0: 對外IP
eth1: 對內IP(HA專用)
兩台主機的eth1使用雙機對聯線直接連接。
分區方式:
Filesystem 容量 掛載點
/dev/sda2 9.7G /
/dev/sda6 45G /Datas
/dev/sda1 99M /boot
none2.0G /dev/shm
/dev/sda3 9.7G /opt
另外每台主機應預留500M的raw空間或者更多來作為共用空間被HA使用。
操作系統:
RedHat Enterprise 4 Update2 (2.6.9-22 EL)
預安裝軟體:
@ X Window System
@ GNOME Desktop Environment
@ KDE Desktop Environment
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Authoring and Publishing
@ Server Configuration Tools
@ Development Tools
@ Kernel Development
@ X Software Development
@ GNOME Software Development
@ KDE Software Development
@ Administration Tools
@ System Tools
【二】安裝前網路環境設定:
node1: 主機名:servers201 ( HA01 )
eth0: 192.168.10.201 //對外IP地址
eth1: 10.0.0.201 //HA心跳使用地址
node2: 主機名:servers202 ( HA02 )
eth0: 192.168.10.202 //對外IP地址
eth1: 10.0.0.202 //HA心跳使用地址
特別注意要檢查以下幾個文件:
/etc/hosts
/etc/host.conf
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/nsswitch.conf
#vi /etc/hosts
node1的hosts內容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.201 servers201 HA01
10.0.0.201 HA01
10.0.0.202 HA02
192.168.10.202 server202
node2的hosts內容如下:
127.0.0.1 localhost.localdomain localhost
192.168.10.202 servers202 HA02
10.0.0.202 HA02
10.0.0.201 HA01
192.168.10.201 server201
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 61.139.2.69 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers201 //主機名
GATEWAY="192.168.10.1" //網關
GATEWAY="eth0" //網關使用網卡
ONBOOT=YES //啟動時載入
FORWARD_IPV4="yes" //只允許IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.201
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
TYPE=Ethernet
IPV6INIT=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.201
NETMASK=255.255.255.0
TYPE=Ethernet
[node1] 與 [node2] 在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成後,試試在各自主機上ping對方的主機名,應該可以ping通:
/root#ping HA02
PING HA02 (10.0.0.202) 56(84) bytes of data.
64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms
64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms
--- HA02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2
【三】安裝HA 與HA依賴包
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不裝
rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
rpm -Uvh ipvsadm-1.24-5.i386.rpm
【四】 配置 HA的各配置文件
配置心跳的加密方式:authkeys
#vi /etc/ha.d/authkeys
如果使用雙機對聯線(雙絞線),可以配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存檔退出,然後
#chmod 600 authkeys
配置心跳的監控:haresources
#vi /etc/ha.d/haresources
各主機這部分應完全相同。
server201 IPaddr::192.168.10.200 ipvsadm httpd
指定 server201調用ipvsadm啟動http服務,系統附加一個虛擬IP 192.168.10.200 給eth0:0
這里如果server201宕機後,server202可以自動啟動http服務,並新分配IP 192.168.10.200給server202的eth0:0
配置心跳的配置文件:ha.cf
#vi /etc/ha.d/ha.cf
logfile /var/log/ha_log/ha-log.log ## ha的日誌文件記錄位置。如沒有該目錄,則需要手動添加
bcast eth1 ##使用eth1做心跳監測
keepalive 2 ##設定心跳(監測)時間時間為2秒
warntime 10
deadtime 30
initdead 120
hopfudge 1
udpport 694 ##使用udp埠694 進行心跳監測
auto_failback on
node server201 ##節點1,必須要與 uname -n 指令得到的結果一致。
node server202 ##節點2
ping 192.168.10.1 ##通過ping 網關來監測心跳是否正常。
respawn hacluster /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
debugfile /Datas/logs/ha_log/ha-debug.log
設置ipvsadm的巡迴監測
ipvsadm -A -t 192.168.10.200:80 -s rr
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m
ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m
執行後進行監測:
#ipvsadm --list
如果返回結果與下相同,則設置正確。
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.200:http rr
-> server202:http Local 1 0 0
-> server201:http Masq 1 0 0
【五】 HA服務的啟動、關閉以及測試
啟動HA: service heartbeat start
關閉HA; service heartbeat stop
系統在啟動時已經自動把heartbeat 載入了。
使用http服務測試 heartbeat
首先啟動httpd服務
#service httpd start
編輯各自主機的測試用html文件,放到/var/www/html/目錄下。
啟動node1的heartbeat,並執行這個指令進行監控: heartbeat status
【六】 防火牆設置
heartbeat 默認使用udp 694埠進行心跳監測。如果系統有使用iptables 做防火牆,應記住把這個埠打開。
#vi /etc/sysconfig/iptables
加入以下內容
-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT
意思是udp 694埠對 對方的心跳網卡地址 10.0.0.201 開放。
#service iptables restart
重新載入iptables。
『伍』 rose ha 可以基於linux對postgres進行雙機熱備嗎
RoseMirrorHAforWindows/Linux、AmpClusterfor2.中端雙機熱備及集群軟體:NECExpressClusterfor3.高端容錯軟體:MarathonEverRunHA/FT/2G/VMfor
『陸』 兩台Linux伺服器做了雙機熱備做了一個虛擬ip,用虛擬ip在二層通信中虛擬ip是不是不起作用呀
ip只能是三層以上通信。haproxy的可以允許在4層或者7層中。