[前言]公司数据迁移后期会使用到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文件系统使用一样的效果.
IP、主机名、防火墙等基本配置:
防火墙先关了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安装好的文件。
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)。
二进制文件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 这个时候,我们可以试着运行master 服务(服务将以安装配置configure 指定的用户运行,这 我们的案例里,它是mfs): #chown –Rmfs:mfs /usr/local/mfs 注:这个很重要,否则mfs用户没权限。 #/usr/local/mfs/mfsmasterstart 在一个生产环境里,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFSmaster 也能自动运行。 为了监控MooseFS 当前运行状态,我们可以运行CGI 监控服务,这样就可以用浏览器查看整个 MooseFS 的运行情况: #/usr/local/mfs/mfscgiservstart 候,是不能看见chunk server 的数据)。
- 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
|