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

[经验分享] drbd+heartbeat

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-20 10:11:05 | 显示全部楼层 |阅读模式

分布式复制模块(drbd)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的DRBD 镜像数据

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

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

上。

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

上。异步镜像,当本地写申请已经完成对本地的写操作时,开始对对应的服务器进行写操作。堆块设备(硬盘,分区,逻辑卷等)进行镜像。

Drbd在linux中I/O堆栈中的位置

wKioL1eOR1Xgu7F_AAFNwH825z8263.jpg
Drbd复制的模式有三种
协议内容特点
用途
协议A (异步复制)数据一旦写入磁盘发送到网络队列中就认为是完成里写入操作一个节点发生故障时,可能发生数据丢失,数据还有可能在队列中用于地理上分开的节点
协议B(半同步复制)收到接受确认就认为完成操作数据丢失可能发生在参加的两个节点同时故障的情况下,因为在飞行中的数据可能不会
被提交到磁盘

协议C(同步复制)收到写入确认就认为完成写入操作没有任何数
据丢失,所以这是一个群集节点的流行模式,但 I/O 吞吐量依赖于网络带宽
数据的复制较慢但是最安全的一种。目前应用最多最广泛的一种协议。
实验(此实验用的是协议C)
Server6 与server7
需要包:drbd-8.4.2.tar.gz 要对这个tar包进行源码编译,所以需要rpm-bulid这个工具。
编译源码包解决依赖
两台虚拟机需要加一块4G的虚拟内存,内存的大小自己可以定义
Server7
cpdrbd-8.4.0.tar.gz rpmbuild/SOURCES/  通常一般把源码包放在SOURCES/这个目录里
[root@server6drbd-8.4.2]# yum install gcc -y
[root@server6drbd-8.4.2]# yum install flex -y
[iyunv@server6 ~]#yum install -y rpm-build
[iyunv@server6 ~]#tar zxf drbd-8.4.2.tar.gz
[root@server6drbd-8.4.2]# ./configure  --enable-spec--with-km 编译缺什么就补什么
[root@server6drbd-8.4.2]# rpmbuild -bb drbd.spec
[root@server6drbd-8.4.2]# cd /root/rpmbuild/RPMS/x86_64/ 进入这个目录就会看到生成的RPM包。
wKiom1eOSWKTu4qbAABM3Ygb85g409.jpg
[iyunv@server6x86_64]# rpm -ivh *  安装
[iyunv@server6x86_64]# scp * 172.25.137.7:~  把生成的rpm包传给server7
[root@server6drbd.d]# fdisk -l   查看添加磁盘信息
[root@server6drbd.d]# vim example.res   编辑的文件都以.res结尾。因为在/etc/drbd.conf的内容里规定"drbd.d/*.res";
resource example{                  ###example这是名字是和文件的名字一样
meta-diskinternal;
device /dev/drbd1;
syncer {
verify-alg sha1;
}
on server6.example.com{           ###主备的主机名
disk/dev/vdb;                     ###在做之前添加一个虚拟磁盘,这是磁盘的名字
address172.25.137.6:7789;            
}
onserver7.example.com {
disk /dev/vdb;
address172.25.137.:7789;
}
}
wKioL1eOSaShMUF7AACGjwspSU8453.jpg
[root@server6drbd.d]# drbdadm create-md example 对资源做初始化
[root@server6drbd.d]# /etc/init.d/drbd start                会报这样的错是因为没有启动内核模块
wKioL1eOS9fxjxOpAAAfBXfUM14944.jpg
[root@server6drbd-8.4.2]# rpmbuild -bb drbd-km.spec
wKiom1eOS_2jPDxUAAAnbVp_wKY731.jpg

