修改ha.cf配置文件,啓用crm功能,表示資源配置交給crm管理
node
[root@node1 ~]# vim /etc/ha.d/ha.cf crm on
使用自帶的ha_propagate腳本同步配置文件mysql
[root@node1 ~]# /usr/lib/heartbeat/ha_propagate
安裝heartbeat-gui包linux
[root@node1 heartbeat2]# rpm -ivhheartbeat-gui-2.1.4-12.el6.x86_64.rpm [root@node2 heartbeat2]# rpm -ivhheartbeat-gui-2.1.4-12.el6.x86_64.rpm
安裝完成啓動heartbeat服務web
service heartbeat start;ssh node2 'serviceheartbeat start'
鏈接圖形界面須要輸入節點的用戶名和密碼,安裝的時候自動建了一個hacluster的用戶,設置密碼就能夠鏈接了。sql
[root@node1 ~]# echo "hacluster" | passwd--stdin hacluster [root@node2 ~]# echo "hacluster" | passwd--stdin hacluster
輸入hb_gui啓動圖形配置界面(使用的終端是Xmanager企業版,若是是CRT,putty是沒法打開的)數據庫
說明:hb_gui打開默認顯示英文,若是想設置成爲中文須要修改語言環境LANG="zh_CN.GB18030"vim
打開後的界面bash
新添加一個資源,資源類型選擇普通資源ssh
元素類型說明:tcp
普通資源,資源組:定義資源類型
位置,順序,協同:定義資源約束
選擇資源的詳細設置
說明添加資源時,帶required,unique是必選參數。
資源添加完成
啓動資源
登陸node2查看資源啓動
[root@node2 ~]# ifconfig eth0 Link encap:Ethernet HWaddr00:0C:29:F1:DD:B2 inet addr:172.16.4.101 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fef1:ddb2/64 Scope:Link UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RXpackets:68754 errors:0 dropped:0 overruns:0 frame:0 TXpackets:22869 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RXbytes:16523275 (15.7 MiB) TXbytes:4286115 (4.0 MiB) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:F1:DD:B2 inet addr:172.16.4.1 Bcast:172.16.255.255 Mask:255.255.0.0 UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UPLOOPBACK RUNNING MTU:65536 Metric:1 RXpackets:0 errors:0 dropped:0 overruns:0 frame:0 TXpackets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RXbytes:0 (0.0 b) TX bytes:0 (0.0 b)
添加httpd資源
添加web並啓動後,發現web資源和vip資源在不一樣的節點這種狀況是沒法實現web高可用的。
添加一個組資源,方便對資源進行約束
建完組以後,須要建一個VIP資源
添加Lsb的httpd資源
啓動資源,因爲兩個資源在一個組內,因此實現了位置約束,都是在一個組內
驗證資源
[root@node2 ~]# ifconfig eth0:0 eth0:0 Link encap:Ethernet HWaddr00:0C:29:F1:DD:B2 inet addr:172.16.4.1 Bcast:172.16.255.255 Mask:255.255.0.0 UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1 [root@node2 ~]# netstat -lnt | grep :80 tcp 0 0 :::80 :::* LISTEN
定義資源優先運行在那一個節點
定義表達式:節點名字若是是node1.xmfb.com那麼就必須運行在這個節點
定義資源啓動的前後順序
資源默認是平均分配到兩個節點啓動的,若是想讓兩個資源在同一個節點啓動,有兩種方法
(1) 將兩個資源定義到同一個組
(2) 設置協同約束
在限制條件,協同新添加一個條件
須要的資源:
vip
Mariadb
共享存儲(NFS)
NFS配置Mysql共享存儲目錄
[root@NFS ~]# groupadd -r -g 306 mysql [root@NFS ~]# useradd -r -g 306 -u 306 mysql [root@NFS ~]# id mysql uid=306(mysql) gid=306(mysql) =306(mysql) [root@NFS ~]# mkdir –p /mydata/data [root@NFS ~]# chown -R mysql.mysql /mydata/data/ [root@NFS ~]# vim /etc/exports /mydata/data 172.16.0.0/16(rw,no_root_squash)
Node1配置
[root@node1 ~]# mkdir /mydata [root@node1 ~]# groupadd -g 306 mysql [root@node1 ~]# useradd -g 306 -u 3306 -s/sbin/nologin -M mysql [root@node1 ~]# mount -t nfs 172.16.4.200:/mydata//mydata/
Node2配置
[root@node2 ~]# mkdir /mydata [root@node2 ~]# groupadd -g 306 mysql [root@node2 ~]# useradd -g 306 -u 3306 -s/sbin/nologin -M mysql [root@node2 ~]# mount -t nfs 172.16.4.200:/mydata//mydata/
安裝並初始化
tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/ cd /usr/local/ ln -sv mariadb-5.5.43-linux-x86_64/ mysql cd mysql/ chown -R mysql:mysql . scripts/mysql_install_db --user=mysql--datadir=/mydata/data/
提供主配置文件
[root@node1 mysql]# cp support-files/my-large.cnf/etc/my.cnf [root@node1 mysql]# vim /etc/my.cnf thread_concurrency = 2 datadir = /mydata/data innodb_file_per_table = 1
提供啓動腳本
[root@node1 mysql]# cp support-files/mysql.server/etc/rc.d/init.d/mysqld [root@node1 mysql]# chmod +x/etc/rc.d/init.d/mysqld [root@node1 mysql]# chkconfig --add mysqld [root@node1 mysql]# chkconfig mysqld off
修改PATH環境變量
[root@node1 mysql]# echo "exportPATH=/usr/local/mysql/bin:$PATH" >> /etc/profile.d/mysql.sh [root@node1 mysql]# . /etc/profile.d/mysql.sh
啓動Mysql而且建立一個庫
[root@node1 mysql]# service mysqld start Starting MySQL.... [ OK ] [root@node1 mysql]# mysql MariaDB [(none)]> create database mydb; Query OK, 1 row affected (0.03 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.07 sec)
中止Mysql,卸載NFS
[root@node1 mysql]# service mysqld stop [root@node1 mysql]# umount /mydata/
Node2安裝mariadb不須要掛載NFS
[root@node2 ~]# umount /mydata/
安裝mariadb;注意這裏不須要初始化
tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/ cd /usr/local/ ln -sv mariadb-5.5.43-linux-x86_64/ mysql cd mysql/ chown -R mysql:mysql .
把node1的配置文件和啓動腳本複製到node2
[root@node1 mysql]# scp /etc/my.cnf node2:/etc/ [root@node1 mysql]# scp /etc/init.d/mysqldnode2:/etc/init.d/mysqld
Node2節點添加mariadb啓動腳本
[root@node2 ~]# chkconfig --add mysqld [root@node2 ~]# chkconfig mysqld off
添加PATH環境變量
[root@node2 ~]# echo "exportPATH=/usr/local/mysql/bin:$PATH" >> /etc/profile.d/mysql.sh [root@node2 ~]# . /etc/profile.d/mysql.sh
掛載NFS
[root@node2 ~]# mount -t nfs 172.16.4.200:/mydata//mydata/
啓動mariadb,而且查看在node1建立的mydb數據庫是否同步。
[root@node2 ~]# service mysqld start [root@node2 ~]# mysql MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.01 sec)
中止mariadb服務,卸載NFS共享
[root@node2 ~]# service mysqld stop [root@node2 ~]# umount /mydata/
建立組
添加mariadb,這裏選擇mysqld
啓動HA_Mariadb組資源,資源自動運行在node2節點
查看資源啓動
[root@node2 ~]# ifconfig eth0:0 eth0:0 Link encap:Ethernet HWaddr00:0C:29:F1:DD:B2 inet addr:172.16.4.1 Bcast:172.16.4.255 Mask:255.255.255.0 UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1 [root@node2 ~]# netstat -lnt | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN [root@node2 ~]# mount | grep /mydata 172.16.4.200:/mydata on /mydata type nfs(rw,vers=4,addr=172.16.4.200,clientaddr=172.16.4.1)
將node2節點設置爲備用以後,資源能夠正常轉移到node1節點