在CentOS 8 | RHEL 8上安装和配置DRBD
这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。
以PDF格式下载指南
关
这是续集。
这是续集。
这是续集。
这是在CentOS 8 / RHEL 8 Linux服务器上安装分布式复制块设备(DRBD)的分步指南。 DRBD是一种免费的,开源的,基于软件的复制存储解决方案,用于在网络中的主机之间镜像块设备的内容,例如磁盘分区,硬盘和逻辑卷。
DRBD的核心功能由具有虚拟块设备驱动程序的Linux内核模块实现。 DRBD在系统I / O堆栈的底部附近,非常灵活且用途广泛,使其成为实现高可用性复制解决方案的理想解决方案。
安装DRBD可为您提供一组与内核模块进行通信的管理工具,以配置和管理您的DRBD资源。
- 德布达姆:这是DRBD程序套件的高级管理工具。
- drbdsetup:此工具用于配置内核中加载的DRBD模块
- b:用于创建,转储,还原和修改DRBD元数据结构
DRBD如何镜像数据:
- 实时..当应用程序修改设备上存储的数据时,复制将继续。
- 透明地..该应用程序不知道数据存储在网络中的多个主机上。
- 同步中 要么 异步地..使用同步镜像,当所有主机上的写入完成时,将通知应用程序。对于异步镜像,当本地完成写入时,将通知应用程序写入已完成。通常是在将写传播到其他主机之前。
步骤1:在CentOS 8上安装DRBD | RHEL 8 Linux
必须在CentOS 8 / RHEL 8 Linux上手动安装DRBD软件包。安装使用带有用于企业Linux的其他软件包的ELRepo存储库。
运行以下命令以将ELRepo存储库添加到CentOS / RHEL 8系统。
sudo dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
–将存储库添加到系统后,即可导入公共密钥。
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
搜索DRBD软件包并验证配置。
$ sudo dnf search drbd
ELRepo.org Community Enterprise Linux Repository - el8 338 kB/s | 264 kB 00:00
================================================================== Name & Summary Matched: drbd ==================================================================
kmod-drbd90.x86_64 : drbd90 kernel module(s)
drbd90-utils.x86_64 : Management utilities for DRBD
drbd90-utils-sysvinit.x86_64 : The SysV initscript to manage the DRBD.
您现在可以在CentOS 8 Linux上将DRBD与内核模块一起安装。
sudo dnf install vim drbd90-utils kmod-drbd90
通过运行命令,在显示的提示符下接受安装。
Dependencies resolved.
========================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================
Installing:
kmod-drbd90 x86_64 9.0.21-3.el8_2.elrepo elrepo 292 k
drbd90-utils x86_64 9.10.0-2.el8.elrepo elrepo 753 k
Upgrading:
dracut x86_64 049-70.git20200228.el8 BaseOS 365 k
dracut-network x86_64 049-70.git20200228.el8 BaseOS 100 k
dracut-squash x86_64 049-70.git20200228.el8 BaseOS 54 k
iptables x86_64 1.8.4-10.el8 BaseOS 581 k
iptables-ebtables x86_64 1.8.4-10.el8 BaseOS 70 k
iptables-libs x86_64 1.8.4-10.el8 BaseOS 105 k
kexec-tools x86_64 2.0.20-14.el8 BaseOS 485 k
libnftnl x86_64 1.1.5-4.el8 BaseOS 83 k
linux-firmware noarch 20191202-97.gite8a0f4c9.el8 BaseOS 72 M
systemd x86_64 239-30.el8_2 BaseOS 3.5 M
systemd-libs x86_64 239-30.el8_2 BaseOS 1.1 M
systemd-pam x86_64 239-30.el8_2 BaseOS 449 k
systemd-udev x86_64 239-30.el8_2 BaseOS 1.3 M
Installing dependencies:
kernel-core x86_64 4.18.0-193.6.3.el8_2 BaseOS 28 M
Transaction Summary
========================================================================================================================================================
Install 3 Packages
Upgrade 13 Packages
Total download size: 109 M
Is this ok [y/N]: y
使用默认的SELinux安全策略,DRBD邮件可能无法运行,并且您可能需要从SELinux控件中排除DRBD进程。
sudo dnf -y install policycoreutils-python-utils
sudo semanage permissive -a drbd_t
在防火墙上启用DRBD服务端口。
sudo firewall-cmd --add-port=6996-7800/tcp --permanent
sudo firewall-cmd --reload
步骤2:准备较低的存储空间
如果在CentOS / RHEL 8 Linux系统上安装了DRBD,则可以使用DRBD在两台服务器之间配置复制的存储。
您应该在两个群集节点上保留大约相同大小的存储空间,以用作DRBD资源的子设备。易于使用的块设备有:
- 硬盘分区(或完整的物理硬盘)
- 软件RAID设备
- LVM逻辑卷
- 系统检测到的其他块设备类型。
在我的设置中,我有两台具有以下详细信息的服务器。
服务器名称 | 服务器IP | 原始磁盘设备 |
server-01.computingforgeeks.com | 192.168.20.11 | / dev / sdb |
server-02.computingforgeeks.com | 192.168.20.12 | / dev / sdb |
这是服务器的磁盘布局:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 19.1G 0 disk
├─sda1 8:1 0 19G 0 part /
├─sda14 8:14 0 1M 0 part
└─sda15 8:15 0 64M 0 part /boot/efi
sdb 8:16 0 50G 0 disk
sr0 11:0 1 1024M 0 rom
使用LVM创建DRBD卷组,以便以后扩展。这是在装有RAW磁盘和DRBD的服务器上完成的。
在磁盘上创建一个分区表。
sudo parted -s -a optimal -- /dev/sdb mklabel gpt
sudo parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
sudo parted -s -- /dev/sdb align-check optimal 1
安装LVM工具并为DRBD创建PV,VG和LV。
$ sudo dnf -y install lvm2 $ sudo pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. $ sudo vgcreate drbdpool /dev/sdb1 Volume group "drbdpool" successfully created $ sudo lvcreate -n drbdata -l100%FREE drbdpool Logical volume "drbdata" created.
检查LVM设置。
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 drbdpool lvm2 a-- <50.00g <50.00g
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
drbdpool 1 0 0 wz--n- <50.00g <50.00g
步骤3:配置DRBD资源
DRBD的各个方面 /etc/drbd.conf 具有以下内容的配置文件。
$ cat /etc/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";
这只是一个框架文件,它告诉服务哪些目录寻找其他配置文件。
在下面创建一个新的配置文件 /etc/drbd.d/r0.res
sudo vim /etc/drbd.d/resource0.res
具有以下内容:
resource resource0 {
on server-01.computingforgeeks.com {
device /dev/drbd1;
disk /dev/mapper/drbdpool-drbdata;
address 95.217.209.209:7789;
meta-disk internal;
}
on server-02.computingforgeeks.com {
device /dev/drbd1;
disk /dev/mapper/drbdpool-drbdata;
address 95.217.220.167:7789;
meta-disk internal;
}
}
配置概述:
- 集群由两个节点组成。server01'和'server02‘
- 有任何名称的资源 资源0 用 / dev / mapper / drbdpool-drbdata 配置为从属设备, 内部元数据..
- 资源使用TCP端口 7789 对于网络连接,绑定到IP地址192.168.20.11和192.168.20.12。
- server-01.computingforgeeks.com和server-02.computingforgeeks.com是下面显示的正确服务器主机名。
uname -a
步骤4:初始化DRDB资源
完成资源的初始配置后,您可以启动资源。只能执行一次。
必须在两个节点上完成以下步骤。
初始化DRBD元数据–语法:drbdadm create-md
$ sudo drbdadm create-md resource0
initializing activity log
initializing bitmap (1600 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
步骤5:启用DRBD资源
资源初始化后,需要将资源与后备设备(或多卷资源的情况下的设备)关联,设置复制参数,并将资源连接到对等方。
$ sudo drbdadm up resource0
--== Thank you for participating in the global usage survey ==--
The server's response is:
you are the 6934th user to install this version
检查状态。
$ sudo drbdadm status resource0
resource0 role:Secondary
disk:Inconsistent
server-02.computingforgeeks.com role:Secondary
peer-disk:Inconsistent
在这一点上,一个过时/不一致的磁盘状况是可以预期的。
步骤6:初始设备同步
DRBD已成功分配了磁盘和网络资源,并可以进行操作。下一步是告诉DRBD哪个节点 资源 初始设备同步。
您需要开始第一次完全同步(仅在一个节点上运行)。 我跑 server-01.computingforgeeks.com
sudo drbdadm primary --force resource0
发出此命令后,将开始第一次完全同步。这可能需要一些时间,具体取决于设备的大小。
检查状态:
# On Primary
$ sudo drbdadm status
sudo drbdadm status resource0
resource0 role:Primary
disk:UpToDate
server-02.computingforgeeks.com role:Secondary
peer-disk:UpToDate
# On Secondary
$ sudo drbdadm status resource0
resource0 role:Secondary
disk:UpToDate
server-01.computingforgeeks.com role:Primary
peer-disk:UpToDate
步骤7:使用DRBD设备
DRBD设备功能齐全,可以立即使用。您可以在设备上创建文件系统,将其用作原始块设备,进行安装,并使用可访问的块设备执行其他操作。
获取名称设备映射。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 19.1G 0 disk
├─sda1 8:1 0 19G 0 part /
├─sda14 8:14 0 1M 0 part
└─sda15 8:15 0 64M 0 part /boot/efi
sdb 8:16 0 50G 0 disk
└─sdb1 8:17 0 50G 0 part
└─drbdpool-drbdata 253:0 0 50G 0 lvm
└─drbd1 147:1 0 50G 0 disk
sr0 11:0 1 1024M 0 rom
在DRBD设备上创建文件系统:
$ sudo mkfs.xfs /dev/drbd1
meta-data=/dev/drbd1 isize=512 agcount=4, agsize=3276442 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=13105767, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=6399, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
让我们尝试挂载:
sudo mkdir /mnt/mydrbd
sudo mount /dev/drbd1 /mnt/mydrbd
确认:
$ df -hT /mnt/mydrbd/
Filesystem Type Size Used Avail Use% Mounted on
/dev/drbd1 xfs 50G 390M 50G 1% /mnt/mydrbd
请检查文件是否可以写入。
for i in {1..10}; do
sudo touch /mnt/mydrbd/${i}.txt
done
检查文件是否在DRBD设备上创建。
$ ls -l /mnt/mydrbd
total 0
-rw-r--r--. 1 root root 0 Jul 7 00:36 10.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 1.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 2.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 3.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 4.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 5.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 6.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 7.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 8.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 9.txt
步骤8:在辅助主机上挂载DRBD设备:
首先卸载 主节点 并获得第二角色。
sudo umount /mnt/mydrbd
sudo drbdadm secondary resource0
然后在辅助节点上运行以下命令:
$ sudo drbdadm primary resource0
$ sudo drbdadm status
resource0 role:Secondary
disk:UpToDate
server-02.computingforgeeks.com role:Primary
peer-disk:UpToDate
$ sudo mkdir /mnt/mydrbd
$ sudo mount /dev/drbd1 /mnt/mydrbd
$ df -hT /mnt/mydrbd
Filesystem Type Size Used Avail Use% Mounted on
/dev/drbd1 xfs 50G 390M 50G 1% /mnt/mydrbd
$ ls -lh /mnt/mydrbd/
total 0
-rw-r--r--. 1 root root 0 Jul 7 00:36 10.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 1.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 2.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 3.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 4.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 5.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 6.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 7.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 8.txt
-rw-r--r--. 1 root root 0 Jul 7 00:36 9.txt
在本指南中,您学习了如何在CentOS / RHEL 8 Linux机器上安装和配置DRBD。有关DRBD技术的更多信息,请参考下面链接的官方文档。
储存细节:
在CentOS 8上安装Ceph 15(Octopus)集群
在Ubuntu 20.04上安装Ceph 15(Octopus)存储集群
在CentOS 8 / CentOS 7上使用Heketi设置GlusterFS存储
这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。
以PDF格式下载指南
关
这是续集。
这是续集。
这是续集。