標籤:heartbeat nfs mysql
目錄
一、環境準備
二、拓撲準備
三、安裝與配置heartbrat
四、配置NFS服務
五、安裝與配置mysql
六、crm配置資源
一、環境準備
1.作業系統
redhat 5.4 i386 位系統
2.軟體環境
mysql-5.5.20
heartbeat-2.1.4-11.el5.i386.rpm
heartbeat-pils-2.1.4-11.el5.i386.rpm
heartbeat-stonith-2.1.4-11.el5.i386.rpm
heartbeat-gui-2.1.4-11.el5.i386.rpm
額外依賴包:libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm
3.高可用叢集使用條件
(1).節點名稱必須跟 uname -n 命令的執行結果一致
node1:# uname -n node1.example.com # vim /etc/hosts 192.168.0.101 node1.example.com node1 192.168.0.102 node2.example.com node2node2:# uname -n node2.example.com #vim /etc/hosts 192.168.0.101 node1.example.com node1 192.168.0.102 node2.example.com node2
(2).各節點之間ssh互信
node1: #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘ #ssh-copy-id -i .ssh/id_rsa.pub [email protected] node2: #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘ #ssh-copy-id -i .ssh/id_rsa.pub [email protected]
(3).各節點之間時間同步
node1: # ntpdate -u 210.72.145.44#crontab -e*/30 * * * * /sbin/ntpdate -u 210.72.145.44 node2: # ntpdate -u 210.72.145.44#crontab -e*/30 * * * * /sbin/ntpdate -u 210.72.145.44 210.72.145.44是中國國家授時中心的官方伺服器
4.增加EPEL yum源
node1,node2:# wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm # rpm -ivh epel-release-5-4.noarch.rpm # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 # yum list
5.關閉防火牆與SELinux
node1,node2: # service iptables stop # vim /etc/selinux/config SELINUX=disabled
二、拓撲準備
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/41/EA/wKiom1PWah_DLIMiAAFImGr7U5o839.jpg" title="0.png" alt="wKiom1PWah_DLIMiAAFImGr7U5o839.jpg" />
三、安裝與配置heartbrat
1.heartbeat v2安裝與配置
(1).安裝heartbrat
node1:# yum -y install heartbeat* ( --skip-broken 可能需要參數)node2:# yum -y install heartbeat*
(2).配置heartbeat
說明:預設安裝好heartbeat沒有設定檔,但是範例檔案# cd /usr/share/doc/heartbeat-2.1.4/ #cp authkeys ha.cf /etc/ha.d/注:這裡我們只需要兩個檔案,ha.cf 與 authkeys#cd /etc/ha.d/# dd if=/dev/random bs=512count=1| openssl md5 #產生密鑰隨機數 a4d20b0dd3d5e35e0f87ce4266d1dd64 #chmod 600 authkeys# vim /etc/ha.d/authkeys auth 1 1 md5 a4d20b0dd3d5e35e0f87ce4266d1dd64# chmod 600 authkeys #修改密鑰檔案的許可權為600# vim ha.cf 主要修改兩處(其它都可以預設): (1).修改心跳資訊的傳播方式(這裡是組播) mcast eth0 225.100.100.100 694 1 0 (2).配置叢集中的節點數 node node1.example.com node node2.example.com (3).啟用crm crm on2.複製以上兩個設定檔到node2上# scp authkeys ha.cf node2:/etc/ha.d/3.啟動節點# ssh node2 "service heartbeat start" # service heartbeat start 4.查看一下連接埠node1:# netstat -ntulp Active Internet connections (only servers) tcp 0 0 0.0.0.0:5560 0.0.0.0:* LISTEN 3170/mgmtd tnode2:# netstat -ntulp tcp 0 0 0.0.0.0:5560 0.0.0.0:* LISTEN 3170/mgmtd t註:上面連接埠號碼5560可以看出,heartbeat已經正常啟動。5.查看一下叢集狀態註:兩個節點都線上,資源暫時還沒有配置。
6.測試一下hb_gui圖形配置介面
# hb_gui &
註:必須在dc目錄上配置叢集。
四、配置NFS服務
1.建立LVM邏輯卷(用來存放mysql資料檔案)
# pvcreate /dev/sdb #建立物理卷 # vgcreate myvg /dev/sdb #建立卷組 # lvcreate -L 10G -n mydata myvg #建立邏輯卷 # mkfs.ext3 /dev/myvg/mydata #格式化邏輯卷 # lvs #查看邏輯卷 # mkdir /mydata #建立掛載目錄 # mount /dev/myvg/mydata /mydata/ #掛載 # cd /mydata/ #進入掛載目錄 # mkdir data #建立資料目錄
2.建立mysql的使用者與mysql組
node1,node2,nfs:(三個節點都要建立相同的使用者與組)(1).建立mysql組 # groupadd -g 3306 mysql(2).建立mysql使用者 # useradd -u 3306 -g mysql -s /sbin/nologin -M mysql(3).查看# id mysql uid=3306(mysql) gid=3306(mysql) groups=3306(mysql)
說明:在node1與node2也要建立相同的使用者和組
3.修改資料目錄的使用者與組
# chow -R mysql.mysql /mydata/data/ # ll /mydata/ 總計 12 drwxr-xr-x 6 mysql mysql 4096 08-12 13:40 data
4.修改nfs設定檔
# vim /etc/exports /mydata 192.168.0.0/24(no_root_squash,rw,async)
5.重新輸出一下nfs
# exportfs -arv exporting 192.168.0.0/24:/mydata
6.查看輸出的nfs共用儲存
# showmount -e 192.168.0.208 Export list for 192.168.0.208: /mydata 192.168.0.0/24
7.測試掛載
node1:# mkdir /mydata # mount -t nfs 192.168.0.100:/mydata/ /mydata/ # ll /mydata/ total 12 drwxr-xr-x 6 mysql mysql 4096 Aug 12 13:40 datanode2:#mkdir /mydata # mount -t nfs 192.168.0.100:/mydata/ /mydata/ # ll /mydata/ total 12 drwxr-xr-x 6 mysql mysql 4096 Aug 12 13:50 data
五、安裝與配置mysql
node1:
1.解壓並連結mysql
# tar -zxvf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local/ #直接解壓到/usr/local目錄下 # ln -sv mysql-5.5.33-linux2.6-x86_64 mysql #設定一個軟連結 # cd /usr/local/mysql #chown root:mysql *
2.初始化mysql
# /usr/local/mysql/scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql
3.提供mysql設定檔
# cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf # vim /etc/my.cnf datadir = /mydata/data #指定資料目錄 innodb_file_per_table = 1 #innodb表單獨資料表空間
4.提供mysql啟動指令碼
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # chmod +x /etc/init.d/mysqld
5.啟動mysql
# service mysqld start Starting MySQL... [ OK ]
6.查看資料目錄
# mount /dev/sda2 on / type ext3 (rw) 192.168.0.100:/mydata/ on /mydata type nfs (rw,addr=192.168.0.100) # cd /mydata/data/ # ll total 28784 -rw-rw---- 1 mysql mysql 18874368 Aug 12 13:40 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Aug 12 14:27 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Aug 12 08:05 ib_logfile1 -rw-r--r-- 1 root root 4721 Aug 12 07:55 my.cnf drwx------ 2 mysql mysql 4096 Aug 12 08:07 mydb drwx------ 2 mysql root 4096 Aug 12 07:39 mysql -rw-rw---- 1 mysql mysql 126 Aug 12 13:40 mysql-bin.000001 -rw-rw---- 1 mysql mysql 19 Aug 12 13:18 mysql-bin.index -rw-r----- 1 mysql root 18748 Aug 12 14:28 node1.example.com.err -rw-rw---- 1 mysql mysql 6 Aug 12 14:27 node1.example.com.pid drwx------ 2 mysql mysql 4096 Aug 12 07:39 performance_schema drwx------ 2 mysql root 4096 Aug 12 07:39 test
7.登入測試一下
# mysql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.02 sec)
註:node1節點mysql配置完成,下面我們來配置node2
node2:
1.卸載資料檔案目錄
# service mysqld stop [ OK ] # cd # umount /mydata/
2.掛載資料目錄到node2上
# mount -t nfs 192.168.0.100:/mydata/ /mydata/ # mount 192.168.0.100:/mydata/ on /mydata type nfs (rw,addr=192.168.0.100) # cd /mydata/data/ # ll total 28780 -rw-rw---- 1 mysql mysql 18874368 Aug 12 14:30 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Aug 12 14:30 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Aug 12 08:05 ib_logfile1 -rw-r--r-- 1 root root 4721 Aug 12 07:55 my.cnf drwx------ 2 mysql mysql 4096 Aug 12 08:07 mydb drwx------ 2 mysql root 4096 Aug 12 07:39 mysql -rw-rw---- 1 mysql mysql 126 Aug 12 13:40 mysql-bin.000001 -rw-rw---- 1 mysql mysql 19 Aug 12 13:18 mysql-bin.index -rw-r----- 1 mysql root 19162 Aug 12 14:30 node1.example.com.err -rw-r----- 1 mysql root 4442 Aug 12 13:40 node2.example.com.err drwx------ 2 mysql mysql 4096 Aug 12 07:39 performance_schema drwx------ 2 mysql root 4096 Aug 12 07:39 test
3.將設定檔與啟動指令碼複製到node2上
# scp /etc/my.cnf node2:/etc/ my.cnf 100% 4721 4.6KB/s 00:00 # scp /etc/init.d/mysqld node2:/etc/init.d/ mysqld 100% 11KB 10.6KB/s 00:004.啟動mysql# service mysqld start Starting MySQL.. [ OK ]
5.登入並查看
# mysql mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mydb | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.01 sec)
6.停止mysql並卸載資料目錄
# service mysqld stop Shutting down MySQL. [ OK ] # cd # umount /mydata/
註:到這裡mysql配置全部完成,下面我們來具體配置一下,高可用的mysql叢集
1.為hacluster使用者佈建密碼
# echo "123456" |passwd --stdin hacluster
2.啟動heartbeat 圖形化介面配置mysql高可用叢集資源
# hb_gui &
3.開啟heartbeat運行狀態檢測器
#crm_mon 監視heartbeat運行情況 Last updated: Mon Jul 28 23:54:16 2014Current DC: node2.example.com (ea4acb13-d59e-4948-b17b-18177d30e6ca)2 Nodes configured.1 Resources configured.============Node: node2.example.com (ea4acb13-d59e-4948-b17b-18177d30e6ca): standbyNode: node1.example.com (8b2d315f-af4e-4b91-a14d-105103ba6004): online
以下為配置mysql高可用叢集資源的
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/41/EB/wKioL1PWa5vAQyQGAAF8mXzxjkU659.jpg" style="float:none;" title="1.png" alt="wKioL1PWa5vAQyQGAAF8mXzxjkU659.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/41/EB/wKioL1PWa52SC0UUAAI0ZwIRlIY404.jpg" style="float:none;" title="2.png" alt="wKioL1PWa52SC0UUAAI0ZwIRlIY404.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/41/EA/wKiom1PWaoWQ568LAAOZ0_7M5Qw601.jpg" style="float:none;" title="3.png" alt="wKiom1PWaoWQ568LAAOZ0_7M5Qw601.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/41/EA/wKiom1PWaomS5ooxAAOUwuF2Zag003.jpg" style="float:none;" title="4.png" alt="wKiom1PWaomS5ooxAAOUwuF2Zag003.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/41/EA/wKiom1PWaouizwTtAAOQzyougOc704.jpg" style="float:none;" title="5.png" alt="wKiom1PWaouizwTtAAOQzyougOc704.jpg" />
從可以看出node2為主節點,所有資源在node2中
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/41/EA/wKiom1PWao-i8l4TAAHBzeaKBg4845.jpg" style="float:none;" title="7.png" alt="wKiom1PWao-i8l4TAAHBzeaKBg4845.jpg" />
切換node2為備用節點:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/41/EA/wKiom1PWapDwVLrXAAItIFwkUfE191.jpg" style="float:none;" title="8.png" alt="wKiom1PWapDwVLrXAAItIFwkUfE191.jpg" />
從可以看出node1為主節點,所有資源在node1中
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/41/EA/wKiom1PWaoCjvcgIAAHH1vi4TQs989.jpg" title="9.png" style="float:none;" alt="wKiom1PWaoCjvcgIAAHH1vi4TQs989.jpg" />
至此,本實驗結束。
本文出自 “天行健,君子自強不息” 部落格,請務必保留此出處http://feilong0663.blog.51cto.com/3265903/1531806