實驗環境:
兩臺mariaDB服務器 172.16.10.20 172.16.10.21
fip:172.16.10.28
MariaDB文件存儲共享:172.16.10.22
實驗準備:
1、兩個節點的主機名稱和對應的IP地址解析服務可以正常工作,且每個節點的主機名稱需要跟"uname -n“命令的結果保持一致
vim /etc/hosts 172.16.10.20 21.xuphoto.com 20xu 172.16.10.21 22.xuphoto.com 21xu Node1: # sed -i 's@\(HOSTNAME=\).*@\121.xuphoto.com@g' # hostname 21.xuphoto.com Node2: # sed -i 's@\(HOSTNAME=\).*@\122.xuphoto.com@g' # hostname 22.xuphoto.com
2、各節點時間保持一致可添加統一NTP服務器同步任務:
crontab -e */3 * * * * /usr/sbin/ntpdate 172.16.0.1 &>/dev/null
3、 各節點間可基於密鑰驗證SSH而無需密碼
ssh-keygen -t rsa ssh-copy-id-i [email protected] # node1 節點 ssh-keygen -t rsa ssh-copy-id-i [email protected] # node1 節點
4、 配置安裝 corosync/pacemaker
yum install corosync pacemaker -y
5、配置安裝drbd
1、提供磁盤空間(2個節點空間大小相同)
fdisk /dev/sda #創建一個5G主分區
2、安裝
rpm -ivh kmod-drbd84-8.4.5-504.1.el6.x86_64.rpm drbd84-utils-8.9.1-1.el6.elrepo.x86_64.rpm
3、通用文件
/etc/drbd.d/global_common.conf
#usage-count no; disk { on-io-error detach; net { cram-hmac-alg "sha1"; #設置密碼算法 shared-secret"UM+B1fJXTqcl14ldvkZ/3Q"# 設置密鑰 syncer { rate 500M; #設置傳輸速率 }
4、創建資源文件 /etc/drbd.d/mysqlnf.res
resource mysqlnfs { device /dev/drbd0; disk /dev/sda4; meta-disk internal; on 20.xuphoto.com { address 172.16.10.20:7789; # }
on 21.xuphoto.com { address 172.16.10.21:7789; }
4、複製配置文件到另外一個服務器;
scp web.res global_common.conf 21xu:/etc/drbd.d/
5、初始化資源;
#drbdadm create-md WEB
6、兩個節點都啓服務
service drbd start ;ssh 21xu 'service drbd start'
7、查看狀態
cat /proc/drbd
8、設置主節點
# drbdadm primary--force resource
使用crm定義規則
crm(live)configure#property no-quorum-policy=ignore #定義全局屬性 crm(live)configure#property stonith-enabled=false #定義全局屬性 crm(live)configure#primitive myip ocf:heartbeat:IPaddr params ip=172.16.10.28 nic=eth0cidr_netmask=16 op monitor interval=20 timeout=20 #定義fip=172.16.10.28 crm(live)#primitive mystor ocf:linbit:drbd params drbd_resource=mysqlfs op monitorrole=Master interval=10s timeout=20 op monitor role=Slave interval=20 timeout=20op start timeout=240 op stop timeout=100 #定義drbd 主資源 crm(live)configure# ms ms_mystor mystor meta clone-max=2 clone-node-max=1 master-max=1master-node-max=1 notify=true # 定義主資源克隆屬性 crm(live)configure# primitive mydata ocf:heartbeat:Filesystem params device=’dev/drbd0’ directory=’/mydata ’fstype=’ext4’op monitor interval=20s timeout=20s opstart timeout=60s op stop timeout=60s #定義掛載點 crm(live)configure#primitive mysql lsb:mysqld op monitor interval=20 timeout=20 #定義mysql資源 crm(live)#colocation mydata_with_ms_mystor_master inf: mydata ms_mystor:Master #定義排列約束 掛載點與drbd master 必須在一起 crm(live)configure#colocation mysql_with_mydata inf: mysql mydata #定義mysql和文件掛載點必須在一起 crm(live)configure#colocation myip_with_mystor_master inf: myip ms_mystor:Master #定義FIP必須和drbd主資源在一起 ordermydata_after_mystor Mandatory: ms_mystor:promote mydata:start #定義順序約束 當drbd切換到Master時才掛載文件系統 ordermysql_after_mydata Mandatory: mydata:start mysql:start #定義順序約束,文件系統掛載完成後mysql才啓動