MFS分布式存储搭建

MFS分布式文件系统搭建,全名MooseFS,简介:

mooseFS(moose 驼鹿)是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。
MooseFS(MFS)是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
当我们存储服务器的容量达到瓶颈之后,那我们就需要采用分布式的文件系统来扩大存储容量,类似与百度云的存储,也是采用分布式存储!

MFS的特征

1:层析结构(目录树)
2:存储文件属性(权限,访问和修改时间)
3:支持特殊文件(块设备,字符设备,管道)
4:支持符号链接,软硬链接
5:对文件系统访问可以通过IP地址或者密码进行访问限制
6:高可靠(数据的多个备份存储在不同的计算机上)
7:通过附加新的计算机或者硬盘可以实现容量的动态拓展
8:删除文件可以根据一个可配置的时间周期进行保留
9:不受访问和写入影响的文件连贯快照

应用场景

谈及MooseFS的应用场景,其实就是去谈分布式文件系统的应用场景。
1)大规模高并发的数据存储及访问(小文件、大文件),
2)大规模的数据处理,如日志分析

端口号:

9419:master和metalogger端通信端口
9420:master和chunck通信端口
9421:master和Client端通信端口
9422:chunck和Client端通信端口
9425:master web界面监听端口,查看整体运行状态
在这里插入图片描述

各文件的用处

在这里插入图片描述

安装

MFS管理服务器

