MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
配置环境
172.25.77.250 mfsclient
172.25.77.1 mfsmaster
172.25.77.2和172.25.77.3 mfschunkserver
1、采用源码包安装方式
用rpmbuild创建二进制软件包和源码软件包
安装所需的依赖性包
2、master端安装如图软件包:
moosefs-cgiserv 是mfs的web监控页面
做本地解析,指定mfsmaster
开启master端,metadata.mfs会变成metdata.mfs.back并会生成changelog.0.mfs
执行mfscgiserv开启mfs的web服务,并可以在网页查看文件系统的信息:
开启的端口信息如下:
9422:chunkserver连接client
9421:master连接client
9420:master连接chunkserver
9425:mfs的web页面访问接口
2、在数据存储端chunk)安装包如图:
安装完成后,编辑配置文件,打开并建立存储目录,并修改其所有人和所有组为mfs
并加入本地解析指定mfsmaster
完成后执行mfschunkserver开启chunk服务
这里我用两台机器做chunk相同的操作,完成后可以在网页查看其状态信息,如图
3、在172.25.77.250安装mfsclient,并编辑启配置文件,指定并建立mfs挂载目录
完成后执行mfsmount挂载查看
至此mfs各部分已经部署完毕
1、测试
在mfs默认挂载目录下建立目录,查看其默认备份的份数,是两份,可以修改
将dir1目录设置备份份数为一份,操作如图
拷贝文件到目录下查看dir1目录是否是备份一份,dir2是两份
假如将chunk端down掉,则clien端在其上将不能继续存储备份,chunk端恢复后可以继续存储
2、mfs是分布式存储
文件以chunk大小存储,每chunk最大为64M,小于64M的,该chunk的大小即为该文件大小,超过64M的文件将被切分存储到不同的数据存储节点。执行写数据时,是同时向每个数据存储节点去写入,这样加快了数据的写入速度;读取时,也从每个数据节点去读取。
3、mfs恢复删除的文件
先删除存储目录下的文件
这里mfsgettrashtime查看文件在垃圾箱的存放时间,文件在删除后不会立即删除,有一个隔离时间(默认是86400s,也就是一天)
建立并挂载MFSmeta文件系统(包含目录trash和trash/undel(用于获取文件)
找到要恢复的文件,移动到 undel目录下即可
查看即可
1、在开一台机器172.25.77.4
安装mfsmaster,同样配置
2、在172.25.77.2配置存储共享
在server2配置共享磁盘,并安装scsi
查看共享磁盘信息
编辑共享磁盘配置文件完成后开启服务
在server1和server5安装iscsi,同样操作
server1主master登陆到共享磁盘
对此盘进行分区格式化
配置挂载共享目录
完成后卸挂载,在server4登陆磁盘并挂载查看共享目录
此时共享目录已经配置完毕
但是解析mfsmaster不会飘移,所以要用到vip
3、接下来我们在server1和server4安装部署pacemake和corosync(具体安装步骤在之前博客有详细叙述,这里就不赘述)
安装完成后,开启corosync服务,以插件形式运行pacemaker,pacemaker随着corosync的开启而开启
配置corosync
完成后直接将配置文件发送到server4,两台机器在本地解析加入vip指定mfsmaster
完成可以查看集群
关闭stonith
加入vip
crm_mon监控查看vip的加入
忽略投票规则(不然一个节点down,整个服务宕机)
添加共享存储文件
添加mfs执行脚本文件,并将这三个放到一个组内,保持统一飘移
监控查看添加信息
查看有无fence_xvm,如果没有添加fence_xvm
用fence实现,避免master突然crash而down掉,此时因为已经添加了fence设备,将刚才关闭的stonith开启
用172.25.77.250来控制,查看kek目录,将172.25.77.250的key发送到server1和server4的此目录下
添加fence服务
完成后进行测试:
server1和serer4都开启mfsmaster服务,此时资源在server1上,我们将server1 down掉
通过监控发现资源成功转移到server4上
vip也在
测试数据的写入在出现down机的情况下,是否可以正常写入
在clien端dd写入一个bigfile,此时down掉server4,在cline端可以发现先卡了一下所后成功写入数据,实现了mfs的高可用