夜勿眠 发表于 2019-1-7 10:29:49

Centos6.0系统drbd+heartbeat+nfs实现高可用文件存储

  本文centos6.0系统:
  使用drbd镜像技术实现后台两台服务器数据同步,使用heartbeat实现自动切换,开启nfs提供文件服务
http://blog.运维网.com/attachment/201305/021305437.jpg
  node1:192.168.182.132
  node2:192.168.182.128
  vip:192.168.182.200
  1、配置hosts,安装drbd、heartbeat、nfs
  1>、node1、node2:

  vim hosts
  192.168.182.132    node1
192.168.182.128    node2
  2>、drbd:
  yum -y install gcc kernel-devel kernel-headers flex libnet
tar zxvf drbd-8.4.3.tar.gz
cd drbd-8.4.3
./configure --prefix=/usr/local/drbd --with-km
make KDIR=/usr/src/kernels/2.6.32-71.el6.i686/
make install
mkdir -p /usr/local/drbd/var/run/drbd
cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
chkconfig --add drbd
chkconfig drbd on
cd drbd
cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
depmod
modprobe drbd

cd /usr/local/drbd/etc/drbd.d

mv global_common.conf global_common.conf.bak
vim global_common.conf
global    {
   usage-count    yes;#是否参加DRBD使用者统计,默认yes
   }
   common    {
   net    {
      protocol    C;#使用drbd的第三种同步协议,表示收到远程主机的写入确认后,则认为写入完成.
   }
   }

vim r0.res

resource    r0    {
       on node1    {   #每个主机的说明以on开头,后面是hostname
       device    /dev/drbd1;   #drbd设备名
       disk    /dev/sdb1;#/dev/drbd1使用的磁盘分区是/dev/sdb1。
       address    192.168.182.132:7789;    #设置DRBD的监听端口,用于与另一台主机通信。
       meta-disk    internal;
   }
       on node2    {
       device    /dev/drbd1;
       disk    /dev/sdb1;
       address    192.168.182.128:7789;
       meta-disk    internal;
   }
  }
3>、 启动DRBD
  drbdadm create-md r0
  /etc/init.d/drbd start
  node1:执行
  drbdsetup /dev/drbd1 primary --o
  mkfs.ext4 /dev/drbd1
  我们将其挂载到/root/data
http://blog.运维网.com/attachment/201305/022501105.jpg
  目前为止:drbd安装完毕,已经同步,更详请见:
  http://lansgg.blog.运维网.com/5675165/1194252

  4>、在node1、node2上配置nfs(一样操作)
  yum install nfs rpcbind -y
  vim /ect/exports
  /root/data    *(rw,no_root_squash,async)
  /etc/init.d.nfs restart
  2、现在开始安装heartbeat及配置
  yum install heartbeat -y
  cp /usr/share/doc/heartbeat-3.0.4/authkeys ha.cf haresources /etc/ha.d/
  1、node1配置ha.cf
  logfile    /var/log/ha-log
  logfacility    local0
  keepalive 2
  deadtime 30
  warntime 10
  initdead 120
  udpport    694
  ucast eth0 192.168.182.128
  auto_failback off
  node node1
node node2
  ping 192.168.182.2
  respawn root /usr/lib/heartbeat/ipfail
  ++++++++++++++++++++++++++++++++
  node2的ha.cf和上面一样,只是ucast eth0 192.168.182.132(对方IP)
  配置/etc/ha.d/authkeys
  auth 2
#1 crc
2 sha1 heartbeat
#3 md5 Hello!
  node2同上

  配置/etc/ha.d/haresources

  node1 IPaddr::192.168.182.200/24/eth0 drbddisk::r0 Filesystem::/dev/drbd1::/root/data::ext4 nfs
  node2同上
  cp /usr/local/drbd/etc/ha.d/resource.d/drbddisk /etc/ha.d/resource.d/
  node2同上

  4、启动heartbeat
  /etc/init.d/heartbeat start
  现在为止:你会发现node1上网卡
http://blog.运维网.com/attachment/201305/023916723.jpg
  将node1上heartbeat关闭:你会发现node2
http://blog.运维网.com/attachment/201305/024132262.jpg
  drbd自动升级primary
  vip自动漂移
  mount 自动挂载
  Ps:同样,你启动node1的heartbeat,关闭node2的,你会发现,node1的nfs,drbd,vip都进行了相应的操作;
  5、测试:
  在客户端进行挂载,并且也挂载到当前的/root/data
http://blog.运维网.com/attachment/201305/024838301.jpg
  继续测试:
  1、当你在客户端写入文件时,进行node间的切换尝试;
  看此时写数据有影响不,发现DRBD+Heartbeat正常切换还是需要些时间的;
  2、正常状态下关机Primary机,然后看数据有无问题,观察DRBD的status;然后等主机启动后,再观察变化,然后再关机secondary,然后再启动,观察DRBD变化及Heartbeat起作用了没。
  

  

  




页: [1]
查看完整版本: Centos6.0系统drbd+heartbeat+nfs实现高可用文件存储