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

[经验分享] HA 高可用性

[复制链接]

尚未签到

发表于 2019-1-6 15:44:19 | 显示全部楼层 |阅读模式
  一、基础知识:
  1 简介:
  Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
  2 原理:
  DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。
  3 DRBD的工具:
  3.1 drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令;
  3.2 drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用;
  3.3 drbdmeta:管理META数据结构,平时很少直接用;
  4 DRBD的模式:
  4.1 单主模式:典型的高可靠性集群方案。
  4.2 复主模式:需要采用共享cluster文件系统,如GFS和OCFS2。用于需要从2个节点并发访问数据的场合,需要特别配置。
  5 复制模式:3种模式:
  5.1 协议A:异步复制协议。本地写成功后立即返回,数据放在发送buffer中,可能丢失。
  5.2 协议B:内存同步(半同步)复制协议。本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失。
  5.3 协议C:同步复制协议。本地和对方写成功确认后返回。如果双机掉电或磁盘同时损坏,则数据可能丢失。
  一般用协议C。选择协议将影响流量,从而影响网络时延。
  二、案例:
  1 拓扑图:

  2 案例说明:
  通过heartbeat实现HA高可用性群集,通过DRBD实现存储复制来达到存储的高可用性,通过NFS实现网络文件系统共享;
  3 配置步骤:
3.1 Heartbeat高可用性群集搭建:
  3.1.1(1) 配置director1群集服务器:
  配置director1的网卡地址:
  外出接口网卡:

  心跳网卡:

  重启网络服务:

  同步时钟:
  # hwclock -s
  配置director1的主机名:
  # vim /etc/sysconfig/network

  # hostname dir1.abc.com //配置后需要注销一次;

  配置director1的本地DNS解析:
  # vim /etc/hosts

  将heartbeat的安装包使用ftp导入director1:


  挂载光盘:
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom
  使用yum安装heartbeat相应的软件包:
  # yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck

  拷贝heartheat的配置文件到相应的位置:
  # cd /usr/share/doc/heartbeat-2.1.4/
  # cp ha.cf /etc/ha.d/
  # cp haresources /etc/ha.d/
  # cp authkeys /etc/ha.d/
  编辑心跳探测配置文件ha.cf:
  # cd /etc/ha.d/
  # vim ha.cf

  //定义心跳网卡;

  //声明群集的节点;
  配置验证钥匙(为了实现双方身份验证):
  # vim authkeys

  改变authkeys的权限:
  # chmod 600 authkeys
  3.1.1(2) 配置director2群集服务器:
  配置director2的网卡地址:
  外出接口网卡:

  心跳网卡:

  重启网络服务:

  同步时钟:
  # hwclock -s   
配置director2的主机名:
  # vim /etc/sysconfig/network

  # hostname dir2.abc.com //配置后需要注销一次;

  配置director2的本地DNS解析:
  # vim /etc/hosts

  将heartbeat的安装包使用ftp导入director1:


  挂载光盘:
  # mkdir /mnt/cdrom
  # mount /dev/cdrom /mnt/cdrom
  使用yum安装heartbeat相应的软件包:
  # yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck

  拷贝heartheat的配置文件到相应的位置:
  # cd /usr/share/doc/heartbeat-2.1.4/
  # cp ha.cf /etc/ha.d/
  # cp haresources /etc/ha.d/
  # cp authkeys /etc/ha.d/
  编辑心跳探测配置文件ha.cf:
  # cd /etc/ha.d/
  # vim ha.cf

  //定义心跳网卡;

  //声明群集的节点;
  配置验证钥匙(为了实现双方身份验证):
  # vim authkeys

  改变authkeys的权限:
  # chmod 600 authkeys
3.2 DRBD服务搭建:
  3.2.1(1) 在dir1.abc.com主机中创建一个NFS共性分区:
  从sda硬盘中划分一个分区:
  # fdisk /dev/sda
  创建一个扩展分区:

  创建一个扩展分区:

  查看分区表:

  保存并退出:

  通过内核从新读取分区表:
  # partprobe /dev/sda
  3.2.1(2) 在dir2.abc.com主机中创建一个NFS共性分区:
  从sda硬盘中划分一个分区:
  # fdisk /dev/sda
  创建一个扩展分区:

  创建一个扩展分区:

  查看分区表:

  保存并退出:

  通过内核从新读取分区表:
  # partprobe /dev/sda
  3.2.2(1) 在dir1.abc.com中安装DRBD相关软件包:   
