设为首页 收藏本站
查看: 2824|回复: 6

[经验分享] 构建Heartbeat+DRBD+NFS高可用文件共享存储

[复制链接]

尚未签到

发表于 2012-12-31 15:54:40 | 显示全部楼层 |阅读模式
DRBD的介绍:
Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)
工具:   drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetupdrbdmeta发送指令,   drbdsetup:配置装载进kernelDRBD模块,平时很少直接用   drbdmeta:管理META数据结构,平时很少直接用。   在DRBD中,资源是特指某复制的存储设备的所有方面。包括资源名称、DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可到147)、磁盘配置(使本地数据可以为DRBD所用)、网络配置(与对方通信)   每个资源有个角色,是PrimarySecondary,下面简称  主角色的DRBD设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的raw或直接IO访问。   备角色的DRBD设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。   角色可以改变。
DRBD功能
  单主模式:典型的高可靠性集群方案。   复主模式:需要采用共享cluster文件系统,如GFSOCFS2。用于需要从2个节点并发访问数据的场合,需要特别配置。   复制模式:3种模式:   协议A:异步复制协议。本地写成功后立即返回,数据放在发送buffer中,可能丢失。   协议B:内存同步(半同步)复制协议。本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失。   协议C:同步复制协议。本地和对方写成功确认后返回。如果双机掉电或磁盘同时损坏,则数据可能丢失。   一般用协议C。选择协议将影响流量,从而影响网络时延。   有效的同步:按线性而不是当初写的顺序同步块。同步损坏时间内的不一致数据。   在线的设备检验:一端顺序计算底层存储,得到一个数字,传给另一端,另一端也计算,如果不一致,则稍后进行同步。建议一周或一月一次。   复制过程的一致性检验:加密后,对方若不一致则要求重传。防止网卡、缓冲等问题导致位丢失、覆盖等错误。   Split brain:当网络出现暂时性故障,导致两端都自己提升为Primary。两端再次连通时,可以选择email通知,建议手工处理这种情况。   当数据写在缓冲区里,没有真正写到磁盘上时,系统崩溃会导致数据丢失。而disk flush是指将数据真正写到磁盘上后才返回。   有些带电池的硬盘控制器,如带电池的带点出Dell PERC Raid卡,不但自带缓存而且自带电池,会在系统意外断电或者崩溃后将最后的数据写入磁盘,对这类控制器,可以使用disk flush,从而在保证性能的前提下提高了数据的安全性。   磁盘错误处理策略:   传递给上层:可能造成文件系统remounting成只读,不推荐。   对上层屏蔽:用另一端的相应块进行读写,应用不中断。可以在任何方便的时候再切换。   不一致的(inconsistent)数据:不能以任何方式访问和使用的数据。如正在同步时的目标节点数据,这些数据不能识别,不能mount,甚至不能通过磁盘的自动检测。   过期的(outdated)数据:在备机上的数据,与主机一致,但不需要同步。如主备机网络中断后,备机上的数据就是过期的。   DRBD有接口允许应用程序在网络中断时将备机数据标识为过期的。DRBD拒绝将这个节点提升为主角色。这些管理接口在Heartbeat框架上得到完整实现。   一旦过期资源的复制链接恢复,他的过期标志自动清除,接着进行后台同步。
