使用drbd+heartbeat搭建双机热备环境

来源:互联网 发布:网络电视接收机顶盒 编辑:程序博客网 时间:2024/05/16 05:55

DRBD是一种块设备,可以被用于高可用(HA)之中。它类似于一个网络RAID-1功能。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上。以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。

拓扑结构
假设使用两台linux主机来搭建环境,以下步骤如果不特殊强调,需要在两台主机上执行相同的操作。
环境
1 两台Ubuntu14.04主机,32位。都是单网卡 eth0。
2 主机名s1-desktop, ip 192.168.1.100;主机名s2-desktop, ip 192.168.1.101
3 一台TP-LINK路由器。
4 拓扑图如下,对外浮动ip为192.168.1.200。也就是说当外网访问192.168.1.200时,自动切换到两台主机中可用的一台。
网络拓扑图

drbd的安装与配置
1 在安装两台ubuntu主机的时候要手动划分一个分区专门用于数据同步,这里假设两台主机的同步分区为/dev/sda6。此分区挂载在/data。
2 在ubuntu下运行 apt-get install drbd8-utils 来安装drbd。
3 在/etc/ha.d/resources下面增加一个资源文件r0.res,内容如下:

resource r0 {  on s1-desktop{    device    /dev/drbd0;    disk      /dev/sda6;    address   192.168.1.100:7789;    meta-disk internal;  }  on s2-desktop{    device    /dev/drbd0;    disk      /dev/sda6;    address   192.168.1.101:7789;    meta-disk internal;  }}

这个配置文件定义了一个名字为r0的资源文件。其中/dev/drbd0为虚拟硬盘,/dev/sda6为物理硬盘,要根据主机来修改这个参数。

4 修改/etc/hosts, 加入两台主机的信息。

s1-desktop 192.168.1.100
s2-desktop 192.168.1.101

5 如果/dev/sda6等物理硬盘已经挂载到了某个文件夹下面,先umount。
6 在两个主机上分别执行

drbdadmin create-md r0。

7 启动drbd服务,在两台主机分别执行

/etc/init.d/drbd startcat /proc/drbdro:Secondary/ Secondary //表示还没有建立主盘ds:Inconsistent/Inconsistent //表示两节点的逻辑设备

8 初始化网络硬盘。(只在primary node上执行)

drbdsetup /dev/drbd0 primary –o cat /proc/drbd ro: primary / Secondary表示在主节点建立了主盘 ds: UpToDate /Inconsistent表示两节点正在同步数据 等同步完后将会变成 ds: UpToDate / UpToDate 

9 格式化磁盘。
现在将磁盘格式化后并可以向其中写数据,这些数据会同步到从节点中。
在主节点s1-dekstop上执行

mkfs.ext4 /dev/drbd0 mount /dev/drbd0 /data(注意:只有主盘节点才能挂载镜像分区)

10 测试数据同步

cd /data mkdir testfile                 //新建名为testfile的测试文件 umount /data           //卸载镜像分区 drbdadm secondary r0         //主降为次,现在降为从节点 在s2-desktop上(从节点) drbdadm primary r0            //次升为主,这样才能从机器读取磁盘的数据。 mount /dev/drbd0 /data    //升主后才有挂载权限 cd /data                 ls –l 将会看到我们在主节点中建立的名为testfile的文件夹。 

在drbd配置完成后,如果主节点服务不可用时,需要手动切换到从节点,在从节点上设置为primary, 然后挂载。这里两台主机的IP是不同的,会为客户端的访问带来不便。
下面将介绍使用heartbeat来自动切换资源,并使用同一IP访问两台主机。

heartbeat使用方法参考文章给出的链接。

  • https://www.centos.bz/2012/03/achieve-drbd-high-availability-with-heartbeat/
  • -
0 0
原创粉丝点击