ืชืจืืื ืืืืืจ ืืืื ืขืจื ืชืืืืช ืืงืืจืก
DRBD (ืืชืงื ืืฉืืืคื ืืฉืืืคื) ืืื ืคืชืจืื ืืืกืื ืืืืืจ, ืืืืฉ ืื ืืชื ืืฉืืคืื ืืื ืืืจืกืื ืขืืืจ ืืื ืืงืก. ืื ืืฉืงืฃ ืืช ืืชืืื ืฉื ืืชืงื ื ืืืืง ืืืื ืืื ื ืื ืงืฉืืืื, ืืืืฆืืช, ืืืฆืขื ืืืกืื ืืืืืื ืืื'. ืืื ืฉืจืชืื. ืืื ืืืฆืจ ืขืืชืงืื ืฉื ื ืชืื ืื ืืฉื ื ืืชืงื ื ืืืกืื ืื ืฉืื ืืื ืืื ื ืืฉื, ื ืืชื ืืืฉืชืืฉ ืื ืชืื ืื ืขื ืืฉื ื.
ืืคืฉืจ ืืืืจ ืฉืื ืืฉืื ืืื
ืืชืืืื, ื ืขืฉื ืฉืืืืฉ ื-DRBD ืืขืืงืจ ืืืฉืืืืืช ืืืฉืืื ืืืื ืืช ืืืืื (HA), ืืืื, ืืื ืืืจืกื XNUMX, ื ืืชื ืืืฉืชืืฉ ืื ืืคืจืืกืช ืคืชืจืื ืืช ืืืกืื ืืขื ื.
ืืืืืจ ืื, ื ืกืืืจ ืืืฆื ืืืชืงืื DRBD ืขื CentOS ืื ืืืื ืืงืฆืจื ืืืฆื ืืืฉืชืืฉ ืื ืืื ืืฉืืคื ืืืกืื (ืืืืฆื) ืขื ืคื ื ืฉื ื ืฉืจืชืื. ืื ืืืืืจ ืืืืฉืื ืืืชืืื ืขื DRBD ืืืื ืืงืก.
ืกืืืืช ืืืืงื
ืื ื ื ืฉืชืืฉ ืืืฉืืื ืฉื ื ืฆืืชืื ืขืืืจ ืืืืจื ืื.
- ืฆืืืช 1: 192.168.56.101 โ tecmint.tecmint.lan
- ืฆืืืช 2: 192.168.56.102 โ server1.tecmint.lan
ืฉืื 1: ืืชืงื ืืืืืืช DRBD
DRBD ืืืืฉื ืืืืืื ืืืืช ืืื ืืงืก. ืืื ืื ืื ืืชืงื ืขืืืจ ืืชืงื ืืืืง ืืืจืืืืื, ืื ืฉืืื ืืืืงื ืืืืง ืืชืืชืื ืฉื ืขืจืืืช ื-I/O ืฉื ืืืขืจืืช.
ื ืืชื ืืืชืงืื DRBD ื-ELRepo ืื EPEL. ื ืชืืื ืืืืืื โโืืคืชื ืืืชืืื ืฉื ืืืืืช ELRepo ืืืืืืจ ืืืืืจ ืืฉื ื ืืฆืืชืื ืืคื ืฉืืืฆื ืืืื.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
ืืืืจ ืืื ืขืืื ืืืชืงืื ืืช ืืืืื ืืืืช DRBD ืืืื ืืฉืืจืืช ืืฉื ื ืืฆืืชืื ืืืืฆืขืืช:
# yum install -y kmod-drbd84 drbd84-utils
ืื ืืคืขืืช ืืช SELinux, ืขืืื ืืืืืืจ ืืืื ืืืช ืืื ืืคืืืจ ืชืืืืื DRBD ืืฉืืืื ื-SELinux.
# semanage permissive -a drbd_t
ืื ืืกืฃ, ืื ืืืขืจืืช ืฉืื ืืคืขืืื ืืืืช ืืฉ (ืืืืช ืืฉ), ืชืฆืืจื ืืืืกืืฃ ืืฆืืืช DRBD 7789 ืืื ืืืคืฉืจ ืกื ืืจืื ื ืชืื ืื ืืื ืฉื ื ืืฆืืชืื.
ืืคืขื ืืช ืืคืงืืืืช ืืืื ืขืืืจ ืืฆืืืช ืืจืืฉืื:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
ืืืืจ ืืื ืืคืขื ืืช ืืคืงืืืืช ืืืืืช ืขืืืจ ืืฆืืืช ืืฉื ื:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
ืฉืื 2: ืืื ืืืกืื ืืจืื ื ืืืื
ืืขืช, ืืืืจ ืฉืืชืงื ืชื ื DRBD ืืฉื ื ืฆืืชื ืืืฉืืืืืช, ืขืืื ื ืืกืคืง ืืื ืฉืืื ืืืกืื ืืืืชื ืืืื ืืขืจื. ืื ืืืืื ืืืืืช ืืืืฆืช ืืื ื ืงืฉืื (ืื ืืื ื ืงืฉืื ืคืืื ืฉืื), ืืชืงื RAID ืชืืื ื,
ืขืืืจ ืืืืจ ืื, ื ืืฆืืจ ืืชืงื ืืืืง ืืืืงื ืื ืคื 2GB ืืืืฆืขืืช ืืคืงืืื dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
ืืื ื ื ืื ืฉืื ืืืืฆื ืฉืืื ื ืืฉืืืืฉ (/dev/sdb1) ืืืชืงื ืืืืง ืฉื ื (/dev/sdb) ืืืืืืจ ืืฉื ื ืืฆืืชืื.
ืฉืื 3. ืืืืจืช DRBD
ืงืืืฅ ืืชืฆืืจื ืืจืืฉื ืฉื DRBD - /etc/drbd.conf
, ืื ืืชื ืืืฆืื ืงืืืฆื ืชืฆืืจื ื ืืกืคืื ืืกืคืจืืื /etc/drbd.d
.
ืืื ืืฉืืคื ืืช ืืืืกืื, ืขืืื ื ืืืืกืืฃ ืืช ืืชืฆืืจืืช ืืืจืืฉืืช ืืงืืืฅ /etc/drbd.d/global_common.conf
, ืฉืืืื ืืืงืื ืืืืืืืื ืืืืืืื ืฉื ืชืฆืืจืช DRBD, ืืขืืื ื ืืืืืืจ ืืฉืืืื ื .res
ืงืืฆืื.
ืืืื ื ืขืฉื ืขืืชืง ืืืืื ืฉื ืืงืืืฅ ืืืงืืจื ืืฉื ื ืืฆืืชืื, ืืืืืจ ืืื ื ืคืชื ืืช ืืงืืืฅ ืืืืฉ ืืขืจืืื (ืืฉืชืืฉ ืืขืืจื ืืงืกื ืืืืืจืชื).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf
ืืืกืฃ ืืช ืืฉืืจืืช ืืืืืช ืืฉื ื ืืงืืฆืื:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
ืฉืืืจ ืืช ืืงืืืฅ ืืืืืจ ืืื ืกืืืจ ืืช ืืขืืจื.
ืืืื ื ืกืชืื ืืจืืข ืขื ืงื ืืคืจืืืืงืื C. DRBD ืชืืื ืืฉืืืฉื ืืฆืื ืฉืืคืื ืฉืื ืื (ืืืืืจ, ืฉืืืฉ ืืจืืืช ืฉื ืกื ืืจืื ืฉืืคืื), ืืืืืจ:
- ืคืจืืืืงืื ื': ืคืจืืืืงืื ืฉืืคืื ืืกืื ืืจืื ื; ืืฉืืฉ ืืจืื ืืชืจืืืฉื ืฉืืคืื ืืืจืืงืื ืืจืืืื.
- ืคืจืืืืงืื B: ืคืจืืืืงืื ืฉืืคืื ืืฆื ืกืื ืืจืื ื ืื ืคืจืืืืงืื ืืืืจืื ืกืื ืืจืื ื.
- ืคืจืืืืงืื C: ืืฉืืฉ ืืืจื ืืื ืืฆืืชืื ืืจืฉืชืืช ืขื ืืจืืงืื ืงืฆืจืื; ืืื ืืื ืกืคืง ืคืจืืืืงืื ืืฉืืคืื ืื ืคืืฅ ืืืืชืจ ืืืืืจืืช DRBD.
ืื ืืฉืื: ืืืืืจื ืืคืจืืืืงืื ืืฉืืคืื ืืฉืคืืขื ืขื ืฉื ื ืืืจืื ืคืจืืกื: ืืืืื ืืืฉืืืื. ืืขืืืช ืืืช, ืืชืคืืงื ืืื ื ืชืืืื ืืืืคื ืืฉืืขืืชื ืืคืจืืืืงืื ืืฉืืคืื ืฉื ืืืจ.
ืฉืื 4: ืืืกืฃ ืืฉืื
ืืฉืื ืืื ืืื ื ืื ืืืชืืืืก ืืื ืืืืืืื ืฉื ืืขืจื ื ืชืื ืื ืืฉืืืคื ืืกืืื. ื ืืืืจ ืืช ืืืฉืื ืฉืื ื ืืงืืืฅ /etc/drbd.d/test.res
.
ืืืกืฃ ืืช ืืืืจืื ืืืืื ืืงืืืฅ ืืฉื ื ืืฆืืชืื (ืืืืจ ืืืืืืฃ ืืช ืืืฉืชื ืื ืืขืจืืื ืืคืืขื ืขืืืจ ืืกืืืื ืฉืื).
ืฉืืื ืื ืืฉืืืช ืืืืจื, ืขืืื ื ืืฆืืื ืืช ืฉื ืืืืจื ืฉื ืืจืฉืช, ืืืชื ื ืืชื ืืืฉืื ืืืืฆืขืืช ืืคืงืืื uname -n
.
resource test {
on tecmint.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.102:7789;
}
}
}
ืฉื:
- ืขื ืฉื ืืืจื: ืืืงืืข ืขื ืฉืขืืื ืืื ืืฆืืจืช ืืชืฆืืจื ืืืงืื ื ืช.
- ืืืื: ืื ืืฉื ืฉื ืืืฉืื ืืืืฉ.
- ืืืฉืืจ /dev/drbd0: ืืฆืืื ืืืฉืืจ ืืืืง ืืืจืืืืื ืืืฉ ืืื ืืื ืขื ืืื DRBD.
- ืืืกืง /dev/sdb1: ืืืื ืืืืฆืช ืืืฉืืจ ืืกืืื ืฉืืื ืืชืงื ืืืืื ืขืืืจ ืืชืงื DRBD.
- ืืื-ืืืกืง: ืืืืืจ ืืืื DRBD ืืืืกื ืืช ืืืื ื ืชืื ืื ืฉืื. ืคื ืืื ืคืืจืืฉื ืฉ-DRBD ืืืืกื ืืช ืืืื ื ืชืื ืื ืฉืื ืืืืชื ืืืฉืืจ ืคืืื ืืจืื ื ืืืื ืืื ืื ืชืื ืื ืืคืืขื ืืืืฆืืจ.
- ืืชืืืช: ืืฆืืื ืืช ืืชืืืช ื-IP ืืืกืคืจ ืืืฆืืื ืฉื ืืฆืืืช ืืืชืืื.
ืฉืื ืื ืื ืฉืื ืืคืจืืืจืื ืืฉ ืืืชื ืขืจืืื ืืฉื ื ืืืืจืืื, ืืชื ืืืื ืืฆืืื ืืืชื ืืฉืืจืืช ืืกืขืืฃ ืืืฉืืืื.
ืืืืืื, ื ืืชื ืืฉื ืืช ืืช ืืชืฆืืจื ืฉืืขืื ื:
resource test {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on tecmint.tecmint.lan {
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
address 192.168.56.102:7789;
}
}
ืฉืื 5. ืืชืืื ืืืคืขื ืืช ืืืฉืื
ืืื ืืืฆืืจ ืืื ืืจืืงืฆืื ืขื DRBD ื ืฉืชืืฉ ืืืื ืื ืืืื ืืืืื (ืืืงืืืืื ืืื ืืจืืงืฆืื ืขื ืืืืื ืืืืื ืืื ืืืืืืจ ืืื ืื ืืฉืืื DRBD):
- ืืจืืืื: ืืื ื ืืืื ืืจืื ืืืืื ืฉื DRBD.
- drbdsetup: ืืื ื ืืืื ืืจืื ื ืืืื ืืืชืจ ืืืืืืจ ืืชืงื ื DRBD ืืืชืงื ื ืืืืืื ืฉืืื, ืืืืจืช ืืืืืช ืฉื ืืชืงื ื DRBD ืื ืฉืืฉืงืคื ืืช ืืชืงื ื ืืืืืื ืฉืืื, ืืืืืืืช ืืชืฆืืจื ืฉื ืืคืขืืช ืืชืงื ื DRBD.
- ืืจืืืืื: ืืื ืื ืืืื ืืื ื ืชืื ืื.
ืืืืจ ืืืกืคืช ืื ืชืฆืืจืืช ืืืฉืื ืืจืืฉืื ืืืช, ืขืืื ื ืืืคืขืื ืืช ืืืฉืื ืืฉื ื ืืฆืืชืื.
# drbdadm create-md test
ืืชืืื ืืืืจ ืืืื ื ืชืื ืื
ืืืืจ ืืื ืขืืื ื ืืืคืขืื ืืืชื, ืฉืืืืจ ืืช ืืืฉืื ืืืชืงื ืืืืืื ืฉืื, ืืื ืืืืืืจ ืืช ืคืจืืืจื ืืฉืืคืื ืืืืืจ ืืช ืืืฉืื ืืขืืืชื:
# drbdadm up test
ืขืืฉืื ืื ืชืคืขืื ืืช ืืคืงืืื /dev/sdb1
:
# lsblk
ืจืฉืืื ืฉื ืืชืงื ื ืืกืืื
ืืื ืืืฉืืืช ืืฉืื, ืืคืขื:
# drbdadm down test
ืืื ืืืืืง ืืช ืืืฆื ืฉื ืืฉืื, ืืคืขื ืืช ืืคืงืืื ืืืื (ืฉืื ืื ืฉืืฆื ืืืืกืงืื ืฆืคืื ืืฉืื ืื ืื ืขืงืื/ืื ืขืงืื):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status
ืืืืงืช ืืฆื ืฉื ืืฉืื ื-
ืจืืข
ืฉืื 6: ืืืืจ ืืช ืืืฉืื ืืจืืฉื/ืืงืืจ ืกื ืืจืื ืืืชืงื ืืจืืฉืื ื
ืืฉืื ืื, DRBD ืืืื ืืฆืืช ืืืจื. ืืขืช ืขืืื ื ืืฆืืื ืืืืื ืฆืืืช ืืฉ ืืืฉืชืืฉ ืืืงืืจ ืืกื ืืจืื ืืืืฉืืจ ืืจืืฉืื ื.
ืืคืขื ืืช ืืคืงืืื ืืืื ืขื ืฆืืืช ืืื ืืืื ืืื ืืืชืืื ืืช ืืกื ืืจืื ืืืื ืืจืืฉืื ื:
# drbdadm primary --force test
# drbdadm status test
ืืืืจืช ืืฆืืืช ืืจืืฉื ืืืชืงื ืืจืืฉืื ื
ืืืืจ ืืฉืืืช ืืกื ืืจืื, ืืืฆื ืฉื ืฉื ื ืืืื ื ืื ืฆืจืื ืืืืืช UpToDate.
ืฉืื 7: ืืืืงืช ืืืืจืช DRBD
ืืืกืืฃ, ืขืืื ื ืืืืืง ืื ืืืฉืืจ ื-DRBD ืืขืืื ืืคื ืืฆืืจื ืืื ืืืืกื ืืช ืื ืชืื ืื ืืืฉืืืคืืื. ืืืืจ ืฉืืฉืชืืฉื ื ืื ืคื ืืืกืง ืจืืง, ืืื ืขืืื ื ืืืฆืืจ ืืขืจืืช ืงืืฆืื ืืืืฉืืจ ืืืืขืื ืืืชื ืืื ืืืืืง ืื ื ืืื ืืืฉืชืืฉ ืื ืืืืกืื ื ืชืื ืื ืืฉืืืคืืื.
ืขืืื ื ืืืฆืืจ ืืขืจืืช ืงืืฆืื ืืืืฉืืจ ืืืืฆืขืืช ืืคืงืืื ืืืื ืืฆืืืช ืฉืื ืืชืืื ื ืืช ืืกื ืืจืื ืืืื ืืจืืฉืื ื (ืฉืืฉ ืื ืืฉืื ืขื ืืชืคืงืื ืืจืืฉื):
# mkfs -t ext4 /dev/drbd0
ืืฆืืจืช ืืขืจืืช ืงืืฆืื ืขื ืืืฆืขื ืืืืกืื Drbd
ืืืืจ ืืื ืืจืื ืืืชื ืืคื ืฉืืืฆื (ืชืืื ืืชืช ืื ืงืืืช ืืืจืืื ืฉื ืืชืืื):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
ืืขืช ืืขืชืง ืื ืฆืืจ ืืื ืงืืฆืื ืื ืงืืืช ืืืจืืื ืฉืืืขืื ืืฆืืจ ืจืฉืืื ืืจืืื ืืืชื
# cd /mnt/DRDB_PRI/
# ls -l
ืจืฉืื ืืช ืืชืืื ืฉื ืืืจื ืืจืืฉื ืฉื Drbd
ืืืืจ ืืื, ืืื ืืช ืืขืื ืช ืืืชืงื (ืืื ืฉื-mount ืืื ื ืคืชืื, ืฉื ื ืืช ืืกืคืจืืื ืืืืจ ืืืืื ืืืขืื ื ืืื ืืื ืืข ืฉืืืืืช) ืืฉื ื ืืช ืชืคืงืื ืืฆืืืช ืืจืืฉื ืืืฉื ื:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test
ืืคืื ืืช ืืฆืืืช ืืฉื ื (ืฉืืฉ ืื ืืฉืื ืขื ืชืคืงืื ืืฉื ื) ืืจืืฉื, ืืื ืฆืจืฃ ืืืื ืืืฉืืจ ืืื ืคืง ืจืฉืืื ืืจืืื ืฉื ื ืงืืืืช ืืจืืื. ืื ืืืืืจื ืขืืืืช ืืื ืฉืฆืจืื, ืื ืืงืืฆืื ืืืืืืกื ืื ืืืืืืื ืฆืจืืืื ืืืืืช ืฉื:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l
ืืืืงืช ืืืืจืช DRBD ืืคืืขืืช ืืฆืืืช ืืืฉื ื.
ืืืืืข ื ืืกืฃ, ืขืืื ืืืคื ืืขืืจื ืฉื ืืื ืื ืืืื:
# man drbdadm
# man drbdsetup
# man drbdmeta
ืขืืจื:
ืชืงืฆืืจ
DRBD ืืื ืืืืฉ ืืจื-ืชืืืืชื ืืืืืื, ืื ืฉืืืคื ืืืชื ืืคืชืจืื ืฉืืคืื ืืืกืื ืืืชืืื ืืืืกืคืช HA ืืืขื ืืื ืืืฉืื. ืืืืืจ ืื ืืจืืื ื ืืืฆื ืืืชืงืื DRBD ืขื CentOS 7 ืืืืืื ื ืืงืฆืจื ืืืฆื ืืืฉืชืืฉ ืื ืืฉืืคืื ืืืกืื. ืื ืชืืกืก ืืฉืชืฃ ืืืชื ื ืืืืฉืืืชืื ืืืืฆืขืืช ืืืคืก ืืืฉืื ืืืื.
ืืงืืจ: www.habr.com