工作原理
在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,   切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了
4927bb31cf8b31270eb0cf0dc9010868.png
注意: 主机名一定要设置,hostshostname 分区要单独的分区,而且是没有格式化的 文件系统只能同时挂载一个,而且是在主节点进行,格式化也只能是在主节点
配置步骤:
一、DRBD的实现
1.配置主机名和host文件
[iyunv@localhost ~]# vim /etc/sysconfig/network
hostname masternfs
hostname slavenfs   (主机名立即生效)
[iyunv@masternfs resource.d]# vim /etc/hosts
192.168.1.100 masternfs
192.168.1.200 slavenfs
[iyunv@localhost ~]# scp /etc/hosts 192.168.1.200:/etc/
2.新建磁盘分区
fdisk -l (查看一下)
fdisk /dev/sdb (分区)(分区步骤简略)
partprobe /dev/sdb (使分区生效)
cat /proc/partitions (查看分区)
3.安装drbd的软件包(需要在网上下载软件包,http://mirrors.163.com
[iyunv@masternfs ~]# rpm -ivh drbd83-8.3.12-1.el5.centos.i386.rpm (主的软件包)
[iyunv@masternfs ~]# rpm -ivh kmod-drbd83-8.3.12-1.el5.centos.i686.rpm --force --nodeps (模块的支持,安装时需要解决依赖关系)
[iyunv@slavenfs ~]# rpm -e drbd83-8.3.8-1.el5.centos (如何卸载软件包)
[iyunv@slavenfs ~]# scp masternfs:*.rpm ./ (拷贝到另一个设备上安装)
4.编辑配置参数,可以查看安装后的文件包
[iyunv@masternfs ~]# vim /etc/drbd.conf (编辑这个主配置参数)
:r /usr/share/doc/drbd83-8.3.12/drbd.conf (读取这个文件夹)
[iyunv@masternfs ~]# cp -f /usr/share/doc/drbd83*/drbd.conf /etc/ (不然同步的时候会出错)
cp -f /usr/share/doc/drbd83*/drbd.conf /etc/(把配置文件复制到/etc

[iyunv@masternfs ~]# cd /etc/drbd.d/ (主配置目录)
[iyunv@masternfs drbd.d]# ll
总计 4
-rwxr-xr-x 1 root root 1418 2012-01-29 global_common.conf

cp global_common.conf global_common.conf.bak (备份一下,如果配置出错,可以改)
[iyunv@masternfs drbd.d]# vim 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;
         }
}

