您好,登錄后才能下訂單哦!
https://pan.baidu.com/s/1RY1emqQHM-Mq3nq1NP5PUw //軟件百度網盤連接?
MFS分布式文件系統
?
文件系統:ext4、xfs、ext3
?
mooseFS(moose 駝鹿)是一款網絡分布式文件系統。它把數據分散在多臺服務器上,但對于用戶來講,看到的只是一個源。MFS也像其他類UNIX文件系統一樣,包含了層級結構(目錄樹),存儲著文件屬性(權限、最后訪問和修改時間),常見特殊的文件(塊設備、字符設備、管道、套接字),符號鏈接,硬鏈接。
?
MooseFS[MFS]是一個具有容錯性的網絡分布式文件系統。它把數據分散存放在多個物理服務器上,但呈現給用戶的則是一個統一的資源
?
當我們存儲服務器的容量達到瓶頸之后,那我們就需要采用分布式的文件系統來擴大存儲容量,類似與百度云的存儲,也是采用分布式存儲。
?
MFS特征:
1、層析結構(目錄樹)
2、存儲文件屬性(權限、訪問和修改時間)
3、支持特殊文件(塊設備,字符設備,管道)
4、符號鏈接,軟硬鏈接
5、對文件系統訪問可以通過IP地址或者密碼進行訪問限制
6、高可靠(數據的多個拷貝存儲在不同的計算機上)
7、通過附加新的計算機或者硬盤可以實現容量的動態擴展
8、刪除文件可以根據一個可配置的時間周期進行保留
9、不受訪問和寫入影響的文件連貫快照
?
應用場景:分布式文件系統的應用場景
1、大規模高并發的數據存儲及訪問(小文件,大文件)
2、大規模的數據處理,如日志分析
?
官方網站:https://moosefs.com
?
MFS分布式文件系統部署方案:
Moosefs是一種分布式文件系統,MooseFS文件系統結構包括以下四種角色:
1、管理服務器 managing server(master)
負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復,多節點拷貝
?
2、元數據日志服務器 Metalogger Server(Metalogger)
負責備份master服務器的變化日志文件,文件類型為changelog_ml.*.mfs,以便于在master server出問題的時候接替其進行工作。
?
3、數據存儲服務器data servers(chunk servers)
聽從管理服務器調度,提供存儲空間,并為客戶提供數據傳輸。真正存儲用戶數據的服務器。
存儲文件時,首先把文件分出塊,然后這些塊在數據服務區chunk server之間復制(復制份數可以手工指定,建議設置副本數為3)。數據服務器可以是多個,并且數量越多,可使用的“磁盤空間”越大,可靠性也越高。
?
4、客戶機掛載使用client computers
客戶端掛載遠程mfs服務器共享出的存儲并使用。
通過fuse內核接口掛載進程管理服務器上所管理的數據存儲服務器共享出的硬盤。
共享的文件系統的用法和nfs相似。
使用MFS文件系統來存儲和訪問的主機稱為MFS的客戶端,成功掛載MFS文件系統以后,就可以像以前使用NFS一樣共享這個虛擬性的存儲了
?
?
?
?
分布式文件系統原理
?
分布式文件系統是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。就是把一些分散的(分布在局域網內各個計算機上)共享文件夾,集合到一個文件夾內(虛擬共享文件夾)。對于用戶來說,要訪問這些共享文件夾時,只要打開這個虛擬共享文件夾,就可以看到所有鏈接到虛擬共享文件夾內的共享文件夾,用戶感覺不到這些共享文件是分散于各個計算機上的。
?
分布式文件系統優勢:
集中訪問
簡化操作
數據容災
提高文件存取性能、在線擴容
?
?
?
?
MFS讀取數據原理
?
1.客戶端向元數據服務器發出讀請求
2.元數據服務器把所需數據存放的位置(Chunk Servert的IP地址和Chunk編號)告知客戶端
3.客戶端向己知的Chunk Serve請求發送數據
4.Chunk Server向客戶端發送數據
?
?
過程:
1.客戶端向元數據服務器發送寫請求
2.元數據服務器與Chunk Server進行交互(只有當所需的分塊Chunks存在的時候才進行這個交互),但元數據服務器只在某些服務器創建新的分塊Chunks,創建完告知元數據服務器操作成功
3.元數據服務器告知客戶端,可以在哪個Chunk Server的哪些Chunks寫入數據
4.客戶端向指定的Chunk Server寫入數據
5.該Chunk Serve與其他Chunk Serve進行數據同步,之后Chunk Server告知客戶端數據寫入成功
6.客戶端告知元數據服務器本次寫入完畢
?
端口號:
9420:MFS master和MFS chunk通信端口
9421:MFS master和MFS client端通信端口
9419:MFS master和MFS metalogger端通信端口
9422:MFS chunk和MFS client端通信端口
9425:MFS master web界面監聽端口,查看整體運行狀態
?
?
系統環境
主機 | 操作系統 | 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 |
?
1、安裝相關編譯器、工具包(所有服務器都得安裝)
關閉防火墻及SElinux
systemctl stop firewalld
setenforce 0
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
yum install lrz* -y
?
2、創建進程用戶
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、修改相關文件信息
cd /usr/local/mfs/etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg #輸出目錄配置文件,定義掛載以及權限設定文件
?
cp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件
?
cp mfstopology.cfg.dist mfstopology.cfg #元數據日志文件
?
cd /usr/local/mfs/var/mfs/
?
cp metadata.mfs.empty metadata.mfs #master元數據文件
?
5、詳解主配置文件
cd /usr/local/mfs/etc/mfs/
?
vi mfsmaster.cfg #此文件中,有注釋符號的就是默認配置
?
# WORKING_USER = mfs #運行master服務的用戶
# WORKING_GROUP = mfs #運行master服務的組
# SYSLOG_IDENT = mfsmaster #在syslog中表示是mfsmaster產生的日志,在syslog的標識,說明由master服務產生的
# LOCK_MEMORY = 0 #是否執行mlockall(),避免master進程溢出(默認為0)
# NICE_LEVEL = -19 #運行的優先級(如果可以,默認是-19;注意進程必須是root啟動)
?
# EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg #被掛載目錄及其權限控制文件的存放位置
?
# TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg
# DATA_PATH = /usr/local/mfs/var/mfs #數據存放位置
?
# BACK_LOGS = 50 #metadata改變的log文件數目(默認是50)
# BACK_META_KEEP_PREVIOUS = 1
?
# REPLICATIONS_DELAY_INIT = 300
# REPLICATIONS_DELAY_DISCONNECT = 3600
?
# MATOML_LISTEN_HOST = * #metalogger監聽的IP地址(默認是*,代表任何IP)
# MATOML_LISTEN_PORT = 9419 #metalogger監聽的端口地址(默認是9419)
# MATOML_LOG_PRESERVE_SECONDS = 600
?
# MATOCS_LISTEN_HOST = * #用于chunkserver連接的IP地址(默認是*,代表任何IP)
# MATOCS_LISTEN_PORT = 9420 #用于chunkserver連接的端口IP地址(默認是9420)
?
# MATOCL_LISTEN_HOST = *
# MATOCL_LISTEN_PORT = 9421
?
# CHUNKS_LOOP_MAX_CPS = 100000
# CHUNKS_LOOP_MIN_TIME = 300 #chunks的回環頻率(默認是300秒)
?
# CHUNKS_SOFT_DEL_LIMIT = 10
# CHUNKS_HARD_DEL_LIMIT = 25
# CHUNKS_WRITE_REP_LIMIT = 2 #在一個循環里復制到一個chunkserver的最大chunk數
# CHUNKS_READ_REP_LIMIT = 10 #在一個循環里從一個chunkserver復制的最大chunk數
# 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、詳解被掛載目錄及權限配置文件
?
cd /usr/local/mfs/etc/mfs/
?
vi mfsexports.cfg
?
# Allow everything but "meta".
* / rw,alldirs,maproot=0
?
# Allow "meta".
* . rw
#詳解
根據文件的顯示,可以看出,該文件每一個條目分為三個部分
第一部分:客戶端的IP地址
第二部分:被掛載的目錄
第三部分:客戶端擁有的權限
?
客戶端的IP地址部分
*:代表所有的IP地址
192.168.100.71:代表單個IP地址
192.168.100.0/24:代表整個網段
192.168.100.71-192.168.100.100:代表指定網段
?
被掛載的目錄部分
/:標識MFS根
.:標識MFSMETA文件系統
?
客戶端擁有的權限部分
ro:代表只讀模式
rw:代表讀寫方式共享
alldirs:允許掛載任何指定的子目錄
admin:管理員權限
maproot:映射為root,還是指定的用戶
Password:指定客戶端的密碼
?
7、授權、優化路徑
chown -R mfs.mfs /usr/local/mfs
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
?
8、啟動服務
mfsmaster start
netstat -anpt | grep mfs
9、編輯啟動腳本(我用的是方法二)
方法一:
vi /lib/systemd/system/mfs.service
?
[Unit]
Description=mfs
After=network.target
?
[Service]
Type=forking
ExecStart=/usr/local/mfs/sbin/mfsmaster start #啟動服務
ExecStop=/usr/local/mfs/sbin/mfsmaster stop #關閉服務
PrivateTmp=true
?
[Install]
WantedBy=multi-user.target
?
systemctl enable mfs.service #服務開機自啟動
systemctl stop mfs.service #關閉服務
systemctl start mfs.service #啟動服務
?
方法二:
echo "/usr/local/mfs/sbin/mfsmaster start" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
1、安裝相關編譯器、工具包
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
yum install lrz* -y
?
2、創建進程用戶
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
?
修改以下內容:
MASTER_HOST = 192.168.80.100 執行master服務器的ip地址,去掉注釋符號
META_DOWNLOAD_FREQ = 24 #備份頻率時間
?
5、授權、優化路徑
chown -R mfs.mfs /usr/local/mfs
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
?
6、啟動服務
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(三臺Chunk Server主機搭建步驟相同)
?
安裝數據服務器(chunkservers),這些機器的磁盤上要有適當的剩余空間,而且操作系統要遵循POSIX標準(驗證了的有這些:Linux、FreeBSD、Mac OS X and OpenSolaris)。
?
chunkserver存儲數據時,是在一個普通的文件系統如ext4上存儲數據塊或碎片(chunks/fragments)作為文件。你在chunkserver上看不到完整的文件。
?
1、安裝相關編譯器、工具包
?
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
yum install lrz* -y
?
2、創建程序用戶
?
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、修改相應配置文件
cd /usr/local/mfs/etc/mfs/
?
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg
?
vi mfschunkserver.cfg
修改以下內容:
MASTER_HOST = 192.168.80.100 指向master服務器的ip地址,去掉注釋符號
MASTER_PORT = 9420
?
vi mfshdd.cfg
添加一行:
/data 這是一個給MFS的分區,生產環境中最好使用獨立的分區,或者磁盤掛載到此目錄下
?
5、創建MFS分區目錄
mkdir /data
?
chown -R mfs:mfs /data/
?
6、授權、優化路徑
chown -R mfs.mfs /usr/local/mfs
ln -s /usr/local/mfs/sbin/* /usr/local/bin/
?
7、啟動服務
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、安裝相關編譯器、工具包
?
yum install gcc gcc-c++ make zlib-devel fuse-devel -y
?
4、創建進程用戶
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文件系統
?
mkdir /opt/mfs #創建掛載點
?
modprobe fuse #加載fuse模塊到內核
?
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監控服務
mfscgiserv start
?
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。