HA+LB+NAS:三層架構實現羣集高可用和高性能

這篇博客就算是小編前兩篇有關服務器羣集技術的結合,HA+LB+NAS來實現羣集的高可用、高併發(主要是針對web服務器),HA和LB相信讀者都很清楚啦,那什麼是NAS呢,網絡存儲技術,簡單的說就是講服務器的文件存儲轉移到一個專門做存儲的介質上,改介質是由瘦OS和大容量硬盤組成的,當前端服務器需要數據時直接從後端介質拿就是了,寫數據也是直接寫到後端,目前做NAS的硬件有很多啦,做瘦OS的小編覺得OPENFILER比較好用,當然還有freeNAS,之所以叫瘦OS(實質是小linux)是因爲它不需要太強大的功能,只需要將數據共享出去就是了,比如說NFS,SAMBA,CIFS等等啦,但是其亮點是有友好的界面管理啦,小編這裏直接使用LINUX下的NFS來做NAS啦。。

整體結構圖

clip_image002

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配置

2.1.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.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

 

2.1.2.Zend加速php

# 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)

clip_image004

圖2-1-2-1

clip_image006

圖2-1-2-2

clip_image008

圖2-1-2-3

指定zend的安裝路徑

clip_image010

圖2-1-2-4

指定zend配置文件安裝路徑

clip_image012

圖2-1-2-5

clip_image014

圖2-1-2-6

指定apachectl的路徑

clip_image016

圖2-1-2-7

 

2.1.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.1.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.1.5.掛載NFS資源到本地

# vim /etc/fstab

加入下面代碼

192.168.110.10:/usr/local/nginx/html/website /var/www/website nfs rw,soft,intr 0 0

 

2.1.6.安裝wordpress

在NFS服務器上只是將wordpress的站點文件展開了,真正的配置在web站點上,配置過程如圖2-1-6-1至圖2-1-6-6所示:

clip_image018

圖2-1-6-1

clip_image020

圖2-1-6-2

clip_image022

圖2-1-6-3

clip_image024

圖2-1-6-4

clip_image026

圖2-1-6-5

clip_image028

圖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

clip_image029

圖2-2-2-1

clip_image030

圖2-2-2-2

clip_image031

圖2-2-2-3

指定zend的安裝路徑

clip_image010[1]

圖2-2-2-4

指定zend配置文件安裝路徑

clip_image032

圖2-2-2-5

clip_image014[1]

圖2-2-2-6

指定apachectl的路徑

clip_image033

圖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.修改相關配置文件

3.3.1.主服務器配置

接下來的工作是修改主機名,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 //定義調度算法;

 

3.3.2.standby 服務器的配置

從服務器的主機名稱爲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

測試部分小編就不做啦,發現自己最近一階段非常的懶啊,呵呵,整個一個架構下來相信讀者對於羣集技術已經有所瞭解啦,如果還想知道更多,那就需要自己動手好好去摸索一下啦….

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章