使用 HA-LVM 实现高可用存储

简介:

近年来,有一种趋势是数据中心优先选择商用的硬件和软件而非采用专利的解决方案的商品。他们为什么不能这样做呢?这种做法具有非常低的成本并且可以以更有利的方式来灵活地构建生态系统。唯一的限制是管理员想象的空间有多大。然而,一个问题要问:“与专利的和更昂贵的解决方案相比较,这样的定制解决方案表现如何呢?”

开放源码项目已经发展成熟到了具有足够的竞争力,并提供相同的功能丰富的解决方案,包括卷管理,数据快照,重复数据删除等。虽然经常被忽视的,长期支持的概念是高可用性。

高可用性的想法很简单:消除任何单点故障。这保证了如果一个服务器节点或一个底层存储路径停止工作了(计划或非计划的),还依然可以提供数据请求服务。现在存储部署的解决方案都是多层结构的,并且是可以为高可用性进行配置的,这就是为什么本文严格关注HA-LVM。

HA-LVM

高可用性的逻辑卷管理器(HA-LVM)已经集成了LVM的套件。它提供共享卷一个故障转移的配置,也就是说如果集群中的一台服务器出现故障或进行维护,共享存储配置将故障转移到辅助服务器上,所有I / O请求将恢复,不间断的。HA-LVM配置是一个主/从配置。这意味着在任何一个时间只有一个服务器访问共享存储。在许多情况下,这是一种理想的方法,因为一些先进的LVM的功能,如快照和重复数据删除,在主/从环境下是不支持的(当多个服务器访问共享存储)。

CLVM(LVM集群的守护进程)是HA-LVM一个非常重要的组件。当启动HA-LVM后,CLVM守护进程会防止有多台机器同时对共享存储做修 改,否则对LVM的元数据和逻辑卷会造成破坏。尽管在采用主从配置时,这样的问题并不需要太多担心。要做到这一点,守护进程得依赖于分布锁管理器 (DLM). DLM的目的也是协助CLVM访问磁盘。

下面会举一个2台服务器的集群访问一个外部存储的例子(图一)。 这个外部存储可以是采用磁盘阵列形势的(RAID-enabled) 或者磁盘簇(JBOD)形式的磁盘驱动器,可以是通过光纤信道(Fibre Channel),串行连接(SAS),iSCSI或者其他的存储区域网络及其协议(SAN)接入到服务器的。这个配置是与协议无关的,只要求集群中的服务器能访问到同一共享数据块设备。

image

图一.举例两台服务器访问同一个共享存储的配置
CLVM

MD RAID还不支持集群,所有也就不能兼容CLVM.

CLVM 守护进程

CLVM 守护进程会将LVM元数据的更新分发到整个集群中,前提是集群中的每个节点都必须运行守护进程。

磁盘簇

磁盘簇(就是一堆磁盘)是一种使用多个磁盘驱动器的架构,但是不支持具有冗余能力的配置。

配置集群

几乎所有的Linux发行套件都提供必要的工具包。但是,工具包的名字可能各有差异。你需要安装lvm2-clumster(在部分发行套件中,可能命名为clvm),Corosync集群引擎,红帽集群管理器(cman),资源组管理进程(rgmanager),还有所有其他运行在服务器上的独立的工具。尽管红帽集群管理器的描述中就包含了“红帽”的发行套件的名字,但是其他与红帽无关的大多数Linux的发行套件还在会把cman列在他们的资源库中。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
并行计算 PyTorch 算法框架/工具
社区供稿 | 本地部署通义千问大模型做RAG验证
这篇文章中,我们通过将模搭社区开源的大模型部署到本地,并实现简单的对话和RAG。
|
4月前
|
人工智能 自然语言处理 物联网
魔搭社区模型速递(8.10-8.16)
🙋魔搭ModelScope本期社区进展:📟5285个模型,📁497个数据集,🎨59个创新应用,📄 9篇内容
385 0
|
5月前
|
存储 缓存 NoSQL
mybatisplus一二级缓存
MyBatis-Plus 继承并优化了 MyBatis 的一级与二级缓存机制。一级缓存默认开启,作用于 SqlSession,适用于单次会话内的重复查询;二级缓存需手动开启,跨 SqlSession 共享,适合提升多用户并发性能。支持集成 Redis 等外部存储,增强缓存能力。
|
NoSQL Redis
Redis 执行 Lua保证原子性原理
Redis 执行 Lua 保证原子性原理
1024 1
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之 MySQL数据库中,执行delete命令删除数据后,存储空间通常不会立即释放,该如何优化
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
433 2
|
运维 Shell Linux
运维专题.Docker功能权限(Capabilities)管理和查看
运维专题.Docker功能权限(Capabilities)管理和查看
731 1
|
监控 前端开发 数据库连接
Zabbix 5.0 LTS的web界面安装及修改zabbix web管理员的默认密码
这篇文章是关于如何安装Zabbix 5.0 LTS的web界面以及如何修改Zabbix web管理员默认密码的教程。
929 1
|
存储 缓存 数据库
SqlAlchemy 2.0 中文文档(四十四)(5)
SqlAlchemy 2.0 中文文档(四十四)
340 4
|
存储 缓存 监控
聊聊消息中心的设计与实现逻辑
消息通知的流程设计,在各个业务线中通过消息中心提供的接口方法,将不同场景下的消息内容提交到消息中心,消息中心进行统一维护管理,并根据消息的来源和去向,适配相应的推送逻辑。
1465 0
聊聊消息中心的设计与实现逻辑
|
存储 IDE Java
程序员基本功,为什么你一定要懂16进制?
其实计算机需要的只是二进制,需要十六进制的是我们人
2848 1
程序员基本功,为什么你一定要懂16进制?