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

[经验分享] Glusterfs(distribute) + DRBD + heartbeat + mon 实现分布式文件系统2

[复制链接]

尚未签到

发表于 2019-1-7 10:54:00 | 显示全部楼层 |阅读模式
//看看刚启动后的drbd状态:

Drbd-1# cat /proc/drbd
version: 8.3.5 (api:88/proto:86-91)
GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by root@localhost.localdomain, 2010-04-14 18:03:29

1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:6289188

drbd-2 # cat /proc/drbd
version: 8.3.5 (api:88/proto:86-91)
GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by root@rac02, 2010-04-15 15:28:19
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:6289188

//第一行的ro表示两台主机的状态,都是”备机”状态.ds是磁盘状态,都是”不一致”状态.我们设置drbd-1为主节点:
drbd-1 # drbdsetup /dev/drbd0  primary –o   //先用drbdsetup 来做,以后就可以用 drbdadm 了. #drbdadm primary db

drbd-1 # cat /proc/drbd
version: 8.3.5 (api:88/proto:86-91)
GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by root@localhost.localdomain, 2010-04-14 18:03:29
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
   ns:21420 nr:0 dw:0 dr:29600 al:0 bm:1 lo:1 pe:8 ua:256 ap:0 ep:1 wo:b oos:6268004
   [>....................] sync'ed: 0.4% (6120/6140)M       //表示同步了0.4%
   finish: 0:14:46 speed: 7,060 (7,060) K/sec

drbd-1 # cat /proc/drbd
version: 8.3.5 (api:88/proto:86-91)
GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by root@localhost.localdomain, 2010-04-14 18:03:29
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C
ns:6289188 nr:0 dw:0 dr:6289188 al:0 bm:384 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

//第一次同步完成之后,就可以对drbd的设备创建文件系统了

drbd-1 # mkfs.ext3 /dev/drbd0       //这里你要是还没有格式化过,就进行格式化
drbd-1 # mount /dev/drbd0 /home/gluster/
drbd-1 # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.5G  3.3G  5.8G  37% /
/dev/sda3             9.0G  273M  8.3G   4% /home
tmpfs                  62M     0   62M   0% /dev/shm
/dev/drbd0            6.0G  541M  5.0G   3% /home/gluster

//这里恢复我们之前保存的数据
#dd if=/root/backup  of=/dev/drbd0

//
测试2个节点的数据同步,先在1节点上创建3个文件 1  2  3 ,把第一个节点设置为从节点并且卸载第一个节点的磁盘, 在2节点上设置为主节点并且进行挂载,看数据有没有同步过来,在节点2上创建3个文件 4 5 6 ,再到节点1上看文件有没有同步过来,要是都可以同步,那就说明drbd的同步已经成功了.我这里就不输出相关信息了.

//glusterfs客户端的配置信息

#vi /usr/local/etc/glusterfs/glusterfs.vol

volume client1
  type protocol/client
  option transport-type tcp/client
  option remote-host 192.168.0.70       //这里是heartbeat的
                                          虚拟IP
  option remote-port 6996
  option remote-subvolume locker
end-volume

volume bricks
type cluster/distribute
subvolumes client1
end-volume

#glutserfs  -l /tmp/glutser.log -f /usr/local/etc/glusterfs/glusterfs.vol  /home/gluster
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              30G  3.3G   25G  12% /
udev                  4.0G  116K  4.0G   1% /dev
/dev/sda3              89G   77G  7.5G  92% /home
glusterfs#/usr/local/etc/glusterfs/glusterfs.vol
                      6.0G  541M  5.0G   3% /home/gluster

//可以看到glusterfs客户端已经挂载成功.


//heartbeat的配置,在每个节点上执行下面的命令

# cp   /usr/share/doc/heartbeat-2.0.7/ha.cf  /etc/ha.d/
# cp   /usr/share/doc/heartbeat-2.0.7/authkeys  /etc/ha.d/
# cp   /usr/share/doc/heartbeat-2.0.7/ha  /etc/ha.d/
# useradd  hacluster
# useradd  haclient
# cd /etc/ha.d/
# vi ha.cf

#日志文件位置
logfile /var/log/ha-log
#指定主备服务器多久发送一次心跳
keepalive 2
#指定30秒没有收到对方心跳就认为对方已经DOWN机
deadtime 30
#10秒没有收到心跳,便发出警报。
warntime 10
#对方DOWN后120秒重新检测一次。
initdead 120
#指定监听端口
udpport 694
#心跳监听网口,这里为eth0
bcast   eth0   
#主节点恢复后,自动收回资源。
auto_failback off
#指定主备服务器的主机名称,即在hosts文件中指定的
第一个node为主服务器,第二个node为备服务器。
node        drbd-1      //服务器的主机名
node        drbd-2
#当192.168.0.59,192.168.0.60这两个IP都不能ping通时对方即开始接管资源.
ping_group group1 192.168.0.59 192.168.0.60
#启用ipfail脚本
respawn root /usr/lib/heartbeat/ipfail
#指定运行ipfail的用户
apiauth ipfail gid=root uid=root

# vi authkeys

auth 1
1 crc

# chmod 600 authkeys

# vi haresources

drbd-1 drbddisk   Filesystem::/dev/drbd0::/home/gluster::ext3    192.168.0.70

资源组的第一列是我们在ha.cf配置文件中的node之一,而且应该是当前准备作为primary节点的那一个node.
上面资源组中的各项含义如下:

drbd-1            当前primary节点名(uname -n)
        
drbddisk         
告诉heartbeat要管理drbd的资源


Filesystem        
这里是告诉heartbeat需要管理文件系统资源,其实实际上就是执行mount/umount命令,后面的”::”符号之后是跟的Filesystem的参数设备名和mount点

192.168.0.70      提供一个虚拟IP

# chkconfig heartbeat on
# service heartbeat start
//moniter内容如下,我这里是把moniter放到chkconfig执行的,这个脚本是监控glutser是否挂掉的,要是挂掉,就进行heartbeat的切换.

#!/bin/bash   

# chkconfig: 345 99 33                                                   

# description: start gluster moniter                                    

logfile=/var/log/moniter.log   

date=`(date +%y-%m-%d--%H:%M:%S)`   

email=xxxxxxx@139.com

sleeptime=60   

ip=$(/sbin/ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}' | head -1)   

while [ 0 ]

do

ps aux |grep gluster |grep -v "grep gluster"

if [[ $? != 0 ]]   

then   

        mail -s "{$ip}_glusterfs connect lost the srcprits fix it now " $email

        service heartbeat stop   

        glusterfs -f /usr/local/etc/glusterfs/glusterfsd.vol

        ps aux |grep gluster |grep -v "grep gluster"

        if [ $? == 0 ]   

        then   

             echo "==============>$date

运维网声明 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-660281-1-1.html 上篇帖子: heartbeat v3版之web高可用初体验 下篇帖子: Drbd+nfs+heartbeat 简要总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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