MFS原理
創(chuàng)新互聯(lián)主營奈曼網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),奈曼h5微信小程序搭建,奈曼網(wǎng)站營銷推廣歡迎奈曼等地區(qū)企業(yè)咨詢MFS是一個具有容錯性的網(wǎng)絡(luò)分布式文件系統(tǒng),它把數(shù)據(jù)分散存放在多個物理服務(wù)器上,而呈現(xiàn)給用戶的則是一個統(tǒng)一的資源。
MFS文件系統(tǒng)組成介紹
角色 | 作用 |
元數(shù)據(jù)服務(wù)器(Master) | 一臺管理整個文件系統(tǒng)的獨立主機,存儲著每個文件的元數(shù)據(jù)(文件的大小、屬性、位置信息,包括所有非常規(guī)文件的所有信息,例如目錄、套接字、管道以及設(shè)備文件)。 |
元數(shù)據(jù)日志服務(wù)器 (Metalogger) | 任意數(shù)量的服務(wù)器,用來存儲元數(shù)據(jù)變化日志并周期性下載主要元數(shù)據(jù)文件,以便用于管理服務(wù)器意外停止時好接替其位置。 |
數(shù)據(jù)存儲服務(wù)器(chunk servers) | 任意數(shù)目的商用服務(wù)器,用來存儲文件數(shù)據(jù)并在彼此之間同步(如果某個文件有超過一個備份的話)。 |
客戶端(Client) | 任意數(shù)量的主機,可以通過mfsmount進程與管理服務(wù)器(接收和更改元數(shù)據(jù))和數(shù)據(jù)服務(wù)器(改變實際文件數(shù)據(jù))進行交流。 |
MFS文件系統(tǒng)組成圖示
MFS讀取數(shù)據(jù)處理過程:
Client向Master發(fā)出讀請求
Master把所需的數(shù)據(jù)存放位置(Chunk IP&Chunk No.)告知Client
Client向Chunk發(fā)送數(shù)據(jù)請求
Chunk向Client發(fā)送數(shù)據(jù)
MFS寫入數(shù)據(jù)處理過程:
Client向Master發(fā)出寫入請求
Master與Chunk進行交互,但Master只在某些服務(wù)器創(chuàng)建新的分塊Chunks,創(chuàng)建成功后由Chunk告知Master創(chuàng)建成功
Master告知Client可以在哪個Chunk的哪些Chunks寫入數(shù)據(jù)
Client向指定的Chunk寫入數(shù)據(jù)
Chunk與其他Chunk進行數(shù)據(jù)同步,同步成功后Chunk告知Client寫入數(shù)據(jù)成功
Client告知Master本次寫入完畢
實驗環(huán)境介紹:
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 #使掛載權(quán)限配置文件生效
cp mfsmaster.cfg.dist mfsmaster.cfg #使master主配置文件生效
cp mfstopology.cfg.dist mfstopology.cfg #使拓撲架構(gòu)感知配置文件生效
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 #停止服務(wù)
搭建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服務(wù)器地址
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服務(wù)器:
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 #啟動服務(wù)
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 #內(nèi)核加載包
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模塊到內(nèi)核
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.218.130 #掛載MFS服務(wù)
優(yōu)化客服端
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 #設(shè)置文件被復(fù)制的份數(shù),-r表示遞歸
/opt/mfs:
inodes with goal changed: 2
inodes with goal not changed: 0
inodes with permission denied: 0
mfsgetgoal -r /opt/mfs #查看復(fù)制文件的份數(shù)
/opt/mfs/abc.txt: 2
mfsfileinfo /opt/mfs/abc.txt #查看實際副本份數(shù)及其所在的節(jié)點
/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----------------啟動監(jiān)控程序
[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監(jiān)控網(wǎng)頁
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。