MFS分佈式文件系統(實例!!!)

MFS分佈式文件系統

mfs工作原理

分佈式原理

分佈式文件系統就是把一些分散在多臺計算機上的共享文件夾,集合到一個共享文件夾內,用戶要訪問這些文件夾的時候,只要打開一個文件夾,就可以的看到所有鏈接到此文件夾內的共享文件夾。

MFS原理

MFS是一個具有容錯性的網絡分佈式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。

MFS的組成

  • 元數據服務器(Master):在整個體系中負責管理文件系統,維護元數據,目前不支持高可用。
  • 元數據日誌服務器(MetaLogger):備份Master服務器的變化日誌文件,當master服務器損壞,可以從日誌服務器中取得文件恢復。
  • 數據存儲服務器(Chunk Server):真正存儲數據的服務器,服務器越多,容量就越大,可靠性越高,性能越好。
  • 客戶端(Client): 可以像掛載NFS一樣 掛載MFS文件系統
    在這裏插入圖片描述

    MFS讀數據的處理過程

  • 客戶端向元數據服務器發出讀請求
  • 元數據服務器把所需數據存放的位置(Chunk Server的IP地址和Chunk編號)告知客戶端
  • 客戶端向已知的Chunk Server請求發送數據
  • Chunk Server向客戶端發送數據
    ### 寫入的過程
  • 客戶端向元數據服務器發送寫入請求
  • 元數據服務器與Chunk Server進行交互,但元數據服務器只在某些服務器創建新的分塊Chunks,創建成功後由hunk Servers告知元數據服務器操作成功
  • 元數據服務器告知客戶端,可以在哪個Chunk Server的哪些Chunks寫入數據
  • 客戶端向指定的Chunk Server寫入數據
  • 該Chunk Server與其他Chunk Server進行數據同步,同步成功後Chunk Server告知客戶端數據寫入成功
  • 客戶端告知元數據服務器本次寫入完畢
    
    #### 實驗環境:
    |服務器節點名稱|IP地址|
    |--|--|
    |master|192.168.45.133|
    |masterlogger|192.168.45.130|
    |chunk1|192.168.45.136|
    |chunk2|192.168.45.134|
    |client|192.168.45.135|

第一步:部署master服務器

