Linux MFS分佈式文件系統介紹和安裝

MFS分佈式文件系統

mooseFS(moose 駝鹿)是一款網絡分佈式文件系統。它把數據分散在多臺服務器上,但對於用戶來說,看到的只是一個源。MFS也像其餘類unix文件系統同樣,包含了層級結構(目錄樹),存儲着文件屬性(權限,最後訪問和修改時間),能夠建立特殊的文件(塊設備,字符設備,管道,套接字),符號連接,硬連接。html

MooseFS[MFS]是一個具備容錯性的網絡分佈式文件系統。它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。linux

SAN和MFS比較

當咱們存儲服務器的容量達到瓶頸以後,那咱們就須要採用分佈式的文件系統來擴大存儲容量,相似與百度雲的存儲,也是採用分佈式存儲!

MFS的特徵

  • 1:層析結構(目錄樹)
  • 2:存儲文件屬性(權限,訪問和修改時間)
  • 3:支持特殊文件(塊設備,字符設備,管道)
  • 4:符號連接,軟硬連接
  • 5:對文件系統訪問能夠經過IP地址或者密碼進行訪問限制
  • 6:高可靠(數據的多個拷貝存儲在不一樣的計算機上)
  • 7:經過附加新的計算機或者硬盤能夠實現容量的動態拓展
  • 8:刪除文件能夠根據一個可配置的時間週期進行保留
  • 9:不受訪問和寫入影響的文件連貫快照

應用場景

談及MooseFS的應用場景,其實就是去談分佈式文件系統的應用場景。

  1)大規模高併發的數據存儲及訪問(小文件、大文件),

 2)大規模的數據處理,如日誌分析

MooseFS介紹

http://www.moosefs.com/
http://www.moosefs.org/reference-guide.html //安裝和幫助文檔c++

MFS分佈式文件系統部署方案

MooseFS 是一種分佈式文件系統,MooseFS 文件系統結構包括如下四種角色:web

  • 1 管理服務器 managing server (master):

負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收以及恢復.多節點拷貝vim

  • 2元數據日誌服務器 Metalogger server(Metalogger):

負責備份 master 服務器的變化日誌文件,文件類型爲 changelog_ml.*.mfs,以便於在 master server 出問題的時候接替其進行工做瀏覽器

  • 3 數據存儲服務器 data servers (chunk servers ) :

遵從管理服務器調度,提供存儲空間,併爲客戶提供數據傳輸.。 真正存儲用戶數據的服務器。存儲文件時,首先把文件分紅塊,而後這些塊在數據服務器 chunkserver之間復 制(複製份數能夠手工指定,建議設置副本數爲 3)。數據服務器能夠是多個,而且數量越多,可以使用的「磁盤空間」越大,可靠性也越高。bash

  • 4 客戶機掛載使用 client computers :

客戶端掛載遠程mfs服務器共享出的存儲並使用。 經過 fuse 內核接口掛載進程管理服務器上所管理的數據存儲服務器共享出的硬盤。 共享的文件系統的用法和 nfs 類似。 使用 MFS 文件系統來存儲和訪問的主機稱爲 MFS 的客戶端,成功掛接 MFS 文件系統之後,就能夠像之前使用 NFS 同樣共享這個虛擬性的存儲了。服務器

系統部署方案

內部運行機制

1:客戶端請求訪問存儲,請求發送到了MFS Master

   2:MFS Master根據咱們的請求,查詢所須要的文件分佈在那些服務器上

   3:客戶端直接和存儲服務器進行數據存儲和讀寫

端口號:

  • 9420 : MFS master和MFS chunck通訊端口網絡

  • 9421 : MFS master和MFS Client端通訊端口session

  • 9419 : MFS master和MFS metalogger端通訊端口

  • 9422 : MFS chunck 和MFS Client端通訊端口

  • 9425 : MFS master web界面監聽端口,查看總體運行狀態

MFS分佈式文件實驗環境

服務器 角色

harry63 管理服務器managing server (master) 和元數據日誌服務器(Metalogger)

harry64 數據存儲服務器data servers (chunk servers )

