1、MFS keepalived分布式文件系统安装配置MFS+KeepAlived分布式文件系统部署手册目录一、 应用部署情况 3二、 角色说明 41. 拓扑简单工作原理 42. 服务器功能描述 4三、 原理概述 51. MFS元数据备份 52. MFS Master的恢复 53. 利用keepalived实现自动恢复与Master切换 5四、 部署说明 61. Master Server 安装 62. Backup server (metalogger) 安装 73. 存储块服务器 Chunk servers 安装 74. 客户端安装 85. 在主从机器上安装keepalived 96. kee
2、palived 主服务器配置 107. keepalived 从服务器配置 128. 启动顺序 149. 关闭顺序 15五、 MFS常用操作 16 一、 应用部署情况序号主机名应用部署IP地址VIP1NBJK-ZX-MFSMASTER MFS(Master),keepalived(Master)192.168.100.141192.168.100.1772NBJK-ZX-MFSBACKUPMFS(MFSBACKUP),keepalived(BACKUP)192.168.100.1443NBJK-ZX-CHUNK1MFS(chuckserver)192.168.100.1754NBJK-ZX-C
3、HUNK2MFS(chuckserver)192.168.100.1765NBJK-ZX-CHUNK3MFS(chuckserver)192.168.100.1746Clientmfsclient192.168.100.51二、 角色说明1. 拓扑简单工作原理mfservermastet 管理控制是MFS分布式文件系统核心,负责处理client与chunkserver之间的联系;Chunkserver提供存储数据的空间,通常是分区,磁盘,RAID等设备。2. 服务器功能描述(1) 管理服务器(master):负责各个数据存储服务器(chunkserver)的管理,文件读写调度,文件空间回收以及
4、恢复,多点拷贝;(2) 元数据日志服务器(metalogger):负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便master出故障时接替其工作;(3) 数据存储服务器(chunkserver):在存储文件时,首先把文件分成块,然后将这些块在数据存储服务器之间互相复制,同时,数据存储服务器还负责连接管理服务器,听从管理服务器调度,并为客户提供数据传输;(4) 客户机(client):挂载目录,挂载点是master服务器的VIP。三、 原理概述1. MFS元数据备份通常元数据有两部分的数据:主要元数据文件metadata.mfs,当mfsmaster
5、 运行的时候会被命名为metadata.mfs.back元数据改变日志changelog.*.mfs,存储了过去的N 小时的文件改变(N 的数值是由BACK_LOGS参数设置的,参数的设置在mfschunkserver.cfg 配置文件中)。主要的元数据文件需要定期备份,备份的频率取决于取决于多少小时changelogs 储存。元数据changelogs 实时的自动复制。2. MFS Master的恢复一旦mfsmaster 崩溃(例如因为主机或电源失败),需要最后一个元数据日志changelog 并入主要的metadata 中。这个操作时通过 mfsmetarestore 工具做的,最简单的
6、方法是:mfsmetarestore -a如果master 数据被存储在MooseFS 编译指定地点外的路径,则要利用-d 参数指定使用,如: mfsmetarestore -a -d /opt/mfsmaster也可以利用非自动化恢复模式mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs3. 利用keepalived实现自动恢复与Master切换1. mfsmaster可以由mfsmetalogger产生的日志文件 changelog_ml.*.mfs和metadata.mfs.back,由命令mfsm
7、etarestore恢复2. mfsbackup定时从mfsmaster 获取 metadata.mfs.back 文件用于master恢复3. keepalived MASTER run检测到 mfsmaster 故障的时候,停止keepalived4. keepalived BACKUP状态从backup转到 master 并触发notify_master事件执行恢复并启动mfsmaster脚本四、 部署说明 1. Master Server 安装(192.168.100.141)(1)Master Server 安装# groupadd mfs# useradd -g mfs mfs -
8、s /sbin/nologin# wget # tar -xvf moosefs-2.0.88-1.tar.gz# cd moosefs-2.0.88# ./configure -prefix=/usr/local/mfs -with-default-user=mfs -with-default-group=mfs -disable-mfschunkserver -disable-mfsmount# make# make install(2)Master Server 配置切换目录# cd /usr/local/mfs/etc/mfs复制样例文件,以得到 master 所需的配置文件# cp
9、mfsmaster.cfg.dist mfsmaster.cfg# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg # cp mfsexports.cfg.dist mfsexports.cfg# cp mfstopology.cfg.dist mfstopology.cfgMfsmaster.cfg 配置文件包含主控服务器 master 相关的设置mfsexports.cfg 指定哪些客户端主机可以远程挂接 MooseFS 文件系统,以及授予挂接客户端什么样的访问权限。所有配置文件的值都是被注释掉的,他们是默认生效的,如果要修改去掉注释修改即可。二进制
10、文件 metadata 和文本文件 changelog 将被保存在目录/var/lib/mfs,这是因为安装过程的 configure 步骤使用了选项 -localstatedir=/var/lib 。首次安装 master 时,会自动生成一个名为 metadata.mfs.empty 的元数据文件 metadata,该文件是空的。MooseFS master 运必须有文件 metadata.mfs,这个文件是从 metadata.mfs.empty 改名而来:# cd /usr/local/mfs/var/mfs/# cp metadata.mfs.empty metadata.mfs修改/
11、etc/hosts 文件,以绑定主机名 mfsmaster 与 ip 地址 192.168.100.177:125.210.186.177 mfsmaster 2. Backup server (metalogger) 安装(192.168.100.144)用来安装 metalogger 的主机,在性能上应该比 master 强大(至少有更多的内存)。一旦主控服务器 master 失效, 只要导入 changelogs 到元数据文件,备份服务器 metalogger 将能接替发生故障的 master,行使管理服务器的职能(更多细节请参看 http:/www.moosefs.org/miniho
12、wtos.html#redundant-master)。# groupadd mfs# useradd -g mfs mfs -s /sbin/nologin# wget # tar -xvf moosefs-2.0.88-1.tar.gz# cd moosefs-2.0.88# ./configure -prefix=/usr/local/mfs -with-default-user=mfs -with-default-group=mfs -disable-mfschunkserver -disable-mfsmount# make# make install产生配置文件# cd /usr/
13、local/mfs/etc/mfs# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg 另外也需要产生主服务器的配置文件,以便metalogger切换为masterserver时能正常运行# cp mfsmaster.cfg.dist mfsmaster.cfg# cp mfsexports.cfg.dist mfsexports.cfg# cp mfstopology.cfg.dist mfstopology.cfg相应地修改mfsexports.cfg,配置客户端挂载权限。 修改/etc/hosts 文件,增加下面的行:192.168.100.177
14、mfsmaster 3. 存储块服务器 Chunk servers 安装(192.168.100.174/175/176)# groupadd mfs# useradd -g mfs mfs -s /sbin/nologin# wget # tar -xvf moosefs-2.0.88-1.tar.gz# cd moosefs-2.0.88# ./configure -prefix=/usr/local/mfs -with-default-user=mfs -with-default-group=mfs -disable-mfsmaster# make# make install准备 chu
15、nk server 服务所需的配置文件:# cd /usr/local/mfs/etc/mfs# cp mfschunkserver.cfg.dist mfschunkserver.cfg# cp mfshdd.cfg.dist mfshdd.cfg在mfshdd.cfg中,给出了用于客户端挂接MooseFS 分布式文件系统根分区所使用的共享空间位置。建议在chunk server上划分单独的空间给 MooseFS 使用,这样做的好处是便于管理剩余空间。设置/data目录为共享点, 在 mfshdd.cfg 加入下面的文本行: /data设置目录用户组:#chown -R mfs: mfs /
16、data类似地,修改/etc/hosts 文件,增加下面的行:192.168.100.177 mfsmaster 4. 客户端安装 (192.168.100.51)(1) fuse安装与配置lsmod|grep fuse 可以查看系统是否加载的fuse模块,如无,需要安装。下载fuse# tar -xvf fuse-2.9.5.tar.gz# cd fuse-2.9.5# ./configure -prefix=/usr/local/fuse# make# make install# export PKG_CONFIG_PATH=/usr/local/fuse/lib/pkgconfig:$P
17、KG_CONFIG_PATH设置fuse启动时自动装载,在/etc/rc.local文件的后面增加如下一行:modprobefuse(2) mfs client安装与配置# groupadd mfs# useradd -g mfs mfs -s /sbin/nologin# wget # tar -xvf moosefs-2.0.88-1.tar.gz# cd moosefs-2.0.88# ./configure -prefix=/usr/local/mfs -with-default-user=mfs -with-default-group=mfs -disable-mfsmaster -
18、disable-mfschunkserver# make# make install类似地,修改/etc/hosts 文件,增加下面的行:192.168.100.177 mfsmaster 5. 在主从机器上安装keepalived (192.168.100.141/144)#yum -y install openssl-devel#yum -y install popt-devel#wget http:/www.keepalived.org/software/keepalived-1.2.20.tar.gz #tar zxf keepalived-1.2.19.tar.gz #cd keep
19、alived-1.2.19#./configure -prefix=/usr/local/keepalived #make #make install#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived#chmod +x /etc/init.d/keepalived #修改/etc/init.d/keepalived, 寻找大约15行左右的. /etc/sysconfig/keepalived, 修改为:. /usr/local/keepalived/etc/sysconfig/keepalive
20、d 即指向正确的文件位置 #同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中): PATH=$PATH:/usr/local/keepalived/sbin export PATH #3. 修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数KEEPALIVED_OPTIONS=-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf 6. keepalived 主服务器配置 (192.168.100.141)配置说明:KE
21、EPALIVED MASTER 每1秒检测一次 mfsmaster状态KEEPAVLIED BACKUP 不检测MFS状态 只等待KEEPALIVED事件触发恢复(1) keepalived配置文件 # vi /usr/local/keepalived/etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs notification_email acassenfirewall.loc failoverfirewall.loc sysadminfirewall.loc notification_em
22、ail_from Alexandre.Cassenfirewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strictvrrp_script check_run script /usr/local/mfs/check_master.sh interval 2vrrp_instance VI_1 state keepalived MASTER interface bond0 virtual_router_id 60 priority 1
23、00 advert_int 1 authentication auth_type PASS auth_pass 1111 track_script check_run virtual_ipaddress 192.168.100.177 参数说明:全局配置global_defs 故障报警邮件虚拟路由标识virtual_router_id。这个标识是一个数字,并且同一个vrrp实例使用唯一的标识。即同一个vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同时在整个vrrp内是唯一的。 验证authentication。包含验证类型和验证密码。类型主要有
24、PASS、AH两种,通常使用的类型为PASS,据说AH使用时有问题。验证密码为明文,同一vrrp实例MASTER与BACKUP 使用相同的密码才能正常通信。 优先级priority。这是一个数字,数值愈大,优先级越高。在同一个vrrp_instance里,MASTER 的优先级高于BACKUP。若MASTER的priority值为100,那么BACKUP的priority只能是90或更小的数值。同步通知间隔advert_int。MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位为秒。虚拟ip地址virtual_ipaddress。可以有多个地址,每个地址占一行,不需要指定子网掩码
25、。注意:这个ip必须与我们在lvs客户端设定的vip相一致!(2)主服务器检测脚本 vim /usr/local/mfs/check_master.sh#!/bin/bashfunction startmfscgi() check_cgi=ps -ef -no-header|grep mfscgiserv|grep -v grep RETVAL=$? if $RETVAL -ne 0 ;then /usr/local/mfs/sbin/mfscgiserv & /dev/null ficheck_master=ps -ef -no-header|grep mfsmaster|grep -v g
26、repRETVAL=$?if $RETVAL -ne 0 ;then /usr/local/mfs/sbin/mfsmaster start & /dev/null RETVAL=$? if $RETVAL -ne 0 ;then killall keepalived & /dev/null PRCID=ps -ef | grep /usr/local/mfs/sbin/mfscgiserv | awk print $2 if $PRCID != ;then kill -9 $PRCID & /dev/null fi else startmfscgi fielse startmfscgi ec
27、ho mfsmaster is okfi#chmod 755 /usr/local/mfs/check_master.sh7. keepalived 从服务器配置 (192.168.100.144)(1) keepalived配置文件# vi /usr/local/keepalived/etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs notification_email acassenfirewall.loc failoverfirewall.loc sysadminfirewall.l
28、oc notification_email_from Alexandre.Cassenfirewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strictvrrp_instance VI_1 state keepalived BACKUP interface bond0 virtual_router_id 60 priority 50 advert_int 1 authentication auth_type PASS auth_pa
29、ss 1111 virtual_ipaddress 192.168.100.177 notify_master /usr/local/mfs/switch_to_mfsmaster.sh notify_backup /usr/local/mfs/switch_to_mfsmetalogger.sh(2)从服务器切换到主服务器脚本 # vi /usr/local/mfs/switch_to_mfsmaster.sh#!/bin/bashecho =/usr/local/mfs/sbin/mfsmaster start -asleep 60/usr/local/mfs/sbin/mfsmaster stop/usr/local/mfs/sbin/mfsmaster start/usr/local/mfs/sbin/mfscgiservecho -change master-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1