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

[经验分享] moosefs+keepalived双机高可用热备解决方案-01

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-21 09:27:50 | 显示全部楼层 |阅读模式
[前言]公司数据迁移后期会使用到MFS,看过很多有关的文章,但大部分都是moosefs安装配置和单点手动备份。经过很长一段时间思考,想将其与keepalived相结合以提高可用性,也就有了我这篇文章。
本文以官网最新稳定版moosefs 2.0.66-1,和centos6.6,具体思路如下:
  • MFS原理
  • IP、主机名、防火墙等基本配置
  • 高可用部署思路
  • Moosefs(mfs)各角色安装配置
  • Keepalived安装配置
  • 故障切换测试
  • 参考资料


moosefs原理:
MFS文件系统结构:
        管理服务器managing server (master)
        元数据日志服务器Metalogger server(Metalogger)
        存储块服务器chunk servers (chunkservers)  
        客户机挂载使用client computers  
各种角色作用:
        1 管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
        2 元数据日志服务器: 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作
        3 数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.
        4 客户端: 通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地linux文件系统使用一样的效果.
wKiom1VcQC2xEVJ_AADfa2sBtrw133.jpg
wKiom1VcQC7SOCYGAAGU1YQOPN8495.jpg



IP、主机名、防火墙等基本配置:
主机名
MFS角色
IP地址
keepalived
VIP
mfsmaster
master
10.0.8.1
主master
10.0.8.6
mfsmetalogger
metalogger
10.0.8.5
备backup
centos6_02
chunkserver
10.0.8.2
centos6_03
chunkserver
10.0.8.3
centos6_04
client
10.0.8.4
防火墙先关了service iptables  stop

高可用部署思路:
1 master的故障恢复,在1.6.5版本后可以由metalogger server 产生的日志文件 changelog_ml.*.mfs和metadata.mfs.back由命令mfsmetarestore恢复,在1.7版本后命令mfsmetarestore不可用,改为mfsmaster-a
2 10.0.8.1 keepalived master 定时运行检测 mfsmaster 进程的脚本check_master_bylijing.sh,故障时停止 keepalived .
3 10.0.8.5 keepalived 状态从backup转到 master 并触发 notify_master事件执行恢复并启动switch_to_mfsmaster_bylijing.sh脚本。此时元数据日志服务器变为管理服务器。
5 整个切换在2~10秒内完成根据检测时间间隔。
6 当原管理服务器mfsmaster恢复时,10.0.8.5 keepalived 状态从master转到backup 并触发 notify_backup事件执行恢复并启动switch_to_mfsmetalogger_bylijing.sh脚本。此时由管理服务器恢复为元数据日志服务器。


Moosefs(mfs)各角色安装配置:
  • 1.         主控服务器Master server 安装:

当我们安装主控服务器时,在配置过程中(./configure),可以取消安装chunk server
(--disable-mfschunkserver)以及MooseFS 客户端(--disable-mfsmount). 安装
主控服务器master 的具体步骤为:
1、添加mfs用户
#useradd -M -s /sbin/nologin mfs
2、创建安装目录
#mkdir/usr/local/mfs
3、下载当前最新稳定版
4、解包归档文件
#tar-zxvf  moosefs-2.0.66-1.tar.gz
5、进入安装目录
#cdmoosefs-2.0.66
6、配置
#./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs--disable-mfschunkserver --disable-mfsmount
7、编译并安装
#make
#makeinstall
成功安装master 以后,可以在/usr/local/mfs下看到moosefs安装好的文件。
wKioL1VcQdXwLvc2AAD5mJ9M9OE281.jpg

  • 2.         主控服务器Master server配置:

1、切换目录
#cd/usr/local/mfs/etc
2、复制样例文件,以得到master 所需的配置文件
#cpmfsmaster.cfg.dist mfsmaster.cfg
#cpmfsmetalogger.cfg.dist mfsmetalogger.cfg
#cpmfsexports.cfg.dist mfsexports.cfg
如果我们打算更改这些配置文件中的某些项目的值,则需要打开特定配置文件相关文本行前的
注释,然后修改跟随其后的值。因为被注释掉的行,即是MooseFS内置的缺省值。
Mfsmaster.cfg配置文件包含主控服务器master 相关的设置,在这里我们暂时不打算对其
进行修改。如果你想知道关于该配置文件更多的信息,请查看它的手册页(使用命令man
mfsmaster.cfg)。
配置文件mfsexports.cfg 指定那些客户端主机可以远程挂接MooseFS 文件系统,以及授予
挂接客户端什么样的访问权限。例如,我们指定只有10.0.8.x 网段的主机需要密码才可以以读写模式
访问MooseFS 的整个共享结构资源(/)。指定只有10.0.8.x 网段的主机不用密码可以以读写模式访问MooseFS 的整个共享结构资源(/data)。
wKiom1VcQIHB3Un_AADhvscTqG8788.jpg
wKioL1VcQfuArm8vAAEg4RdSg48302.jpg
二进制文件metadata 和文本文件changelog 将被保存在安装目录/usr/local/mfs/var/mfs。首次安装master 时,会自动生成一个名为metadata.mfs.empty 的元数据文件metadata,该文件是空的。MooseFSmaster 运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty 改名而来:
1、切换目录
#cd /usr/local/mfs/var/mfs
2、重命名文件
#cpmetadata.mfs.empty metadata.mfs
注:MooseFS master 运行以后,metadata.mfs 文件大小将发生变化,肯定不会是空文件了。
修改/etc/hosts 文件,以绑定主机名mfsmaster 与ip 地址10.0.8.1
10.0.8.1 mfsmaster
注:过下我们启动keepalived时,我要在/etc/hosts中改为vip地址:10.0.8.6
  • 3.         主控服务器Master server启动:

