DRBD 安裝手冊
1準備磁盤
Execute the command on all nodes
[root@mariadb1 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a8954
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@mariadb1 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
[root@mariadb1 ~]# vgcreate datavg /dev/sdb
Volume group "datavg" successfully created
[root@mariadb1 ~]# lvcreate -L 1G -n marialv datavg ##給大點100M會有在啟動服務時有問題
Logical volume "marialv" created.
[root@mariadb1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
marialv datavg -wi-a----- 100.00m
[root@mariadb2 ~]# ls /dev/datavg/marialv
/dev/datavg/marialv
2 安裝軟件
[root@localhost ~]# ls
drbd84-utils-8.9.8-1.el7.elrepo.x86_64.rpm
drbd84-utils-sysvinit-8.9.8-1.el7.elrepo.x86_64.rpm
kmod-drbd84-8.4.10-1_2.el7_4.elrepo.x86_64.rpm
[root@localhost ~]# yum localinstall drbd84-utils-*
[root@localhost ~]# yum localinstall kmod-drbd84-8.4.10-1_2.el7_4.elrepo.x86_64.rpm
3 配置drbd
[root@localhost drbd.d]# cd /etc
[root@localhost etc]# cat drbd.conf
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
[root@localhost etc]# cd drbd.d
[root@localhost drbd.d]# ls
global_common.conf
[root@localhost drbd.d]# vi global_common.conf
usage-count no;
[root@localhost drbd.d]# vi jian_mariadb.res
[root@mariadb1 drbd.d]# cat jian_mariadb.res
resource mariadb_comm {
protocol B;
device minor 1;
meta-disk internal;
disk /dev/datavg/marialv;
handlers {
split-brain "/usr/lib/drbd/notify-split-brain.sh";
fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}
syncer {
c-plan-ahead 0;
c-max-rate 350M;
c-min-rate 100M;
rate 350M;
al-extents 3389;
}
startup {
wfc-timeout 0;
outdated-wfc-timeout 2;
degr-wfc-timeout 120;
#become-primary-on both;
}
disk {
fencing resource-only;
on-io-error detach;
resync-rate 350M;
}
net {
cram-hmac-alg "sha1"; shared-secret "Anciejhast";
#allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri consensus;
after-sb-2pri disconnect;
verify-alg crc32c;
max-buffers 20000;
max-epoch-size 20000;
sndbuf-size 0;
}
on mariadb1 {
address 192.168.135.153:7001;
}
on mariadb2 {
address 192.168.135.154:7001;
}
}
[root@localhost drbd.d]# cat global_common.conf
# DRBD is the result of over a decade of development by LINBIT.
# In case you need professional services for DRBD or have
# feature requests visit http://www.linbit.com
global {
usage-count no;
# minor-count dialog-refresh disable-ip-verification
# cmd-timeout-short 5; cmd-timeout-medium 121; cmd-timeout-long 600;
}
common {
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.
# pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /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; echo b > /proc/sysrq-trigger ; reboot -f";
# 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 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
}
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
}
}
4初始化磁盤
[root@mariadb1 drbd.d]# drbdadm create-md mariadb_comm
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
5 啟動服務
[root@mariadb1 drbd.d]# systemctl restart drbd
[root@mariadb1 drbd.d]# drbd-overview
1:mariadb_comm/0 Connected Secondary/Secondary Inconsistent/Inconsistent
[root@mariadb1 drbd.d]# drbdadm -- --overwrite-data-of-peer primary mariadb_comm
[root@mariadb2 ~]# drbd-overview
1:mariadb_comm/0 Connected Secondary/Primary UpToDate/UpToDate
6 格式化磁盤
[root@mariadb1 drbd.d]# mkfs.ext4 /dev/drbd1 僅在主執行
[root@mariadb1 drbd.d]# mkdir /mariadata
[root@mariadb1 drbd.d]# mount /dev/drbd1 /mariadata
7 測試數據同步
[root@mariadb1 drbd.d]# cd /mariadata/
[root@mariadb1 mariadata]# touch a
[root@mariadb1 /]# umount /mariadata/ ##must umount the device first
[root@mariadb1 /]# drbdadm secondary mariadb_comm
[root@mariadb2 mariadata]# drbdadm primary mariadb_comm
[root@mariadb2 mariadata]# drbd-overview
1:mariadb_comm/0 Connected Primary/Secondary UpToDate/UpToDate
[root@mariadb2 mariadata]# cd /
[root@mariadb2 /]# mount /dev/drbd
drbd/ drbd1
[root@mariadb2 /]# mount /dev/drbd1 /mariadata/
[root@mariadb2 mariadata]# ls
a lost+found
閱讀更多 代號香蕉 的文章