新聞中心
https://pan.baidu.com/s/1RY1emqQHM-Mq3nq1NP5PUw //軟件百度網(wǎng)盤連接?
創(chuàng)新互聯(lián)公司專注于英吉沙網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供英吉沙營(yíng)銷型網(wǎng)站建設(shè),英吉沙網(wǎng)站制作、英吉沙網(wǎng)頁(yè)設(shè)計(jì)、英吉沙網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造英吉沙網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供英吉沙網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
MFS分布式文件系統(tǒng)
?
文件系統(tǒng):ext4、xfs、ext3
?
mooseFS(moose 駝鹿)是一款網(wǎng)絡(luò)分布式文件系統(tǒng)。它把數(shù)據(jù)分散在多臺(tái)服務(wù)器上,但對(duì)于用戶來(lái)講,看到的只是一個(gè)源。MFS也像其他類UNIX文件系統(tǒng)一樣,包含了層級(jí)結(jié)構(gòu)(目錄樹),存儲(chǔ)著文件屬性(權(quán)限、最后訪問(wèn)和修改時(shí)間),常見特殊的文件(塊設(shè)備、字符設(shè)備、管道、套接字),符號(hào)鏈接,硬鏈接。
?
MooseFS[MFS]是一個(gè)具有容錯(cuò)性的網(wǎng)絡(luò)分布式文件系統(tǒng)。它把數(shù)據(jù)分散存放在多個(gè)物理服務(wù)器上,但呈現(xiàn)給用戶的則是一個(gè)統(tǒng)一的資源
?
當(dāng)我們存儲(chǔ)服務(wù)器的容量達(dá)到瓶頸之后,那我們就需要采用分布式的文件系統(tǒng)來(lái)擴(kuò)大存儲(chǔ)容量,類似與百度云的存儲(chǔ),也是采用分布式存儲(chǔ)。
?
MFS特征:
1、層析結(jié)構(gòu)(目錄樹)
2、存儲(chǔ)文件屬性(權(quán)限、訪問(wèn)和修改時(shí)間)
3、支持特殊文件(塊設(shè)備,字符設(shè)備,管道)
4、符號(hào)鏈接,軟硬鏈接
5、對(duì)文件系統(tǒng)訪問(wèn)可以通過(guò)IP地址或者密碼進(jìn)行訪問(wèn)限制
6、高可靠(數(shù)據(jù)的多個(gè)拷貝存儲(chǔ)在不同的計(jì)算機(jī)上)
7、通過(guò)附加新的計(jì)算機(jī)或者硬盤可以實(shí)現(xiàn)容量的動(dòng)態(tài)擴(kuò)展
8、刪除文件可以根據(jù)一個(gè)可配置的時(shí)間周期進(jìn)行保留
9、不受訪問(wèn)和寫入影響的文件連貫快照
?
應(yīng)用場(chǎng)景:分布式文件系統(tǒng)的應(yīng)用場(chǎng)景
1、大規(guī)模高并發(fā)的數(shù)據(jù)存儲(chǔ)及訪問(wèn)(小文件,大文件)
2、大規(guī)模的數(shù)據(jù)處理,如日志分析
?
官方網(wǎng)站:https://moosefs.com
?
MFS分布式文件系統(tǒng)部署方案:
Moosefs是一種分布式文件系統(tǒng),MooseFS文件系統(tǒng)結(jié)構(gòu)包括以下四種角色:
1、管理服務(wù)器 managing server(master)
負(fù)責(zé)各個(gè)數(shù)據(jù)存儲(chǔ)服務(wù)器的管理,文件讀寫調(diào)度,文件空間回收以及恢復(fù),多節(jié)點(diǎn)拷貝
?
2、元數(shù)據(jù)日志服務(wù)器 Metalogger Server(Metalogger)
負(fù)責(zé)備份master服務(wù)器的變化日志文件,文件類型為changelog_ml.*.mfs,以便于在master server出問(wèn)題的時(shí)候接替其進(jìn)行工作。
?
3、數(shù)據(jù)存儲(chǔ)服務(wù)器data servers(chunk servers)
聽從管理服務(wù)器調(diào)度,提供存儲(chǔ)空間,并為客戶提供數(shù)據(jù)傳輸。真正存儲(chǔ)用戶數(shù)據(jù)的服務(wù)器。
存儲(chǔ)文件時(shí),首先把文件分出塊,然后這些塊在數(shù)據(jù)服務(wù)區(qū)chunk server之間復(fù)制(復(fù)制份數(shù)可以手工指定,建議設(shè)置副本數(shù)為3)。數(shù)據(jù)服務(wù)器可以是多個(gè),并且數(shù)量越多,可使用的“磁盤空間”越大,可靠性也越高。
?
4、客戶機(jī)掛載使用client computers
客戶端掛載遠(yuǎn)程mfs服務(wù)器共享出的存儲(chǔ)并使用。
通過(guò)fuse內(nèi)核接口掛載進(jìn)程管理服務(wù)器上所管理的數(shù)據(jù)存儲(chǔ)服務(wù)器共享出的硬盤。
共享的文件系統(tǒng)的用法和nfs相似。
使用MFS文件系統(tǒng)來(lái)存儲(chǔ)和訪問(wèn)的主機(jī)稱為MFS的客戶端,成功掛載MFS文件系統(tǒng)以后,就可以像以前使用NFS一樣共享這個(gè)虛擬性的存儲(chǔ)了
?
?
?
?
分布式文件系統(tǒng)原理
?
分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲(chǔ)資源不一定直接連接在本地節(jié)點(diǎn)上,而是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連。就是把一些分散的(分布在局域網(wǎng)內(nèi)各個(gè)計(jì)算機(jī)上)共享文件夾,集合到一個(gè)文件夾內(nèi)(虛擬共享文件夾)。對(duì)于用戶來(lái)說(shuō),要訪問(wèn)這些共享文件夾時(shí),只要打開這個(gè)虛擬共享文件夾,就可以看到所有鏈接到虛擬共享文件夾內(nèi)的共享文件夾,用戶感覺不到這些共享文件是分散于各個(gè)計(jì)算機(jī)上的。
?
分布式文件系統(tǒng)優(yōu)勢(shì):
集中訪問(wèn)
簡(jiǎn)化操作
數(shù)據(jù)容災(zāi)
提高文件存取性能、在線擴(kuò)容
?
?
?
?
MFS讀取數(shù)據(jù)原理
?
1.客戶端向元數(shù)據(jù)服務(wù)器發(fā)出讀請(qǐng)求
2.元數(shù)據(jù)服務(wù)器把所需數(shù)據(jù)存放的位置(Chunk Servert的IP地址和Chunk編號(hào))告知客戶端
3.客戶端向己知的Chunk Serve請(qǐng)求發(fā)送數(shù)據(jù)
4.Chunk Server向客戶端發(fā)送數(shù)據(jù)
?
?
過(guò)程:
1.客戶端向元數(shù)據(jù)服務(wù)器發(fā)送寫請(qǐng)求
2.元數(shù)據(jù)服務(wù)器與Chunk Server進(jìn)行交互(只有當(dāng)所需的分塊Chunks存在的時(shí)候才進(jìn)行這個(gè)交互),但元數(shù)據(jù)服務(wù)器只在某些服務(wù)器創(chuàng)建新的分塊Chunks,創(chuàng)建完告知元數(shù)據(jù)服務(wù)器操作成功
3.元數(shù)據(jù)服務(wù)器告知客戶端,可以在哪個(gè)Chunk Server的哪些Chunks寫入數(shù)據(jù)
4.客戶端向指定的Chunk Server寫入數(shù)據(jù)
5.該Chunk Serve與其他Chunk Serve進(jìn)行數(shù)據(jù)同步,之后Chunk Server告知客戶端數(shù)據(jù)寫入成功
6.客戶端告知元數(shù)據(jù)服務(wù)器本次寫入完畢
?
端口號(hào):
9420:MFS master和MFS chunk通信端口
9421:MFS master和MFS client端通信端口
9419:MFS master和MFS metalogger端通信端口
9422:MFS chunk和MFS client端通信端口
9425:MFS master web界面監(jiān)聽端口,查看整體運(yùn)行狀態(tài)
?
?
系統(tǒng)環(huán)境
主機(jī) | 操作系統(tǒng) | ip地址 | 軟件包 |
---|---|---|---|
master | centos7.4 | 192.168.80.100 | mfs |
metalogger | centos7.4 | 192.168.80.101 | mfs |
chunk01 | centos7.4 | 192.168.80.102 | mfs |
chunk02 | centos7.4 | 192.168.80.103 | mfs |
chunk03 | centos7.4 | 192.168.80.104 | mfs |
client | centos7.4 | 192.168.80.105 | mfs、fuse |
?
?
一、搭建master server
?
1、安裝相關(guān)編譯器、工具包(所有服務(wù)器都得安裝)
關(guān)閉防火墻及SElinux
systemctl stop firewalld
setenforce 0
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
yum install lrz* -y
?
2、創(chuàng)建進(jìn)程用戶
useradd -M -s /sbin/nologin mfs
?
3、安裝mfs軟件包
yum install unzip -y
unzip moosefs-master.zip -d /opt
?
cd /opt/moosefs-master
?
./configure --prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs
?
make && make install#編譯及編譯安裝
?
4、修改相關(guān)文件信息
cd /usr/local/mfs/etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg #輸出目錄配置文件,定義掛載以及權(quán)限設(shè)定文件
?
cp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件
?
cp mfstopology.cfg.dist mfstopology.cfg #元數(shù)據(jù)日志文件
?
cd /usr/local/mfs/var/mfs/
?
cp metadata.mfs.empty metadata.mfs #master元數(shù)據(jù)文件
?
5、詳解主配置文件
cd /usr/local/mfs/etc/mfs/
?
vi mfsmaster.cfg #此文件中,有注釋符號(hào)的就是默認(rèn)配置
?
# WORKING_USER = mfs #運(yùn)行master服務(wù)的用戶
# WORKING_GROUP = mfs #運(yùn)行master服務(wù)的組
# SYSLOG_IDENT = mfsmaster #在syslog中表示是mfsmaster產(chǎn)生的日志,在syslog的標(biāo)識(shí),說(shuō)明由master服務(wù)產(chǎn)生的
# LOCK_MEMORY = 0 #是否執(zhí)行mlockall(),避免master進(jìn)程溢出(默認(rèn)為0)
# NICE_LEVEL = -19 #運(yùn)行的優(yōu)先級(jí)(如果可以,默認(rèn)是-19;注意進(jìn)程必須是root啟動(dòng))
?
# EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg #被掛載目錄及其權(quán)限控制文件的存放位置
?
# TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg
# DATA_PATH = /usr/local/mfs/var/mfs #數(shù)據(jù)存放位置
?
# BACK_LOGS = 50 #metadata改變的log文件數(shù)目(默認(rèn)是50)
# BACK_META_KEEP_PREVIOUS = 1
?
# REPLICATIONS_DELAY_INIT = 300
# REPLICATIONS_DELAY_DISCONNECT = 3600
?
# MATOML_LISTEN_HOST = * #metalogger監(jiān)聽的IP地址(默認(rèn)是*,代表任何IP)
# MATOML_LISTEN_PORT = 9419 #metalogger監(jiān)聽的端口地址(默認(rèn)是9419)
# MATOML_LOG_PRESERVE_SECONDS = 600
?
# MATOCS_LISTEN_HOST = * #用于chunkserver連接的IP地址(默認(rèn)是*,代表任何IP)
# MATOCS_LISTEN_PORT = 9420 #用于chunkserver連接的端口IP地址(默認(rèn)是9420)
?
# MATOCL_LISTEN_HOST = *
# MATOCL_LISTEN_PORT = 9421
?
# CHUNKS_LOOP_MAX_CPS = 100000
# CHUNKS_LOOP_MIN_TIME = 300 #chunks的回環(huán)頻率(默認(rèn)是300秒)
?
# CHUNKS_SOFT_DEL_LIMIT = 10
# CHUNKS_HARD_DEL_LIMIT = 25
# CHUNKS_WRITE_REP_LIMIT = 2 #在一個(gè)循環(huán)里復(fù)制到一個(gè)chunkserver的最大chunk數(shù)
# CHUNKS_READ_REP_LIMIT = 10 #在一個(gè)循環(huán)里從一個(gè)chunkserver復(fù)制的最大chunk數(shù)
# ACCEPTABLE_DIFFERENCE = 0.1
?
# SESSION_SUSTAIN_TIME = 86400
# REJECT_OLD_CLIENTS = 0
?
# deprecated:
# CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead
# LOCK_FILE - lock system has been changed, and this option is used only to search for old lockfile
?
?
?
6、詳解被掛載目錄及權(quán)限配置文件
?
cd /usr/local/mfs/etc/mfs/
?
vi mfsexports.cfg
?
# Allow everything but "meta".
* / rw,alldirs,maproot=0
?
# Allow "meta".
* . rw
#詳解
根據(jù)文件的顯示,可以看出,該文件每一個(gè)條目分為三個(gè)部分
第一部分:客戶端的IP地址
第二部分:被掛載的目錄
第三部分:客戶端擁有的權(quán)限
?
客戶端的IP地址部分
*:代表所有的IP地址
192.168.100.71:代表單個(gè)IP地址
192.168.100.0/24:代表整個(gè)網(wǎng)段
192.168.100.71-192.168.100.100:代表指定網(wǎng)段
?
被掛載的目錄部分
/:標(biāo)識(shí)MFS根
.:標(biāo)識(shí)MFSMETA文件系統(tǒng)
?
客戶端擁有的權(quán)限部分
ro:代表只讀模式
rw:代表讀寫方式共享
alldirs:允許掛載任何指定的子目錄
admin:管理員權(quán)限
maproot:映射為root,還是指定的用戶
Password:指定客戶端的密碼
?
7、授權(quán)、優(yōu)化路徑
chown -R mfs.mfs /usr/local/mfs
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
?
8、啟動(dòng)服務(wù)
mfsmaster start
netstat -anpt | grep mfs
9、編輯啟動(dòng)腳本(我用的是方法二)
方法一:
vi /lib/systemd/system/mfs.service
?
[Unit]
Description=mfs
After=network.target
?
[Service]
Type=forking
ExecStart=/usr/local/mfs/sbin/mfsmaster start #啟動(dòng)服務(wù)
ExecStop=/usr/local/mfs/sbin/mfsmaster stop #關(guān)閉服務(wù)
PrivateTmp=true
?
[Install]
WantedBy=multi-user.target
?
systemctl enable mfs.service #服務(wù)開機(jī)自啟動(dòng)
systemctl stop mfs.service #關(guān)閉服務(wù)
systemctl start mfs.service #啟動(dòng)服務(wù)
?
方法二:
echo "/usr/local/mfs/sbin/mfsmaster start" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
?
二、搭建MetaLogger Server(元數(shù)據(jù)日志服務(wù)器)
1、安裝相關(guān)編譯器、工具包
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
yum install lrz* -y
?
2、創(chuàng)建進(jìn)程用戶
useradd -s /sbin/nologin -M mfs
?
?
3、安裝mfs軟件包
yum install -y unzip
unzip moosefs-master.zip -d /opt
?
cd /opt/moosefs-master
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs
?
?
make && make install
?
4、修改主配置文件
cd /usr/local/mfs/etc/mfs/
?
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
?
cd /usr/local/mfs/var/mfs
cp metadata.mfs.empty metadata.mfs
?
?
cd /usr/local/mfs/etc/mfs/
vi mfsmetalogger.cfg
?
修改以下內(nèi)容:
MASTER_HOST = 192.168.80.100 執(zhí)行master服務(wù)器的ip地址,去掉注釋符號(hào)
META_DOWNLOAD_FREQ = 24 #備份頻率時(shí)間
?
5、授權(quán)、優(yōu)化路徑
chown -R mfs.mfs /usr/local/mfs
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
?
6、啟動(dòng)服務(wù)
mfsmetalogger start
netstat -anpt | grep mfsmetalogger
echo "/usr/local/mfs/sbin/mfsmetalogger start" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
?
三、搭建Chunk Server(三臺(tái)Chunk Server主機(jī)搭建步驟相同)
?
安裝數(shù)據(jù)服務(wù)器(chunkservers),這些機(jī)器的磁盤上要有適當(dāng)?shù)氖S嗫臻g,而且操作系統(tǒng)要遵循POSIX標(biāo)準(zhǔn)(驗(yàn)證了的有這些:Linux、FreeBSD、Mac OS X and OpenSolaris)。
?
chunkserver存儲(chǔ)數(shù)據(jù)時(shí),是在一個(gè)普通的文件系統(tǒng)如ext4上存儲(chǔ)數(shù)據(jù)塊或碎片(chunks/fragments)作為文件。你在chunkserver上看不到完整的文件。
?
1、安裝相關(guān)編譯器、工具包
?
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
yum install lrz* -y
?
2、創(chuàng)建程序用戶
?
useradd -s /sbin/nologin -M mfs
?
3、安裝mfs軟件包
yum install unzip -y
unzip moosefs-master.zip -d /opt
?
cd /opt/moosefs-master
?
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs
?
make && make install
?
4、修改相應(yīng)配置文件
cd /usr/local/mfs/etc/mfs/
?
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
?
vi mfschunkserver.cfg
修改以下內(nèi)容:
MASTER_HOST = 192.168.80.100 指向master服務(wù)器的ip地址,去掉注釋符號(hào)
MASTER_PORT = 9420
?
vi mfshdd.cfg
添加一行:
/data 這是一個(gè)給MFS的分區(qū),生產(chǎn)環(huán)境中最好使用獨(dú)立的分區(qū),或者磁盤掛載到此目錄下
?
5、創(chuàng)建MFS分區(qū)目錄
mkdir /data
?
chown -R mfs:mfs /data/
?
6、授權(quán)、優(yōu)化路徑
chown -R mfs.mfs /usr/local/mfs
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
?
7、啟動(dòng)服務(wù)
mfschunkserver start
netstat -anpt | grep mfschunkserver 看9422 端口是否在工作
注:如果沒有顯示試一下下面一行命令
netstat -anpt | grep 9422
?
echo "/usr/local/mfs/sbin/mfschunkserver start" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
?
?
四、配置客戶端
?---
1、安裝相關(guān)編譯器、工具包
?
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
?
4、創(chuàng)建進(jìn)程用戶
useradd -s /sbin/nologin -M mfs
yum install lrz* -y
?
?
5、安裝mfs軟件包
?yum install unizp -y
unzip moosefs-master.zip -d /opt
?
cd /opt/moosefs-master
?
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--enable-mfsmount
?
make && make install
?
ln -s /usr/lcoal/mfs/bin/* /usr/local/bin
?
6、掛載MFS文件系統(tǒng)
?
mkdir /opt/mfs #創(chuàng)建掛載點(diǎn)
?
modprobe fuse #加載fuse模塊到內(nèi)核
?
mfsmount /opt/mfs/ -H 192.168.80.100 #掛載MFS
?
df -hT #查看掛載情況
unzip moosefs-master.zip -d /opt
?
cd /opt/moosefs-master
?
echo "modprobe fuse" >> /etc/rc.d/rc.local
echo "/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.80.100" >> /etc/rc.d/rc.local
?
在chunkserver上查看:
yum install tree -y
tree /data
?
7、在master上開啟web監(jiān)控服務(wù)
mfscgiserv start
?
?
8、訪問(wèn)MFS監(jiān)控工具
http://192.168.80.100:9425 #client端訪問(wèn)web
?
?
新聞標(biāo)題:mfs安裝源碼編譯
網(wǎng)頁(yè)鏈接:http://fisionsoft.com.cn/article/gicijg.html