openEuler 20.03 LTS SP1发行版本DRBD初体验
简介
DRBD(Distributed Replicated Block Device,分布式复制块设备)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。DRBD是镜像块设备,是按数据位镜像成一样的数据块。
通常将两个节点的整块磁盘(或者分区,LVM逻辑卷等设备)规划为DRBD设备。
如果primary节点宕机,secondary节点可以在高可用集群中提升成为primary节点。
当接收到数据,内核判断是发往到drbd设备的数据,存储到本机,同时将一份副本网络传输到secondary节点。
传输过程包括三种方式:异步(A),半同步(B),同步(C)。
通常作为双节点环境保持数据一致性的一种解决方案。
一 环境准备
1 操作系统
准备两个操作系统环境
建议使用多块网卡环境,将drbd的网络流量独立出来减缓业务网卡压力。
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.90.172 test1
172.16.90.174 test2
192.168.1.11 test11
192.168.1.13 test22
# cat /etc/openEuler-release
openEuler release 20.03 (LTS-SP1)
# uname -a
Linux test3 4.19.90-2012.5.0.0054.oe1.x86_64 #1 SMP Tue Dec 22 15:58:47 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/yum.repos.d/openEuler.repo
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/EPOL/$basearch/
enabled=1
gpgcheck=1
# dnf install -y drbd drbd-kernel drbd-utils drbd-pacemaker drbd-udev drbd-xen drbd-bash-completion
# rpm -qa |grep drbd
drbd-bash-completion-9.5.0-5.oe1.x86_64
drbd-utils-9.5.0-5.oe1.x86_64
drbd-udev-9.5.0-5.oe1.x86_64
drbd-xen-9.5.0-5.oe1.x86_64
drbd-9.5.0-5.oe1.x86_64
drbd-kernel-9.0.27-1.oe1.x86_64
drbd-pacemaker-9.5.0-5.oe1.x86_64
# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
# systemctl stop firewalld
# systemctl disable firewalld
2 磁盘
每个操作系统中存在一个单独的磁盘用于DRBD,本文档中均为/dev/sdb设备,大小为1G
# fdisk -l /dev/sdb
Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
二 配置
说明:
磁盘设备: /dev/sdb 1G
DRBD设备: /dev/drbd
DRBD resource名称:r0
DRBD设备挂载点: /test
/etc/drbd.d目录中,创建一个以.res结尾的资源文件,本文档中为/etc/drbd.d/r0.res。
两个节点上DRBD相关配置文件内容保持一致,本文档中仅增加了r0.res资源文件。
# cat /etc/drbd.d/r0.res
resource r0 {
on test1 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.1.11:7789;
meta-disk internal;
}
on test3 {
device /dev/drbd0;
disk /dev/sdb;
address 192.168.1.13:7789;
meta-disk internal;
}
}
注意:文件中使用的test1和test3分别是主机名称。
分别在两个节点初始化元数据信息
# drbdadm create-md r0
initializing activity log
initializing bitmap (32 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
注意:
如果设备非首次使用,初始化之前使用如下命令进行清理。
# dd if=/dev/zero of=/dev/sdb bs=1M count=100
# systemctl is-enabled drbd
disabled
注意:
如果是在类似pacemaker的场景中使用DRBD作为集群资源,drbd服务的启动停止等由pacemaker控制,保持drbd服务开机自启动为disabled状态。
如果是在单独使用drbd的场景中,设置drbd服务为enable状态。
# systemctl start drbd
# systemctl status drbd
# lsmod | grep drbd
drbd_transport_tcp 24576 1
drbd 532480 2 drbd_transport_tcp
libcrc32c 16384 4 nf_conntrack,nf_nat,drbd,sctp
通过命令 drbdsetup show 可以直接查看资源配置情况
在其中一个节点上执行如下命令,强制设置为primary,使其开始同步:
# drbdsetup primary r0 --force
primary节点上状态:
# drbdsetup status
r0 role:Primary
disk:UpToDate
test3 role:Secondary
peer-disk:UpToDate
secondary节点状态:
# drbdadm status
r0 role:Secondary
disk:UpToDate
test1 role:Primary
peer-disk:UpToDate
primary节点上查看详细状态:
# drbdsetup status r0 --verbose --statistics
r0 node-id:1 role:Secondary suspended:no
write-ordering:flush
volume:0 minor:0 disk:UpToDate quorum:yes
size:1048508 read:1053541 written:94793 al-writes:13 bm-writes:0 upper-pending:0 lower-pending:0 al-suspended:no blocked:no
test3 node-id:0 connection:Connected role:Secondary congested:no ap-in-flight:0 rs-in-flight:0
volume:0 replication:Established peer-disk:UpToDate resync-suspended:no
received:2070 sent:1069039 out-of-sync:0 pending:0 unacked:0
primary节点上格式化设备:
# mkfs.xfs -f /dev/drbd0
meta-data=/dev/drbd0 isize=512 agcount=4, agsize=65532 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=262127, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1566, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
两个节点上创建挂载目录:
mkdir -p /test
primary节点上:
# mount /dev/drbd0 /test
# mount |grep test
/dev/drbd0 on /test type xfs (rw,relatime,attr2,inode64,noquota)
# echo "hello" > /test/a.txt
# cat /test/a.txt
hello
# umount /dev/drbd0
# drbdsetup secondary r0
secondary节点上执行操作提升为primary节点:
# drbdsetup primary r0
# drbdsetup status
r0 role:Primary
disk:UpToDate
hatest1 role:Secondary
peer-disk:UpToDate
# mount /dev/drbd0 /test
# cat /test/a.txt
hello
至此,DRBD设备可以确认正常工作。
openEuler 20.03 LTS SP1发行版本DRBD初体验相关推荐
- 体验华为操作系统 openEuler 20.03 LTS linux
安装华为linux openEuler 20.03 LTS 一直在用centos ,但redhat马上不再对其支持更新了,刚好华为发行了社区版linux(ps:难道是centos倒下,华为openEu ...
- openEuler 20.03 LTS面向RK3399移植系列(4)—验证和问题分析openEuler 20.03 LTS面向Firefly RK3399的第一个版本
任务动机:验证openEuler 20.03 LTS面向Firefly RK3399的第一个版本(Linux kernel 4.4),分析现存问题,提炼下一步移植工作的需求. 任务描述:按照<o ...
- openEuler 20.03 LTS的第一个4.19内核RK3399移植版发布
任务动机:openEuler 20.03 LTS的4.19内核版本移植开发取得阶段性成果,发布第一个版本.该版本于2020.11.24日完成,已在Firefly RK3399和OrangePi RK3 ...
- linux欧拉强制修改root密码,openEuler 20.03 LTS安装图文教程
本文以图文的方式介绍安装openEuler 20.03 LTS的方法,以光盘安装为例,其他安装方式除在启动安装时的引导方式不同外,待启动安装后则安装流程相同.在安装开始前,需要保证服务器启动选项为光驱 ...
- 【参赛作品11】openGauss2.1.0在openEuler 20.03 LTS SP2 安装后,yum无法使用的问题解决
作者:姜殿斌 一.环境描述 操作系统: openEuler 20.03 LTS openEuler 20.03 LTS SP2 数据库: openGauss2.1.0 软件包: openGauss-2 ...
- 长城 世恒DF716 openEuler 20.03 LTS SP3 FT2000 4核 升级linux-5.10.38 报错
故障 解决 修改.config,开启配置 CONFIG_DRM_VIRTIO_GPU=m 重新编译安装 make modules -j4 make modules_install make insta ...
- 华为openEuler 20.03 LTS SP3 安装Docker
两种方式: 一.方式1() 1.添加Centos源和docker镜像源: wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyu ...
- 循序渐进丨在openEuler 20.03操作系统上安装部署MogDB 2.1.1数据库
关于MogDB MogDB是云和恩墨基于openGauss开源数据库的内核进行研发,推出的一款安稳易用的企业级关系型数据库,具备金融级高可用和全密态计算的极致安全.面向多核处理器的极致性能.AI自诊断 ...
- Kubeadm 快速搭建 k8s v1.24.1 集群(openEuler 22.03 LTS)
kubeadm 简介 kubeadm 是 Kubernetes(以下简称 k8s)官方提供的用于快速安装部署 k8s 集群的工具,伴随 k8s 每个版本的发布都会同步更新,kubeadm 会对集群配置 ...
最新文章
- 北邮计算机科学技术是学硕吗,【计算机考研】2020北京邮电大学计算机科学与技术考研初试科目、参考书目、复试详情汇总...
- MVC的Model Binder总结
- 随便聊一些编程开发工具
- 【渝粤教育】广东开放大学 电路分析基础 形成性考核 (59)
- XAF-BI.Dashboard模块概述 web/win
- 开热点给电脑消耗大吗_你试过爬楼梯减肥吗?热量消耗大,选对姿势很重要!...
- 一台2003服务器上怎样设置2个网站,服务器怎样设置多站点 服务器程序 win2003+apache...
- Android报错:java.lang.ClassCastException: com.github.mikephil.charting.charts.PieChart cannot be cast
- 2016年第3本:启示录----打造用户喜爱的产品
- 信息与通信的数学基础——Mathematic入门
- bootstrap中如何使div上下、垂直居中
- r语言 svycoxph_生存分析的Cox回归模型(比例风险模型)R语言实现及结果解读
- 终结符与非终结符详述
- Git cherry-pick 指令总结
- 【Linux】gcc/g++
- ORACLE中分钟用mm和mi 标示区别
- Android 反编绎工具JEB简介及下载
- Install cf v6
- win10 安装redis 及启动命令
- 全国省市区县 MySQL 数据库 含行政区划编码 名称 父级行政区划编码 基于国家统计局2017年3月发布数据