這篇博客就算是小編前兩篇有關服務器羣集技術的結合,HA+LB+NAS來實現羣集的高可用、高併發(主要是針對web服務器),HA和LB相信讀者都很清楚啦,那什麼是NAS呢,網絡存儲技術,簡單的說就是講服務器的文件存儲轉移到一個專門做存儲的介質上,改介質是由瘦OS和大容量硬盤組成的,當前端服務器需要數據時直接從後端介質拿就是了,寫數據也是直接寫到後端,目前做NAS的硬件有很多啦,做瘦OS的小編覺得OPENFILER比較好用,當然還有freeNAS,之所以叫瘦OS(實質是小linux)是因爲它不需要太強大的功能,只需要將數據共享出去就是了,比如說NFS,SAMBA,CIFS等等啦,但是其亮點是有友好的界面管理啦,小編這裏直接使用LINUX下的NFS來做NAS啦。。
整體結構圖
1.NFS服務器配置
1.1.預裝wordpress
注:後端存儲需要數據庫的支持,所以先安裝MySql
# tar –zxvf mysql-5.5.15-linux2.6-i686.tar.gz –C /usr/local/
方便打開mysql目錄,給解壓目錄建立軟連接
# cd /usr/local
# ln -s mysql-5.5.15-linux2.6-i686 mysql
安裝可以參考/usr/local/INSTALL-BINARY文件
78 shell> groupadd mysql
79 shell> useradd -r -g mysql mysql
80 shell> cd /usr/local
81 shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
82 shell> ln -s full-path-to-mysql-VERSION-OS mysql
83 shell> cd mysql
84 shell> chown -R mysql .
85 shell> chgrp -R mysql .
86 shell> scripts/mysql_install_db --user=mysql
87 shell> chown -R root .
88 shell> chown -R mysql data
89 # Next command is optional
90 shell> cp support-files/my-medium.cnf /etc/my.cnf
91 shell> bin/mysqld_safe --user=mysql &
92 # Next command is optional
93 shell> cp support-files/mysql.server /etc/init.d/mysql.server
# groupadd -r mysql
# useradd -r -g mysql mysql –M
# chown -R mysql .
# chogrp -R mysql .
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chgrp -R mysql data
# cp support-files/my-medium.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld
更改mysqld的權限
# chmod a+x /etc/init.d/mysqld
# chkconfig –add mysqld
配置mysql的環境變量
# vim /etc/profile
44 PATH=$PATH:/usr/local/mysql/bin
# . /etc/profile(.後面加空格)
創建mysql.conf文件並添加庫文件路徑
# vim /etc/ld.so.conf.d/mysql.conf
(添加下面內容)
/usr/local/mysql/lib
# ldconfig
爲頭文件建立連接
# cd /usr/local/mysql
# ln -s include /usr/include/mysql
給root用戶密碼
# mysqladmin -u root -p password '123456'
# service mysqld restart
注:其實就是將wordpress的站點文件展開就是了,真正的配置可以在前端的web服務器上完成
# unzip wordpress-3.0.5-zh_CN.zip
# cdwordpress-3.0.5-zh_CN
# mv wordpress /usr/local/nginx/html/website
創建mybbs數據庫
# mysql–u root –p
Enter password:
mysql>create database mybbs;
mysql>grant all on mybbs to ‘root’@’192.168.110.10’identified by ‘123456’;
mysql>grant all on mybbs to ‘root’@’192.168.110.12’identified by ‘123456’;
mysql>grant all on mybbs to ‘root’@’192.168.110.13’identified by ‘123456’;
mysql>flush privileges;
在/usr/local/nginx/html/website下創建一個隱藏的.test.html用於director對服務器的監控時反饋信息
# cd/usr/local/nginx/html/website
# echo ‘ok’ .test.html
動態網站搭建完成
1.2.服務器端配置
確保服務器端已經安裝以下有關nfs的軟件包
# rpm -qa |grep nfs
nfs-utils-lib-1.0.8-7.6.el5
nfs-utils-1.0.9-42.el5
查看rpc工作狀態
# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 653 status
100024 1 tcp 656 status
100011 1 udp 663 rquotad
100011 2 udp 663 rquotad
100011 1 tcp 666 rquotad
100011 2 tcp 666 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 38515 nlockmgr
100021 3 udp 38515 nlockmgr
100021 4 udp 38515 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 34341 nlockmgr
100021 3 tcp 34341 nlockmgr
100021 4 tcp 34341 nlockmgr
100005 1 udp 677 mountd
100005 1 tcp 680 mountd
100005 2 udp 677 mountd
100005 2 tcp 680 mountd
100005 3 udp 677 mountd
100005 3 tcp 680 mountd
把/usr/local/nginx/html/website並修改權限
# chmod o+wt /usr/local/nginx/html/website
編輯共享清單信息
# vim /etc/exports
/usr/local/nginx/html/website 192.168.110.0/28(rw,sync)(給192.168.110.0/28網段的用戶對/usr/local/nginx/html/website有讀寫權限)
# exportfs –r (刷新共享清單)
# service nfs restart
2.web服務器配置
2.1.web服務器1配置
搭建前準備工作
下載一下安裝包:
httpd-2.4.4
apr-1.4.6
apr-util-1.5.1
pcre採用光盤鏡像的rpm安裝包
mysql-5.6.10
php-5.4.13
phpMyAdmin-3.5.8-all-languages
ZendOptimizer-3.3.0a-linux-glibc21-i386
確保搭建的平臺有以下開發組件
Development Libraries
Development Tools
Legacy Software Development
X Software Development
安裝apache
源碼安裝httpd:
安裝使用httpd我們必須先安裝apr和它的工具apr-util
解壓apr和apr-util並進入解壓後的目錄進行編譯安裝
#tar –zxvf apr-1.4.6.tar.gz –C /usr/local/src/
#tar –zxvf apr-util-1.5.1.tar.gz –C /usr/local/src/
# cd/usr/local/src/ apr-1.4.6
# ./configure –prefix=/usr/local/apr
# make&& make install
# cd /usr/local/src/ apr-util-1.5.1
# ./configure --with-apr=/usr/local/apr/bin/apr-1-config
# make&& make install
yum安裝pcre和pcre-devel
# yum install pcre
# yum install pcre-devel
解壓httpd並編譯安裝
# tar –jxvf httpd.2.4.4.tar.bz2 –C /usr/local/src/
# cd/usr/local/src/ httpd.2.4.4
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre --with-z --enable-mpms-shared=all
# make&& make install
爲頭文件目錄建一個鏈接,方便用戶能夠訪問到include文件
# ln -s /usr/local/apache/include /usr/include/apache
方便啓動關閉重啓apache服務建立httpd控制腳本
# vim /etc/init.d/httpd
#!/bin/sh
#set -x
#description:http server
#chkconfig:2345 88 60
HTTPD='/usr/local/apache/bin/httpd'
CONFFILE='/etc/httpd/httpd.conf'
start(){
[ -f /var/lock/subsys/httpd ] && echo "apache is started" && exit
echo -n "starting apache......."
sleep 1
$HTTPD -f $CONFFILE && RETVAL=0 ||RETVAL=1
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd && echo "ok" || echo "fail"
}
stop(){
[ ! -f /var/lock/subsys/httpd ]&& echo "httpd is stoped......" && exit
echo -n "stoping httpd......"
sleep 1
/bin/rm -rf /var/lock/subsys/httpd
$HTTPD -k stop && RETVAL=0 || RETVAL=1
[ $RETVAL -eq 0 ] && rm -rf /var/lock/subsys/httpd && echo "ok" || echo "fail"
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "start|stop|restart"
;;
Esac
# service httpd start
starting apache.......ok
安裝mysql
# tar -zxvf mysql-5.6.10.tar.gz -C /usr/local/src/
安裝mysql需要cmake,Cmake它相當於./configure
安裝cmake
# tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src/
# cd/usr/local/src/ cmake-2.8.10.2
# ./configure --prefix=/usr/local/cmake
執行make && make install
Cmake的可執行文件在/usr/local/cmake/bin目錄下爲了方便使用cmake,更改/etc/profile文件內容,添加一條PATH值,能直接使用cmke
# vim /etc/profile
45 PATH=$PATH:/usr/local/cmake/bin
安裝mysql
# cd/usr/local/src/ mysql-5.6.10
# cmake .
# make&& make install
Mysql默認安裝到/usr/local/下,增加mysql組創建用戶並更改mysql目錄下的所屬者和所屬組
# cd /usr/local/mysql
# groupadd mysql
# useradd -r -g mysql mysql
# chown -R mysql .
# chgrp -R mysql .
初始化mysql
# cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
進行權限更改
# chown -R root .
# chown -R mysql data
拷貝/mysql/ support-files目錄下配置文件到/etc/my.cnf作爲新的配置文件
# cd /usr/local/mysql/ support-files
# cp my-default.cnf /etc/my.cnf
拷貝mysql.server文件到/etc/init.d/mysqld作爲新的控制文件,並給它執行權
# cp mysql.server /etc/init.d/mysqld
# chmod a+x /etc/init.d/mysqld
爲直接使用mysql命令添加mysql環境變量
# vim /etc/profile
45 PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin
給數據庫創建用戶和密碼
# mysqladmin -u root -p password 123456
登錄
# mysql -u root –p
Enter password:
使系統能夠正確找到lib文件,我們需要給它指定正確的lib路徑,創建一個mysql.conf在裏面寫入lib的路徑/usr/local/mysql/bin,並對ld.so.cache文件刷新
# vim /etc/ld.so.conf.d/mysql.conf
加入下面內容
/usr/local/mysql/bin
# ldconfig(刷新)
再給頭文件做一個鏈接
# ln -s /usr/local/mysql/include /usr/include/mysql
安裝php
# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src/
# cd /usr/local/src/ php-5.4.13
# ./configure --prefix=/usr/local/php --sysconfdir=/etc --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --with-gd --with-jpeg-dir --with-png-dir --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --disable-xml --with-freetype-dir --enable-xml
# Make && make install
添加php的環境路徑:
# vim /etc/profile
指定php的lib文件路徑
# vim /etc/ld.so.conf.d/php.conf
加入以下內容
/usr/local/php/lib
# ldconfig(更新)
爲頭文件建立鏈接
# cd /usr/local/php
# ln -s include /usr/include/php
爲了讓apache能夠處理一些php網頁,我們要加入一些模塊,向httpd.conf文件內加入語句
# vim /etc/httpd/httpd.conf
147 LoadModule php5_module modules/libphp5.so
148 AddType application/x-httpd-php .php .phtml
246 <IfModule dir_module>
247 DirectoryIndex index.html index.php
248 </IfModule>
更改web主站點路徑到掛載目錄,並創建虛擬主機頭
213 DocumentRoot "/var/www/website"
514 <Virtualhost 192.168.110.12:80>
515 DocumentRoot /var/www/website
516 ServerName www.zzdx.com
517 ErrorLog logs/tec_error_log
518 CustomLog logs/tec_access_log combined
519 </VirtualHost>
# service httpd restart
stoping httpd......ok
starting apache.......ok
# tar -zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.3.0a-linux-glibc21-i386
# ./install
安裝過程(如圖2-1-2-1至圖2-1-2-7)
圖2-1-2-1
圖2-1-2-2
圖2-1-2-3
指定zend的安裝路徑
圖2-1-2-4
指定zend配置文件安裝路徑
圖2-1-2-5
圖2-1-2-6
指定apachectl的路徑
圖2-1-2-7
使監測服務器能夠正常監控web服務器
# cd /mnt/cdrom/Server/
# rpm -ivh net-snmp-5.3.2.2-7.el5.i386.rpm
# yum install net-snmp-utils-5.3.2.2-7.el5.i386.rpm
添加虛擬端口並配置路由,web服務器迴應客戶端時使用虛擬端口
# ifconfig lo:0 192.168.110.1 broadcast 192.168.110.1 netmask 255.255.255.255
# route add -host 192.168.110.1 dev lo:0
更改系統控制文件,在接收arp請求時不給予迴應以防衝突
# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
# vim /etc/fstab
加入下面代碼
192.168.110.10:/usr/local/nginx/html/website /var/www/website nfs rw,soft,intr 0 0
在NFS服務器上只是將wordpress的站點文件展開了,真正的配置在web站點上,配置過程如圖2-1-6-1至圖2-1-6-6所示:
圖2-1-6-1
圖2-1-6-2
圖2-1-6-3
圖2-1-6-4
圖2-1-6-5
圖2-1-6-6
2.2web服務器2配置
2.2.1.LAMP環境的搭建
搭建前準備工作
下載一下安裝包:
httpd-2.4.4
apr-1.4.6
apr-util-1.5.1
pcre採用光盤鏡像的rpm安裝包
mysql-5.6.10
php-5.4.13
phpMyAdmin-3.5.8-all-languages
ZendOptimizer-3.3.0a-linux-glibc21-i386
確保搭建的平臺有以下開發組件
Development Libraries
Development Tools
Legacy Software Development
X Software Development
安裝apache
源碼安裝httpd:
安裝使用httpd我們必須先安裝apr和它的工具apr-util
解壓apr和apr-util並進入解壓後的目錄進行編譯安裝
#tar –zxvf apr-1.4.6.tar.gz –C /usr/local/src/
#tar –zxvf apr-util-1.5.1.tar.gz –C /usr/local/src/
# cd/usr/local/src/ apr-1.4.6
# ./configure –prefix=/usr/local/apr
# make&& make install
# cd /usr/local/src/ apr-util-1.5.1
# ./configure --with-apr=/usr/local/apr/bin/apr-1-config
# make&& make install
yum安裝pcre和pcre-devel
# yum install pcre
# yum install pcre-devel
解壓httpd並編譯安裝
# tar –jxvf httpd.2.4.4.tar.bz2 –C /usr/local/src/
# cd/usr/local/src/ httpd.2.4.4
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre --with-z --enable-mpms-shared=all
# make&& make install
爲頭文件目錄建一個鏈接,方便用戶能夠訪問到include文件
# ln -s /usr/local/apache/include /usr/include/apache
方便啓動關閉重啓apache服務建立httpd控制腳本
# vim /etc/init.d/httpd
#!/bin/sh
#set -x
#description:http server
#chkconfig:2345 88 60
HTTPD='/usr/local/apache/bin/httpd'
CONFFILE='/etc/httpd/httpd.conf'
start(){
[ -f /var/lock/subsys/httpd ] && echo "apache is started" && exit
echo -n "starting apache......."
sleep 1
$HTTPD -f $CONFFILE && RETVAL=0 ||RETVAL=1
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd && echo "ok" || echo "fail"
}
stop(){
[ ! -f /var/lock/subsys/httpd ]&& echo "httpd is stoped......" && exit
echo -n "stoping httpd......"
sleep 1
/bin/rm -rf /var/lock/subsys/httpd
$HTTPD -k stop && RETVAL=0 || RETVAL=1
[ $RETVAL -eq 0 ] && rm -rf /var/lock/subsys/httpd && echo "ok" || echo "fail"
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "start|stop|restart"
;;
Esac
# service httpd start
starting apache.......ok
安裝mysql
# tar -zxvf mysql-5.6.10.tar.gz -C /usr/local/src/
安裝mysql需要cmake,Cmake它相當於./configure
安裝cmake
# tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src/
# cd/usr/local/src/ cmake-2.8.10.2
# ./configure --prefix=/usr/local/cmake
執行make && make install
Cmake的可執行文件在/usr/local/cmake/bin目錄下爲了方便使用cmake,更改/etc/profile文件內容,添加一條PATH值,能直接使用cmke
# vim /etc/profile
45 PATH=$PATH:/usr/local/cmake/bin
安裝mysql
# cd/usr/local/src/ mysql-5.6.10
# cmake .
# make&& make install
Mysql默認安裝到/usr/local/下,增加mysql組創建用戶並更改mysql目錄下的所屬者和所屬組
# cd /usr/local/mysql
# groupadd mysql
# useradd -r -g mysql mysql
# chown -R mysql .
# chgrp -R mysql .
初始化mysql
# cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
進行權限更改
# chown -R root .
# chown -R mysql data
拷貝/mysql/ support-files目錄下配置文件到/etc/my.cnf作爲新的配置文件
# cd /usr/local/mysql/ support-files
# cp my-default.cnf /etc/my.cnf
拷貝mysql.server文件到/etc/init.d/mysqld作爲新的控制文件,並給它執行權
# cp mysql.server /etc/init.d/mysqld
# chmod a+x /etc/init.d/mysqld
爲直接使用mysql命令添加mysql環境變量
# vim /etc/profile
45 PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin
給數據庫創建用戶和密碼
# mysqladmin -u root -p password 123456
登錄
# mysql -u root –p
Enter password:
使系統能夠正確找到lib文件,我們需要給它指定正確的lib路徑,創建一個mysql.conf在裏面寫入lib的路徑/usr/local/mysql/bin,並對ld.so.cache文件刷新
# vim /etc/ld.so.conf.d/mysql.conf
加入下面內容
/usr/local/mysql/bin
# ldconfig(刷新)
再給頭文件做一個鏈接
# ln -s /usr/local/mysql/include /usr/include/mysql
安裝php
# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src/
# cd /usr/local/src/ php-5.4.13
# ./configure --prefix=/usr/local/php --sysconfdir=/etc --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --with-gd --with-jpeg-dir --with-png-dir --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --disable-xml --with-freetype-dir --enable-xml
# Make && make install
添加php的環境路徑:
# vim /etc/profile
指定php的lib文件路徑
# vim /etc/ld.so.conf.d/php.conf
加入以下內容
/usr/local/php/lib
# ldconfig(更新)
爲頭文件建立鏈接
# cd /usr/local/php
# ln -s include /usr/include/php
爲了讓apache能夠處理一些php網頁,我們要加入一些模塊,向httpd.conf文件內加入語句
# vim /etc/httpd/httpd.conf
147 LoadModule php5_module modules/libphp5.so
148 AddType application/x-httpd-php .php .phtml
246 <IfModule dir_module>
247 DirectoryIndex index.html index.php
248 </IfModule>
更改web主站點路徑到掛載目錄,並創建虛擬主機頭
213 DocumentRoot "/var/www/website"
514 <Virtualhost 192.168.110.13:80>
515 DocumentRoot /var/www/website
516 ServerName www.zzdx.com
517 ErrorLog logs/tec_error_log
518 CustomLog logs/tec_access_log combined
519 </VirtualHost>
# service httpd restart
stoping httpd......ok
starting apache.......ok
2.2.2.Zend加速php
# tar -zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.3.0a-linux-glibc21-i386
# ./install
安裝過程如圖2-2-2-1至圖2-2-2-7
圖2-2-2-1
圖2-2-2-2
圖2-2-2-3
指定zend的安裝路徑
圖2-2-2-4
指定zend配置文件安裝路徑
圖2-2-2-5
圖2-2-2-6
指定apachectl的路徑
圖2-2-2-7
2.2.3.安裝snmp軟件包及相關組件
使監測服務器能夠正常監控web服務器
# cd /mnt/cdrom/Server/
# rpm -ivh net-snmp-5.3.2.2-7.el5.i386.rpm
# yum install net-snmp-utils-5.3.2.2-7.el5.i386.rpm
2.2.4.添加虛擬端口並更改系統控制文件
添加虛擬端口並配置路由,web服務器迴應客戶端時使用虛擬端口
# ifconfig lo:0 192.168.110.1 broadcast 192.168.110.1 netmask 255.255.255.255
# route add -host 192.168.110.1 dev lo:0
更改系統控制文件,在接收arp請求時不給予迴應以防衝突
# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
2.2.5.掛載NFS資源到本地
# vim /etc/fstab
加入下面代碼
192.168.110.10:/usr/local/nginx/html/website /var/www/website nfs rw,soft,intr 0 0
3.Director服務器配置
爲實現Director關鍵業務的高可用性,使用高可用性羣集HA來完成Director服務器的搭建,HA羣集採用主從模式
3.1.準備工作
heartbeat-2.1.4-11.el5.i386.rpm
openhpi-libs-2.14.0-5.el5.i386.rpm
heartbeat-pils-2.1.4-11.el5.i386.rpm
perl-MailTools-2.04-1.el5.rf.noarch.rpm
heartbeat-stonith-2.1.4-11.el5.i386.rpm
perl-TimeDate-1.16-5.el5.noarch.rpm
libnet-1.1.5-1.el5.i386.rpm
heartbeat-ldirectord-2.1.4-11.el5.i386.rpm
3.2.軟件安裝
所有上述軟件都放在/heartbeat目錄下
# cd heart/
# yum localinstall ./* --nogpgcheck
這樣安裝省了很多事,系統會自動解決依賴關係,但是讀者還要記着安裝完成之後查詢一下heartbeat到底產生了哪些文件
其中/usr/share/doc/heartbeat-2.1.4/目錄下就存放了heartbeat的樣例配置文件
3.3.修改相關配置文件
接下來的工作是修改主機名,Heartbeat依靠服務器的主機名來識別服務器,因此使用hostname命令得到的結果必須與uname -n 結果保持一致。
# vim /etc/sysconfig/network //修改主機名稱;
HOSTNAME=primary.zzdx.com
# hostname primary.zzdx.com
# vim /etc/hosts //修改主機地址映射;
192.168.110.6 primary.zzdx.com primary
192.168.110.7 standby.zzdx.com standby
# cd /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.4/ha.cf ./
# cp /usr/share/doc/heartbeat-2.1.4/authkeys ./
# cp /usr/share/doc/heartbeat-2.1.4/haresources ./
# cp /usr/share/doc/heartbeat-2.1.4/heartbeat-ldirectord-2.1.4/ldirectord.cf ./ldirectord-192.168.110.1.cf //ldirectord的配置文件
# vim ha.cf //定義各節點之間Heartbeat進程如何通信;
debugfile /var/log/ha-debug //設置調試日誌文件名
logfile /var/log/ha-log //設置其他日誌文件名
keepalive 2 //設定heartbeat之間的時間間隔爲2秒;
deadtime 30 //在30秒後宣佈節點死亡;
warntime 10 //在日誌中發出late heartbeat警告之前等待的時間,單位爲秒;
udpport 694 // 使用端口694進行bcast和ucast通信,默認參數;
bcast eth1 //在eth1接口上使用廣播heartbeat-”心跳”;
node primary.zzdx.com //定義節點;
node standby.zzdx.com //定義節點;
# dd if=/dev/urandom bs=512 count=1 | openssl md5 //生成節點間域共享密鑰;
14df2a6b5b26b510e7d5d5b16b7cc10b
# vim authkeys //定義心跳探測包使用哪種加密方式;
auth 1
1 sha1 14df2a6b5b26b510e7d5d5b16b7cc10b
# chmod 600 authkeys //僅允許管理員修改文件;
# vim haresources //定義資源;文件給出了相應的格式
primary.zzdx.com IPaddr::192.168.110.1/28/eth0/192.168.110.15 ldirectord::ldirectord-192.168.110.1.cf
# vim ldirectord-192.168.110.1.cf //定義director規則
# Global Directives
checktimeout=10 // ldirectord 等待Realserver 健康檢查完成的時間,單位爲秒;任何原因的檢查錯誤或超過此時間限制,ldirector 將會將此Realserver 從IPVS 表中移除;
checkinterval=2 // 每次檢查的時間間隔,即檢查的頻率;
autoreload=no //定義ldirectord 是否定期每隔一段時間檢查此配置文件是否發生改變並自動重新加載此文件;
logfile="/var/log/ldirectord-192.168.110.1.log" //日誌文件存放位置;
quiescent=yes //當某臺Real Server 出現異常,此項可將其設置爲靜默狀態(即其權重爲0)從而不再響應客戶端的訪問請求;
virtual=192.168.110.1:80 // 定義LVS 服務及其使用的VIP 和PORT;
real=192.168.110.12:80 gate 1 // 定義Real Server;
real=192.168.110.13:80 gate 3 //定義Real Server;
fallback=127.0.0.1:80 gate // 當IPVS 表沒有任何可用的Realserver 時,
此“地址:端口”作爲最後響應的服務。一般指向127.0.0.1,並可以通過一個包含錯誤信息的頁面通知用戶服務發生了異常;
service=http // 基於http 服務來測試Real Server;
request=".test.html" //測試請求頁面;
receive="OK" //測試接收字符;
scheduler=wlc //定義調度算法;
從服務器的主機名稱爲standby.zzdx.com,安裝heartbeat的方法同主服務器一致。/etc/hosts文件、Heartbeat、ldirectord的配置文件也必須與主機保持一致。因此這裏採用將primary上的配置文件直接遠程複製過來的方法:
# cd /etc/ha.d/
# scp 192.168.110.6:/etc/ha.d/ha.cf ./
# scp 192.168.110.6:/etc/ha.d/authkeys ./
# scp 192.168.110.6:/etc/ha.d/haresources ./
# scp 192.168.110.6:/etc/ha.d/ldirectord-192.168.110.1.cf ./
# chmod 600 authkeys
3.3.3.在primary和standby服務器上分別啓動heartbeat服務
# service heartbeat start
測試部分小編就不做啦,發現自己最近一階段非常的懶啊,呵呵,整個一個架構下來相信讀者對於羣集技術已經有所瞭解啦,如果還想知道更多,那就需要自己動手好好去摸索一下啦….