《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——第3章 数据安全工具DRBD、extundelete 3.1 数据镜像软件DRBD介绍

本文涉及的产品
数据安全中心,免费版
简介:

本节书摘来自华章计算机《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》一书中的第3章,第3.1节,作者:高俊峰著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第3章 数据安全工具DRBD、extundelete

3.1 数据镜像软件DRBD介绍

分布式块设备复制(Distributed Replicated Block Device,DRBD),是一种基于软件的、基于网络的块复制存储解决方案,主要用于对服务器之间的磁盘、分区、逻辑卷等进行数据镜像。当用户将数据写入本地磁盘时,还会将数据发送到网络中另一台主机的磁盘上,这样本地主机(主节点)与远程主机(备节点)的数据就可以保证实时同步,当本地主机出现问题,远程主机上还保留着一份相同的数据,可以继续使用,保证了数据的安全。
3.1.1 DRBD的基本功能
DRBD的核心功能就是数据的镜像,其实现方式是通过网络来镜像整个磁盘设备或磁盘分区,将一个节点的数据通过网络实时地传送到另一个远程节点,保证两个节点间数据的一致性,这有点类似于一个网络RAID1的功能。对于DRDB数据镜像来说,它具有如下特点:
实时性。当应用对磁盘数据有修改操作时,数据复制立即发生。
透明性。应用程序的数据存储在镜像设备上是透明和独立的。数据可以存储在基于网络的不同服务器上。
同步镜像。当本地应用申请写操作时,同时也在远程主机上开始进行写操作。
异步镜像。当本地写操作已经完成时,才开始对远程主机进行写操作。
3.1.2 DRBD的构成
DRBD是Linux内核存储层中的一个分布式存储系统,具体来说由两部分构成,一部分是内核模板,主要用于虚拟一个块设备;一部分是用户空间管理程序,主要用于和DRBD内核模块通信,以管理DRBD资源。在DRBD中,资源主要包含DRBD设备、磁盘配置、网络配置等。
一个DRBD系统有两个以上节点构成,分为主用节点和备用节点两个角色,在主用节点上,可以对DRBD设备进行不受限制的读写操作,可以用来初始化、创建、挂载文件系统。在备用节点上,DRBD设备无法挂载,只能用来接收主用节点发送过来的数据,也就是说备用节点不能用于读写访问,这样做的目的是保证数据缓冲区的一致性。
主用节点和备用节点不是固定不变的,可以通过手工方式改变节点的角色,备用节点可以升级为主用节点,同时主用节点也可以降级为备用节点。
DRBD设备在整个DRBD系统中位于物理块设备之上,文件系统之下,在文件系统和物理磁盘之间形成了一个中间层,当用户在主用节点的文件系统中写入数据时,数据被正式写入磁盘前会被DRBD系统截获,同时,DRBD在捕捉到有磁盘写入的操作时,就会通知用户空间管理程序把这些数据复制一份,写入远程主机的DRBD镜像,然后存入DRBD镜像所映射的远程主机磁盘。图3-1详细展示了DRBD系统的运行结构。

image

