DRBD+Heartbeat+NFS配置高可用性网络(1)

简介:

         DRBD+Heartbeat+NFS配置高可用性网络

一.DRBD简介

    分布式复制块设备(DRBD技术)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像。

    DRBD镜像数据具有实时性,透明性与同步镜像和异步镜像等特点

    DRBD的两种模式,单主模式与双主模式

    1.单主模式是不论任何资源在任何特定的时间,集群之中只存在一个主节点,并且只能在主模式下操作数据,这个模式可以在任何文件系统中使用。

    2.双主模式是在DRBD8.0之后才加入的新特性,它是在集群中有两个主节点,这种模式需要一个集群文件系统,利用分布工的锁机制进行管理,如:GFS和OCFS2

DRBD提供了三种复制方式,我们先看下DRBD在LINUX的I/0堆栈中的位置

 

    1.协议A:本地磁盘写入成功,数据包已在发送队列中,就被认为是完成操作,通俗点讲就是在主节点写入已经成功后,但是数据包还在发送队列中,并没有到达备用节点,就被主节点认为是完成了全部的读写操作,显然可能在备用节点如果发生故障时,并没有收到数据包,主节点也认为数据已经发送成功,显然不合理,这种主要用在地理上分开的节点!

简言之:数据一旦写入磁盘并发送到网络中就认为完成了写入操作

    2.协议B:本地磁盘已写入完成且复制数据包达到了对等节点,则被认为是完成操作。但是如果在节点往磁盘写数据时时候,发生故障的话,数据还是不能在对等节点上写入磁盘成功。

 简言之:收到接收确认就认为完成了写入操作

    3.协议C:在本地和远程节点的磁盘都已经确认了写入操作完成才被认为操作完成。这是群集节点的流行模式,但I/0吞吐量依赖于网络带宽。

 简言之:收到一定程度确认才认为完成写入操作

 

二.实例            

1.拓扑图

  

 

 

    2.实验要求

   本实验使用Heartbeat,NFS与DRBD技术来实现两个节点之间的数据的同步,并且通过Heardbeat实现故障转移,保证服务的不间断!

3.IP地址配置

     按照拓扑图的规划,对IP地址进行配置

4.DRBD配置

  节点一:drbd1.a.com

    1> 修改主机名

     [root@localhost ~]# vim /etc/sysconfig/network      主机名修改如下

     HOSTNAME=drbd1.a.com

     [root@localhost ~]# hostname drbd1.a.com          不用注销,重新登录即可修改

    2> 同步系统时间RTC

       [root@drbd1 ~]# hwclock -s

    3> 配置服务器可相互解析

        [root@drbd1 ~]# vim /etc/hosts      添加如下内容

          192.168.2.10       drbd1.a.com

          192.168.2.20       drbd2.a.com

    4> 安装DRBD软件

    [root@drbd1 ~]# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm   //主文件安装

        [root@drbd1 ~]# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm //内核文件安装

    5> 加载内核

       [root@drbd1 ~]# modprobe drbd

    6> 配置主文件

       [root@drbd1 ~]# vim /etc/drbd.conf     在末行模式下输入如下命令

       

 

   将得到如下内容

   

 

  7> 创建一个共享空间

     

 

  8> 配置全局文件

     [root@drbd1 ~]# cd /etc/drbd.d

     [root@drbd1 drbd.d]# cp global_common.conf global_common.conf.bak  //备份文件

     [root@drbd1 drbd.d]# vim global_common.conf    修改如下

       

    global {

        usage-count no;                           //取消DRBD使用者统计

        # minor-count dialog-refresh disable-ip-verification

}

common {

        protocol C;                              //使用协议C

        startup {

                wfc-timeout  120;               //启动延迟

                degr-wfc-timeout 120;

         }

        disk {                                 //fence防脑裂

                  on-io-error detach;

                  fencing resource-only;

          }

        net {

                cram-hmac-alg "sha1";           //主备节点使用的通信算法

                shared-secret  "mydrbdlab";

         }

        syncer {

                  rate  100M;                   //主备节点同步速率

         }

}

 

    9> 定义资源

       [root@drbd1 ~]# vim web.res

 

 

节点二:drbd2.a.com配置

      1> 修改主机名

     [root@localhost ~]# vim /etc/sysconfig/network      主机名修改如下

     HOSTNAME=drbd2.a.com

     [root@localhost ~]# hostname drbd2.a.com          不用注销,重新登录即可修改

    2> 同步系统时间RTC

       [root@drbd12~]# hwclock -s

    3> 配置服务器可相互解析

        [root@drbd1 ~]# vim /etc/hosts      添加如下内容

          192.168.2.10       drbd1.a.com

          192.168.2.20       drbd2.a.com

    4> 安装DRBD软件

    [root@drbd2 ~]# rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm   //主文件安装

        [root@drbd2 ~]# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm //内核文件安装

    5> 加载内核

       [root@drbd2 ~]# modprobe drbd

    6> 配置主文件

       [root@drbd2 ~]# vim /etc/drbd.conf     在末行模式下输入如下命令

       

 

   将得到如下内容

   

 

  7> 创建一个共享空间

    

 

  8> 配置全局文件

     [root@drbd2 ~]# cd /etc/drbd.d

     [root@drbd2 drbd.d]# cp global_common.conf global_common.conf.bak  //备份文件

     [root@drbd2 drbd.d]# vim global_common.conf    修改如下

       

    global {

        usage-count no;                           //取消DRBD使用者统计

        # minor-count dialog-refresh disable-ip-verification

}

