CentOS 7下DRBD数据同步部署

DRBD数据同步

[root@node1~]#fdisk-l|grep/dev/sdb
Disk/dev/sdb:2147MB,2147483648bytes,4194304sectors
[root@node2~]#fdisk-l|grep/dev/sdb
Disk/dev/sdb:2147MB,2147483648bytes,4194304sectors

[root@node1~]#cat/etc/hosts
127.0.0.1 localhostlocalhost.localdomainlocalhost4localhost4.localdomain4
::1 localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
172.25.0.29node1
172.25.0.30node2

[root@node2~]#cat/etc/hosts
127.0.0.1 localhostlocalhost.localdomainlocalhost4localhost4.localdomain4
::1 localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
172.25.0.29node1
172.25.0.30node2

[root@node1~]#ssh-keygen
[root@node1~]#ssh-copy-idnode2
Theauthenticityofhost'node2(172.25.0.30)'can'tbeestablished.
ECDSAkeyfingerprintisae:88:02:59:f9:7f:e9:4f:48:8d:78:d2:6f:c7:7a:f1.
Areyousureyouwanttocontinueconnecting(yes/no)?yes
/usr/bin/ssh-copy-id:INFO:attemptingtologinwiththenewkey(s),tofilteroutanythatarealreadyinstalled
/usr/bin/ssh-copy-id:WARNING:Allkeyswereskippedbecausetheyalreadyexistontheremotesystem.

[root@node1~]#crontab-e
*/5****ntpdatecn.pool.ntp.org ###添加任务

[root@node1~]#crontab-e
*/5****ntpdatecn.pool.ntp.org ###添加任务

[root@node1~]#crontab-l
*/5****ntpdatecn.pool.ntp.org
[root@node2~]#crontab-l
*/5****ntpdatecn.pool.ntp.org

[root@node1~]#rpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@node1~]#rpm-Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrievinghttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrievinghttp://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Preparing... #################################[100%]
Updating/installing...
1:elrepo-release-7.0-3.el7.elrepo #################################[100%]
[root@node1~]#yuminstall-ykmod-drbd84drbd84-utilskernel* ##装完重启一下

[root@node2~]#rpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@node2~]#rpm-Uvhhttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrievinghttp://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrievinghttp://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Preparing... #################################[100%]
Updating/installing...
1:elrepo-release-7.0-3.el7.elrepo #################################[100%]
[root@node2~]#yuminstall-ykmod-drbd84drbd84-utils kernel*

[root@node1~]#cat/etc/drbd.conf
#Youcanfindanexamplein /usr/share/doc/drbd.../drbd.conf.example
include"drbd.d/global_common.conf";
include"drbd.d/*.res";

[root@node1~]#vim/etc/drbd.d/global_common.conf
global{
usage-countno; #是否参加DRBD使用统计,默认为yes。官方统计drbd的装机量,改为no
#minor-countdialog-refreshdisable-ip-verification
}
common{
protocolC; #使用DRBD的同步协议,添加这一行
handlers{
pri-on-incon-degr"/usr/lib/drbd/notify-pri-on-incon-degr.sh;/usr/lib/drbd/notify-emergency-reboot.sh;echob>/proc/sysrq-trigger;reboot-f";
pri-lost-after-sb"/usr/lib/drbd/notify-pri-lost-after-sb.sh;/usr/lib/drbd/notify-emergency-reboot.sh;echob>/proc/sysrq-trigger;reboot-f";
local-io-error"/usr/lib/drbd/notify-io-error.sh;/usr/lib/drbd/notify-emergency-shutdown.sh;echoo>/proc/sysrq-trigger;halt-f";
###需要把这三行的注释去掉
}
startup{
#wfc-timeoutdegr-wfc-timeoutoutdated-wfc-timeoutwait-after-sb
}
options{
#cpu-maskon-no-data-accessible
}
disk{
on-io-errordetach;#配置I/O错误处理策略为分离,添加这一行
#sizemax-bio-bvecson-io-errorfencingdisk-barrierdisk-flushes
#disk-drainmd-flushesresync-rateresync-afteral-extents
#c-plan-aheadc-delay-targetc-fill-targetc-max-rate
#c-min-ratedisk-timeout
}
net{
#protocoltimeoutmax-epoch-sizemax-buffersunplug-watermark
#connect-intping-intsndbuf-sizercvbuf-sizeko-count
#allow-two-primariescram-hmac-algshared-secretafter-sb-0pri
#after-sb-1priafter-sb-2prialways-asbprr-conflict
#ping-timeoutdata-integrity-algtcp-corkon-congestion
#congestion-fillcongestion-extentscsums-algverify-alg
#use-rle
}
syncer{
rate1024M; #设置主备节点同步时的网络速率,添加这个选项
}
}

