您好,登錄后才能下訂單哦!
MFS原理
MFS是一個具有容錯性的網絡分布式文件系統,它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。
MFS文件系統組成介紹
角色 | 作用 |
元數據服務器(Master) | 一臺管理整個文件系統的獨立主機,存儲著每個文件的元數據(文件的大小、屬性、位置信息,包括所有非常規文件的所有信息,例如目錄、套接字、管道以及設備文件)。 |
元數據日志服務器 (Metalogger) | 任意數量的服務器,用來存儲元數據變化日志并周期性下載主要元數據文件,以便用于管理服務器意外停止時好接替其位置。 |
數據存儲服務器(chunk servers) | 任意數目的商用服務器,用來存儲文件數據并在彼此之間同步(如果某個文件有超過一個備份的話)。 |
客戶端(Client) | 任意數量的主機,可以通過mfsmount進程與管理服務器(接收和更改元數據)和數據服務器(改變實際文件數據)進行交流。 |
MFS文件系統組成圖示
MFS讀取數據處理過程:
Client向Master發出讀請求
Master把所需的數據存放位置(Chunk IP&Chunk No.)告知Client
Client向Chunk發送數據請求
Chunk向Client發送數據
MFS寫入數據處理過程:
Client向Master發出寫入請求
Master與Chunk進行交互,但Master只在某些服務器創建新的分塊Chunks,創建成功后由Chunk告知Master創建成功
Master告知Client可以在哪個Chunk的哪些Chunks寫入數據
Client向指定的Chunk寫入數據
Chunk與其他Chunk進行數據同步,同步成功后Chunk告知Client寫入數據成功
Client告知Master本次寫入完畢
實驗環境介紹:
192.168.218.156
主機 | IP地址 |
Master Server | 192.168.218.130 |
MetaLogger Server | 192.168.218.157 |
Chunk1 Server | |
Server | 192.168.218.145 |
Client Server | 192.168.218.139 |
實驗步驟:
安裝master server:
yum install gcc gcc-c++ zlib-devel -y
useradd -s /sbin/nologin mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \ #禁用Chunk功能
--disable-mfsmount #禁用Client功能
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg #使掛載權限配置文件生效
cp mfsmaster.cfg.dist mfsmaster.cfg #使master主配置文件生效
cp mfstopology.cfg.dist mfstopology.cfg #使拓撲架構感知配置文件生效
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs # 使防斷鏈文件生效
/usr/local/mfs/sbin/mfsmaster start
systemctl stop firewalld.service
setenforce 0
netstat -ntap | grep mfs
#/usr/local/mfs/sbin/mfsmaster –s #停止服務
搭建MetaLogger server:
yum install gcc gcc-c++ zlib-devel -y
useradd -s /sbin/nologin mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg #使日志配置文件生效
vim mfsmetalogger.cfg
MASTER_HOST = 192.168.218.130 #指定Master服務器地址
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs #使防斷鏈文件生效
/usr/local/mfs/sbin/mfsmaster start
systemctl stop firewalld.service
setenforce 0
搭建兩臺Chunk服務器:
yum install gcc gcc-c++ zlib-devel -y
useradd -s /sbin/nologin mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmount
make && make install
cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg #使chunk配置文件生效
cp mfshdd.cfg.dist mfshdd.cfg #使硬盤提供存儲空間配置文件生效
vim mfschunkserver.cfg
MASTER_HOST = 192.168.218.130
vim mfshdd.cfg
/data
mkdir /data
chown -R mfs.mfs /data/
/usr/local/mfs/sbin/mfschunkserver start #啟動服務
systemctl stop firewalld.service
setenforce 0
netstat -ntap | grep mfs
Client配置
systemctl stop firewalld.service
setenforce 0
yum install gcc gcc-c++ zlib-devel -y
tar zxvf fuse-2.9.2.tar.gz -C /opt #內核加載包
cd /opt/fuse-2.9.2/
./configure
make && make install
vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile
安裝mfs客戶端
useradd -s /sbin/nologin mfs
tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount
make && make install
mkdir /opt/mfs
modprobe fuse #加載fuse模塊到內核
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.218.130 #掛載MFS服務
優化客服端
vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH
source /etc/profile
echo 'this is test!' > /opt/mfs/abc.txt
mfssetgoal -r 2 /opt/mfs #設置文件被復制的份數,-r表示遞歸
/opt/mfs:
inodes with goal changed: 2
inodes with goal not changed: 0
inodes with permission denied: 0
mfsgetgoal -r /opt/mfs #查看復制文件的份數
/opt/mfs/abc.txt: 2
mfsfileinfo /opt/mfs/abc.txt #查看實際副本份數及其所在的節點
/opt/mfs/abc.txt:
chunk 0: 0000000000000001_00000001 / (id:1 ver:1)
copy 1: 192.168.218.145:9422
copy 2: 192.168.218.156:9422
MASTER-Server----------------啟動監控程序
[root@master mfs]# /usr/local/mfs/sbin/mfscgiserv
lockfile created and locked
starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/mfs/share/mfscgi)
訪問:http://192.168.218.130:9425查看MFS監控網頁
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。