[iyunv@masternfs drbd.d]# vim web.res(此网页是自己要创建的后缀要是.res,此网页是定义资源的
vim  web.res
resource  web {
        on masternfs{
        device   /dev/drbd0;
        disk    /dev/sdb1;
        address  192.168.1.100:7789;
        meta-disk       internal;
        }   
        on slavenfs {
        device   /dev/drbd0;
        disk    /dev/sdb1;
        address  192.168.1.200:7789;
        meta-disk       internal;
        }   
}
b627a293673cf2009d25e57cda13f289.png
5.配置参数完成,拷贝到另一个机器上
[iyunv@masternfs drbd.d]# scp /etc/drbd.d/* slavenfs:/etc/drbd.d/ (拷贝资源文件和公共的文件)
[iyunv@masternfs drbd.d]# scp /etc/drbd.conf slavenfs:/etc/ (拷贝主配置文件)
6.drbd作为服务需要启动,但启动之前要同步才能启动。
[iyunv@masternfs drbd.d]# drbdadm create-md web (同步两个节点都要执行)
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created. (提示成功)
7.开启服务就连接上了
[iyunv@slavenfs ~]# service drbd start (两边的同时)
[iyunv@masternfs drbd.d]# cat /proc/drbd    drbd-overview (两种方式查看设备启动的状态)
0:web  Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
8.把节点一作为一个主设备
[iyunv@masternfs drbd.d]# drbdadm -- --overwrite-data-of-peer primary web (设置为主的)
9.在主设备上格式化文件系统 -L 是改卷标的可不加
[iyunv@masternfs drbd.d]# mkfs -t ext3 -L drbhua /dev/drbd0
10.新建挂载点,挂载上去
[iyunv@masternfs drbd.d]# mkdir /mnt/hua/
[iyunv@masternfs drbd.d]# mount /dev/drbd0 /mnt/hua/
[iyunv@masternfs drbd.d]# cd /mnt/hua/
[iyunv@masternfs hua]# ll
总计 16
drwx------ 2 root root 16384 12-30 22:24 lost+found
[iyunv@masternfs hua]# cp /etc/passwd ./ (拷贝一个文件用于测试,)
11.测试,需要把节点二备份的变成主的,则需要先把主的变成备份的
[iyunv@masternfs hua]# umount /mnt/hua/ (需要先卸载才能变成备份的)
[iyunv@masternfs ~]# drbdadm secondary web (变成备份的)
12.节点二上变成主的
[iyunv@slavenfs ~]# drbdadm primary web (另一个)
[iyunv@slavenfs ~]# mount /dev/drbd0 /mnt/hua/
[iyunv@slavenfs ~]# cd /mnt/hua/ (进去查看可以查看文件已经有了)
[iyunv@slavenfs hua]# ll
total 20
drwx------ 2 root root 16384 Dec 30  2012 lost+found
-rw-r--r-- 1 root root  1553 Dec 30  2012 passwd  (文件已经存在)
二.NFS上的配置
1.安装nfs软件,略
2.编辑共享的文件,两节点都做下面的配置
[iyunv@masternfs ~]# vim /etc/exports
/web *(rw)   (编辑的内容)
[iyunv@masternfs ~]# service nfs start
[iyunv@masternfs ~]# showmount -e slavenfs (两边都配置完后,查看一下共享的文件是否已经可以看到)
[iyunv@masternfs ~]# vim /etc/init.d/nfs (把这个文件的值改一下)
122  行       killproc nfsd -9
#/etc/init.d/nfs 脚本中的stop 部分中的killproc
#nfsd -2 修改为 -9
三、heartbeat的安装配置
1实现heartbeat高可用需要一些软件实现,需要安装上去
[iyunv@hua2 ~]# mount /dev/cdrom /mnt/cdrom/
[iyunv@hua1 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm libnet-1.1.4-3.el5.i386.rpm --nogpgcheck (localinstall本地安装,--nogpgcheck,无签名检测)
2.查看
[iyunv@hua1 ~]# rpm -pql heartbeat-2.1.4-9.el5.i386.rpm (查看解压后的文件夹有那些。)
[iyunv@hua1 ~]# cd /etc/ha.d/ (这个目录是heartbeat的主配置目录)
[iyunv@hua1 ha.d]# cd /usr/share/doc/heartbeat-2.1.4/ (安装后的配置文件)
3.[iyunv@hua1 heartbeat-2.1.4]# cp ha.cf authkeys haresources  /etc/ha.d/ (把配置文件拷贝过来)
4.[iyunv@hua1 ha.d]# vim ha.cf  (编辑这个心跳文件参数,编辑如下)
ucast  eth0 192.168.1.100 (对方的ip地址,另一台写1.200
auto_failback off
213行 node    masternfs  
214 行node    slavenfs (两个节点的地址)
5[iyunv@hua1 ~]# dd if=/dev/random bs=512 count=1 |openssl md5 (随机产生一个参数用md5加密)
0+1 records in
0+1 records out
128 bytes (128 B) copied, 0.000308478 seconds, 415 kB/s
9bf2f23aae3a63c16ea681295ffd7666
6[iyunv@hua1 ha.d]# vim authkeys (编辑认证文件)
auth 3
3 md5 9bf2f23aae3a63c16ea681295ffd7666
[iyunv@hua1 ha.d]# chmod 600 authkeys  (改变它的权限为600,不然重启不成功)
7.配置资源文件,把参数直接追加进去了
echo "masternfs IPaddr::192.168.1.150/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/web::ext3 killnfsd" >> haresources
解释:192.168.1.150,是虚拟ip地址,/web是共享的文件
8.还需要创建一个文件关于nfs的,要受到heartbeat的控制
[iyunv@masternfs ha.d]# cd /etc/ha.d/resource.d/
[iyunv@masternfs resource.d]# touch killnfsd
chmod 755 /etc/ha.d/resource.d/killnfsd  (改变它的权限)
echo "killall -9 nfsd; /etc/init.d/nfs restart; exit 0 " >> /etc/ha.d/resource.d/killnfsd (把参数追加上去)

8.把配置拷贝到节点二上去,唯一改变的是心跳网卡地址
9.启动heartbeat服务,两边都启动
service heartbeat start
chkconfig heartbeat on
10.查看是主节点还是从节点,如下图所示,当heartbeats 停止时主设备变成了备份的,而另一端变成了主的



11.拷贝文件验证
[iyunv@node2 web]# ls
inittab lost+found--------验证此时文件仍然存在
12.ifconfig 查看网卡,发现多了一个,虚拟网卡,主要是把资源征用了
c1ea81d0264c37356972868f6ff0addc.png


运维网声明 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-2999-1-1.html 上篇帖子: centos6.3下heartbeat+drbd的安装和配置 下篇帖子: Heartbeat实现Web服务的高可用群集 存储 设备 应用程序 管理工具

尚未签到

发表于 2013-3-14 08:04:36 | 显示全部楼层
看帖回帖是美德!:lol

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-16 02:52:42 | 显示全部楼层
打破老婆终身制,实行小姨股份制。引入小姐竞争制,推广情人合同制。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

发表于 2013-5-16 16:58:13 | 显示全部楼层
精典之极就是精斑!!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 05:54:28 | 显示全部楼层
男人与女人,终究也只是欲望的动物吧!真的可以因为爱而结合吗?对不起,我也不知道。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 19:43:22 | 显示全部楼层
走,MM,咱们化蝶去……

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 09:08:35 | 显示全部楼层
如果回帖是一种美德,那我早就成为圣人了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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