导入DRBD相应的安装包:

  安装drbd服务:
  # rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm
  安装drbd的内核模块:
  # rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
  3.2.2(2) 在dir2.abc.com中安装DRBD相关软件包:
  导入DRBD相应的安装包:

  安装drbd服务:
  # rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm
  安装drbd的内核模块:
  # rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
  3.2.3(1) 在dir1.abc.com编辑drbd文档:
  编辑drbd主配置文件:
  # vim /etc/drbd.conf
  读取样例文件内容:底行模式


  编辑通用资源:
  # vim /etc/drbd.d/global_common.conf

  编辑详细资源:
  # vim /etc/drbd.d/web.res

  初始化drbd:
  # drbdadm create-md web

  3.2.3(2) 在dir2.abc.com编辑drbd文档:
  编辑drbd主配置文件:
  # vim /etc/drbd.conf
  读取样例文件内容:底行模式


  编辑通用资源:
  # vim /etc/drbd.d/global_common.conf

  编辑详细资源:
  # vim /etc/drbd.d/web.res

  初始化drbd:
  # drbdadm create-md web

  3.2.4(1) 启动dir1.abc.com的DRBD服务:
  # service drbd start
  3.2.4(1) 启动dir2.abc.com的DRBD服务:
  # service drbd start
  3.2.5(1) 查看dir1.abc.com的设备状态:
  # drbd-overview

  3.2.5(2) 查看dir2.abc.com的设备状态:
  # drbd-overview

  3.2.6 将dir1.abc.com的设备调整为主设备:
  # drbdadm -- --overwrite-data-of-peer primary web


  3.2.7 格式化/dev/drbd0:
  # mkfs -t ext3 -L drbdweb /dev/drbd0
  3.2.8(1) 在dir1.abc.com上对/dev/drbd0进行挂载:
  创建挂载点:
  # mkdir /public
  挂载:
  # mount /dev/drbd0 /public/
  3.2.8(2) 在dir1.abc.com上对/dev/drbd0进行挂载:
  创建挂载点:
  # mkdir /public
  3.2.9(1) 查看dir1.abc.com的drbd当前状态:

  3.2.9(2) 查看dir2.abc.com的drbd当前状态

3.3 NFS搭建
  3.3.1(1) 配置dir1.abc.com的NFS server:
  NFS服务是默认安装的,使用时直接启动即可;
  # service nfs start
  # service portmap start
  编写共享清单:
  # vim /etc/exports

  导出共享清单:
  # exportfs -rv
  exporting 192.168.10.0/24:/public
  -r 导出;
  -v 详细信息;
  修改nfs启动脚本:
  # vim /etc/init.d/nfs

  3.3.1(2) 配置dir2.abc.com的NFS server:
  NFS服务是默认安装的,使用时直接启动即可;
  # service nfs start
  # service portmap start
  编写共享清单:
  # vim /etc/exports

  导出共享清单:
  # exportfs -rv
  exporting 192.168.10.0/24:/public
  -r 导出;
  -v 详细信息;
  修改nfs启动脚本:
  # vim /etc/init.d/nfs

3.4 编辑heartbeat资源文件:
  3.4.1(1) 在dir1.abc.com节点上heartbeat资源配置:
  # vim /etc/ha.d/haresources

  创建nfs服务的资源控制文件:
  # vim /etc/ha.d/resource.d/killnfsd

  改变nfs服务的资源控制文件的权限:
  # chmod 755 /etc/ha.d/resource.d/killnfsd
  3.4.1(2) 在dir2.abc.com节点上heartbeat资源配置:
  # vim /etc/ha.d/haresources

  创建nfs服务的资源控制文件:
  # vim /etc/ha.d/resource.d/killnfsd

  改变nfs服务的资源控制文件的权限:
  # chmod 755 /etc/ha.d/resource.d/killnfsd
  3.4.2(1) 启动dir1.abc.com节点的heartbeat的服务:
  # service heartbeat start
  3.4.2(2) 启动dir2.abc.com节点的heartbeat的服务:
  # service heartbeat start
  3.4.3 查看heartbeat两节点的状态:


  4 测试:
  4.1 开启一个客户端:
  配置一个临时地址:
  # ifconfig eth0 192.168.10.20
  创建一个挂载点:
  # mkdir /mnt/nfs
  # mount 192.168.10.10:/public /mnt/nfs
  查看挂载的状态:

  4.2 当heartbeat正常运行时:
  查看NFS网络文件系统:

  4.3 在dir1.abc.com中将heartbeat服务关闭:
  # service heartbeat stop

  此时NFS网络文件系统仍然可以使用:





运维网声明 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.iyunv.com/thread-660052-1-1.html 上篇帖子: 集群HA 下篇帖子: Mysql DBA 高级运维学习之路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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