大型网站架构与自动化运维——MFS分布式文件系统

                                                           MFS分布式文件系统

一、MFS概述
1、MFS简介
    MFS于2008年5月推出。是具有容错功能、高可用、可扩展的海量级分布式文件系统。它把数据分散在多台服务器上,但用户看到的只是一个源。
2、分布式原理
    分布式文件系统(Distributed File System)是指文件系统管理的屋里存储资源不一定连接在本地节点上,而是通过计算机网络与各节点相连。简单的来说,就是把一些分散的共享文件夹,集合到一个文件夹内
3、MFS原理
(1)MFS文件系统组成
        ①元数据服务器(Master):在整个系统中负责管理文件系统,维护元数据
        ②元数据日志服务器(MetaLogger):备份Master的变化日志文件。文件类型为changelog_ml.*.mfs。当Master数据丢失或损坏时,可以从日志服务器中取得文件,进行恢复
        ③数据存储服务器(Chunk Server):真正存储数据的服务器。存储文件时,会把文件分块保存,并在数据服务器之间进行复制。数据服务器越多,能使用的容量就越大,可靠性就越高,兴业也就越好
       ④客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的
(2)MFS读取数据的处理过程
        ①客户端向Master发出读请求
        ②Master把所需数据存放的位置告知客户端
        ③客户端向已知的Chunk Server请求发送数据
        ④Chunk Server向客户端发送数据
(3)MFS写入数据处理过程
        ①客户端向Master发出写入请求
        ②Master与Chunk Server进行交互,但Master只在某些服务器创建新的分开Chunks,创建成功后由Chunk Server告知Master操作成功
        ③Master告知客户端,可以在哪个Chunk Server的那些Chunk写入数据
        ④客户端向指定的Chunk Server写入数据
        ⑤Chunk Server与其他Chunk Server进行数据同步,同步成功后,告知客户端写入成功
        ⑥客户端告知Master本次写入完毕

二、MFS部署
1、搭建Master服务器
(1)下载源码包及安装准备
        yum -y install gcc zlib-devel
(2)创建用户
        useradd -s /sbin/nologin -M mfs
(3)编译安装
        ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfmount
(4)复制文件
        cd /usr/local/mfs/etc/mfs
        cp mfsmaster.cfg.dist mfsmaster.cfg
        cp mfsexports.cfg.dist mfssexports.cfg
        cp mfstopology.cfg.dist mfstopology.cfg
        cd /usr/local/mfs/var/mfs
        cp metadata.mfs.empty metadata.mfs
(5)配置文件
        ①mfsmaster.cfg
        ②mfsexports.cfg
        ③master服务器配置文件可不修改直接启用
(6)开启服务
        /usr/local/mfs/sbin/mfsmaster start

2、搭建MetaLogger
(1)创建用户
        useradd -s /sbin/nologin -M mfs
(2)编译安装
        ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfmount
(3)复制文件
        cd /usr/local/mfs/etc/mfs
        cp mfsmaster.cfg.dist mfsmaster.cfg
        cp mfsexports.cfg.dist mfssexports.cfg
        cp mfstopology.cfg.dist mfstopology.cfg
        cd /usr/local/mfs/var/mfs
        cp metadata.mfs.empty metadata.mfs
(4)修改配置文件mfsmetalogger.cfg
        MASTER_HOST=172.17.0.1
(5)启动服务
        /usr/local/mfs/sbin/mfsmetalogger start

3、搭建Chunk
(1)创建用户
        useradd -s /sbin/nologin -M mfs
(2)编译安装
        ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfmount
(3)复制文件
        cd /usr/local/mfs/etc/mfs
        cp mfschunkserver.cfg.dist mfschunkserver.cfg
        cp mfshdd.cfg.dist mfshdd.cfg
(4)修改配置文件
        echo "MASTER_HOST = 172.17.0.3" >> mfschunkserver.cgf
        echo "/data" >> mfshdd.cfg
        mkdir /data
        chown -R mfs:mfs /data
(5)启动服务
        /usr/local/mfs/sbin/mfschunkserver start

4、客户端配置
(1)创建用户
        useradd -s /sbin/nologin -M mfs
(2)编译安装fuse
        ./configure
        make && make install
        vim /etc/profile:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
        source /etc/profile
(3)编译安装mfs
        ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfmount
(4)挂载文件系统
        /usr/local/mfs/bin/mfsmount /mnt/mfs -H 172.17.0.1
(5)卸载
        umount /mnt/mfs

 

你可能感兴趣的:(大型网站架构与自动化运维)