偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

LVS+Heartbeat搭建Linux服務器群集

運維 系統(tǒng)運維
LVS:Linux Virtual Server的簡寫,是一款由章文嵩博士成立的開源Linux虛擬服務器,LVS集群可以輕松實現(xiàn)復雜應用的負載均衡。Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現(xiàn)了一個高可用集群系統(tǒng)。利用Heartbeat可以實現(xiàn)服務器間的心跳信息檢測。本文就主要利用LVS和Heartbeat來搭建Linux服務器集群。

 LVS:Linux Virtual Server的簡寫,是一款由章文嵩博士成立的開源Linux虛擬服務器,LVS集群可以輕松實現(xiàn)復雜應用的負載均衡。Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現(xiàn)了一個高可用集群系統(tǒng)。利用Heartbeat可以實現(xiàn)服務器間的心跳信息檢測。本文就主要利用LVS和Heartbeat來搭建Linux服務器集群。

【實驗的基本環(huán)境】

服務器系統(tǒng):CentOS-5.6
LVS主節(jié)點(lvs-master):192.168.2.250(eth0) 心跳直連接口:192.168.1.250(eth1)
LVS備節(jié)點(lvs-backup):192.168.2.251(eth0) 心跳直連接口:192.168.1.251(eth1)
Web Server-1:192.168.2.252
Web Server-2:192.168.2.253
VIP(虛擬IP):192.168.2.254
注:4臺服務器已經(jīng)配置好LNMP(Linux+Nginx+PHP(FastCGI模式)+MySQL)網(wǎng)站運行環(huán)境,當然使用Apache也可以。這里主備節(jié)點也當作真實服務器使用,所以也配置了網(wǎng)站環(huán)境。

主備調(diào)度器eth1接口使用交叉線相連(理論上是這樣)
線序為: 一頭為568A標準:白綠,綠;白橙,藍;白藍,橙;白棕,棕
另一頭為568B標準:白橙,橙;白綠,藍;白藍,綠;白棕,棕

在LVS主節(jié)點和備節(jié)點的/etc/hosts中加入以下內(nèi)容:
#vim /etc/hosts
192.168.2.250 lvs-master
192.168.2.251 lvs-backup

修改主機名:
# vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=lvs-master
GATEWAY=192.168.2.1

# vim /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 lvs-master localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

這2個文件都要修改,修改完后重啟生效,備份機修改方法一樣,不在重述。

【下載軟件】
[libnet]
wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/libnet-1.22.tar.gz
[ipvsadm]
wget http://www.linuxvirtualserver.org/software/Kernel-2.6/ipvsadm-1.24.tar.gz
[Heartbeat]
wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/STABLE-3.0.4.tar.bz2
[Cluster Glue]
wget http://hg.linux-ha.org/glue/archive/glue-1.0.7.tar.bz2
[Resource Agents]
wget https://download.github.com/ClusterLabs-resource-agents-agents-1.0.4-0-gc06b6f3.tar.gz

一、 配置LVS主節(jié)點(lvs-master)
1. 安裝libnet
# tar zxvf libnet-1.1.2.2.tar.gz
# cd libnet
# ./configure
# make && make install
# cd ..

2. 安裝ipvsadm
# yum install kernel-devel //安裝對應內(nèi)核的kernel-devel
# tar zxvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
# ln -s /usr/src/kernels/`ls /usr/src/kernels/` /usr/src/linux //將當前使用內(nèi)核連接到/usr/src/linux
# make && make install
# cd..

3. 安裝Heartbeat
3.1 確認系統(tǒng)已經(jīng)安裝以下軟件(系統(tǒng)光盤中有)
libxslt、libxslt-devel、libgcrypt-devel、autoconf、automake、pkgconfig、 libgpg-error-devel、libtool、sgml-common、opensp、openjade、xml-common、 docbook-dtds、docbook-style
如果在編譯安裝過程中出錯,很有可能是因為缺少了相關的軟件包

3.2 安裝glue
# groupadd haclient
# useradd -g haclient -M -s /sbin/nologin hacluster
# tar jxvf glue-1.0.7.tar.bz2
# cd Reusable-Cluster-Components-glue--glue-1.0.7/
# ./autogen.sh
# ./configure
# make && make install
# cd ..

3.3 安裝 agents
# tar zxvf ClusterLabs-resource-agents-agents-1.0.4-0-gc06b6f3.tar.gz
# cd ClusterLabs-resource-agents-c06b6f3/
# ./autogen.sh
# ./configure
# make && make install
# cd..

3.4 安裝Heartbeat
# tar jxvf Heartbeat-3-0-STABLE-3.0.4.tar.bz2
# cd Heartbeat-3-0-STABLE-3.0.4
# ./ConfigureMe configure
# gmake && make install
# cd..

