MFS keepalived分布式文件系统安装配置.docx
《MFS keepalived分布式文件系统安装配置.docx》由会员分享,可在线阅读,更多相关《MFS keepalived分布式文件系统安装配置.docx(20页珍藏版)》请在冰豆网上搜索。
MFSkeepalived分布式文件系统安装配置
MFS+KeepAlived
分布式文件系统部署手册
目录
一、应用部署情况3
二、角色说明4
1.拓扑简单工作原理4
2.服务器功能描述4
三、原理概述5
1.MFS元数据备份5
2.MFSMaster的恢复5
3.利用keepalived实现自动恢复与Master切换5
四、部署说明6
1.MasterServer安装6
2.Backupserver(metalogger)安装7
3.存储块服务器Chunkservers安装7
4.客户端安装8
5.在主从机器上安装keepalived9
6.keepalived主服务器配置10
7.keepalived从服务器配置12
8.启动顺序14
9.关闭顺序15
五、MFS常用操作16
一、应用部署情况
序号
主机名
应用部署
IP地址
VIP
1
NBJK-ZX-MFSMASTER
MFS(Master),keepalived((Master)
192.168.100.141
192.168.100.177
2
NBJK-ZX-MFSBACKUP
MFS(MFSBACKUP),keepalived((BACKUP)
192.168.100.144
3
NBJK-ZX-CHUNK1
MFS(chuckserver)
192.168.100.175
4
NBJK-ZX-CHUNK2
MFS(chuckserver)
192.168.100.176
5
NBJK-ZX-CHUNK3
MFS(chuckserver)
192.168.100.174
6
Client
mfsclient
192.168.100.51
二、角色说明
1.拓扑简单工作原理
mfservermastet管理控制是MFS分布式文件系统核心,负责处理client与chunkserver之间的联系;
Chunkserver提供存储数据的空间,通常是分区,磁盘,RAID等设备。
2.服务器功能描述
(1)管理服务器(master):
负责各个数据存储服务器(chunkserver)的管理,文件读写调度,文件空间回收以及恢复,多点拷贝;
(2)元数据日志服务器(metalogger):
负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便master出故障时接替其工作;
(3)数据存储服务器(chunkserver):
在存储文件时,首先把文件分成块,然后将这些块在数据存储服务器之间互相复制,同时,数据存储服务器还负责连接管理服务器,听从管理服务器调度,并为客户提供数据传输;
(4)客户机(client):
挂载目录,挂载点是master服务器的VIP。
三、原理概述
1.MFS元数据备份
通常元数据有两部分的数据:
主要元数据文件metadata.mfs,当mfsmaster运行的时候会被命名为metadata.mfs.back
元数据改变日志changelog.*.mfs,存储了过去的N小时的文件改变(N的数值是由BACK_LOGS参数设置的,参数的设置在mfschunkserver.cfg配置文件中)。
主要的元数据文件需要定期备份,备份的频率取决于取决于多少小时changelogs储存。
元数据changelogs实时的自动复制。
2.MFSMaster的恢复
一旦mfsmaster崩溃(例如因为主机或电源失败),需要最后一个元数据日志changelog并入主要的metadata中。
这个操作时通过mfsmetarestore工具做的,最简单的方法是:
mfsmetarestore-a
如果master数据被存储在MooseFS编译指定地点外的路径,则要利用-d参数指定使用,如:
mfsmetarestore-a-d/opt/mfsmaster
也可以利用非自动化恢复模式
mfsmetarestore-mmetadata.mfs.back-ometadata.mfschangelog_ml.*.mfs
3.利用keepalived实现自动恢复与Master切换
1.mfsmaster可以由mfsmetalogger产生的日志文件changelog_ml.*.mfs和metadata.mfs.back,由命令mfsmetarestore恢复
2.mfsbackup定时从mfsmaster获取metadata.mfs.back文件用于master恢复
3.keepalivedMASTERrun检测到mfsmaster故障的时候,停止 keepalived
4.keepalivedBACKUP状态从backup转到master并触发notify_master事件执行恢复并启动mfsmaster脚本
四、部署说明
1.MasterServer安装(192.168.100.141)
(1)MasterServer安装
#groupaddmfs
#useradd-gmfsmfs-s/sbin/nologin
#wget
#tar-xvfmoosefs-2.0.88-1.tar.gz
#cdmoosefs-2.0.88
#./configure--prefix=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs--disable-mfschunkserver--disable-mfsmount
#make
#makeinstall
(2)MasterServer配置
切换目录
#cd/usr/local/mfs/etc/mfs
复制样例文件,以得到master所需的配置文件
#cpmfsmaster.cfg.distmfsmaster.cfg
#cpmfsmetalogger.cfg.distmfsmetalogger.cfg
#cpmfsexports.cfg.distmfsexports.cfg
#cpmfstopology.cfg.distmfstopology.cfg
Mfsmaster.cfg配置文件包含主控服务器master相关的设置
mfsexports.cfg指定哪些客户端主机可以远程挂接MooseFS文件系统,以及授予挂接客户端什么样的访问权限。
所有配置文件的值都是被注释掉的,他们是默认生效的,如果要修改去掉注释修改即可。
二进制文件metadata和文本文件changelog将被保存在目录/var/lib/mfs,这是因为安装过程的configure步骤使用了选项--localstatedir=/var/lib。
首次安装master时,会自动生成一个名为metadata.mfs.empty的元数据文件metadata,该文件是空的。
MooseFSmaster运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty改名而来:
#cd/usr/local/mfs/var/mfs/
#cpmetadata.mfs.emptymetadata.mfs
修改/etc/hosts文件,以绑定主机名mfsmaster与ip地址192.168.100.177:
125.210.186.177mfsmaster
2.Backupserver(metalogger)安装(192.168.100.144)
用来安装metalogger的主机,在性能上应该比master强大(至少有更多的内存)。
一旦主控服务器master失效,只要导入changelogs到元数据文件,备份服务器metalogger将能接替发生故障的master,行使管理服务器的职能(更多细节请参看http:
//www.moosefs.org/minihowtos.html#redundant-master)。
#groupaddmfs
#useradd-gmfsmfs-s/sbin/nologin
#wget
#tar-xvfmoosefs-2.0.88-1.tar.gz
#cdmoosefs-2.0.88
#./configure--prefix=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs--disable-mfschunkserver--disable-mfsmount
#make
#makeinstall
产生配置文件
#cd/usr/local/mfs/etc/mfs
#cpmfsmetalogger.cfg.distmfsmetalogger.cfg
另外也需要产生主服务器的配置文件,以便metalogger切换为masterserver时能正常运行
#cpmfsmaster.cfg.distmfsmaster.cfg
#cpmfsexports.cfg.distmfsexports.cfg
#cpmfstopology.cfg.distmfstopology.cfg
相应地修改mfsexports.cfg,配置客户端挂载权限。
修改/etc/hosts文件,增加下面的行:
192.168.100.177mfsmaster
3.存储块服务器Chunkservers安装(192.168.100.174/175/176)
#groupaddmfs
#useradd-gmfsmfs-s/sbin/nologin
#wget
#tar-xvfmoosefs-2.0.88-1.tar.gz
#cdmoosefs-2.0.88
#./configure--prefix=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs--disable-mfsmaster
#make
#makeinstall
准备chunkserver服务所需的配置文件:
#cd/usr/local/mfs/etc/mfs
#cpmfschunkserver.cfg.distmfschunkserver.cfg
#cpmfshdd.cfg.distmfshdd.cfg
在mfshdd.cfg中,给出了用于客户端挂接MooseFS分布式文件系统根分区所使用的共享空间位置。
建议在chunkserver上划分单独的空间给MooseFS使用,这样做的好处是便于管理剩余空间。
设置/data目录为共享点,在mfshdd.cfg加入下面的文本行:
/data
设置目录用户组:
#chown-Rmfs:
mfs/data
类似地,修改/etc/hosts文件,增加下面的行:
192.168.100.177mfsmaster
4.客户端安装(192.168.100.51)
(1)fuse安装与配置
lsmod|grepfuse可以查看系统是否加载的fuse模块,如无,需要安装。
下载fuse
#tar-xvffuse-2.9.5.tar.gz
#cdfuse-2.9.5
#./configure--prefix=/usr/local/fuse
#make
#makeinstall
#exportPKG_CONFIG_PATH=/usr/local/fuse/lib/pkgconfig:
$PKG_CONFIG_PATH
设置fuse启动时自动装载,在/etc/rc.local文件的后面增加如下一行:
modprobe fuse
(2)mfsclient安装与配置
#groupaddmfs
#useradd-gmfsmfs-s/sbin/nologin
#wget
#tar-xvfmoosefs-2.0.88-1.tar.gz
#cdmoosefs-2.0.88
#./configure--prefix=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs--disable-mfsmaster--disable-mfschunkserver
#make
#makeinstall
类似地,修改/etc/hosts文件,增加下面的行:
192.168.100.177mfsmaster
5.在主从机器上安装keepalived(192.168.100.141/144)
#yum-yinstallopenssl-devel
#yum-yinstallpopt-devel
#wgethttp:
//www.keepalived.org/software/keepalived-1.2.20.tar.gz
#tarzxfkeepalived-1.2.19.tar.gz
#cdkeepalived-1.2.19
#./configure--prefix=/usr/local/keepalived
#make
#makeinstall
#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/keepalived即指向正确的文件位置
#同时在上述行下添加以下内容(将keepavlied主程序所在路径导入到环境变量PATH中):
PATH="$PATH:
/usr/local/keepalived/sbin"
exportPATH
#3.修改/usr/local/keepalived/etc/sysconfig/keepalived文件,设置正确的服务启动参数
KEEPALIVED_OPTIONS="-D-f/usr/local/keepalived/etc/keepalived/keepalived.conf"
6.keepalived主服务器配置(192.168.100.141)
配置说明:
KEEPALIVEDMASTER每1秒检测一次mfsmaster状态
KEEPAVLIEDBACKUP不检测MFS状态只等待KEEPALIVED事件触发恢复
(1)keepalived配置文件
#vi/usr/local/keepalived/etc/keepalived/keepalived.conf
!
ConfigurationFileforkeepalived
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
}
vrrp_scriptcheck_run{
script"/usr/local/mfs/check_master.sh"
interval2
}
vrrp_instanceVI_1{
statekeepalivedMASTER
interfacebond0
virtual_router_id60
priority100
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
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。
包含验证类型和验证密码。
类型主要有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。
可以有多个地址,每个地址占一行,不需要指定子网掩码。
注意:
这个ip必须与我们在lvs客户端设定的vip相一致!
(2)主服务器检测脚本
vim/usr/local/mfs/check_master.sh
#!
/bin/bash
functionstartmfscgi(){
check_cgi=`ps-ef--no-header|grepmfscgiserv|grep-vgrep`
RETVAL=$?
if[$RETVAL-ne0];then
/usr/local/mfs/sbin/mfscgiserv&>/dev/null
fi
}
check_master=`ps-ef--no-header|grepmfsmaster|grep-vgrep`
RETVAL=$?
if[$RETVAL-ne0];then
/usr/local/mfs/sbin/mfsmasterstart&>/dev/null
RETVAL=$?
if[$RETVAL-ne0];then
killallkeepalived&>/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
fi
else
startmfscgi
echo"mfsmasterisok"
fi
#chmod755/usr/local/mfs/check_master.sh
7.keepalived从服务器配置(192.168.100.144)
(1)keepalived配置文件
#vi/usr/local/keepalived/etc/keepalived/keepalived.conf
!
ConfigurationFileforkeepalived
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
}
vrrp_instanceVI_1{
statekeepalivedBACKUP
interfacebond0
virtual_router_id60
priority50
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
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/bash
echo"==========================================="
/usr/local/mfs/sbin/mfsmasterstart-a
sleep60
/usr/local/mfs/sbin/mfsmasterstop
/usr/local/mfs/sbin/mfsmasterstart
/usr/local/mfs/sbin/mfscgiserv
echo"----------------changemaster--------------------