千家信息网

Linux搭建MFS分布式文件系统

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,说明:架构规划元数据服务器 mfs-master-1 172.16.100.2备份服务器 mfs-metalogger 172.16.100.4数据存储服务器 mfs-chunkserver-1 17
千家信息网最后更新 2024年11月26日Linux搭建MFS分布式文件系统

说明:

架构规划

元数据服务器 mfs-master-1 172.16.100.2

备份服务器 mfs-metalogger 172.16.100.4

数据存储服务器 mfs-chunkserver-1 172.16.100.5

数据存储服务器 mfs-chunkserver-2 172.16.100.6

数据存储服务器 mfs-chunkserver-3 172.16.100.7

节点说明:

Master Server:

由于 Master Server 控制着整个 MooseFS 中的各个组件,并且负责对外提供服务,因此我们一定需要保证 Master Server 处于非常稳定的状态。比如,针对 Master Server采用双电源双路配置,多块磁盘使用RAID1或RAID10,进行冗余。前面也提到,Master Server 将所有访问的元数据信息都放在内存当中,提供用户访问。因此,当文件数量增加的时候,内存使用量也会增加。根据官方的数据,100万个文件chunk信息,大概需要300M的内存空间来进行。对于磁盘来讲,Master Server 对磁盘的使用量不是很大,这个取决于所用的文件和chunk块的数目(记录在主元数据文件)以及对文件作出操作的数量(记录在元数据更改日志),一般情况下 20G 可以用来存储信息 2500 万个文件变更记录长达50小时。由此看来,作为Master Server 内存量够大才是重中之重。

Metalogger Server:

在 MooseFS 的设计中,虽然 Metalogger Server 只是用来收集 MooseFS 主服务器的元数据(文件更改的信息的变化)的备份,对硬件的要求不应该高于主服务器的备份。但是需要注意的是,如果在Master Server没有做高可用的情况下,主服务器宕机之后,我们是需要启用Metalogger Server 来顶替主服务器的。因此,从这方面考虑,Metalogger Server 至少也是和 Master Server 的配置相同的,这点切记!

Chunk Server:

针对 Chunk Server,它是真正存储数据的载体。因此,我们对它的要求就简单粗暴了很多,只要保障硬盘的性能即可。如果是普通的业务,可以选择多块盘做RAID5即可,当然RAID0或RAID10都是可以的。需要注意的是,由于 MooseFS 的默认负载均衡算法的问题,我建议所有 Chunk Server 的磁盘大小保持一致。这样子,我们才能保证 MooseFS 在使用过程中,各个 Chunk 节点的数据使用量是大致一致的。否则,磁盘容量大的 Chunk Server 使用量会加大,而磁盘容量小的 Chunk Server 的使用量会变小。切记,切记!当然,如果公司员工有能力的话,也可以对 MooseFS 的负载均衡算法中每次对carry 变量的增加算法这一部分进行改进,来避免默认算法的缺点,使存储数据能够均衡分布在各个 Chunk Server 上。




部署:

部署 Master Server

1、参数介绍

--disable-mfsmaster # 不创建成管理服务器(用于纯节点的安装)

--disable-mfschunkserver # 不创建成数据存储chunkserver服务器

--disable-mfsmount # 不创建mfsmount和mfstools(如果用开发包安装,他们会被默认创建的)

--enable-mfsmount # 确定安装mfsmount和mfstools(如果

--prefix=DIRECTORY # 锁定安装目录(默认是/usr/local)

--sysconfdir=DIRECTORY # 选择配置文件目录(默认是${prefix}/etc))

--localstatedir=DIRECTORY # 选择变量数据目录(默认是${prefix}/var,MFS元数据被存储在mfs的子目录下,默认是${prefix}/var/mfs )

--with-default-user # 运行守护进程的用户,如果配置文件中没有设定用户,默认为nobody用户

--with-default-group # 运行守护进程的用户组,如果配置文件中没有设定用户组,默认为nogroup用户组


2、安装Master Server

yum install zlib-devel -y

groupadd -g 1000 mfs

useradd -u 1000 -g mfs -s /sbin/nologin mfs

cd /usr/local/src

wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27

./configure --prefix=/usr/local/mfs-1.6.27 --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

make

make install

ln -s /usr/local/mfs-1.6.27 /usr/local/mfs


官方文档:

https://moosefs.com/download/centosfedorarhel.html

版本6:

curl "http://ppa.moosefs.com/MooseFS-3-el6.repo" > /etc/yum.repos.d/MooseFS.repo

curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS

版本7:

curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo

--------------------------------------------------------------

安装Master Server

yum install moosefs-master moosefs-cli moosefs-cgi moosefs-cgiserv

/etc/init.d/moosefs-master start

查看日志,端口,防火墙开放9419 9420 9421端口

--------------------------------------------------------------


安装Chunkservers

yum install moosefs-chunkserver


安装Metaloggers

yum install moosefs-metalogger


安装Clients

yum install moosefs-client


开机自动挂载:

yum install fuse

vim /etc/fstab

mfsmount /mnt/mfs fuse defaults 0 0

mfsmaster.host.name: /mnt/mfs moosefs defaults 0 0


启动服务

service moosefs-master start

service moosefs-chunkserver start


写入文件测试


0