#關閉防火牆
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
#安裝組件
[root@localhost ~]# yum install zlib-devel gcc gcc-c++ -y
#掛載mfs必要軟件包
[root@localhost ~]# mount.cifs //192.168.100.3/lzp /mnt
Password for root@//192.168.100.3/lzp:  
[root@localhost ~]# cd /mnt/mfs
#解壓安裝包
[root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt
[root@localhost mfs]# cd /opt/mfs-1.6.27/
[root@localhost mfs-1.6.27]# useradd -s /sbin/nologin mfs
[root@localhost mfs-1.6.27]# ./configure \
--prefix=/usr/local/mfs \   //指定安裝目錄
--with-default-user=mfs \          //指定程序運行用戶   
--with-default-group=mfs \          //指定程序運行組
--disable-mfschunkserver \            //禁用Chunk功能
--disable-mfsmount                     //禁用mfsmount功能

[root@localhost mfs-1.6.27]# make && make install

#複製文件,配置mfs文件
[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/
[root@localhost mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg
#權限
[root@localhost mfs]# cp mfsexports.cfg.dist mfsexports.cfg
#日誌
[root@localhost mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

[root@localhost mfs]# cd /usr/local/mfs/var/mfs/
[root@localhost mfs]# cp metadata.mfs.empty metadata.mfs

#修改權限並啓動
[root@localhost mfs]# chown -R mfs.mfs /usr/local/mfs
[root@localhost mfs]# /usr/local/mfs/sbin/mfsmaster start
#查看mfs端口是否開啓
[root@localhost mfs]# ps -ef | grep mfs

#啓動監控,在所有全部搭建好之後再啓動
[root@localhost mfs]# /usr/local/mfs/sbin/mfscgiserv

#查看服務端口狀態
[root@localhost mfs]# ps -ef | grep mfs

第二步:部署masterlogger日誌節點

#關閉防火牆
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
#安裝必要組件
[root@localhost ~]# yum install zlib-devel gcc gcc-c++ -y
#創建用戶
[root@localhost ~]# useradd mfs -s /sbin/nologin 
#掛載軟件包
[root@localhost ~]# mount.cifs //192.168.100.3/lzp /mnt
[root@localhost ~]# cd /mnt/mfs
#解壓安裝包
[root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt
[root@localhost mfs]# cd /opt/mfs-1.6.27/

[root@localhost mfs-1.6.27]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount

[root@localhost mfs-1.6.27]# make && make install
[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/
[root@localhost mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@localhost mfs]# vim mfsmetalogger.cfg
#在第15行開啓功能,然後地址指向master服務器地址
 MASTER_HOST = 192.168.45.133
#修改權限並啓動
[root@localhost mfs]# chown -R mfs.mfs /usr/local/mfs/
[root@localhost mfs]# /usr/local/mfs/sbin/mfsmetalogger start

#查看端口開啓情況
[root@localhost mfs]# ps -ef | grep mfs

第三步:部署存儲節點chunk1

root@localhost ~]# yum install zlib-devel gcc gcc-c++ -y
[root@localhost ~]# useradd -s /sbin/nologin mfs
[root@localhost ~]# mount.cifs //192.168.100.3/lzp /mnt
[root@localhost ~]# cd /mnt/mfs
#解壓安裝包
[root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt
[root@localhost mfs]# cd /opt/mfs-1.6.27/

[root@localhost mfs-1.6.27]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmount

[root@localhost mfs-1.6.27]# make && make install
[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc//mfs/
[root@localhost mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@localhost mfs]# cp mfshdd.cfg.dist mfshdd.cfg

#修改,在第12行,開啓,並將地址指向master地址
[root@localhost mfs]# vim mfschunkserver.cfg
 MASTER_HOST = 192.168.45.133
 #設置掛載目錄
[root@localhost mfs]# vim mfshdd.cfg
/data
[root@localhost mfs]# mkdir /data
[root@localhost mfs]# chown -R mfs:mfs /data
[root@localhost mfs]# /usr/local/mfs/sbin/mfschunkserver start

#查看端口開啓情況
[root@localhost mfs]# ps -ef | grep mfs

第四步:部署存儲節點chunk2

[root@localhost ~]# yum install zlib-devel gcc gcc-c++ -y
[root@localhost ~]# useradd -s /sbin/nologin mfs
[root@localhost ~]# mount.cifs //192.168.100.3/lzp /mnt
[root@localhost ~]# cd /mnt/mfs
#解壓安裝包
[root@localhost mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt
[root@localhost mfs]# cd /opt/mfs-1.6.27/
#編譯安裝
[root@localhost mfs-1.6.27]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmount

[root@localhost mfs-1.6.27]# make && make install
#複製並修改
[root@localhost mfs-1.6.27]# cd /usr/local/mfs/etc//mfs/
[root@localhost mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@localhost mfs]# cp mfshdd.cfg.dist mfshdd.cfg
[root@localhost mfs]# vim mfschunkserver.cfg
 MASTER_HOST = 192.168.45.133
[root@localhost mfs]# vim mfshdd.cfg
/data
[root@localhost mfs]# mkdir /data
[root@localhost mfs]# chown -R mfs:mfs /data
[root@localhost mfs]# /usr/local/mfs/sbin/mfschunkserver start

#查看端口開啓情況
[root@localhost mfs]# ps -ef | grep mfs

第五步:配置客戶端

# 關閉防火牆
[root@manager ~]# systemctl stop firewalld.service 
[root@manager ~]# setenforce 0
#安裝必要組件
[root@manager ~]# yum install gcc gcc-c++ zlib-devel -y
#掛載軟件包
[root@manager ~]# mount.cifs //192.168.100.3/lzp /mnt
[root@manager ~]# cd /mnt/mfs/
#解壓軟件包
[root@manager mfs]# tar zxvf fuse-2.9.2.tar.gz -C /opt
#編譯安裝
[root@manager mfs]# cd /opt/fuse-2.9.2/
[root@manager fuse-2.9.2]# ./configure
[root@manager fuse-2.9.2]# make && make install
#修改系統文件
[root@manager fuse-2.9.2]# vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#重新加載
[root@manager fuse-2.9.2]# source /etc/profile
#創建用戶
[root@manager fuse-2.9.2]# useradd -s /sbin/nologin mfs
#解壓安裝包
[root@manager fuse-2.9.2]# cd /mnt/mfs/
[root@manager mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt
#編譯安裝
[root@manager mfs]# cd /opt/mfs-1.6.27/
[root@manager mfs-1.6.27]#  ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount
[root@manager mfs-1.6.27]# make && make install
#創建掛載點
[root@manager mfs-1.6.27]# mkdir /opt/mfs
[root@manager mfs-1.6.27]# modprobe fuse
#掛載
[root@manager mfs-1.6.27]# /usr/local//mfs/bin/mfsmount /opt/mfs -H 192.168.45.133

# 優化客戶端
[root@manager mfs-1.6.27]# vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH
[root@manager mfs-1.6.27]# source /etc/profile
# 備份
[root@manager mfs-1.6.27]# mfsgetgoal -r /opt/mfs/

#查看掛載信息
[root@manager mfs-1.6.27]# df -hT

查看分佈式格局

在這裏插入圖片描述

使用瀏覽器訪問http://192.168.45.133:9425

在這裏插入圖片描述

謝謝閱讀!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章