mfs分布式存儲搭建應用-創(chuàng)新互聯(lián)

          MFS 分布式存儲的運行方式

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比沿河網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式沿河網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋沿河地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。

MFS工作原理

MooseFS是一款具有冗余容錯功能的分布式文件系統(tǒng)。它把數(shù)據(jù)分散在多臺服務器上,確保一份數(shù)據(jù)多個備份副本,對外提供統(tǒng)一的結構。

功能特性

對于標準的文件操作,MooseFS表現(xiàn)與其他類Unix文件系統(tǒng)一致。支持的通過文件系統(tǒng)特性:

· 層次結構(目錄樹)

· 兼容POSIX文件屬性

· 支持特殊文件

· 符號鏈接和硬鏈接

· 基于IP地址和密碼的訪問控制

獨有特性

· 高可靠性(數(shù)據(jù)的多個副本存儲在不同服務器)

· 容量動態(tài)擴展(添加新硬盤或者服務器)

· 可以回收在制定時間內刪除的文件,類似回收站功能

· 可以對整個文件甚至是正在被寫入的文件創(chuàng)建文件快照

MFS整體架構的四種角色

· Master(元數(shù)據(jù)服務器)負責各個數(shù)據(jù)存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復,多節(jié)點拷貝。存儲著每個文件的元數(shù)據(jù)(文件的大小、屬性、位置信息,包括所有非常規(guī)文件的所有信息,例如目錄、套接字、管道以及設備文件)

· Metalogger(元數(shù)據(jù)日志服務器)負責備份Master服務器的changelog。文件類型為 changelog.*.mfs ,以便在Master出問題時接替其工作

· Chunk(數(shù)據(jù)存儲服務器)負責連接Master,聽從Master調度,提供存儲空間,并為客戶端提供數(shù)據(jù)傳輸

· Client(客戶端掛載)通過FUSE內核接口掛載遠程管理服務器(master)上所管理的數(shù)據(jù)存儲服務器,使用起來和本地文件系統(tǒng)一樣

· mfs分布式存儲搭建應用

## MFS讀處理過程:
1、客戶端向元數(shù)據(jù)服務器發(fā)出讀請求。
2、元數(shù)據(jù)服務器把所需數(shù)據(jù)存放的位置(Chunk Server的IP地址和chunk編號)告知客戶端。
3、客戶端向已知的Chunk Server請求發(fā)送數(shù)據(jù)。
4、Chunk Server向客戶端發(fā)送數(shù)據(jù)。

## MFS寫處理過程:
1、客戶端向元數(shù)據(jù)服務器發(fā)送寫入請求。
2、元數(shù)據(jù)服務器與Chunk Server進行交互(只有當所需的分塊Chunks存在的時候才進行這個交互):
a、元數(shù)據(jù)服務器只是在某些服務器創(chuàng)建新的分塊chunks。
b、Chunk Servers告知元數(shù)據(jù)服務器,步驟a已經(jīng)操作成功。
3、元數(shù)據(jù)服務器告知客戶端,你可以在哪個Chunk Server的哪些Chunks寫入數(shù)據(jù)。
4、客戶端向指定的Chunk Server寫入數(shù)據(jù)
5、Chunk Server與其他Chunk Server進行數(shù)據(jù)同步。
6、Chunk Server之間同步成功。
7、Chunk Server告知客戶端數(shù)據(jù)寫入成功。
8、客戶端告知元數(shù)據(jù)服務器本次寫入完畢。

實驗拓撲

mfs分布式存儲搭建應用

一、搭建master  server

1.安裝依賴包

[root@centos1 ~]# yum -y install zlib-devel

mfs分布式存儲搭建應用

2.創(chuàng)建用戶

[root@centos1 ~]# useradd mfs -s /sbin/nologin

mfs分布式存儲搭建應用

3.安裝源碼包

