DRBD+heartbeat+nfs环境部署

一、DRBD简介

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

DRBD 镜像数据的特点:


实时性:当应用对磁盘的数据进行修改时,复制立即发生。


透明性:应用程序的数据存储在镜像设备上是独立和透明的,数据可存储在不同的服务器


上。


同步镜像和异步镜像:同步镜像,当本地发申请进行写操作进行时,同步写到两台服务器


上。异步镜像,当本地写申请已经完成对本地的写操作时,开始对对应的服务器进行写操作


二、要求及拓扑


本实验部署drbd+heartbeat+nfs环境,建立一个高可用(HA)的文件系统服务器集群,通过DRBD保证了服务器数据的完整性和一致性。在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主服务器和备份服务器上。切换时,远程主机只要使用它上面的那份备份数据,就可以继续提供主服务器上相同的服务,并且client用户对主服务器的故障无感知。


174902407.jpg


三、实验环境


系统:VMware redhat-5.4


master  node1.abc.com    192.168.2.1    eth1 192.168.3.1


slave  node2.abc.com    192.168.2.2     eth1 192.168.3.2


虚拟ip:192.168.2.100


两台服务器新加一块硬盘/dev/sdb,创建/dev/sdb1分区互为镜像


注意创建分区时,大小要一致,若不一致,以小的为准

//时间相同,读取主板时间作为当前时间


# hwclock  -s


//两个服务器的hosts文件修改,可以正常解析ip与主机名


# echo "192.168.2.1  node1.abc.com" >> /etc/hosts


# echo "192.168.2.2  node1.abc.com" >> /etc/hosts


四、DRBD配置


node1node2做以下操作:(在node1在操作,然后可通过scp命令实现相关文件拷贝到node2上)


1、安装drbd


#rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm


# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm


# modprobe  drbd//加载drbd模块


# lsmod  |grep drbd//查看模块加载情况


2、主要目录及命令


/etc/drbd.conf 配置文件


/etc/rc.d/init.d/drbd 配置脚本


/etc/drbd.d/  主目录


/sbin/drbdadm 高级别管理工具


/sbin/drbdmeta 低级别管理工具


/sbin/drbdsetup 低级别管理工具


/usr/sbin/drbd-overview 查看工具


注: rpm  -ql   drbd83 查看


3、修改配置文件


#vim /etc/drbd.conf


# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example


include "drbd.d/global_common.conf";


include "drbd.d/*.res";


~                                                                            


~                                                                                        


:r /usr/share/doc/drbd83-8.3.8/drbd.conf     //末行模式下执行读命令来加载


#cp /etc/drbd.d/global_common.conf/etc/drbd.d/global_common.conf.bak


# vim /etc/drbd.d/global_common.conf    (替换掉原来的内容)


global {


       usage-count yes;


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


}


common {


       protocol C;



       startup {    //启动延时配置


               wfc-timeout  120;


               degr-wfc-timeout 120;


        }


       disk {


                 on-io-error detach;


                 fencing resource-only;


         }


       net {


               cram-hmac-alg "sha1";


               shared-secret  "mydrbdlab";


        }


       syncer {


                 rate  100M;


        }


    }


# vim /etc/drbd.d/web.res    //定义资源


resource  web {               //资源名称


       on node1.abc.com {


       device   /dev/drbd0;


       disk    /dev/sdb1;


       address  192.168.2.1:7789;


       meta-disk       internal;


       }  


       on node2.abc.com {


       device   /dev/drbd0;


       disk    /dev/sdb1;


       address  192.168.2.2:7789;


       meta-disk       internal;


       }  


}


4、初始化,启动服务


#drbdadm   create-md web


# service drbd start   &&chkconfig drbd on   //并设为开机启动


5、指定主节点


#drbdadm   -- --overwrite-data-of-peer primary web   (在自定义主节点上执行)

  不加-- --overwrite-data-of-peer

  错误:

  0: State change failed: (-2) Need access to UpToDate data

  Command 'drbdsetup 0 primary' terminated with exit code 17

 日志信息:block drbd0: State change failed: Need access to UpToDate data

6、创建目录,实现挂载(在主节点上执行)


#mkdir /data


#mkfs -t ext3 /dev/drbd0 //格式化


#mount /dev/drbd0  /data


7、查看drbd状态


#drbd-overview   #service drbd status


主节点node1


174318862.png


备份节点nod2


174331507.png


五、nfs配置


两台服务器配置相同,可通过scp拷贝


1、修改nfs的共享菜单

# echo "/data  192.168.2.0/24(rw,sync,no_root_squash)" > /etc/exports


2、启动服务


# service nfs start && chkconfig nfs on


3、修改nfs启动脚本。


  /etc/init.d/nfs中的stop部分killproc


  脚本nfsd  -2  修改为 -9


116   stop)


117         # Stop daemons.


118         echo -n $"Shutting down NFS mountd: "


119         killproc rpc.mountd


120         echo


121         echo -n $"Shutting down NFS daemon: "


122         killproc nfsd -9



六、heartbeat配置


node1node2做如下操作


1、安装


heartbeat-2.1.4-11.el5.i386.rpm


heartbeat-pils-2.1.4-10.el5.i386.rpm


heartbeat-stonith-2.1.4-11.el5.i386.rpm


依赖包:


libnet-1.1.4-3.el5.i386.rpm


perl-MailTools-1.77-1.el5.noarch.rpm


注:下载地址http://vault.centos.org/5.4/extras


2、拷贝配置文档


# cd /usr/share/doc/heartbeat-2.1.4/


# cp authkeys  ha.cf  haresources  /etc/ha.d/


3、修改配置文档


1)、ha.cf配置(做如下添加)


bcast eth1


node node1.abc.com


node node2.abc.com


2)、haresources资源文件


#echo node1.abc.com 192.168.2.100/24/eth0 drbddisk::web  Filesystem::/dev/drbd0::/d


ata::ext3 killnfsd  >> /etc/ha.d/haresoures


3)、验证authkeys


#vim authkeys


auth 3


3 md5 hello


 #chmod 600  authkeys  设置权限值为600


4)、killnfsd服务控制脚本配置


#echo killall -9 nfsd; /etc/init.d/nfs restart; exit 0  >>/etc/ha.d/resource.d/killnfsd


#chmod 755 /etc/ha.d/resource.d/killnfsd  //添加可执行权限


4、开启Heartbeat服务


#service heartbeat start && chkconfig heartbeat on


七、测试


1、创建挂载


#mkdir  /mnt/data


#mount 192.168.2.100:/data  /mnt/data


2、编写shell,间隔1s创建一次空文件xxx


# vim /mnt/data/test.sh


while true


do echo  ----\> trying touch xxx:$(date)


       touch   xxx


  echo  \<---- done touch xxx: $(date)


  echo


  sleep 1


done


3、将主节点node1heartbeat服务停止,则备份节点node2接管服务


#service heartbeat stop    //node1接点


174346292.jpg


注:以上实现的drbd的单主模式, 任何资源在任何特定的时间,集群中只存在一个主节点。 正是因为这样在集群中只能有一个节点可以随时操作数据,这种模式可用在任何的文件系统上(EXT3EXT4XFS等等)。





你可能感兴趣的:(技术,服务器,解决方案,软件,应用程序)