[root@node1~]#cat/etc/drbd.d/mysql.res ##这个文件需要自己创建
resourcemysql{#资源名称
protocolC;#使用协议
meta-diskinternal;
device/dev/drbd1;#DRBD设备名称
syncer{
verify-algsha1;#加密算法
}
net{
allow-two-primaries;
}
onnode1{ #hostname一定要设为node1,不然下一步会报错的
disk/dev/sdb; drbd1使用的磁盘分区为"mysql"
address172.25.0.29:7789;#设置DRBD监听地址与端口
}
onnode2{
disk/dev/sdb;
address172.25.0.30:7789;
}
}

[root@node1~]#scp-rp /etc/drbd.d/*node2:/etc/drbd.d/
global_common.conf 100%2621 2.6KB/s 00:00
mysql.res 100% 238 0.2KB/s 00:00

[root@node1~]#drbdadmcreate-mdmysql
Youwantmetocreateav08styleflexible-sizeinternalmetadatablock.
Thereappearstobeav08flexible-sizeinternalmetadatablock
alreadyinplaceon/dev/sdbatbyteoffset2147479552
Doyoureallywanttooverwritetheexistingmeta-data?
[needtotype'yes'toconfirm]yes
md_offset2147479552
al_offset2147446784
bm_offset2147381248
Foundxfsfilesystem
2097052kBdataareaapparentlyused
2097052kBleftusablebycurrentconfiguration
Eventhoughitlookslikethiswouldplacethenewmetadatainto
unusedspace,youstillneedtoconfirm,asthisisonlyaguess.
Doyouwanttoproceed?
[needtotype'yes'toconfirm]yes
initializingactivitylog
initializingbitmap(64KB)toallzero
Writingmetadata...
Newdrbdmetadatablocksuccessfullycreated.
[root@node1~]# modprobedrbd
[root@node1~]#lsmod|grepdrbd
drbd 396875 0
libcrc32c 12644 4xfs,drbd,nf_nat,nf_conntrack
[root@node1~]#drbdadmupmysql
[root@node1~]#drbdadm----forceprimarymysql
查看node1的状态:
[root@node1~]#cat/proc/drbd
version:8.4.10-1(api:1/proto:86-101)
GIT-hash:a4d5de01fffd7e4cde48a080e2c686f9e8cebf4cbuildbymockbuild@,2017-09-1514:23:22
1:cs:WFConnectionro:Primary/Unknownds:UpToDate/DUnknownCr----s
ns:0nr:0dw:0dr:912al:8bm:0lo:0pe:0ua:0ap:0ep:1wo:foos:2097052
Youhavenewmailin/var/spool/mail/root

[root@node2~]#drbdadmcreate-mdmysql
Youwantmetocreateav08styleflexible-sizeinternalmetadatablock.
Thereappearstobeav08flexible-sizeinternalmetadatablock
alreadyinplaceon/dev/sdbatbyteoffset2147479552
Doyoureallywanttooverwritetheexistingmeta-data?
[needtotype'yes'toconfirm]yes
md_offset2147479552
al_offset2147446784
bm_offset2147381248
Foundxfsfilesystem
2097052kBdataareaapparentlyused
2097052kBleftusablebycurrentconfiguration
Eventhoughitlookslikethiswouldplacethenewmetadatainto
unusedspace,youstillneedtoconfirm,asthisisonlyaguess.
Doyouwanttoproceed?
[needtotype'yes'toconfirm]yes
initializingactivitylog
initializingbitmap(64KB)toallzero
Writingmetadata...
Newdrbdmetadatablocksuccessfullycreated.
[root@node2~]#modprobedrbd
[root@node2~]#drbdadmupmysql

