别院牧志一种基于 DRBD 实现的 ALUA 解决方案 返回首页

一种基于 DRBD 实现的 ALUA 解决方案

发表于2020-07-22|更新于2026-08-16|项目相关
|浏览量:
文章作者: imoyao
文章链接: https://www.masantu.com/blog/2020-07-22/alua-with-drbd/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 别院牧志!
DRBD存储ALUA双活高可用
上一篇
Python 如何实现跨主机文件目录同步?(基于 watchdog 和 rsync)
下一篇
2020 面试记录(持续更新)
存储文件存储和块存储的区别 存储方式 技术实现 优势 劣势 典型代表 块存储 裸盘上划分逻辑卷,逻辑卷格式化成任意文件系统 支持多种文件系统,传输速度快,提供硬件容错机制 无法实现网络共享 FC-SAN,iSCSI 文件存储 在格式化的磁盘上存储文件 提供网络共享 网络传输速度制约读写速度,分层目录结构限制可扩展性 NFS,FAT,EXT3 对象存储 以灵活可定制的对象为存储单元,元数据服务器提供快速并发寻址 读写速度较快的同时支持网络共享,对象灵活定义 管理软件的购买、使用和运维成本高 Swift 存储设备不同 对象存储:对象存储的对应存储设备为 swift,键值存储,CEPH 的 RADOS。 文件存储:文件存储的对应存储设备为 FTP,NAS,NFS 服务器,Ceph 的 CephFS。 块存储:块存储的对应存储设备为 Cinder,硬盘,IPSAN、FCSAN、CEPH 的 RBD。 特点不同 对象存储:对象存储的特点是具备块存储的高速以及文件存储的共享等特性,只能进行全写全读,存储数据以大文件为主,要求足够的 IO 带宽。 文件存储...
相关推荐
cover
2018-05-27
关于 DRBD 脑裂问题的总结
本文在编写时基于官网 8.4 英文版本。由于英语水平和当时认知所限,翻译中难免有聱牙诘屈甚至误导别人之处。今天翻阅官网发现已经出现了基于 9.0 版本的中文文档,所以大家可以直接去浏览官方文档。 什么是DRBD脑裂脑裂(split brain)是指由于集群节点之间的所有网络链路的临时故障,以及可能由于集群管理软件的干预或人为错误,导致两个节点在断开连接时都切换到主节点(primary)角色的情况。这是一种潜在的有害状态,因为它意味着对数据的修改可能是在任一节点上进行的,而没有复制到对等节点。因此,在这种情况下,很可能已经创建了两个不同的数据集,这些数据集不能简单地合并。 怎么判定脑裂查看日志信息如果DRBD出现脑裂,会在 /var/log/message 出现一条日志: Split-Brain detected but unresolved, dropping connection! 当发生split brain之后,如果查看连接状态,其中至少会有一个是StandAlone状态,另外一个可能也是StandAlone(如果是同时发现split brain状态),也有可能是 WF...
2018-09-11
DRBD 备忘记录
这是一个关于 DRBD 的使用备忘录。 开始阅读之前,请先注意示例中使用的 DRBD 版本 drbdadm -V# DRBDADM_VERSION=8.4.3 注意:安装的 kernel-devel 的内核源码(内核源码路径/usr/src/kernel/)和当前系统的 kernel 版本(uname -r)不一致的话需要把当前内核更新一下。在2.6.33及以上版本的内核默认中有DRBD,之前在用的DRBD主要8.0、8.2、8.3 三个版本,对应的rpm包是drbd,drbd82和drbd83,因此需要安装对应的内核模块,对应的名字为kmod-drbd,kmod-drbd82,kmod-drbd83。由于drbd是作为内核模块进行工作的,故建议使用与内核对应的版本,对应关系如下表。 Linux releases DRBD releases 2.6.33 8.3.7 2.6.34 8.3.7 2.6.35 8.3.8 2.6.36 8.3.8.1 2.6.37 8.3.9 2.6.38 8.3.9 2.6.39 8.3.10 3.0 ...
2018-08-28
DRBD 使用外部元数据
裂脑一旦发生,需要及时排查问题所在,最大限度保护数据完整性。 meta data存放位置优缺点比较internal meta-datameta-data 和数据存放在同一个底层设备之上,它通过在设备末端预留一个区域以存储元数据做到这一点。 优点: 一旦 meta-data 创建之后,就和实际数据绑在了一起,在维护上会更简单方便,不用担心 meta-data 会因为某些操作而丢失。另外在硬盘损坏丢失数据的同时,meta-data 也跟着一起丢失,当更换硬盘之后,只需要执行重建 meta-data 的命令即可,丢失的数据会很容易的从其他节点同步过来。 缺点: 如果底层设备是单一的磁盘,没有做 raid,也不是 lvm 等,那么可能会对写入吞吐量产生负面影响。因为每一次写 io 都需要更新 meta-data 里面的信息,那么每次写 io 都会有两次,而且肯定会有磁头的较大寻道移动,因为 meta-data 都是记录在设备的最末端的,这样就会造成写 io 的性能降低。 external meta datameta-data存放在独立的,与存放数据的设备分开的设备之上。 优点...
2018-08-29
DRBD 状态指标记录
在管理DRBD的时候,需要关注drbd相关的各种状态指标,本文主要记录相关的指令及显示含义。 DRBD状态概览drbd-overviewdrbd statuscat /proc/drbd # 9.0废止在drbd9中,更多的是使用drbdadm或drbdsetup来获取节点的状态信息。 以上命令略有不同,可自行对照 [root@Storage drbd]# pwd/usr/lib/drbd[root@Storage drbd]# ./drbd status# 输出示例drbd driver loaded OK; device status:version: 8.4.3 (api:1/proto:86-101)GIT-hash: 89a2942***221f964d3ee515 build by root@third, 2017-07-20 10:58:42m:res cs ro ds p mounted fstype0:drbd0 ...
2018-01-11
CentOS7 环境下配置 DRBD
本文主要记录DRBD的配置过程和功能验证。 本文使用64位CentOS,基本环境: +-----------------------+ | +----------------------+| [ DRBD_A (Server#1) ] | 10.10.17.18 | 10.10.17.19 | [DRBD_B (Server#2) ] || node01 +--------------+---------------+ node02 || | | |+-----------------------+ +----------------------+DRBD 服务器A :ip:10.10.17.18,hostname:DRBD_ADRBD 服务器B :ip:10.1...
2018-01-11
CentOS7 下源码安装 DRBD
最近开发中又要用到DRBD做远程复制的功能,网上搜到很多都是yum安装的办法,这里记录一下源码安装的办法。 准备工作关闭防火墙systemctl disable firewalldsystemctl stop firewalld 关闭 SELinuxsed -i -e "s/=enforcing/=disabled/g" /etc/selinux/configsetenforce 0 安装依赖yum -y update yum -y install gcc make automake autoconf libxslt libxslt-devel flex rpm-build wget 注意: 安装kernel-devel一定要和uname -r获取结果一致。 rpm -q kernel-develuname -r# 3.10.0-327.el7.x86_64 返回的内核版本应当一致,否则建议用本地源安装kernel-devel。 下载/解压源码官方地址:https://www.linbit.com/en/drbd-community/drbd-downlo...
avatar
imoyao
深深别院,潜潜牧志。一个独立博客,本人使用 Python 语言开发,致力于写出 Pythonic 的代码。
文章
76
标签
104
分类
13
Follow Me
公告
This is my Blog
目录
  1. 1. 架构
  2. 2. 定义
  3. 3. 具体实现
    1. 3.1. 整体
    2. 3.2. 仲裁服务
    3. 3.3. 管理系统
    4. 3.4. 界面
    5. 3.5. 代码
  4. 4. Q&A
  5. 5. 双主模式创建之后流程
  6. 6. 恢复
  7. 7. 分情境讨论处理逻辑
    1. 7.1. 配置仲裁服务器
      1. 7.1.1. 发生抢占
      2. 7.1.2. 网络异常
        1. 7.1.2.1. 抢占
        2. 7.1.2.2. 恢复
    2. 7.2. 仅配置仲裁组
    3. 7.3. 未配置仲裁组
    4. 7.4. scst 混合输出问题
  8. 8. 推荐阅读
最新文章
使用 Python 计算你的现金流收益率2026-08-16
使用 Python 递归目录并按照特定规则修改其下文件夹及文件名2020-12-12
把两个 Git 仓库合并起来
把两个 Git 仓库合并起来2020-12-07
免费个人博客图床解决方案2020-12-06
庖丁解牛 | 任务分解,各个击破
庖丁解牛 | 任务分解,各个击破2020-12-05
© 2025 - 2026 By imoyao框架 Hexo 8.1.2|主题 Butterfly 5.7.1.260810