安装依赖环境 除客户端,剩下都一样这样做
[root@centos1 ~]# yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
创建用户
[root@centos1 ~]# useradd -s /sbin/nologin -M mfs #不创建用户家目录
上传软件包/解压
[root@centos1 ~]# ls
anaconda-ks.cfg moosefs-master.zip
[root@centos1 ~]# unzip moosefs-master.zip && cd moosefs-master
预编译
[root@centos1 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
编译安装
make && make install
查看安装生成目录
[root@centos1 ~]# ll /usr/local/mfs/
bin #客户端工具
etc #服务器的配置文件都放在该目录中
sbin #服务端启动程序。如:元数据服务器端程序 mfsmaster、数据存储服务器端服务程序mfschunkserver
share #文档
var #元数据目录(可在配置文件中自定义到其他目录)
生成的配置文件
[root@centos1 ~]# cd /usr/local/mfs/etc/mfs/
[root@centos1 mfs]# ll
总用量 40
-rw-r–r-- 1 root root 4495 5月 28 08:46 mfschunkserver.cfg.sample
-rw-r–r-- 1 root root 4057 5月 28 08:46 mfsexports.cfg.sample
-rw-r–r-- 1 root root 1648 5月 28 08:46 mfshdd.cfg.sample
-rw-r–r-- 1 root root 10431 5月 28 08:46 mfsmaster.cfg.sample
-rw-r–r-- 1 root root 2175 5月 28 08:46 mfsmetalogger.cfg.sample
-rw-r–r-- 1 root root 402 5月 28 08:46 mfsmount.cfg.sample
-rw-r–r-- 1 root root 2587 5月 28 08:46 mfstopology.cfg.sample
[root@centos1 mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg # 侦听地址,端口
[root@centos1 mfs]# cp mfsexports.cfg.sample mfsexports.cfg #权限
[root@centos1 mfs]# cp mfstopology.cfg.cfg.sample mfstopology.cfg #元数据设置
[root@centos1 mfs]# cd /usr/local/mfs/var/mfs/
[root@centos1 mfs]# cp metadata.mfs.empty metadata.mfs #记录元数据
//首次安装 master 时,会自动生成一个名为 metadata.mfs.empty 的元数据文件 metadata,该文件是空的。MooseFS master 运行必须有文件 metadata.mfs
配置文件了解
[root@centos1 mfs]# cd /usr/local/mfs/etc/mfs/
[root@centos1 mfs]# vim mfsmaster.cfg
这个文件不需要修改,但你需要了解下面这几个字段
78 # MATOCS_LISTEN_HOST = * #监听IP,因为本机可能有多个ip地址,指定别人访问自己的哪个地址,*代表本地所有地址
*79
80 # port to listen on for chunkserver connections (default is 9420)
81 # MATOCS_LISTEN_PORT = 9420 #监听端口,master 会打开 9420 端口等待 mfschunkserver 数据存储服务器连接
给mfs用户目录权限
[root@centos1 mfs]# chown -R mfs:mfs /usr/local/mfs/
添加开机自启
[root@centos1 mfs]# echo “/usr/local/mfs/sbin/mfsmaster start” >> /etc/rc.local
rc.local文件是开机自动运行的命令,(实现开机自启)
[root@centos1 mfs]# chmod +x /etc/rc.local
查看生成的日志文件
[root@centos1 mfs]# ll /usr/local/mfs/var/mfs
指定需要共享的权限
[root@centos1 mfs]# cd /usr/local/mfs/etc/mfs
[root@centos1 mfs]# vim mfsexports.cfg

#Allow everything but "meta".*
#*                      /   rw,alldirs,admin,maproot=0:0  #注释这行
#Allow "meta".
#*                      .       rw                      #注释这行
添加以下两行
192.168.1.13/24         /    rw,alldirs,maproot=0,password=123456 #添加密码
#192.168.1.0/24          /   rw,alldirs,mapproot=0      #注释这行

mfsexports.cfg 文件每一条由三部分组成,第一部分表示客户端的 IP 地址,第二部分表示被挂接的目录,第三部分表示客户端拥有的权限,下面对三给部分进行解释
1.客户端 IP 地址
所有 IP 地址
x.x.x.x 单个 IP 地址
x.x.x.x/m.m.m.m IP 网络地址/子网掩码
f.f.f.f-t.t.t.t IP 段
2.被挂载的目录
/ 表示 MooseFS 的根,chunk的权限
. 表示 MFSMETA 文件系,日志备份权限
3.客户端拥有的权限
ro 只读
rw 读写
alldirs 允许挂载任何指定的子目录
maproot 映射为 root 用户还是指定的用户
password 指定客户端密码
启动服务
[root@centos1 mfs]# sh /etc/rc.local

安装MFS原数据日志服务器

安装依赖环境
[root@centos2 ~]# yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
创建用户
[root@centos2 ~]# useradd -s /sbin/nologin mfs
上传软件包/解压
[root@centos1 ~]# ls
anaconda-ks.cfg moosefs-master.zip
[root@centos2 ~]# unzip moosefs-master.zip && cd moosefs-master
预编译
[root@centos2 moosefs-master]#./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs
编译安装
make && make install
修改配置文件
[root@centos2 moosefs-master]# cd /usr/local/mfsmeta/etc/mfs/
[root@centos2 mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@centos2 mfs]# vim mfsmetalogger.cfg

#META_DOWNLOAD_FREQ = 24		#可手动修改时间
#24元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器 (MASTER)下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时 ,matedata.mfs.back 文件将消失,那么要恢复整mfs,则需从 metalogger 服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。
#MooseFS master host, IP is allowed only in single-master installations (default is mfsmaster)
 MASTER_HOST = 192.168.1.11  #启用MASTER_HOST,并修改为master的IP地址

给目录添加权限
[root@centos2 mfs]# chown -R mfs:mfs /usr/local/mfsmeta/
启动原数据日志服务
[root@centos2 mfs]# /usr/local/mfsmeta/sbin/mfsmetalogger start
添加开机自启
[root@centos2 mfs]# echo “/usr/local/mfsmeta/sbin/mfsmetalogger start” >> /etc/rc.local
查看服务端口
[root@centos2 mfs]# netstat -anput | grep 9419
在这里插入图片描述

安装Chunk server数据服务器

安装依赖环境
[root@centos1 ~]# yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
创建用户
[root@centos1 ~]# useradd -s /sbin/nologin -M mfs
上传软件包
[root@centos1 ~]# ls
anaconda-ks.cfg moosefs-master.zip
预编译
[root@centos1 ~]# unzip moosefs-master.zip && cd moosefs-master
[root@centos1 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
编译安装
make && make install
修改配置文件
[root@centos3 moosefs-master]# cd /usr/local/mfs/etc/mfs/
[root@centos3 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg #主配置文件
[root@centos3 mfs]# cp mfshdd.cfg.sample mfshdd.cfg #挂载目录
[root@centos3 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.11	#指定主的地址
#启用这行,元数据服务器的名称或地址,可以是主机名,也可以是 ip 地址
MASTER_PORT = 9420          
#可以启用它,也可以不启用,不启用,默认就是9420
#CSSERV_LISTEN_PORT = 9422     
#这个监听端口用于与其它数据存储服务器间的连接,通常是数据复制
#HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg     
#分配给 MFS 使用的磁盘空间配置文件的位置

[root@centos3 mfs]# vim mfshdd.cfg

在最后添加/tmp
#~/mnt/hd7
/tmp
#在这里/tmp 是一个给 mfs 的分区,但在生产环境是一个独立的磁盘的挂载目录

创建挂载目录:
mkdir /aaa
给mfs用户有这个目录的执行权限
[root@localhost mfs]# chown -R mfs:mfs /aaa
给mfs用户目录权限
[root@centos3 mfs]# chown -R mfs:mfs /usr/local/mfs
启动服务
[root@centos3 mfs]# /usr/local/mfs/sbin/mfschunkserver start
在这里插入图片描述
加入开机启动
[root@centos3 mfs]# echo “/usr/local/mfs/sbin/mfschunkserver start” >> /etc/rc.local
[root@centos3 mfs]# chmod +x /etc/rc.local
查看数据
[root@centos3 mfs]# ls /tmp #分块存储,人工是无法认识的
在这里插入图片描述

配置客户端

安装依赖环境
[root@centos1 ~]# yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
创建用户
[root@centos1 ~]# useradd -s /sbin/nologin mfs
上传软件包
[root@centos1 ~]# ls
anaconda-ks.cfg moosefs-master.zip
预编译
[root@centos1 ~]# unzip moosefs-master.zip && cd moosefs-master
[root@centos1 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
编译安装
make && make install
[root@centos4 moosefs-master]# mkdir /mfs
加载fuse模块
[root@centos4 moosefs-master]# modprobe fuse
[root@centos4 moosefs-master]# lsmod | grep fuse
fuse 91880 1
给mfsmount添加软连接
[root@centos4 ~]# ln -s /usr/local/mfs/bin/mfsmount /usr/bin/mfsmount
将mfs共享出来的存储空间挂载到/mfs目录下:
[root@centos4 ~]# mfsmount /mfs -H 192.168.1.11 -p
MFS Password: #输入刚才主上设置的密码
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@centos4 ~]# df
在这里插入图片描述
添加开机加载模块及开机挂载
[root@centos4 ~]# echo “modprobe fuse” >> /etc/rc.local
[root@centos4 ~]# echo “/usr/local/mfs/bin/mfsmount /mfs -H 192.168.1.11” >> /etc/rc.local
[root@centos4 ~]# chmod +x /etc/rc.local

测试

数据(存储)服务器上用tree监控状态
[root@centos3 ~]# yum install -y tree
[root@centos3 ~]# tree /tmp
在这里插入图片描述
客户端写入数据
[root@centos4 ~]# cp -r /boot/* /mfs
[root@centos4 ~]# ls /mfs/
在这里插入图片描述
存储服务器监控
[root@centos3 ~]# tree /tmp
在这里插入图片描述
客户端是看得到的文件内容,而在我们的Chunk Server上看到的都是一些碎片

配置网页web监控

主要用来监控MFS各节点状态信息,可部署在任一节点服务器。
启动网页监控
[root@centos1 ~]# /usr/local/mfs/sbin/mfscgiserv start #启动网页监控
浏览器测试
http://192.168.100.1:9425/mfs.cgi
在这里插入图片描述
输入MFS管理服务器IP地址。点后面执行
在这里插入图片描述
磁盘使用、权限、CPU资源设置等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加一台Chunk Server

安装依赖环境
[root@centos1 ~]# yum install -y rpm-build gcc gcc-c++ fuse-devel zlib-devel
创建用户
[root@centos1 ~]# useradd -s /sbin/nologin mfs
上传软件包
[root@centos1 ~]# ls
anaconda-ks.cfg moosefs-master.zip
预编译
[root@centos1 ~]# unzip moosefs-master.zip && cd moosefs-master
[root@centos1 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
编译安装
make && make install
创建配置文件
[root@centos4 ~]# cd /usr/local/mfs/etc/mfs/
[root@centos4 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@centos4 mfs]# vim mfschunkserver.cfg
修改配置文件这两行, 去掉注释
MASTER_HOST = 192.168.100.1 #指定主服务器
MASTER_PORT = 9420 #9420,master和chunck通信端口
[root@centos4 mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[root@centos4 mfs]# vim mfshdd.cfg

在文件最后添加/tmp,注意如果添加别的目录,需要给mfs权限
#~/mnt/hd/

/tmp
给目录权限
[root@centos4 mfs]# chown -R mfs:mfs /usr/local/mfs/
启动mfschunkserver
[root@centos4 mfs]# /usr/local/mfs/sbin/mfschunkserver start
[root@centos4 mfs]# yum install -y tree
重启元数据日志
[root@centos1 mfs]# /usr/local/mfsmeta/sbin/mfsmetalogger restart
测试
[root@centos4 mfs]# tree /tmp

客户端测试并设置副本数

[root@centos4 opt]# cp /etc/passwd /aaa
[root@centos4 opt]# tree /tmp #看到数据碎片增加
设置复制数,设置复制数为3
[root@centos4 ~]# cd /usr/local/mfs/bin
[root@centos4 bin]# ./mfssetgoal -r 3 /aaa
/opt:
inodes with goal changed: 324
inodes with goal not changed: 0
inodes with permission denied: 0
查看复制份数
[root@centos4 bin]# ./mfsgetgoal /aaa
/opt: 3
查看文件份数保存位置
[root@centos4 bin]# ./mfsfileinfo /aaa/passwd
/opt/passwd:
chunk 0: 000000000000013B_00000001 / (id:315 ver:1)
copy 1: 192.168.1.12:9422 (status:VALID)
copy 2: 192.168.1.13:9422 (status:VALID)

回收站清空时间

修改MFS文件删除延迟时间
都在client端下操作
[root@centos4 ~]# cd /usr/local/mfs/bin
[root@centos4 bin]# ./mfssettrashtime 600 /aaa
/opt: 600 #回收站延迟清空时间,以秒计算,设置文件或目录的删除时间。

查看MFS文件删除延迟时间
[root@centos4 bin]# ./mfsgettrashtime /aaa
/opt: 3600
#因为设置的时间是按照小时计算,设置的单位是秒,不满一小时就按一小时计算

测试群高可用

关闭centos3chunk server,测试目录是否可以读写
[root@centos3 ~]# /usr/local/mfs/sbin/mfschunkserver stop
客户端
[root@centos4 ~]# cp /etc/group /aaa
[root@centos4 ~]# ls /aaa
在这里插入图片描述
测试当停掉一台chunk server,客户端可以正常读写。

mfsmaster配置文件注释

[root@centos1 ~]# vim /usr/local/mfs/etc/mfs/mfsmaster.cfg
#WORKING_USER = mfs #运行master server 用户
#WORKING_GROUP = mfs #运行master server 组
#SYSLOG_IDENT = mfsmaster #master server 在syslog中的标识,说明是由master产生的
#LOCK_MEMORY = 0 #是否执行mlockall()避免mfsmaster 进程溢出(默认为0)
#NICE_LEVEL = -19 #运行的优先级(如果可以默认-19;注意:进程必须是用root启动)
#EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg #被挂接的目录及其权限控制文件的存放位置
#DATA_PATH = /usr/local/mfs/var/mfs #数据存放路径,此目录分三类文件,changelog ,sessions 和stats
#BACK_LOGS = 50 #metadata的改变log文件数目(默认是50)
#REPLICATIONS_DELAY_INIT = 300 #延迟复制的时间(默认是300s)
#REPLICATIONS_DELAY_DISCONNECT = 3600 #chunkserver 断开的复制延迟(默认是3600)
#MATOCS_LISTEN_HOST = * #metalogger 监听的ip地址(默认是*,代表任何ip)
#MATOCS_LISTEN_PORT = 9419 #metalogger 监听的端口地址(默认是9419)
#MATOCS_LISTEN_HOST = * #用于chunkserver 连接的ip地址(默认是*,代表任何ip)
#MATOCS_LISTEN_PORT = 9420 #用于chunkserver 连接的端口地址(默认是9420)
#MATOCU_LISTEN_HOST = * #用于客户端挂接的ip地址(默认*,代表任何ip)
#MATOCU_LISTEN_PORT = 9421 #用于客户端挂接连接的端口地址(默认9421)
#CHUNKS_LOOP_TIME = 300 #chunksde 回环频率(默认是:300秒)
#CHUNKS_WRITE_REP_LIMIT = 1 #在一个循环里复制到一个chunkserver的最大chunk数目
#CHUNKS_READ_REP_LIMIT = 5 #在一个循环里从一个chunkserver复制的最大chunk数目
#CHUNKS_READ_REP_LIMIT = 0 #弹出低于1.6.0的客户端挂接(0或1,默认是0

集群启动和关闭顺序

启动:
1 启动master server
2 启动chunk server
3 启动metalogger
4 启动客户端,使用mfsmount挂载相关目录
停止
1 所有客户端卸载MooseFS文件系统
2 停止chunkserver
3 停止metalogger
4 停止master server

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用,MooseFS是一种分布式文件系统,用作共享存储服务器。要手动切换MooseFS的主备节点,可以按照以下步骤进行操作: 1. 首先,根据引用中的指示,需要通过运行"./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount"来配置MooseFS。 2. 接下来,根据引用中的指示,需要修改配置文件"/usr/local/mfs/etc/mfshdd.cfg"。在这个文件中,你需要指定MooseFS的主备角色。 3. 修改配置文件时,你需要注意以下几个步骤: a. 确保每个服务器只贡献一个分区作为MooseFS的一部分。 b. 根据你的服务器配置,将分区的挂载点修改为MooseFS的写目录的属主。 c. 确保配置文件中只包含一行内容,指定MooseFS的主备角色。 通过完成以上步骤,你就可以手动切换MooseFS的主备节点。请确保按照正确的配置和指示进行操作,以确保系统的正常运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [分布式文件系统MFS(moosefs)实现存储共享](https://blog.csdn.net/weixin_35953844/article/details/119661796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值