實驗環境:php
虛擬機ha1:192.168.61.130html
虛擬機ha2:192.168.61.132node
虛擬機nfsserver:192.168.61.136mysql
vip:192.168.61.100web
目的:sql
使用heartbeat V2 crm(hb_gui)實現lamp+nfs+wordpress的高可用.數據庫
爲了實驗簡便,lamp環境直接用yum配置,配置好的mysql數據庫存放位置再從新掛載到nfsvim
注意事項:瀏覽器
(a) .節點間時間必須同步:使用ntp協議實現;ssh
服務端/etc/ntp.conf供參考:
driftfile /var/lib/ntp/drift
restrict-6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.61.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
server 127.127.1.0
fudge 127.127.1.0 stratum 8
server 220.130.158.71 prefer
server 220.130.158.51
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
注意:設置重啓服務後必定要等10-15分鐘再嘗試同步,命令:ntpdata 主機名,對比兩
機時間是否同步命令:data;ssh 192.168.61.130 ‘data’
(b) .節點間須要經過主機名互相通訊,必須解析主機至IP地址;
(1) 建議名稱解析功能使用hosts文件來實現;
(2) 通訊中使用的名字與節點名字必須保持一致:「uname -n」命令,或「hostname」展現出的名字
保持一致;
(c) .創建各節點之間的root用戶可以基於密鑰認證;
# ssh-keygen -t rsa -P ''
#ssh-copy-id -i /root/.ssh/id_rsa.pub root@HOSTNAME
(d) .必定要確保SELINUX關閉,iptables清空
注意:定義成爲集羣服務中的資源,必定不能開機自動啓動;由於它們將由crm管理;
nfsserver設置共享存儲
1. 創建mysql數據庫存儲目錄:
mkdir /mysqldata
mkdir /wordpress
2. 發佈:
vim /etc/exports添加
/mysqldata192.168.61.0/24(rw,no_root_sqlash)
/wordpress192.168.61.0/24(rw,no_root_sqlash)
3. 啓動nfs:
service nfs start
ha1配置
1. yum -y install php php-mysqlmysql-server mysql
安裝後的php配置文件(yum 安裝的php默認用插件模式):
/etc/httpd/conf.d/php.conf
安裝後的mysql:
/var/lib/mysql/ 默認的數據庫文件存放位置
servicemysqld start
servicehttpd start
2.測試php:
(a). vim/var/www/html/index.php
添加一下內容:
<?phpphpinfo(); ?>
(b). 瀏覽網頁http://localhost/index.php 顯示php狀態信息即爲成功安裝
3.測試mysql
輸入mysql -u root登錄,順便修改密碼,這裏爲123456
SET PASSWORDFOR 'root'@'localhost'=PASSWORD('123456');
4.轉移mysql數據庫到nfs
(a).先中止數據庫服務
servicemysqld stop
(b).複製原有數據庫信息到nfs
scp -r/var/lib/mysql/* 192.168.61.136:/mysqldata
(c).刪除原有數據庫信息
rm -rf/var/lib/mysql/*
(d).掛載nfs
mount -tnfs 192.168.61.136:/mysqldata /var/lib/mysql/
(e).修改權限
chown -Rmysql:mysql /var/lib/mysql/*
(f).從新啓動mysql服務測試
servicemysqld start
5.安裝wordpress
(a).先掛載mount -t nfs 192.168.61.136:/wordpress/var/www/html/
(b).下載wordpress-4.3.1-zh_CN.tar解壓到/var/www/html
(c).登錄mysql增長wordpress數據庫和用戶wordpress,密碼123456
mysql -uroot -p
createdatabase wordpress;
GRANTALL ON *.* TO wordpress@'127.0.0.1' IDENTIFIED BY '123456';
(d).瀏覽器運行http://localhost/wp-admin/install.php安裝
可能會提示如下錯誤
把內容複製下來,手動建立wp-config.php就能夠了
再按要求填寫一些信息, 安裝成功
6.安裝heartbeat V2
(a).先安裝epel源,系統源沒有libnet
wget ftp://ftp.pbone.net/mirror/dl.iuscommunity.org/pub/ius/archive/Redhat/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
(b).安裝依賴包:
yuminstall net-snmp-libs libnet PyXML
rpm-ivh heartbeat-2.1.4-12.el6.x86_64.rpm
heartbeat-pils-2.1.4-12.el6.x86_64.rpm
heartbeat-stonith-2.1.4-12.el6.x86_64.rpm
heartbeat-gui-2.1.4-12.el6.x86_64.rpm
(c).編輯ha.cf 文件
vim /etc/ha.cf內容以下:
crm on #開啓crm,同時會自動禁用haresources
logfacility local0#日誌使用rsyslog中local0設定
keepalive 1 #監聽頻率,每1秒
deadtime 3 #死亡判斷時間
warntime 2 #異常警告時間
mcast eth0 225.0.0.1 694 1 0 #組播地址設定
auto_failback on #修復後自動上線
node ha1 #節點設置
node ha2#節點設置
ping 192.168.61.2 #第三方仲裁設定
(d).編輯authkeys文件
auth 2
#1 crc
2 sha1HI! #密鑰短語越長越隨機越好
#3 md5Hello!
ha2配置
1.安裝heartbeat V2
(a).先安裝epel源,系統源沒有libnet
wget ftp://ftp.pbone.net/mirror/dl.iuscommunity.org/pub/ius/archive/Redhat/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
(b).安裝依賴包:
yuminstall net-snmp-libs libnet PyXML
rpm-ivh heartbeat-2.1.4-12.el6.x86_64.rpm
heartbeat-pils-2.1.4-12.el6.x86_64.rpm
heartbeat-stonith-2.1.4-12.el6.x86_64.rpm
heartbeat-gui-2.1.4-12.el6.x86_64.rpm
(c).編輯ha.cf 文件
vim /etc/ha.cf內容以下:
crm on #開啓crm,同時會自動禁用haresources
logfacility local0 #日誌使用rsyslog中local0設定
keepalive1 #監聽頻率,每1秒
deadtime3 #死亡判斷時間
warntime2 #異常警告時間
mcasteth0 225.0.0.1 694 1 0 #組播地址設定
auto_failbackon #修復後自動上線
node ha1 #節點設置
node ha2 #節點設置
ping192.168.61.2 #第三方仲裁設定
(d).編輯authkeys文件
auth 2
#1 crc
2 sha1HI! #密鑰短語越長越隨機越好
#3 md5Hello!
2. yum -y installphp php-mysql mysql-server mysql
安裝後的php配置文件(yum 安裝的php默認用插件模式):
/etc/httpd/conf.d/php.conf
裏面有 /usr/lib64/httpd/modules/libphp5.so 模塊文件
安裝後的mysql:
/var/lib/mysql/ 默認的數據庫文件存放位置
servicemysqld start
mysql -uroot -p 登錄一次,查看數據庫是否正確
servicehttpd start
3.測試php:
瀏覽網頁http://localhost/index.php 顯示wordpress,能夠登錄留言即正常
4. 運行hb_gui設置資源
hb_gui須要一個特定用戶登陸到hb_gui上操做,/etc/passwd下的hacluster,咱們必須爲它添加密碼,
由於它不容許空密碼登陸。
echo "123456" |passwd --stdinhacluster 每一個須要運行hb_gui的節點都須要設置。
輸入 hb_gui & 運行
添加資源:
先添加一個組webservice,按順序把vip,nfs,mysqld,httpd添加進去
而後分別啓動ha1和ha2的heartbeat:
serviceheartbeat start
在其中一臺啓動hb_gui就能夠看到當前的節點和資源的分配。其中一臺故障,資源都會自動切換到另外一臺,wordpress訪問實現高可用