虚拟化容器,大数据,DBA,中间件,监控。

DRBD+Heartbeat+NFS试验手册

01 09月
作者:admin|分类:系统运维

DRBD+Heartbeat+NFS试验手册



本实验部署DRBD + HEARDBEAT + NFS 环境,建立一个高可用(HA)的文件服务器集群。
在方案中,通过DRBD保证了服务器数据的完整性和一致性。DRBD类似于一个网络RAID-1功能。
当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个另文件系统中。
主节点与备节点的数据可以保证实时相互同步。当本地主服务器出现故障时,备份服务器上还会保留有一份相同的数据,可以继续使用。
在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。因为数据同时存在于本地主服务器和备份服务器上。
切换时,远程主机只要使用它上面的那份备份数据,就可以继续提供主服务器上相同的服务,并且client用户对主服务器的故障无感知。

二、实验环境
虚拟机操作系统:Centos 5.5 64bit
A: master    计算机名:server1     IP地址:192.168.20.101 B: slave      计算机名:server2     IP地址:192.168.20.102 虚拟IP : 192.168.20.188 两台服务器将/dev/sda3互为镜像 两台服务器/etc/export配置相同 // 同步服务器时间
# /usr/sbin/ntpdate 210.72.145.44;/usr/sbin/hwclock 
// 两个机子的hosts文件里包含2台机子的ip地址和计算机名称。
# echo "192.168.20.101  server1" >> /etc/hosts
# echo "192.168.20.102  server2" >> /etc/hosts
三、DRBD配置
在server1和server2做以下操作:
1、安装DRBD套件
// 要指定drbd83或者drbd82的版本号,否则可能会出错。 # yum -y install drbd82 kmod-drbd82    
2、加载DRBD模块
# modprobe drbd
 


   2014年执业医师资格考试 医学综合笔试  临床执业医师  口腔执业医师  中医执业医师    
 


 
Write by Lhw
// 查看模块加载 # lsmod |grep drbd
3、修改配置文件
# vi /etc/drbd.conf #
# please have a a look at the example configuration file in # /usr/share/doc/drbd/drbd.conf #
global { usage-count yes; }
common { syncer { rate 10M; } }             // 如果是100M网络,就写成100M 
resource r0 {                              // 数据同步协议,C为收到数据并写入后返回,确认成功         protocol C;         startup { 
        }         disk {
                on-io-error   detach;         }         net {         }
        on server1 {                               // 服务器名称
                device    /dev/drbd0;             // 创建的虚拟资源                            disk      /dev/sda3;               // 物理分区
                address   192.168.20.101:7898;     // 第一台服务器IP,及通讯端口                 meta-disk internal;                 // 类型,局域网         }
        on server2 {
                device    /dev/drbd0;                 disk      /dev/sda3;                 address   192.168.20.102:7898;
                meta-disk internal;         } }
4、检测配置文件
// 实验环境中原有/dev/sda3已被挂载,请先卸载,然后破坏文件系统。 # umount /dev/sda3
# dd if=/dev/zero bs=1M count=1 of=/dev/sda3  sync // 检测配置文件 # drbdadm adjust r0
drbdsetup 0 show:5: delay-probe-volume 0k => 0k out of range [4..1048576]k.
 
 



 


 
Write by Lhw
5、创建ro的资源
# drbdadm create-md r0
6、启动DRBD服务
# /etc/init.d/drbd start && chkconfig drbd on
7、创建文件夹
# mkdir /data
8、挂载分区
在server1上操作 // 指定主节点
# drbdsetup /dev/drbd0 primary -o // 格式化分区
# mkfs.ext3 /dev/drbd0  // 挂载分区
# mount /dev/drbd0 /data // 查看状态 
# service drbd status server1 :
drbd driver loaded OK; device status: version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs         ro                 ds                 p  mounted  fstype 0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C  /data    ext3 server2 :
drbd driver loaded OK; device status: version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by
mockbuild@builder10.centos.org, 2010-06-04 08:04:09
m:res  cs         ro                 ds                 p  mounted  fstype 0:r0   Connected  Secondary/Primary  UpToDate/UpToDate  C 四、NFS配置
1、两台服务器都修改nfs 配置文件如下:
# vi /etc/exports
/data *(rw,sync,insecure,no_root_squash,no_wdelay) # service portmap start && chkconfig  portmap on # service nfs start && chkconfig  nfs on
 



 


 
Write by Lhw
2、两台服务器都修改nfs 启动脚本。将/etc/init.d/nfs 脚本中的stop 部分中的killproc nfsd -2 修改为 -9
五、Heartbeat配置
在server1和server2做以下操作:
1、安装Heartbeat套件(不知为什么,下面命令要运行2次才能安装完Heartbeat)
# yum -y install heartbeat
2、拷贝配置文档
# cd /usr/share/doc/heartbeat-2.1.3 # cp authkeys ha.cf haresources /etc/ha.d/
3、修改配置文档
需要修改4个文档: /etc/ha.d/ha.cf /etc/ha.d/haresources /etc/ha.d/authkeys
/etc/ha.d/resource.d/killnfsd (手动编写)
1)ha.cf 配置,2台机子不一样的地方标红,填写对方服务器IP地址 debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility     local0 keepalive 2 deadtime 10 udpport 692
ucast   eth0 192.168.20.102       ping 192.168.20.1      auto_failback off node    server1 node    server2
2)haresources配置,2台机子相同
# echo "server1 IPaddr::192.168.20.188/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 killnfsd" >> /etc/ha.d/haresources 3)authkeys 配置相同 auth 1 1 crc #2 sha1 HI! #3 md5 Hello
4)killnfsd配置相同(手动编写)
 



 


 
Write by Lhw
# echo "killall -9 nfsd  /etc/init.d/nfs restart  exit 0" >> /etc/ha.d/resource.d/killnfsd 5)设置文档权限
# chmod 600 /etc/ha.d/authkeys
# chmod 755 /etc/ha.d/resource.d/killnfsd
4、开启Heartbeat服务
# service heartbeat start && chkconfig heartbeat on
六、测试
1、在测试机上将192.168.10.188:/data挂到本地/mnt/nfs
# mkdir /mnt/nfs
# mount 192.168.10.188:/data /mnt/nfs
2、在测试机上创建测试shell,二秒一个
# vi /mnt/test.sh while true do
  echo     ---\> trying touch x : `date`   touch x
  echo     \<----- done touch x : `date`   echo   sleep 2 done
3、将主节点server1的heartbeat服务停止,则备节点server2接管服务
# /etc/init.d/heartbeat stop // 测试脚本终端显示如下
---> trying touch x : ?t 6?? 30 15:17:16 CST 2009 <----- done touch x : ?t 6?? 30 15:17:16 CST 2009 
---> trying touch x : ?t 6?? 30 15:17:19 CST 2009 <----- done touch x : ?t 6?? 30 15:17:19 CST 2009 
---> trying touch x : ?t 6?? 30 15:17:21 CST 2009 <----- done touch x : ?t 6?? 30 15:17:21 CST 2009 
---> trying touch x : ?t 6?? 30 15:17:23 CST 2009 <----- done touch x : ?t 6?? 30 15:17:23 CST 2009 
---> trying touch x : ?t 6?? 30 15:17:25 CST 2009
 



 


浏览2441 评论0
返回
目录
返回
首页
drbd+heartbeat+nfs 测试实验 RHEL6 虚拟机克隆网络问题解决方法