harry62 客戶機掛載使用client computers

安裝環境準備:

全部服務器端和客戶端都要支持fuse內核模塊。

因爲mfs的客戶端程序也就是加載mfs磁盤系統的命令是使用了fuse,所以只要是想掛載mfs的服務器,必要的前提條件就是先安裝fuse,這樣編譯mfs的時候才能順利經過。

fuse概述:

用戶空間文件系統(Filesystem in Userspace,簡稱FUSE)是操做系統中的概念,指徹底在用戶態實現的文件系統。目前Linux經過內核模塊對此進行支持。一些文件系統如NTFS-3G(做用:讓Linux中對NTFS文件系統提供支持) 使用FUSE實現。

注:2.6以上內核,都自帶fuse

部署MFS分佈式文件系統

部署MFS架構,咱們按照上面的拓撲,從Master開始部署

MFS管理服務器

[root@harry63 ~]#  yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel –y

[root@harry63 ~]# useradd -s /sbin/nologin mfs              #運行mfs的用戶

[root@harry63 ~]# unzip moosefs-master.zip.zip  && cd moosefs-master

[root@harry63 moosefs-master]#  ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

[root@harry63 moosefs-master]# make -j 4 && make install

[root@harry63 moosefs-master]# cd /usr/local/mfs/

[root@harry63 mfs]# ls                           #看下安裝完成生成的目錄

bin         #客戶端工具

etc         #服務器的配置文件都放在該目錄中

sbin       #服務端啓動程序。如:元數據服務器端程序 mfsmaster、數據存儲服務器端服務程序mfschunkserver

share     #文檔

var        #元數據目錄(可在配置文件中自定義到其餘目錄)

生成配置文件

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

       [root@harry63 mfs]# ll

-rw-r--r-- 1 root root  531 Dec 24 14:13 mfschunkserver.cfg.sample

-rw-r--r-- 1 root root 4060 Dec 24 14:13 mfsexports.cfg.sample

-rw-r--r-- 1 root root   57 Dec 24 14:13 mfshdd.cfg.sample

-rw-r--r-- 1 root root 1020 Dec 24 14:13 mfsmaster.cfg.sample

-rw-r--r-- 1 root root  417 Dec 24 14:13 mfsmetalogger.cfg.sample

-rw-r--r-- 1 root root  404 Dec 24 14:13 mfsmount.cfg.sample

-rw-r--r-- 1 root root 1123 Dec 24 14:13 mfstopology.cfg.sample

