MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一整合的资源。
MFS是一个具有容错功能的,高可用,可扩展的海量级分布式文件系统;
MFS把数据分散在多台服务器上,单用户看到的只是一个源;
数据访问不再是一对多的关系,而是多对多,相较NFS性能大幅度提升;
包含了层级结构和文件属性,可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接和硬链接。
分布式文件系统(distributed file
system)是指文件系统管理的物质存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单说就是把一些分布在局域网内各个计算机上的共享文件夹,集合到一个虚拟共享文件夹内,客户端访问只需要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件,用户感觉不到这些共享文件是分散于各个计算机上的。
分布式文件系统的优点:集中访问、简化操作、数据容灾、提高了文件的存储性能。
MFS文件系统的组成:
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs
当Master服务器数据丢失或者损坏时,可以从日志服务器中取得进行恢复。
数据存储服务器(Chunk server):真正存储数据的服务器。将文件分块保存,并相互进行复制。
客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
客户端向元数据服务器发出读请求;
Chunk server向客户端发送数据。
客户端向元数据服务器发送写入请求。
主机
IP地址
安装软件包
操作系统
Master Server
192.168.30.55
mfs-1.6.27-5.tar.gz
CentOS7
MetaLogger Server
192.168.30.10
mfs-1.6.27-5.tar.gz
CentOS7
Chunk Server1
192.168.30.4
mfs-1.6.27-5.tar.gz
CentOS7
Chunk Server2
192.168.30.5
mfs-1.6.27-5.tar.gz
CentOS7
Client
192.168.30.6
mfs-1.6.27-5.tar.gz,fuse-2.9.2.tar.gz
CentOS7
systemctl stop firewalld.service
setenforce 0
yum install -y zlib-devel gcc gcc-c++
useradd mfs -s /sbin/nologin
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfschunkserver \ #关闭节点功能
--disable-mfsmount #关闭挂载
make && make install
在Master上需要用到的配置文件有两个:mfsmaster.cfg(主配置文件)和mfsexports.cfg(被挂载目录及权限配置文件)
cd /usr/local/mfs/etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs
不需要对配置文件做任何修改就可以开始工作
/usr/local/mfs/sbin/mfsmaster start
ps aux | grep mfs
停止Master Server的命令
/usr/local/mfs/sbin/mfsmaster -s
yum install -y zlib-devel gcc gcc-c++
useradd mfs -s /sbin/nologin
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfschunkserver \ #关闭节点功能
--disable-mfsmount #关闭挂载
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
vi mfsmetalogger.cfg
..............
MASTER_HOST = 192.168.30.55
..................
/usr/local/mfs/sbin/mfsmetalogger start
yum install -y zlib-devel gcc gcc-c++
useradd mfs -s /sbin/nologin
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfsmaster \ #关闭master功能
--disable-mfsmount #关闭挂载
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
vi mfschunkserver.cfg
MASTER_HOST = 192.168.30.55
实际生产环境需要单独提供磁盘阵列作为专门的MFS存储目录,这里只是进行实验,所以使用一个单独的目录代替
vi mfshdd.cfg
/data
mkdir / data
chown -R mfs:mfs /data
/usr/local/mfs/sbin/mfschunkserver start
ps aux | grep mfs
yum install -y zlib-devel gcc gcc-c++
useradd mfs -s /sbin/nologin
tar xzvf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure
make && make install
echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >>/etc/profile
source /etc/profile
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfsmaster \ #关闭master功能
--disable-mfschunkserver \ #关闭节点功能
--enable-mfsmount #关闭挂载
make && make install
mkdir /opt/mfs //创建挂载点
modprobe fuse //加载fuse模块到内核//
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.30.55 挂载MFS
df -hT 查看挂载情况
如果要卸载,使用umount /opt/mfs即可。
echo "export PATH=/usr/local/mfs/bin:$PATH" >>/etc/profile
source /etc/profile
MFS在客户端安装完毕后,会生成/usr/local/mfs/bin目录,在这个目录下有很多命令,
mfsgetgoal -r /opt/mfs
mfssetgoal -r 2 /opt/mfs/
echo abc123 >/opt/mfs/test1
/usr/local/mfs/sbin/mfscgiserv
通过浏览器访问http://192.168.30.55:9425
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。