4. 配置lvs啟動腳本
本實驗采用的是lvs-DR模式,該模式的特點是客戶端的請求從主/備節(jié)點進入分配到web server,然后web server的響應是直接交付給客戶端的。
# vim /etc/init.d/lvs
#!/bin/sh
#chkconfig: 2345 20 80
#description: start_lvs_of_dr
VIP1=192.168.2.254
RIP1=192.168.2.250
RIP2=192.168.2.251
RIP3=192.168.2.252
RIP4=192.168.2.253
./etc/rc.d/init.d/functions
case "$1" in
start)
echo "開啟LVS DirectorServer..."
#設置虛擬IP地址
#LVS啟動時添加VIP的網(wǎng)口eth0:0
/sbin/ifconfig eth0:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
/sbin/route add -host $VIP1 dev eth0:0
#清除IPVS表
/sbin/ipvsadm -C
#設置LVS
/sbin/ipvsadm -A -t $VIP1:80 -s lc
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP2:80 -g
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP3:80 –g
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP4:80 -g
#使用ipvsadm來轉發(fā)客戶端請求。-s lc為最小連接數(shù)算法,-g是采用DR模式。有多少RIP就添加幾條記錄。
#啟動LVS
/sbin/ipvsadm
;;
stop)
echo "停止LVS DirectorServer..."
#關閉時清除ipvsadm表
/sbin/ipvsadm –C
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

注:這個腳本不要使用chkconfig管理,放入/etc/init.d內(nèi)即可。

5. 安裝ldirectord相關組件
默認安裝完上面的三個軟件包之后,ldirectord已經(jīng)安裝到系統(tǒng)中,默認路徑在 /usr/etc/ ,由于ldirectord是由perl語言編寫的,所以必須安裝相關的軟件包:Socket6、libwww-perl、URI、MailTools、 HTML-Parser
# yum -y install perl-Socket6 perl-libwww-perl perl-URI perl-MailTools perl-HTML-Parser

也可以在http://search.cpan.org/網(wǎng)站下載相關軟件包安裝
安裝方法:
# perl Makefile.PL
# make && make install

6. 配置heartbeat
# cp -a /usr/etc/ha.d/ /etc/
# rm -fr /usr/etc/ha.d/
# ln -s /etc/ha.d/ /usr/etc/
# cp /usr/share/doc/haresources /etc/ha.d/
# cp /usr/share/doc/authkeys /etc/ha.d/
# cp /usr/share/doc/ha.cf /etc/ha.d/
# chmod 600 /etc/ha.d/authkeys //這個文件的權限必須是600

6.1 修改配置文件
6.1.1 authkeys文件配置(authkeys文件的作用是用來設置心跳信息的加密方式)
vim /etc/ha.d/authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!

此設置是使用crc循環(huán)冗余校驗,不采用加密的方式。

6.1.2 ha.cf為heartbeat的主配置文件,修改下面配置。
# vim /etc/ha.d/ha.cf
#日志文件位置
logfile /var/log/ha-log
#指定主備服務器多久發(fā)送一次心跳
keepalive 2
#指定30秒沒有收到對方心跳就認為對方已經(jīng)down機
deadtime 30
#10秒沒有收到心跳,便發(fā)出警報。
warntime 10
#對方DOWN后120秒重新檢測一次。
initdead 120
#指定監(jiān)聽端口
udpport 694
#心跳監(jiān)聽網(wǎng)口,這里為eth1
bcast eth1 //去掉后面#linux
#備份機的心跳線接口與接口IP
ucast eth1 192.168.1.251
#主節(jié)點恢復后,自動收回資源。
auto_failback on
#指定主備服務器的主機名稱,即在hosts文件中指定的。第一個node為主服務器,第二個node為備服務器。
node lvs-master //服務器的主機名
node lvs-backup
#當192.168.2.1、192.168.2.2這兩個IP都不能ping通時,對方即開始接管資源。
ping_group group1 192.168.2.1 192.168.2.2
#啟用ipfail腳本
respawn root /usr/lib/heartbeat/ipfail
#指定運行ipfail的用戶。
apiauth ipfail gid=root uid=root

6.1.3 haresources文件配置,這個文件是指定虛擬IP和改主機控制的腳本。
# vim /etc/ha.d/haresources
lvs-master 192.168.2.254 lvs ldirectord
// master.lvs.net可為主節(jié)點主機名,192.168.2.254為虛擬IP

