分佈式存儲MooseFS的搭建

 

 

mooseFS是一款網絡分佈式文件系統。它把數據分散在多臺服務器上,但對於用戶來講,看到的只是一個源。MFS也像其他類unix文件系統一樣,包含了層級結構(目錄樹),存儲着文件屬性(權限,最後訪問和修改時間),可以創建特殊的文件(塊設備,字符設備,管道,套接字),符號鏈接,硬鏈接。
MooseFS文件系統結構包括以下四種角色:
1 管理服務器managing server (master)
2 元數據日誌服務器Metalogger server(Metalogger)
3數據存儲服務器data servers (chunkservers)
4 客戶機掛載使用client computers
原理圖:
read862

write862

搭建的環境介紹

Master server: 10.96.153.223
Metalogger server : 10.96.153.224
chunk server : 10.96.153.221 10.96.153.222
client server : 10.96.153.225
這裏使用兩臺chunk server,master、metalogger和client各一臺進行測試,當然,如果由於服務器有限,可以把master和metalogger分別放在chunkserver上。

Master Server安裝

1、下載解壓

  1. #cd /usr/src

  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz

  3. #tar xzf mfs-1.6.26.tar.gz

2、配置編譯參數

  1. #groupadd mfs

  2. #useradd -g mfs mfs

  3. #cd mfs-1.6.26/

  4. #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfschunkserver

3、編譯並安裝

  1. #make

  2. #make install

4、配置文件

  1. #cd /usr/local/mfs/etc

  2. #cp mfsmaster.cfg.dist mfsmaster.cfg

  3. #cp mfsexports.cfg.dist mfsexports.cfg

更改配置文件mfsexports.cfg

  1. 10.96.153.0/24 / rw,alldirs,maproot=0

5、啓動前準備

  1. #cd /usr/local/mfs/var/mfs

  2. #cp metadata.mfs.empty metadata.mfs

  3. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

6、啓動mfsmaster

  1. #/usr/local/mfs/sbin/mfsmaster start

7、監控服務

  1. #/usr/local/mfs/sbin/mfscgiserv

瀏覽器輸入10.96.153.221:9425

mfsmetalogger搭建

1、下載解壓

  1. #cd /usr/src

  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz

  3. #tar xzf mfs-1.6.26.tar.gz

2、配置編譯參數

  1. #groupadd mfs

  2. #useradd -g mfs mfs

  3. #cd mfs-1.6.26/

  4. #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfschunkserver

3、編譯並安裝

  1. #make

  2. #make install

4、配置文件

  1. #cd /usr/local/mfs/etc

  2. #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

5、啓動前準備

  1. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

6、啓動mfsmetalogger

  1. ##/usr/local/mfs/sbin/mfsmetalogger start

Chunk servers 安裝

1、下載解壓

  1. #cd /usr/src

  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz

  3. #tar xzf mfs-1.6.26.tar.gz

2、配置編譯參數

  1. #groupadd mfs

  2. #useradd -g mfs mfs

  3. #cd mfs-1.6.26/

  4. #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmount --disable-mfsmaster

3、編譯並安裝

  1. #make

  2. #make install

4、創建磁盤(100G)

  1. #dd if=/dev/zero of=/mnt/storage/mfschunks1 bs=1024 count=1 seek=$((100*1024*1024-1)) 

  2. #mkfs -t ext3 /mnt/storage/mfschunks1

  3. #mkdir -p /mnt/mfs1 

  4. #mount -t ext3 -o loop /mnt/storage/mfschunks1 /mnt/mfs1

5、配置文件

  1. #cd /usr/local/mfs/etc

  2. #cp mfschunkserver.cfg.dist mfschunkserver.cfg 

  3. #cp mfshdd.cfg.dist mfshdd.cfg

更改配置文件mfshdd.cfg,加入:

  1. /mnt/mfs1

6、啓動前準備

  1. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

  2. #chown -R mfs:mfs /mnt/mfs1

7、啓動chunkserver

  1. ##/usr/local/mfs/sbin/mfschunkserver start

mfsclient安裝

1、下載解壓

  1. #cd /usr/src

  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz

  3. #tar xzf mfs-1.6.26.tar.gz

2、配置編譯參數

  1. #groupadd mfs

  2. #useradd -g mfs mfs

  3. #cd mfs-1.6.26/

  4. #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster--disable-mfschunkserver

3、編譯並安裝

  1. #make

  2. #make install

4、啓動前準備

  1. mkdir /mnt/mfs

  2. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

5、開始掛載

  1. #/usr/local/mfs/bin/mfsmount /mnt/mfs -H mfsmaster

6、檢查
df -h查看輸出

MFS維護

5.1、啓動MFS集羣

  • 1、啓動mfsmaster 進程

  • 2、啓動所有的mfschunkserver 進程

  • 3、啓動mfsmetalogger 進程(如果配置了mfsmetalogger)

  • 4、當所有的chunkservers 連接到MooseFS master 後,任何數目的客戶端可以利用mfsmount 去掛接被export 的文件系統。(可以通過檢查master 的日誌或是CGI 監視器來查看是否所有的chunkserver被連接)。

5.2、停止MFS集羣

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

  • 2、用mfschunkserver stop 命令停止chunkserver 進程

  • 3、用mfsmetalogger stop 命令停止metalogger 進程

  • 4、用mfsmaster stop 命令停止master 進程

5.3、MFS chunkservers 的維護

若每個文件的goal(目標)都不小於2,並且沒有under-goal 文件(這些可以用mfsgetgoal –r和mfsdirinfo 命令來檢查),那麼一個單一的chunkserver 在任何時刻都可能做停止或者是重新啓動。以後每當需要做停止或者是重新啓動另一個chunkserver 的時候,要確定之前的chunkserver 被連接,而且要沒有under-goal chunks。

5.4、MFS元數據備份

rsync定時備份/usr/local/app/soft/mfs/var/mfs/metadata.mfs.back

5.5、MFS Master的恢復

  1. mfsmetarestore -a

5.6、從MetaLogger中恢復Master

  1. mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章