设为首页 收藏本站
查看: 683|回复: 0

[经验分享] DRBD+Heartbeat+NFS配置高可用性网络(1)

[复制链接]

尚未签到

发表于 2019-1-7 10:31:35 | 显示全部楼层 |阅读模式
  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
  
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660257-1-1.html 上篇帖子: Centos6.0系统drbd+heartbeat+nfs实现高可用文件存储 下篇帖子: 基于heartbeat V2 crm 的lamp高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表