这个时候,我们可以试着运行master 服务(服务将以安装配置configure 指定的用户运行,这
我们的案例里,它是mfs):
#chown –Rmfs:mfs /usr/local/mfs     注:这个很重要,否则mfs用户没权限。     
#/usr/local/mfs/mfsmasterstart
在一个生产环境里,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFSmaster
也能自动运行。
  • 4.         主控服务器Master server监控:

为了监控MooseFS 当前运行状态,我们可以运行CGI 监控服务,这样就可以用浏览器查看整个
MooseFS 的运行情况:
#/usr/local/mfs/mfscgiservstart
现在,我们在浏览器地址栏输入http://10.0.8.1:9425 即可查看master 的运行情况(这个时
候,是不能看见chunk server 的数据)。
wKioL1VcQiiRfCzWAAMExNOxf4o025.jpg
wKiom1VcQK7xYrBAAALgHakMEaE730.jpg
  • 5.         元数据日志服务器Metalogger server安装

用来安装metalogger 的主机,在性能上应该比master 强大(至少有更多的内存)。一旦主控
服务器master 失效,只要导入changelogs 到元数据文件,备份服务器metalogger 将能接替发生
故障的master,行使管理服务器的职能。
安装跟主控服务器master 安装非常类似。只是所用的配置文件和启动进程不一样。
1、添加mfs用户
# useradd-M -s /sbin/nologin mfs
2、创建安装目录
#mkdir/usr/local/mfs
3、下载当前最新稳定版
4、解包归档文件
#tar-zxvf  moosefs-2.0.66-1.tar.gz
5、进入安装目录
#cdmoosefs-2.0.66
6、配置
#./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs--disable-mfschunkserver --disable-mfsmount
7、编译及安装
#make
#makeinstall
  • 6.         元数据日志服务器Metalogger server配置

1、切换目录
#cd/usr/local/mfs/etc
2、复制样例文件,以得到Metalogger server 所需的配置文件
#cpmfsmetalogger.cfg.dist mfsmetalogger.cfg
类似地,修改/etc/hosts 文件,增加下面的行:
10.0.8.1mfsmaster
现在,我们来试着运行备份服务mfsmetaloger:
#chown –Rmfs:mfs /usr/local/mfs     注:这个很重要,否则mfs用户没权限。
#/usr/local/mfs/sbin/mfsmetaloggerstart
在一个生产环境里,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFS
mfsmetalogger服务也能自动运行。
  • 7.         存储块服务器Chunk servers 安装:

在centos6_02和centos_03上安装chunk server 方法一样如下:
# useradd-M -s /sbin/nologin mfs
#mkdir/usr/local/mfs
#tar-zxvf  moosefs-2.0.66-1.tar.gz
#cdmoosefs-2.0.66
#./configure--prefix=/usr/local/mfs  --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster
#make
#makeinstall
jiaoben.rar (10 KB, 下载次数: 20) mfsmetalogger和备keepalived脚本和配置.rar (10 KB, 下载次数: 26) mfsmetalogger和备keepalived置.rar (10 KB, 下载次数: 14) mfsmaster和主keepalived脚本和配置文件.rar (10 KB, 下载次数: 17)


运维网声明 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-69065-1-1.html 上篇帖子: OVF 部署失败: 找不到文件 ds:///vmfs/volumes/uuid/_deviceImage-0.iso 下篇帖子: moosefs+keepalived双机高可用热备解决方案-02 解决方案
累计签到:9 天
连续签到:1 天
发表于 2015-10-21 12:18:31 | 显示全部楼层
你好,用到线上了吗

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

累计签到:3 天
连续签到:1 天
发表于 2016-9-27 11:07:11 | 显示全部楼层
这么多金币!

运维网声明 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

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