common {

        protocol C;                              //使用协议C

        startup {

                wfc-timeout  120;               //启动延迟

                degr-wfc-timeout 120;

         }

        disk {                                 //fence防脑裂

                  on-io-error detach;

                  fencing resource-only;

          }

        net {

                cram-hmac-alg "sha1";           //主备节点使用的通信算法

                shared-secret  "mydrbdlab";

         }

        syncer {

                  rate  100M;                   //主备节点同步速率

         }

}

 

    9> 定义资源

       [root@drbd1 ~]# vim web.res

 

 

  5.在节点1 与节点2上初始化资源web

   [root@drbd1 ~]# drbdadm create-md web

      Writing meta data...

      initializing activity log

      NOT initialized bitmap

      New drbd meta data block successfully created.

   [root@drbd2 ~]# drbdadm create-md web

      Writing meta data...

       initializing activity log

       NOT initialized bitmap

       New drbd meta data block successfully created.

  6.启动drbd服务

注意两个节点要一起启动,否则在启动时会处于一直等待状态

[root@drbd1 ~]# service drbd start

[root@drbd2 ~]# service drbd start

  7.查看节点状态

    在节点一上查看

    [root@drbd1 ~]# drbd-overview 

       0:web  Connected Secondary/Secondary Inconsistent/Inconsistent C r----

    在节点二上查看    

   [root@drbd2 ~]# drbd-overview 

       0:web  Connected Secondary/Secondary Inconsistent/Inconsistent C r---- 

 web:资源名

 Secondary/Secondary:自身状态/另外节点状态

  由上面的两个节点的状态可看到,两个节点都是备用节点,我们需要手动调整

   8.将drbd1.a.com调整为主节点

     [root@drbd1 ~]# drbdadm -- --overwrite-data-of-peer primary web

   9.再次查看状态

     节点一

      [root@drbd1 ~]# drbd-overview 

       0:web  Connected Primary/Secondary UpToDate/UpToDate C r---- 

      节点二

      [root@drbd2 ~]# drbd-overview 

      0:web  Connected Secondary/Primary UpToDate/UpToDate C r----

可以看出drbd1.a.com已经成为主节点了

10.在主节点上创建文件系统

      [root@drbd1 ~]# mkfs.ext3 -L drbdweb /dev/drbd0         L:卷名

   11.测试

     1> 在主节点上创建挂载点,挂载后,写入一个文件

      [root@drbd1 ~]# mkdir /mnt/drbd

        [root@drbd1 ~]# mount /dev/drbd0 /mnt/drbd

        [root@drbd1 ~]# cd /mnt/drbd

        [root@drbd1 drbd]# touch index.html

        [root@drbd1 drbd]# ll

        total 16

        -rw-r--r-- 1 root root     0 Jan 20 18:09 index.html

        drwx------ 2 root root 16384 Jan 20 18:07 lost+found

        [root@drbd1 drbd]# 

     2> 将drbd1.a.com配置成从节点,将drbd2.a.com配置成主节点

        节点一

        [root@drbd1 drbd]# cd 

        [root@drbd1 ~]# 

        [root@drbd1 ~]# umount /mnt/drbd

        [root@drbd1 ~]# drbdadm secondary web

        [root@drbd1 ~]# drbdadm role web

        Secondary/Primary        

        [root@drbd1 ~]#  

       节点二

        [root@drbd2 ~]# drbdadm primary web

        [root@drbd2 ~]# drbd-overview 

        0:web  Connected Primary/Secondary UpToDate/UpToDate C r---- 

     3> 在节点二挂载,查看是否有内容

        [root@drbd2 ~]# mkdir /mnt/drbd

        [root@drbd2 ~]# mount /dev/drbd0 /mnt/drbd

        [root@drbd2 ~]# ll /mnt/drbd/

       total 16

       -rw-r--r-- 1 root root     0 Jan 20 18:09 index.html    //可以看到已经写入成功

       drwx------ 2 root root 16384 Jan 20 18:07 lost+found










本文转自 guodong810 51CTO博客,原文链接:http://blog.51cto.com/guodong810/1126468,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
47 7
|
1月前
|
网络协议 网络架构
网络工程师必知:什么是OSPF多区域?如何配置?
网络工程师必知:什么是OSPF多区域?如何配置?
71 2
网络工程师必知:什么是OSPF多区域?如何配置?
|
1月前
|
网络协议 Linux
图形界面配置网络
本文介绍了在Linux上配置网络服务的步骤。首先打开RHEL-01服务器,找到桌面网络配置选项,进入网络配置面板。点击面板右下角的小齿轮,进入有线配置面板,选择IPv4选项,将地址设置为手动。接下来配置IP地址、子网掩码、网关和DNS服务器。配置完成后,使用新的IP地址进行访问。
47 4
图形界面配置网络
|
1月前
|
监控 负载均衡 网络协议
OSPF在小型网络中的应用:简化配置与高效管理
OSPF在小型网络中的应用:简化配置与高效管理
113 1
|
1月前
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
59 2
|
1月前
|
网络协议 Linux
通用网卡配置文件配置网络
本文介绍了在RHEL 7系统中配置网络的方法。首先,通过编辑位于`/etc/sysconfig/network-scripts`目录下的网卡配置文件(例如`ifcfg-ens33`),设置静态IP地址、子网掩码、网关和DNS等参数。接着,使用`systemctl`命令重启网络服务,确保配置生效。此外,还介绍了使用`nmtui`图形界面工具进行网络配置的步骤,包括修改IP地址、保存配置和重启网络。最后,通过`ip addr`或`ifconfig`命令验证配置是否成功。
114 2
|
12天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
52 17
|
23天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
24天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
45 10
|
25天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
53 10

热门文章

最新文章