實現拓撲圖:
實驗流程:
-
先對兩主機安裝上corosync和pacemaker
-
兩主機安裝drbd服務,并且設置好drbd的組設備
-
選擇drbd主節點上,進行數據庫的初始化
-
進行資源的定義和配置
-
測試
實驗前,我們還需要做一些準備工作:
1、時間必須保持同步
使用ntp服務器
2、節點必須名稱互相通信
解析節點名稱
/etc/host
集群中使用的主機名為`uname -n`表示的主機名;
3、ping node
僅偶數節點才需要;
4、ssh密鑰認證進行通信;
實驗步驟:
安裝corosync和pacemaker:
yum install corosync pacemaker -y
配置corosync,同時讓pacemaker在corosync以插件的方式運行:
vim /etc/corosync/corosync.conf compatibility: whitetank totem { version: 2 secauth: off threads: 0 interface { ringnumber: 0 bindnetaddr: 172.16.100.0 mcastaddr: 226.94.1.1 mcastport: 5405 ttl: 1 } } service { ver: 0 name: pacemaker } aisexec { user: root group: root } logging { fileline: off to_stderr: no to_logfile: yes to_syslog: yes logfile: /var/log/cluster/corosync.log debug: off timestamp: on logger_subsys { subsys: AMF debug: off } } amf { mode: disabled }
為corosync服務提供密鑰文件:
corosync-keygen
然后,我們需要把這些配置都要往另一個主機上配置一次。
安裝drbd,并且進行全局配置和配置drbd組資源的定義:
這里說明一下,我已經把分區準備好了,且容量一樣,分區為/dev/sdb1
rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm(這個包的后綴要與你uanme -r的一致) vim /etc/drbd.d/global_common.conf 配置drbd全局配置文件 global { usage-count no; # minor-count dialog-refresh disable-ip-verification } common { protocol C; handlers { # These are EXAMPLE handlers only. # They may have severe implications, # like hard resetting the node under certain circumstances. # Be careful when chosing your poison. # local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"; # fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; # split-brain "/usr/lib/drbd/notify-split-brain.sh root"; # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root"; # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k"; # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh; } startup { # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb } options { # cpu-mask on-no-data-accessible } disk { # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes # disk-drain md-flushes resync-rate resync-after al-extents # c-plan-ahead c-delay-target c-fill-target c-max-rate # c-min-rate disk-timeout on-io-error detach; } net { # protocol timeout max-epoch-size max-buffers unplug-watermark # connect-int ping-int sndbuf-size rcvbuf-size ko-count # allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri # after-sb-1pri after-sb-2pri always-asbp rr-conflict # ping-timeout data-integrity-alg tcp-cork on-congestion # congestion-fill congestion-extents csums-alg verify-alg # use-rle cram-hmac-alg "sha1"; shared-secret "mydrbdlab"; } syncer { rate 1000M; } } 配置drbd組資源的配置文件: vim /etc/drbd.d/mysqldata.res resource mysqldata { on www.bwei.com { device /dev/drbd0; disk /dev/sdb1; address 172.16.100.1:7789; meta-disk internal; } on www2.bwei.com { device /dev/drbd0; disk /dev/sdb1; address 172.16.100.5:7789; meta-disk internal; } } drbdadm create-md mysqldata 啟動drbd服務: service drbd start 我們查看drbd的狀態: [root@www drbd.d]# drbd-overview 0:mysqldata/0 Connected Secondary/Secondary Inconsistent/Inconsistent C r----- 我們把一個節點設置成主節點: [root@www drbd.d]# drbdadm -- --overwrite-data-of-peer primary mysqldata [root@www drbd.d]# drbd-overview 0:mysqldata/0 Connected Primary/Secondary UpToDate/UpToDate C r----- 把這個分區進行格式化: mke2fs -t ext4 /dev/drbd0 創建mysql的數據目錄: mkdir /data mount /dev/drbd0 /data mkdir /data/mysql 提供mysql的用戶和組,把數據目錄的屬主和屬組改為mysql: [root@www ~]# groupadd -r mysql -g 360 [root@www ~]# useradd mysql -g mysql -u 360 -r [root@www ~]# chown mysql:mysql /data/mysql/ 接著,我們開始進行數據的初始化: [root@www ~]# tar xf mariadb-10.0.10-linux-x86_64.tar.gz -C /usr/local/ [root@www local]# ln -sv mariadb-10.0.10-linux-x86_64 mysql `mysql' -> `mariadb-10.0.10-linux-x86_64' [root@www local]# mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/ [root@www local]# cp mysql/support-files/my-huge.cnf /etc/my.cnf cp: overwrite `/etc/my.cnf'? y [root@www local]# vim /etc/my.cnf [mysqld] datadir = /data/mysql [root@www local]# cp mysql/support-files/mysql.server /etc/init.d/mysqld [root@www local]# chkconfig --add mysqld [root@www local]# chkconfig mysqld off [root@www local]# service mysqld start Starting MySQL.. [ OK ] [root@www local]# mysql/bin/mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 10.0.10-MariaDB-log MariaDB Server Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> 我們的mysql已經做好了,注意另一個主機也是需要mysql的配置文件和啟動腳本,不需要再進行mysql的初始化了。 下面我們需要安裝crmsh進行資源配置文件的定義: rpm -ivh crmsh-1.2.6-4.el6.x86_64.rpm pssh-2.3.1-2.el6.x86_64.rpm service corosync start crm crm(live)# configure crm(live)configure# property no-quorum-policy=ignore crm(live)configure# property stonith-enabled=false crm(live)configure# verify crm(live)configure# commit crm(live)configure# primitive mysqldrbd ocf:linbit:drbd params drbd_resource=mysqldata op monitor interval=30 role=Master timeout=30 op monitor interval=40 role=Slave timeout=30 op start timeout=240 op stop timeout=100 crm(live)configure#primitive mysqlfs ocf:heartbeat:Filesystem params device=/dev/drbd0 directory=/data/mysql fstype=ext4 op start timeout=60 op stop timeout=60 crm(live)configure# primitive mysqld lsb:mysqld crm(live)configure# primitive mysqlvip ocf:heartbeat:IPaddr params ip=172.16.100.4 crm(live)configure# ms ms_mysqldrbd mysqldrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true crm(live)configure# colocation mysqld_with_mysqlfs inf: mysqld mysqlfs crm(live)configure# crm(live)configure# crm(live)configure# order mysqlfs_after_ms_mysqldrbd inf: ms_mysqldrbd:promote mysqlfs:start crm(live)configure# order mysqld_after_mysqlfs inf: mysqlfs mysqld crm(live)configure# commit crm(live) status Last updated: Thu Nov 5 05:29:23 2015 Last change: Thu Nov 5 05:26:49 2015 via cibadmin on www.bwei.com Stack: classic openais (with plugin) Current DC: www2.bwei.com - partition with quorum Version: 1.1.10-14.el6-368c726 2 Nodes configured, 2 expected votes 5 Resources configured Online: [ www.bwei.com www2.bwei.com ] mysqlfs (ocf::heartbeat:Filesystem): Started www.bwei.com mysqlvip (ocf::heartbeat:IPaddr): Started www.bwei.com Master/Slave Set: ms_mysqldrbd [mysqldrbd] Masters: [ www.bwei.com ] Slaves: [ www2.bwei.com ] mysqld (lsb:mysqld): Started www.bwei.com 這里看出,我們的服務已經配置完畢!!
原創文章,作者:13-廣州-楊過,如若轉載,請注明出處:http://www.www58058.com/9071
不錯,提升余地還有不少,加油