[root@harry63 mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg   //Master配置文件

[root@harry63 mfs]# cp mfsexports.cfg.sample mfsexports.cfg //輸出目錄配置文件

[root@harry63 mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg //元數據日誌

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

[root@harry63 mfs]# cp metadata.mfs.empty metadata.mfs      //首次安裝 master 時,會自動生成一個名爲metadata.mfs.empty 的元數據文件 metadata,該文件是空的。MooseFS master 運必須有文件 metadata.mfs

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

配置文件瞭解

[root@harry63 mfs]# vim mfsmaster.cfg               //這個文件不須要修改,但你須要瞭解下面這幾個字段

23 # MATOCS_LISTEN_HOST = *    #監聽全部 IP,也直接寫一個 IP 地址,如 192.168.1.63

24 # MATOCS_LISTEN_PORT = 9420 

11 # DATA_PATH = /usr/local/mfs/var/mfs

注:這個配置文件中全部注掉的設置都是默認的配置。

若是有須要還能夠修改 DATA_PATH 的設置將元數據目錄存儲到其餘的分區或磁盤。其餘的參數都很簡單根據須要調整便可。

master 會打開 9420 端口等待 mfschunkserver 數據存儲服務器鏈接

[root@harry63 mfs]# chown -R mfs:mfs /usr/local/mfs/

[root@harry63 mfs]# /usr/local/mfs/sbin/mfsmaster start           //各個端口開始起來

working directory: /usr/local/mfs/var/mfs

lockfile created and locked

initializing mfsmaster modules ...

loading sessions ... file not found

if it is not fresh installation then you have to restart all active mounts !!!

exports file has been loaded

mfstopology configuration file (/usr/local/mfs/etc/mfstopology.cfg) not found - using defaults

loading metadata ...

create new empty filesystemmetadata file has been loaded

no charts data file - initializing empty charts

master <-> metaloggers module: listen on *:9419

master <-> chunkservers module: listen on *:9420

main master server module: listen on *:9421

mfsmaster daemon initialized properly

[root@harry63 mfs]# netstat -antup | grep 94*

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

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

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

[root@harry63 mfs]# echo "/usr/local/mfs/sbin/mfsmaster start" >> /etc/rc.local

[root@harry63 mfs]# chmod +x /etc/rc.local

[root@harry63 mfs]# /usr/local/mfs/sbin/mfsmaster stop            //服務的關閉方法

[root@harry63 mfs]# ll /usr/local/mfs/var/mfs/              //查看生成的日誌文件

-rw-r----- 1 mfs mfs     95 Dec 24 14:30 metadata.mfs

-rw-r----- 1 mfs mfs     95 Dec 24 14:28 metadata.mfs.back.1

-rw-r--r-- 1 mfs mfs      8 Dec 24 14:13 metadata.mfs.empty

-rw-r----- 1 mfs mfs     10 Dec 24 14:28 sessions.mfs

-rw-r----- 1 mfs mfs 762516 Dec 24 14:30 stats.mfs

 

指定須要共享的權限

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

[root@harry63 mfs]# vim mfsexports.cfg

# Allow everything but "meta".

*                       /       rw,alldirs,maproot=0

 

# Allow "meta".

*                       .       rw    #下面添加兩行

192.168.1.64/24         /       rw,alldirs,maproot=0

192.168.1.0/24          /       rw,alldirs,mapproot=0

mfsexports.cfg文件每一條由三部分組成,第一部分表示客戶端的 IP 地址,第二部分表示被掛接的目錄,第三部分表示客戶端擁有的權限,下面對三給部分迚行解釋

 

1.客戶端 IP 地址

 *                      全部 IP 地址

 x.x.x.x                 單個 IP 地址

 x.x.x.x/m.m.m.m         IP 網絡地址/子網掩碼

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

2.被掛載的目錄

  /                     表示 MooseFS 的根

  .                     表示 MFSMETA 文件系

3.客戶端擁有的權限

  ro                     只讀

  rw                     讀寫

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

  maproot                映射爲 root 用戶仍是指定的用戶

  password               指定客戶端密碼

[root@harry63 mfs]# sh /etc/rc.local              //啓動服務

安裝MFS元數據日誌服務器

元數據日誌守護進程是在安裝master server 時一同安裝的,最小的要求並不比master 自己大,能夠被運行在任何機器上(例如任一臺chunkserver),可是最好是放置在MooseFS master 的備份機上,備份master 服務器的變化日誌文件,文件類型爲changelog_ml.*.mfs。由於主要的master server 一旦失效,可能就會將這臺metalogger 機器取代而做爲master server。

[root@harry63 mfs]# cd

[root@harry63 ~]# rm -rf moosefs-master             #元數據又是另一臺服務器,這裏咱們在一臺機器上作,那麼咱們也要從新編譯

[root@harry63 ~]# unzip moosefs-master.zip && cd moosefs-master             #編譯的時候,用戶在若在其餘設備,須要新建運行mfsmetalogger角色的用戶,harry63上在安裝master的時候,已經新建,略過,其餘機器上,應該執行useradd -s /sbin/nologin mfs

[root@harry63 moosefs-master]# ./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs

[root@harry63 moosefs-master]# make && make install

[root@harry63 moosefs-master]# cd /usr/local/mfsmeta/etc/mfs/

[root@harry63 mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg

[root@harry63 mfs]# vim mfsmetalogger.cfg

# META_DOWNLOAD_FREQ = 24  

#24元數據備份文件下載請求頻率。默認爲24小時,即每隔一天從元數據服務器

#(MASTER) 下載一個 metadata.mfs.back 文 件 。 當 元 數 據 服 務 器 關 閉 戒 者 出 故 障 時 , matedata.mfs.back 文件將消失,那麼要恢復整個 mfs,則需從 metalogger 服務器取得該文件。請特別注意這個文件,它與日誌文件一塊兒,纔可以恢復整個被損壞的分佈式文件系統。

 

MASTER_HOST = 192.168.1.63          #此行原來註釋了,修改,並啓用

#MASTER_HOST,這個文件中須要修改的是 MASTER_HOST 變量,這個變量的值是 MASTER SERVER 的 IP 地址

[root@harry63 mfs]# chown -R mfs:mfs /usr/local/mfsmeta/

啓動元數據日誌服務器

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

working directory: /usr/local/mfsmeta/var/mfs

lockfile created and locked

initializing mfsmetalogger modules ...

mfsmetalogger daemon initialized properly

[root@harry63 mfs]# echo "/usr/local/mfsmeta/sbin/mfsmetalogger start" >> /etc/rc.local

服務關閉方法

       [root@harry63 mfs]# /usr/local/mfsmeta/sbin/mfsmetalogger stop

查看端口

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

       [root@harry63 mfs]# netstat -anput | grep 9419

tcp    0  0 0.0.0.0:9419  0.0.0.0:           LISTEN      7266/sbin/mfsmaster

tcp   0      0 192.168.1.63:9419   192.168.1.63:49776    ESTABLISHED 7266/sbin/mfsmaster到此爲止,咱們Master和Metalogger服務器安裝完成,且在一臺機器上

Chunk Server安裝配置

       安裝數據服務器(chunkservers),這些機器的磁盤上要有適當的剩餘空間,並且操做系統要遵循POSIX 標準(驗證了的有這些: Linux, FreeBSD, Mac OS X and OpenSolaris)。

Chunkserver存儲數據時,是在一個普通的文件系統如ext4上儲存數據塊或碎片(chunks/fragments)做爲文件。 你在chunkserver上看不到完整的文件。

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

[root@harry64 ~]# unzip moosefs-master.zip

       [root@harry64 ~]# cd moosefs-master && ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs && make && make install

配置文件修改

[root@harry64 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg#主配置文件

[root@harry64 mfs]# cp mfshdd.cfg.sample mfshdd.cfg     #使用的磁盤空間配置文件

[root@harry64 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.63  #元數據服務器的名稱或地址,能夠是主機名,也能夠是 ip 地址

MASTER_PORT = 9420          #能夠啓用它,也能夠不啓用,不啓用,默認就是9420

# CSSERV_LISTEN_PORT = 9422     #這個監聽端口用於與其它數據存儲服務器間的鏈接,一般是數據複製

 

# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg     #分配給 MFS 使用的磁盤空間配置文件的位置

[root@harry64 mfs]# vim mfshdd.cfg

# mount points of HDD drives

#

#/mnt/hd1

#/mnt/hd2

#etc.

/tmp

#在這裏/tmp 是一個給 mfs 的分區,但在生產環境是一個獨立的磁盤的掛載目錄

[root@harry64 mfs]# chown -R mfs:mfs /usr/local/mfs/

服務器啓動關閉

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

working directory: /usr/local/mfs/var/mfs

lockfile created and locked

initializing mfschunkserver modules ...

hdd space manager: path to scan: /tmp/

hdd space manager: start background hdd scanning (searching for available chunks)

main server module: listen on *:9422

no charts data file - initializing empty charts

mfschunkserver daemon initialized properly

[root@harry64 mfs]# echo "/usr/local/mfs/sbin/mfschunkserver start" >> /etc/rc.local

[root@harry64 mfs]# chmod +x /etc/rc.local

[root@harry64 mfs]# ls /tmp                    #分塊存儲,人工時沒法認識的

00  11  22 33  44  55  66  77 88  99  AA BB  CC  DD EE  FF

01  12  23 34  45  56  67  78 89  9A  AB BC  CD  DE EF  keyring-J8XeaN

02  13  24 35  46  57  68  79 8A  9B  AC BD  CE  DF F0  orbit-gdm

03  14  25 36  47  58  69  7A 8B  9C  AD BE  CF  E0 F1  orbit-root

04  15  26 37  48  59  6A  7B 8C  9D  AE BF  D0  E1 F2  pulse-oErxG6JvcJR1

05  16  27 38  49  5A  6B  7C 8D  9E  AF C0  D1  E2 F3  pulse-ZvGMw7hIpLaC

06  17  28 39  4A  5B  6C  7D 8E  9F  B0 C1  D2  E3 F4  vgauthsvclog.txt.0

07  18  29 3A  4B  5C  6D  7E 8F  A0  B1  C2 D3  E4  F5 virtual-root.qMLdFF

08  19  2A 3B  4C  5D  6E  7F 90  A1  B2 C3  D4  E5 F6  VMwareDnD

09  1A  2B 3C  4D  5E  6F  80 91  A2  B3 C4  D5  E6 F7  vmware-root

0A  1B  2C 3D  4E  5F  70  81 92  A3  B4 C5  D6  E7  F8

0B  1C  2D 3E  4F  60 71  82  93 A4  B5  C6 D7  E8  F9

0C  1D  2E 3F  50  61  72  83 94  A5  B6 C7  D8  E9  FA

0D  1E  2F 40  51  62  73  84 95  A6  B7 C8  D9  EA  FB

0E  1F  30 41  52  63  74  85 96  A7  B8 C9  DA  EB  FC

0F  20  31 42  53  64  75  86 97  A8  B9 CA  DB  EC  FD

10  21  32 43  54  65  76  87 98  A9  BA CB  DC  ED  FE

[root@harry64 mfs]# /usr/local/mfs/sbin/mfschunkserver stop          #關閉方法

配置客戶端

[root@harry62 ~]# yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel -y

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

[root@harry62 ~]# unzip moosefs-master.zip && cd moosefs-master

[root@harry62 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount 

#開啓mfsmount必須有,做爲客戶端必須有的這一個選項。

[root@harry62 moosefs-master]# make -j 2 && make install

[root@harry62 moosefs-master]# mkdir /mfs

[root@harry62 moosefs-master]# lsmod | grep fuse

fuse                   73530  4

[root@harry62 moosefs-master]# modprobe fuse               #若沒有,加載一下

[root@harry62 moosefs-master]# ln -s /usr/local/mfs/bin/mfsmount /usr/bin/mfsmount

將mfs共享出來的存儲空間掛載到harry62的/ /mfs目錄下:

[root@harry62 moosefs-master]# mfsmount /mfs/ -H 192.168.1.63 -p           

MFS Password:          #無密碼 直接回車

mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root

[root@harry62 moosefs-master]# df –h

……

192.168.1.63:9421  5.3G     0  5.3G   0% /mfs

[root@harry62 moosefs-master]# echo "modprobe fuse" >> /etc/rc.local

[root@harry62 moosefs-master]# echo "/usr/local/mfs/bin/mfsmount /mfs -H 192.168.1.63" >> /etc/rc.local

[root@harry62 moosefs-master]# chmod +x /etc/rc.local

測試

[root@harry64 mfs]# yum install -y tree          #64上用tree監控狀態

[root@harry64 mfs]# tree /tmp/

/tmp/

├── 00

├── 01

├── 02

├── 03

├── 04

├── 05

├── 06

├── 07

├── 08

├── 09

├── 0A

├── 0B

├── 0C

├── 0D

├── 0E

[root@harry62 moosefs-master]# cp -r /boot/* /mfs/            #客戶端寫入數據

[root@harry64 mfs]# tree /tmp/                             #存儲服務器監控

/tmp/

├── 00

├── 01

│   └── chunk_0000000000000001_00000001.mfs

├── 02

│   └── chunk_0000000000000002_00000001.mfs

├── 03

│   └── chunk_0000000000000003_00000001.mfs

├── 04

│   └── chunk_0000000000000004_00000001.mfs

├── 05

│   └── chunk_0000000000000005_00000001.mfs

[root@harry62 moosefs-master]# ls /mfs #客戶端是看獲得的文件內容,而在咱們的Chunk Server上看到的都是一些碎片

config-2.6.32-431.el6.x86_64         lost+found

efi                                  symvers-2.6.32-431.el6.x86_64.gz

grub                                System.map-2.6.32-431.el6.x86_64

initramfs-2.6.32-431.el6.x86_64.img  vmlinuz-2.6.32-431.el6.x86_64

配置web監控

主用來監控 MFS 各節點狀態信息,可部署在任一節點服務器。

[root@harry63 mfs]# /usr/local/mfs/sbin/mfscgiserv            #啓動網頁監控

瀏覽器:http://192.168.1.63:9425/(如需指定服務器ip修改share/mfscgi/mfs.cgi)


磁盤使用


權限


CPU資源


拓展

       關於密碼設置和添加一臺存儲設置以及複製份數

配置密碼

[root@harry63 ~]# cd /usr/local/mfs/etc/mfs/

[root@harry63 mfs]# vim mfsexports.cfg              //權限後面跟上密碼便可

# Allow everything but "meta".

*                       /      rw,alldirs,maproot=0

 

# Allow "meta".

*                       .      rw

192.168.1.64/24         /      rw,alldirs,maproot=0,password=123456

192.168.1.0/24          /      rw,alldirs,mapproot=0

添加Chunk Server

開啓一臺新主機並添加爲Chunk Server

[root@pualinux11 ~]#  yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel –y

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

[root@pualinux11 ~]# unzip moosefs-master.zip && cd moosefs-master

[root@pualinux11 moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs && make && make install

[root@pualinux11 moosefs-master]# cd /usr/local/mfs/etc/mfs/

[root@pualinux11 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg

[root@pualinux11 mfs]# vim mfschunkserver.cfg

MASTER_HOST = 192.168.1.63          #修改管理IP

MASTER_PORT = 9420                 #去掉註釋

[root@pualinux11 mfs]# cp mfshdd.cfg.sample mfshdd.cfg

[root@pualinux11 mfs]# vim mfshdd.cfg

# mount points of HDD drives

#

#/mnt/hd1

#/mnt/hd2

#etc.

/opt            #添加一行

[root@pualinux11 mfs]# chown -R mfs:mfs /usr/local/mfs/

[root@pualinux11 mfs]# chown -R mfs:mfs /opt/

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

working directory: /usr/local/mfs/var/mfs

lockfile created and locked

initializing mfschunkserver modules ...

hdd space manager: path to scan: /opt/

hdd space manager: start background hdd scanning (searching for available chunks)

main server module: listen on *:9422

no charts data file - initializing empty charts

mfschunkserver daemon initialized properly

[root@pualinux11 mfs]# yum install -y tree

[root@harry63 ~]# /usr/local/mfs/sbin/mfsmaster stop        #重啓管理

[root@harry63 ~]# /usr/local/mfs/sbin/mfsmaster start

[root@harry63 ~]# /usr/local/mfsmeta/sbin/mfsmetalogger stop #元數據日誌

[root@harry63 ~]# /usr/local/mfsmeta/sbin/mfsmetalogger start

[root@harry62 moosefs-master]# cp /etc/passwd /mfs/                    #寫入數據

[root@harry62 moosefs-master]# cp /etc/hosts /mfs/

[root@pualinux11 mfs]# tree /opt/   #看到也有數據過來了

/tmp/

├── 00

│   ├── chunk_0000000000000001_00000001.mfs

│   ├── chunk_0000000000000002_00000001.mfs

│   ├── chunk_0000000000000003_00000001.mfs

│   ├── chunk_0000000000000004_00000001.mfs

│   ├── chunk_0000000000000005_00000001.mfs

│   ├── chunk_0000000000000006_00000001.mfs

│   ├── chunk_0000000000000007_00000001.mfs

│   ├── chunk_0000000000000008_00000001.mfs

│   ├── chunk_0000000000000009_00000001.mfs

├── 16

│   └── chunk_0000000000000016_00000001.mfs

├── 17

設置複製份數

[root@harry62 moosefs-master]# cd /usr/local/mfs/bin/                    #客戶端

[root@harry62 bin]# ./mfssetgoal -r 2 /mfs/                                #設置2份

[root@harry62 bin]# ./mfsgetgoal /mfs              # 查看份數

/mfs: 2

查看複製份數,都保存在哪兒:

[root@harry62 bin]# ./mfsfileinfo /mfs/initramfs-2.6.32-431.el6.x86_64.img

/mfs/initramfs-2.6.32-431.el6.x86_64.img:

    chunk 0: 0000000000000012_00000001 / (id:18 ver:1)

        copy 1: 192.168.1.11:9422

        copy 2: 192.168.1.64:9422

停掉Harry64

[root@harry62 mfs]# cp /etc/group /mfs/

[root@harry62 mfs]# ls                                  //文件仍然可寫

config-2.6.32-431.el6.x86_64         lost+found

efi                                  passwd

group                                symvers-2.6.32-431.el6.x86_64.gz

grub                                System.map-2.6.32-431.el6.x86_64

hosts                               vmlinuz-2.6.32-431.el6.x86_64

initramfs-2.6.32-431.el6.x86_64.img

回收站清空時間

修改MFS文件刪除延遲時間(都在client端下操做)

[root@harry62 ~]# cd /usr/local/mfs/bin

[root@harry62 bin]# ./mfssettrashtime 600  /mnt/mfs/

回收站延遲清空時間,以秒計算,設置文件或目錄的刪除時間。

查看MFS文件刪除延遲時間

[root@harry62 bin]# ./mfsgettrashtime /mnt/mfs

/mnt/mfs: 3600   #爲何不是600?

由於設置的時間是按照小時計算,設置的單位是秒,不滿一小時就按一小時計算

mfsmaster配置文件

# WORKING_USER = mfs               #運行master server 用戶

# WORKING_GROUP = mfs             #運行master server 組

# SYSLOG_IDENT = mfsmaster        #master server 在syslog中的標識,說明是由master產生的

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

# NICE_LEVEL = -19                #運行的優先級(若是能夠默認-19;注意:進程必須是用root啓動)

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

# DATA_PATH = /usr/local/mfs/var/mfs              #數據存放路徑,此目錄分三類文件,changelog ,sessions 和stats

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

# REPLICATIONS_DELAY_INIT = 300         #延遲複製的時間(默認是300s)

# REPLICATIONS_DELAY_DISCONNECT = 3600 #chunkserver 斷開的複製延遲(默認是3600)

# MATOCS_LISTEN_HOST = *                #metalogger 監聽的ip地址(默認是*,表明任何ip)

# MATOCS_LISTEN_PORT = 9419            #metalogger 監聽的端口地址(默認是9419)

# MATOCS_LISTEN_HOST = *                #用於chunkserver 鏈接的ip地址(默認是*,表明任何ip)

# MATOCS_LISTEN_PORT = 9420             #用於chunkserver 鏈接的端口地址(默認是9420)

# MATOCU_LISTEN_HOST = *                #用於客戶端掛接的ip地址(默認*,表明任何ip)

# MATOCU_LISTEN_PORT = 9421             #用於客戶端掛接鏈接的端口地址(默認9421)

# CHUNKS_LOOP_TIME = 300                #chunksde 迴環頻率(默認是:300秒)

# CHUNKS_WRITE_REP_LIMIT = 1            #在一個循環裏複製到一個chunkserver的最大chunk數目

# CHUNKS_READ_REP_LIMIT = 5             #在一個循環裏從一個chunkserver複製的最大chunk數目

#CHUNKS_READ_REP_LIMIT = 0      彈出低於1.6.0的客戶端掛接(0或1,默認是0

集羣啓動和關閉循序

MFS集羣啓動:

  • 1 啓動master server
  • 2 啓動chunk server
  • 3 啓動metalogger
  • 4 啓動客戶端,使用mfsmount掛載相關目錄

MFS集羣中止:

  • 1 全部客戶端卸載MooseFS文件系統
  • 2 中止chunkserver
  • 3 中止metalogger
  • 4 中止master server
相關文章
相關標籤/搜索