DRBD是一个软件来实现数据实时、同步、异步的数据镜像块存储复制解决方案,主要功能是通过Linux内核实现。
DRBD类似网络RAID-1功能写入本地的文件会通过网络以相同方式写在另一文件系统。
对于实现Mysql高可用,DRBD性能比较差,因为每次更新的数据,都会全部同步一次。
单主模式:具有故障转移功能,高可用集群方式采用。
双主模式:需要采用共享cluster文件系统,如GFS和OCFS2。用于需要从2个节点并发访问数据的场合,需要特别配置。
复制模式:有三种不同复制方式,协议A、协议B、协议C,一般使用协议C,只有在本地和远程节点的磁盘已经确认了写操作完成,写才会被认为完成,没有任何数据丢失。
heartbeat(Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
layer),负责维护集群各节点的信息以及它们之前通信;只提供主从备份功能,并不能对各个节点进行监控,需要安装ldirectord。
Resource-agent:(资源代理)就是各种的资源的ocf脚本,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。
protocol C; #使用同步协议C,收到写入确认就认为完成了写入操作 rate 100M; #设置主设备节点同步时的网络速率最大值,默认最大1G
3、创建供DRBD记录信息数据块
4、默认没有分主备节点的,需要设置
说明:cs:两台数据连接状态
#初始化设备并设置主备节点
5、格式化并挂载分区到/data目录
四、安装Heartbeat(主备节点配置相同)
1.安装资源接管服务(要先安装资源接管服务,否则安装心跳服务会报错)
六、DRBD使用中问题解决
答:这个是可以设置的,如加入rc.local里面,但不推荐。
主服务器故障恢复后,DRBD应该保留人工介入启动,主备切换已经算完成了高可用任务了,所以涉及数据方面还是谨慎为好,修复故障机应该人工来操作的。
2>.主从切换没问题,master故障后,所有写的数据都在备机上,当master恢复后,此时,数据会同步过去吗?试验说明,数据被master上数据覆盖,备机新增数据丢失。
主机故障恢复后,先不要启动heartbeat,先加载DRBD到内核并启动DRBD资源,确保当前提供服务的备机和故障主机数据一致,可以cat /proc/drbd查看状态,如果两边不一致,需要把数据推回到故障机,保持两边同步,然后再启动heartbeat完成自动切换。
情况二:没有开启或关闭了auto_failback参数
主机故障恢复后,将DRBD加载到内核,启动heartbeat,正常情况DRBD状态应该是同步状态或正在同步状态。如果未同步,可以先启动DRBD资源,确保当前提供服务的备机和故障主机数据一致,然后在当前提供服务的备机执行hb_standby命令完成切换。
3>.两台数据库都需要关机,启动后造成脑裂(这次脑裂原因是开机自动DRBD造成的)
最后查看状态 cat /porc/drbd已经恢复了主从,数据也是同步状态。