DRBD负责接收数据,把数据写到本地磁盘,然后发送给另一台主机。另一台主机再将数据存到自己的磁盘中。目前,DRBD每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群来讲已经足够用了。以后的版本将支持两个节点进行读写存取。
3.1.3 DRBD与现在的集群的关系
DRBD由两个或两个以上节点构成,与HA集群类似,也有主用节点和备用节点之分,因而经常用于高可用集群和负载均衡集群系统中作为共享存储设备。由于DRBD系统是在IP网络中运行,所以,在集群中使用DRBD作为共享存储设备,不需要任何硬件投资,可以节约很多成本,因为在价格上IP网络要比专用的存储网络更经济。
另外,DRBD也可以用于数据备份、数据容灾等方面。
3.1.4 DRBD的主要特性
DRBD系统在实现数据镜像方面有很多有用的特性,我们可以根据自己的需要和应用环境,选择适合自己的功能特性。下面依次介绍DRBD几个非常重要的应用特性。
1 . 单主模式
这是使用最频繁的一种模式,主要用在高可用集群的数据存储方面,解决集群中数据共享的问题,在这种模式下,集群中只有一个主用节点可以对数据进行读写操作,可以用在这种模式下的文件系统有ext3、ext4、xfs等。
2 . 双主模式
这种模式只能在DRBD8.0以后的版本中使用,主要用在负载均衡集群中,解决数据共享和一致性问题。在这种模式下,集群中存在两个主用节点,由于两个主用节点都有可能对数据进行并发的读写操作,因此单一的文件系统就无法满足需求了,此时就需要共享的集群文件系统来解决并发读写问题。常用在这个模式下的文件系统有GFS、OCFS2等,通过集群文件系统的分布式锁机制就可以解决集群中两个主用节点同时操作数据的问题。
3 . 复制模式
DRBD提供了三种不同的复制方式,分别是:
协议A,只要本地磁盘写入已经完成,数据包已经在发送队列中,则认为一个写操作过程已经完成。
这种方式在远程节点故障或者网络故障时,可能造成数据丢失,因为要写入到远程节点的数据可能还在发送队列中。
协议B,只要本地磁盘写入已经完成,并且数据包已经到达远程节点,则认为一个写操作过程已经完成。
这种方式在远程节点发生故障时,可能造成数据丢失。
协议C,只有本地和远程节点的磁盘已经都确认了写操作完成,则认为一个写操作过程已经完成。
这种方式没有任何数据丢失,就目前而言应用最多、最广泛的就是协议C,但在此方式下磁盘的I/O吞吐量依赖于网络带宽。建议在网络带宽较好的情况下使用这种方式。
4 . 传输完整性校验
这个特性在DRBD8.2.0及以后版本中可以使用,DRBD使用MD5、SHA-1或CRC-32C等加密算法对信息进行终端到终端的完性验证。利用这个特性,DRBD对每一个复制到远程节点的数据都生成信息摘要,同时,远端节点也采用同样的方式对复制的数据块进行完整性验证,如果验证信息不对,就请求主节点重新发送。通过这种方式保证镜像数据的完整性和一致性。
5 . 脑裂通知和自动修复
由于集群节点间的网络连接临时故障、集群软件管理干预或者人为错误,导致DRBD两个节点都切换为主用节点而断开连接,这就是DRBD的脑裂问题。发生脑裂意味着数据不能从主用节点复制到备用节点,这样会导致DRDB两个节点的数据不一致,并且无法合并。
在DRBD8.0及更高版本,实现了裂脑自动修复功能,在DRBD8.2.1之后,又实现了裂脑通知特性,在出现脑裂后,一般建议通过手工方式修复脑裂问题,为了彻底解决脑裂问题。在某些情况下脑裂自动修复还是比较可取的,DRBD自动修复脑裂的策略如下:
丢弃比较新的主用节点所做的修改。在这种模式下,当网络重新建立连接并且发现了脑裂后,DRBD会丢弃自动切换到主用节点上的主机所修改的数据。
丢弃老的主用节点所做的修改。在这种模式下,DRBD会丢弃首先切换到主用节点上的主机所修改的数据。
丢弃修改比较少的主用节点的修改。在这种模式下,DRBD会首先检查两个节点的数据,然后丢弃修改比较少的主机上的数据。
一个节点数据没有发生变化的情况下完美修复脑裂。在这种模式下,如果其中一台主机在发生裂脑时没有发生数据修改,那么就可以完美解决脑裂问题。

相关文章
|
4天前
|
存储 安全 Cloud Native
从数据风险出发的云上数据安全最佳实践
本文介绍了从数据风险出发的云上数据安全最佳实践,涵盖数据泄露现状及原因分析,以及基于云的安全机制。文章详细探讨了以云为基础实现数据全链路可视可控的方法,包括资产可见可控、数据安全中心、治理闭环和自动化智能化的数据安全治理能力。通过云原生方案,企业可以更高效地识别、预警和处置数据风险,确保数据安全。文中还提到多项免费工具和服务,帮助企业降低数据泄露风险并减少安全投入。
76 60
|
6天前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
14天前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
|
19天前
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。
|
23天前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
117 6
|
2月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
110 7
|
2月前
|
存储 缓存 弹性计算
Codota的服务器存储架构
Codota的服务器存储架构
37 5
W9
|
2月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
186 1
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
69 4
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
99 4

热门文章

最新文章