基于DRBD+Pacemaker+Corosync的存储主备配置
1. 功能介绍
1.1 DRBD
DRBD是一种基于软件、基于网络的块复制存储解决方案,主要用于对服务器之间的磁盘、分区、逻辑卷等进行数据镜像。
当用户将数据写入本地磁盘时,数据也会被发送到网络中另一台主机的磁盘上,从而实现本地主机(主节点)与远程主机(备节点)之间数据的实时同步。
DRBD是一种基于linux内核模块实现的快级别的同步复制技术,可以与SAN达到相同的共享存储效果。
DRBD具有部署简单、切换逻辑简单、保证数据强一致性等优点,但也存在对IO性能影响较大、从库不提供读操作等缺点。
1.2 Pacemaker
Pacemaker是Linux环境下最广泛使用的开源集群资源管理器。它利用集群基础架构(Corosync或Heartbeat)提供的消息和集群成员管理功能,实现了节点和资源级别的故障检测和恢复,从而最大程度保证集群服务的高可用性。在逻辑功能方面,Pacemaker负责管理集群中软件服务的全生命周期,其规则驱动的资源管理能力,可以精确描述和表达集群资源之间的关系,包括资源的顺序和位置等关系。Pacemaker适用于任何规模的集群,并且由于其强大的资源依赖模型,可以对任何形式的软件资源进行管理,只需要为其自定义资源代理。需要指出的是,Pacemaker只是资源管理器,不提供集群心跳信息。由于任何高可用集群都必须具备心跳监测机制,因此,Pacemaker的心跳机制主要基于Corosync或Heartbeat来实现。
pacemaker的主要功能包括以下几方面:
1、能够检测和恢复节点和服务级别的故障,以保证高可用性。
2、不需要共享存储,且与存储无关。
3、支持任何能够用脚本控制的资源作为集群服务,与资源无关。
4、支持节点 STONITH功能以确保集群数据完整性和防止集群脑裂。
5、适用于大型和小型集群。
6、支持 Quorum机制和资源驱动类型的集群。
7、支持几乎所有类型的冗余配置。
8、自动同步各个节点的配置文件。
9、允许设置集群范围内的 Ordering、Colocation和Anti-colocation等约束。
10、提供高级服务类型支持,例如:
- Clone功能,即允许多个节点上运行相同的服务;
- Multi-state功能,即支持运行在多状态下的服务,在不同的高可用模式下切换,如Active/Active或Active/Passive。
11、提供统一的、脚本化的集群管理工具,方便管理和维护集群。
1.3 Corosync
在Linux环境下,Corosync是一个广泛使用的开源集群管理工具,通常与其他资源管理器组合使用。它可以通过简单的配置文件定义信息传递的方式和协议等。虽然Corosync在2008年才正式推出,但它实际上是Openais项目的一个子项目。Openais于2002年推出,由于过于庞大而分裂成两个子项目,其中一个子项目就是可以实现高可用心跳信息传输的Corosync,它的代码的大约60%来自于Openais。Corosync可以提供完整的高可用功能,但要实现更复杂的功能,需要使用Openais。未来的发展方向是Corosync,因此在新的项目中,一般采用Corosync。hb_gui可以提供良好的高可用管理功能,可以实现图形化管理。此外,RHCS的luci+ricci套件和基于Java开发的LCMC集群管理工具都提供相关的图形化界面。
2. 配置主备
2.1 环境准备
主机名 IP 角色 OS Disk DRBD Device
lvm-cluster-1 192.168.1.10 Master /dev/sdb1 /dev/drbd1
lvm-cluster-2 192.168.1.11 Slave /dev/sdb1 /dev/drbd1
- 192.168.1.100 Vip - -
确保每台主机上都有一个空分区/dev/sdb1
2.2 关闭selinux
查看selinux状态
[root@lvm-cluster-1 ~]# getenforce
Disabled
临时关闭,设置SELinux 成为permissive模式
setenforce 0
永久关闭