6.1.4 ldirectord.cf是ldirectord進程的配置文件,該進程用來監(jiān)視web server的運行狀況,如果web server不能響應請求則把它排除在轉發(fā)列表外。
復制安裝文件ldirectord目錄上的ldirectord.cf 到/etc/ha.d/conf下,如果找不到可以查找一下:find / -name ldirectord.cf
# mkdir /etc/ha.d/conf
# cp ldirectord.cf /etc/ha.d/conf
# vim /etc/ha.d/conf/ldirectord.cf
# Global Directives
#設置真實web server的超時時間
checktimeout=30
#監(jiān)視真實web server的時間間隔
checkinterval=10
#如全部真實web server失敗,則轉發(fā)至本地
fallback=127.0.0.1:80
#改變配置文件內(nèi)容,不需要重新ldirectord
autoreload=yes
#指定日志位置
logfile="/var/log/ldirectord.log"
quiescent=no
# A sample virual with a fallback that will override the gobal setting
#指定虛擬IP
virtual=192.168.2.254:80
#指定真實web server IP及監(jiān)聽端口
real=192.168.2.250:80 gate
real=192.168.2.251:80 gate
real=192.168.2.252:80 gate
real=192.168.2.253:80 gate
fallback=127.0.0.1:80 gate
service=http
#指定轉發(fā)算法
scheduler=lc //這里的算法要和LVS腳本的算法一樣
protocol=tcp
#監(jiān)視VIP服務器的方法
checktype=negotiate
checkport=80
#監(jiān)聽測試頁面名稱,這個頁面放入真實web server web服務的根目錄
request="lvs_testpage.html"
#指定測試頁面返回內(nèi)容
receive="Test Page"
virtualhost= lvstest.net

配置文件中的lvs_testpage.html必須存在網(wǎng)站根目錄下,校驗一下配置:
# ldirectord -d /etc/ha.d/conf/ldirectord.cf start //按Ctrl+C結束
# cp /etc/ha.d/shellfuncs /usr/lib/ocf/resource.d/heartbeat/.ocf-shellfuncs

以上lvs和heartbeat配置完成。
LVS備節(jié)點(lvs-backup)的配置和LVS主節(jié)點(lvs-master)完全一樣。
只是在/etc/ha.d/ha.cf中“ucast eth1 192.168.1.251”此配置地址不一樣。

二、配置真實web server腳本
在每臺web server的/etc/init.d目錄下放置realserver腳本,這里主備節(jié)點同時也作為web server使用。
# vim /etc/init.d/realserver
#!/bin/bash
# chkconfig: 2345 20 80
# description: lvs_dr_realserver
#指定虛擬IP
VIP=192.168.2.254
host=`/bin/hostname`
case "$1" in
start)
# Start LVS-DR real server on this machine.
/sbin/ifconfig lo down
/sbin/ifconfig lo up
#修改相關內(nèi)核參數(shù)
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
;;
stop)
# Stop LVS-DR real server loopback device(s).
/sbin/ifconfig lo:0 down
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -rn | grep "lo" | grep $VIP`
if [ ! "$islothere" -o ! "$isrothere" ];
then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stopped."
else
echo "LVS-DR Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esac

# chmod +x /etc/init.d/lvs
# chmod +x /etc/init.d/realserver
# service heartbeat start //主備LVS調(diào)度器上執(zhí)行
# /etc/init.d/lvs start //主備LVS調(diào)度器上執(zhí)行
# /etc/init.d/realserver start //真實web服務器上執(zhí)行

# chkconfig --level 35 heartbeat on
# echo “/etc/init.d/lvs start” >> /etc/rc.local //開機啟動
# echo “/etc/init.d/realserver start” >> /etc/rc.local //開機啟動

三、測試

配置已經(jīng)測試過了,但是不同系統(tǒng)環(huán)境可能會出一些意料之外的事情。

【編輯推薦】

  1. 如何在RHEL5.7下搭建和配置DHCP服務器
  2. Linux服務器的16個監(jiān)控命令
  3. 服務器性能指標:撥開服務器評測體系迷霧
責任編輯:趙寧寧
相關推薦

2012-02-15 22:51:29

lvslinuxheartbeat

2014-08-01 12:57:31

linuxheartbeatlvs

2014-08-06 11:25:00

LinuxSVN服務器

2009-10-23 11:19:36

linux服務器搭建

2012-12-03 14:21:02

服務器群集

2017-07-10 10:51:19

Mysql群集架構服務器上線

2011-08-02 13:55:44

服務器群集文件服務器

2009-09-16 16:02:11

2009-09-25 10:13:15

2010-08-03 13:26:36

linux搭建NFS服

2011-02-22 11:23:48

vsFTPDLinux服務器

2019-01-15 08:12:56

Linux服務器標配

2011-02-22 11:23:48

vsFTPDLinux服務器

2012-09-21 09:31:48

Linux服務器Windows

2010-01-20 10:44:01

linux DHCP服務器

2010-02-06 10:16:17

Linux YUM

2014-09-18 10:15:54

2013-05-30 09:25:43

2013-07-11 13:51:56

LinuxMac備份服務器

2011-10-21 07:55:28

點贊
收藏

51CTO技術棧公眾號