[root@server6drbd-8.4.2]# yum install kernel-devel -y
[root@server6drbd-8.4.2]# rpmbuild -bb drbd-km.spec
[root@server6drbd-8.4.2]# cd /root/rpmbuild/RPMS/x86_64
[iyunv@server6x86_64]# rpm -ivh drbd-km-2.6.32_431.el6.x86_64-8.4.2-2.el6.x86_64.rpm
[iyunv@server6x86_64]# scp drbd-km-2.6.32_431.el6.x86_64-8.4.2-2.el6.x86_64.rpm172.25.137.7:~  传给7
[iyunv@server6x86_64]# /etc/init.d/drbd start    开启服务,
[iyunv@server6x86_64]# cat /proc/drbd   此时看到的是secondary要把它手动设置为primary
wKioL1eOTB2i9eysAABWlxuGUw8155.jpg
[iyunv@server6 x86_64]# drbdadm primaryexample --force
下面这个截图是在同步
wKiom1eOTD2RkV4mAACM0S25log128.jpg
[iyunv@server6x86_64]# mkfs.ext4 /dev/drbd1   格式化磁盘
[iyunv@server6 x86_64]#mount /dev/drbd1   /mnt/    把drbd1 挂载
wKioL1eOTH2wb2beAAAregQaxME742.jpg
Server7
[iyunv@server7 ~]#rpm -ivh *.rpm

[iyunv@server7 ~]#fdisk -l
wKiom1eOTLbAw8NCAACGq8FipjY033.jpg
[iyunv@server7 ~]#drbdadm create-md example
[iyunv@server7 ~]#rpm -ivh drbd-km-2.6.32_431.el6.x86_64-8.4.2-2.el6.x86_64.rpm
[iyunv@server7 ~]#/etc/init.d/drbd start
如果让server7成为主那么就的把server6设置为primary
[iyunv@server7mnt]# drbdadm primary example
[iyunv@server7mnt]# mount /dev/drbd1 /mnt/
[iyunv@server7mnt]# df
wKioL1eOTPmQh6S8AABkthyKMRE615.jpg

[iyunv@server7 /]# drbd-overview  查看状态
[iyunv@server7 /]# drbdadm down example  关闭节点
[iyunv@server7 /]# drbdadm up example  开启节点
在实验中记住解挂的时候一定不能在挂载的那个目录进行解挂,否则解不掉
Drbd服务起不来有可能是因为没有下载内核启动所以在做实验下载需要的程序的时候把kernel-devel下载好。
两台主机上的/dev/drbd1不能同时挂载,只有状态为 primary 时,才能被挂载使
用,而此时另一方的状态为 secondary。
               Heartbeat + drbd
在做drbd的时候heartbeat是关闭的。现在要开启heartbeat来自动挂载
[root@server6ha.d]# vim haresources  在这个文件加入里磁盘自动挂载
server6.example.comIPaddr::172.25.137.100/24/eth0 drbddisk::exampleFilesystem::/dev/drbd1::/var/www/html::ext4 httpd

[root@server6ha.d]# /etc/init.d/heartbeat start
[root@server6ha.d]# ip addr show  我们可以看到vip在server6上
wKioL1eOTT-BWkUcAAC2enBejtc178.jpg
[iyunv@server6 ha.d]# drbd-overview   此时6是主
wKiom1eOTWazgbOTAAB1rtQ82mM654.jpg
/dev/drbd1 也自动挂载上了
如果关闭heartbeat服务此时server7是主备
[iyunv@server7 ha.d]# ip addr show
wKiom1eOTYaxk9ZRAACohZ3DMaM955.jpg
[iyunv@server7 ha.d]# drbd-overview
wKioL1eOTa7AMkYOAAB7oUQuugE794.jpg
此时挂载在server7上
在drbd1上写一个测试页
wKiom1eOTeyBepkcAAAuOULsTDw178.jpg
在浏览器上看到的效果httpd服务一定要开启
wKioL1eOTgaj3NvBAAAxrwJSZa4231.jpg

运维网声明 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-246757-1-1.html 上篇帖子: 高可用集群之heartbeat v2--基于CRM进行资源管理 下篇帖子: HA-heartbeat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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