[root@node2~]#cat/proc/drbd
version:8.4.10-1(api:1/proto:86-101)
GIT-hash:a4d5de01fffd7e4cde48a080e2c686f9e8cebf4cbuildbymockbuild@,2017-09-1514:23:22
1:cs:SyncTargetro:Secondary/Primaryds:Inconsistent/UpToDateCr-----
ns:0nr:237568dw:237568dr:0al:8bm:0lo:0pe:0ua:0ap:0ep:1wo:foos:1859484
[=>..................]sync'ed:11.6%(1859484/2097052)K
finish:0:00:39speed:47,512(47,512)want:102,400K/sec

[root@node1~]# mkfs.xfs/dev/drbd1
meta-data=/dev/drbd1 isize=512 agcount=4,agsize=131066blks
= sectsz=512 attr=2,projid32bit=1
= crc=1 finobt=0,sparse=0
data = bsize=4096 blocks=524263,imaxpct=25
= sunit=0 swidth=0blks
naming =version2 bsize=4096 ascii-ci=0ftype=1
log =internallog bsize=4096 blocks=2560,version=2
= sectsz=512 sunit=0blks,lazy-count=1
realtime=none extsz=4096 blocks=0,rtextents=0
Youhavenewmailin/var/spool/mail/root
[root@node1~]#mount/dev/drbd1/mnt
[root@node1~]#df-h
Filesystem Size UsedAvailUse%Mountedon
/dev/mapper/cl-root 18G 2.3G 16G 13%/
devtmpfs 226M 0 226M 0%/dev
tmpfs 237M 0 237M 0%/dev/shm
tmpfs 237M 4.6M 232M 2%/run
tmpfs 237M 0 237M 0%/sys/fs/cgroup
/dev/sda1 1014M 197M 818M 20%/boot
tmpfs 48M 0 48M 0%/run/user/0
/dev/drbd1 2.0G 33M 2.0G 2%/mnt

[root@node1~]#drbdadmcstatemysql
Connected

[root@node1~]#drbdadmrole mysql
Primary/Secondary
[root@node1~]# sshnode2"drbdadmrole mysql"
Secondary/Primary
[root@node1~]#cat/proc/drbd
version:8.4.10-1(api:1/proto:86-101)
GIT-hash:a4d5de01fffd7e4cde48a080e2c686f9e8cebf4cbuildbymockbuild@,2017-09-1514:23:22
1:cs:Connectedro:Primary/Secondaryds:UpToDate/UpToDateCr-----
ns:2099100nr:0dw:2048dr:2098449al:9bm:0lo:0pe:0ua:0ap:0ep:1wo:foos:0

[root@node1~]#yuminstallmariadb-servermariadb-y
[root@node2~]#yuminstallmariadb-servermariadb-y

[root@node1~]#cat/etc/my.cnf
[mysqld]
datadir=/mnt
.......
[root@node2~]#cat/etc/my.cnf
[mysqld]
datadir=/mnt
.......

[root@node1~]#chown-Rmysql:mysql/mnt
[root@node1~]#systemctlrestartmariadb
[root@node2~]#chown-Rmysql:mysql/mnt
[root@node2~]#systemctlrestartmariadb

[root@node1~]#mysqld_safe--skip-grant-tables&
[root@node1~]#mysql-uroot
MariaDB[(none)]>createdatabasexiaozhang;
QueryOK,1rowaffected(0.12sec)

[root@node2~]#mysqld_safe--skip-grant-tables&#进入mariadb安全模式

[root@node1/]#systemctlstop mariadb

[root@node1/]#umount/mnt
[root@node1/]# drbdadmsecondarymysql ##降为从
[root@node1/]#drbd-overview
NOTE:drbd-overviewwillbedeprecatedsoon.
Pleaseconsiderusingdrbdtop.
1:mysql/0 ConnectedSecondary/SecondaryUpToDate/UpToDate

[root@node2~]#drbdadmprimarymysql
Youhavenewmailin/var/spool/mail/root
[root@node2~]# drbd-overview
NOTE:drbd-overviewwillbedeprecatedsoon.
Pleaseconsiderusingdrbdtop.
1:mysql/0 ConnectedPrimary/SecondaryUpToDate/UpToDate

[root@node2~]#mount/dev/drbd1 /mnt

[root@node2~]#mysql-uroot

MariaDB[(none)]>showdatabases;
+--------------------+
|Database |
+--------------------+
|information_schema|
|mysql |
|performance_schema|
|test |
|xiaozhang |
+--------------------+
5rowsinset(0.07sec)