[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

4.復制文件

[root@centos1 mfs-1.6.27]# cd /usr/local/mfs/etc/mfs

mfs分布式存儲搭建應用

[root@centos1 mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg

[root@centos1 mfs]# cp mfsexports.cfg.dist mfsexports.cfg

[root@centos1 mfs]# cp mfstopology.cfg mfstopology.cfg

mfs分布式存儲搭建應用

[root@centos1 mfs]# cd /usr/local/mfs/var/mfs/

[root@centos1 mfs]# cp  metadata.mfs.empty metadata.mfs

mfs分布式存儲搭建應用

5.配置文件(只需了解,不用改動)

// mfsmaster.cfg(主配置文件)/usr/local/mfs/etc/mfs目錄下

# WORKING_USER = mfs 運行master server的用戶

# WORKING_GROUP = mfs 運行master server的組

# SYSLOG_IDENT = mfsmaster master server 在syslog中的標識,說明是由master serve產(chǎn)生的

# LOCK_MEMORY = 0 是否執(zhí)行mlockall()以避免mfsmaster進程溢出(默認為0)

# NICE_LEVEL = -19 運行的優(yōu)先級(如果可以默認是-19;注意:進程必須是用root啟動)

# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg 被掛接目錄及其權限控制文件的存放位置

# TOPOLOGY_FILENAME = /usr/local/mfs/etc/mfs/mfstopology.cfg

# DATA_PATH = /usr/local/mfs/var/mfs 數(shù)據(jù)存放路徑,此目錄下大致有三類文件,changelog,sessions和stats;

# BACK_LOGS = 50 metadata 的改變log文件數(shù)目(默認是50);

# BACK_META_KEEP_PREVIOUS = 1

# REPLICATIONS_DELAY_INIT = 300 延遲復制的時間(默認是300s);

# REPLICATIONS_DELAY_DISCONNECT = 3600 chunkserver 斷開的復制延遲(默認是3600);

# MATOML_LISTEN_HOST = * metalogger 監(jiān)聽的IP地址(默認是*,代表任何IP);

# MATOML_LISTEN_PORT = 9419 metalogger 監(jiān)聽的端口地址(默認是9419);

# MATOML_LOG_PRESERVE_SECONDS = 600

# MATOCS_LISTEN_HOST = * 用于chunkserver連接的IP地址(默認是*,代表任何IP);

# MATOCS_LISTEN_PORT = 9420 用于chunkserver連接的端口地址(默認是9420);

# MATOCU_LISTEN_HOST = * 用于客戶端掛接連接的IP地址(默認是*,代表任何IP);

# MATOCU_LISTEN_PORT = 9421 用于客戶端掛接連接的端口地址(默認是9421);

# CHUNKS_LOOP_MAX_CPS = 100000

# CHUNKS_LOOP_MIN_TIME = 300 chunks 的回環(huán)頻率(默認是:300秒);

mfsexportes.cfg 為共享mfs文件系統(tǒng)的控制文件,NFS要共享一個目錄時,我們會使用vim /etc/exports命令,編寫共享給誰,所要共享的目錄,共享出去的屬性這些內容,而mfsexports.cfg的作用與其類似其書寫格式如下: 對客戶端的配置

Allow  everything    but  “meta”

*                /       rw,alldirs,maproot=0

mfs分布式存儲搭建應用

Client(客戶端)支持格式:ip、ip/netmask、ip/位數(shù)掩碼、ip-ip、*

該文件每一個條目分為三部分:

第一部分:客戶端的ip 地址

第二部分:被掛接的目錄

第三部分:客戶端擁有的權限

//地址可以指定的幾種表現(xiàn)形式:

* 所有的ip地址

n.n.n.n 單個ip地址

n.n.n.n/b IP 網(wǎng)絡地址/位數(shù)掩碼

n.n.n.n/m.m.m.m IP 網(wǎng)絡地址/子網(wǎng)掩碼

f.f.f.f-t.t.t.t IP 段

//目錄部分需要注意兩點:

/ 標識MooseFS根;

. 表示MFSMETA文件系統(tǒng)

//權限部分:

ro 只讀模式共享

rw 讀寫的方式共享

alldirs 許掛載任何指定的子目錄

6.啟動服務/usr/local/mfs/sbin/mfsmaster start

mfs分布式存儲搭建應用

[root@centos1 mfs]#netstat -anpt

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address    Foreign Address             State       PID/Program name

tcp        0      0 0.0.0.0:9419                0.0.0.0:*                   LISTEN      7599/mfsmaster

tcp        0      0 0.0.0.0:9420                0.0.0.0:*                   LISTEN      7599/mfsmaster

tcp        0      0 0.0.0.0:9421                0.0.0.0:*                   LISTEN      7599/mfsmaster

tcp        0      0 192.168.1.1:9419            192.168.1.2:37816           ESTABLISHED 7599/mfsmaster

tcp        0      0 192.168.1.1:9420            192.168.1.3:48107           ESTABLISHED 7599/mfsmaster

tcp        0      0 ::1:25                      :::*                        LISTEN      1732/master

7.查看進程

[root@centos1 mfs]# ps -ef|grep mfs

mfs分布式存儲搭建應用

8.停止mfsmaster

[root@centos1 mfs]#/usr/local/mfs/sbin/mfsmaster -s 或stop

二、搭建metalogger  server

1.安裝依賴包

[root@centos1 ~]# yum -y install zlib-devel

mfs分布式存儲搭建應用

2.創(chuàng)建用戶

[root@centos1 ~]# useradd mfs -s /sbin/nologin

mfs分布式存儲搭建應用

3.安裝源碼包

[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

4.復制文件

[root@centos1 mfs-1.6.27]# cd /usr/local/mfs/etc

[root@centos2 mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

mfs分布式存儲搭建應用

[root@centos2 mfs]# vim mfsmetalogger.cfg

MASTER_HOST=192.168.1.1  //手工添加MASTER SERVER的ip地址

mfs分布式存儲搭建應用

5.啟動服務

[root@centos2 mfs]# /usr/local/mfs/sbin/mfsmetalogger start

mfs分布式存儲搭建應用

三、搭建chunk server

1.安裝依賴包

[root@centos1 ~]# yum -y install zlib-devel

mfs分布式存儲搭建應用

2.創(chuàng)建用戶

[root@centos1 ~]# useradd mfs -s /sbin/nologin

mfs分布式存儲搭建應用

3.安裝

[root@centos1 ~]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

4.復制配置文件

[root@centos3 mfs]# cd  /usr/local/mfs/etc/mfs/

#cp mfschunkserver.cfg.dist mfschunkserver.cfg

[root@centos3 mfs]# cp mfshdd.cfg mfshdd.cfg

mfs分布式存儲搭建應用

5.修改配置文件

[root@centos3 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.1  //master服務器的ip地址

mfs分布式存儲搭建應用

[root@centos3 mfs]# vim mfshdd.cfg

/data    //設置chunkserver存放數(shù)據(jù)的目錄

mfs分布式存儲搭建應用

4.設置目錄權限,啟動mfschunkserver

[root@centos3 mfs]# mkdir /data              //創(chuàng)建/data

[root@centos3 mfs]# chown -R mfs:mfs /data          //設置權限

[root@centos3 mfs]# /usr/local/mfs/sbin/mfschunkserver start   //啟動服務

mfs分布式存儲搭建應用

四、搭建第二個chunkserver

1.[root@centos3 ~]# useradd mfs  -s /sbin/nologin

mfs分布式存儲搭建應用

2.安裝

[root@centos4 mfs-1.6.27]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos4 mfs-1.6.27]# cd /usr/src/mfs-1.6.27/

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

3.復制配置文件

[root@centos3 mfs-1.6.27]# cd  /usr/local/mfs/etc/mfs

[root@centos4 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg

[root@centos4 mfs]# cp mfshdd.cfg.dist mfshdd.cfg

mfs分布式存儲搭建應用

4.修改配置文件

[root@centos3 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.1  //master服務器的ip地址

mfs分布式存儲搭建應用

[root@centos3 mfs]# vim mfshdd.cfg

/data    //存放數(shù)據(jù)的目錄

mfs分布式存儲搭建應用

5.設置目錄權限,啟動mfschunkserver

#mkdir   /data

[root@centos3 mfs]# chown -R mfs:mfs /data

[root@centos3 mfs]# /usr/local/mfs/sbin/mfschunkserver start

mfs分布式存儲搭建應用

五、客戶端配置

1.安裝fuse

fuse的功能簡單概括一下,fuse提供一個文件操作的接口,然后fuse在這個接口上監(jiān)聽文件操作,并把這些對文件的操作傳給我們自己的相關代碼進行處理。 也就是說,fuse提供一個掛載點,然后他會在這個掛在點上進行監(jiān)聽,一旦有操作(新建、讀取、修改)發(fā)生,他會把控制權交給我們的代碼,這些操作的具體代碼都在mfsmount模塊中實現(xiàn)。

[root@centos1 fuse-2.9.2]# tar xf /mnt/fuse-2.9.2.tar.gz -C /usr/src

[root@centos1 fuse-2.9.2]# cd /usr/src/fuse-2.9.2/

mfs分布式存儲搭建應用

[root@centos1 fuse-2.9.2]# ./configure

[root@centos1 fuse-2.9.2]# make &&make install

mfs分布式存儲搭建應用

2.設置環(huán)境變量

[root@centos1 fuse-2.9.2]# vim /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH //環(huán)境變量PKG_CONFIG_PATH是用來設置.pc文件的搜索路徑的

mfs分布式存儲搭建應用

[root@centos1 fuse-2.9.2]# source /etc/profile     //刷新環(huán)境變量

mfs分布式存儲搭建應用

3.安裝mfs客戶端

[root@centos3 ~]# useradd -s /sbin/nologin   mfs

mfs分布式存儲搭建應用

[root@centos1 mfs-1.6.27]# tar xf /mnt/mfs-1.6.27-5.tar.gz -C /usr/src

[root@centos1 mfs-1.6.27]# cd  /usr/src/mfs-1.6.27/

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

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

mfs分布式存儲搭建應用

4.掛載mfs文件系統(tǒng)

#mkdir /test     //創(chuàng)建掛載點

[root@centos1 test]# modprobe fuse//加載fuse模塊到內核

mfs分布式存儲搭建應用

[root@centos1 test]# /usr/local/mfs/bin/mfsmount /test -H 192.168.1.1//掛載mfs

mfs分布式存儲搭建應用

查看掛載情況:

mfs分布式存儲搭建應用

5.mfs常用操作

1.設置環(huán)境變量

[root@centos1 test]# vim /etc/profile

export PATH=/usr/local/mfs/bin:$PATH

mfs分布式存儲搭建應用

[root@centos1 test]# source /etc/profile

mfs分布式存儲搭建應用

2.查看與設置文件復制的份數(shù)

[root@centos1 test]# mfsgetgoal -r /test

mfs分布式存儲搭建應用

3.測試

[root@centos1 test]# dd if=/dev/zero of=/test/111.data  bs=200M count=1

mfs分布式存儲搭建應用

查看寫入結果:

mfs分布式存儲搭建應用

[root@centos1 test]# mfssetgoal -r 2 /test 進行冗余測試

mfs分布式存儲搭建應用

[root@centos1 test]# dd if=/dev/zero of=/test/222.data  bs=200M count=1

mfs分布式存儲搭建應用

查看寫入結果是否冗余:

mfs分布式存儲搭建應用

六、mfs監(jiān)控

1. [root@centos1 mfs]# /usr/local/mfs/sbin/mfscgiserv  //master服務器寫入

mfs分布式存儲搭建應用

2. 通過網(wǎng)站進行監(jiān)控測試:

mfs分布式存儲搭建應用

七、MFS集群維護

1.啟動MFS集群

安全的啟動MooseFS 集群(避免任何讀或寫的錯誤數(shù)據(jù)或類似的問題)的方式是按照以下命令步驟:

1. 啟動mfsmaster 進程

2. 啟動所有的mfschunkserver 進程

3. 啟動mfsmetalogger 進程(如果配置了mfsmetalogger)

4. 當所有的chunkservers 連接到MooseFS master后,任何數(shù)目的客戶端可以利用mfsmount去掛接被export的文件系統(tǒng)。(可以通過檢查master的日志或是CGI監(jiān)視器來查看是否所有的chunkserver被連接)。

2.停止MFS集群

安全的停止MooseFS 集群:

1. 在所有的客戶端卸載MooseFS 文件系統(tǒng)(用umount命令或者是其它等效的命令)

2. 用mfschunkserver stop 命令停止chunkserver進程

3. 用mfsmetalogger stop 命令停止metalogger進程

4. 用mfsmaster stop 命令停止master進程

3.MFS元數(shù)據(jù)備份

通常元數(shù)據(jù)有兩部分的數(shù)據(jù):

· 主要元數(shù)據(jù)文件metadata.mfs,當mfsmaster運行的時候會被命名為metadata.mfs.back

· 元數(shù)據(jù)改變日志changelog.*.mfs,存儲了過去的N小時的文件改變(N的數(shù)值是由BACK_LOGS參數(shù)設置的,參數(shù)的設置在mfschunkserver.cfg配置文件中)。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前名稱:mfs分布式存儲搭建應用-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://muchs.cn/article36/cocjsg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站設計搜索引擎優(yōu)化、ChatGPT、外貿(mào)建站網(wǎng)站內鏈

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司