1. 程式人生 > >Linux搭建MFS分布式文件系統

Linux搭建MFS分布式文件系統

分布式 mfs 文件

說明:

架構規劃

元數據服務器 mfs-master-1 172.16.100.2

備份服務器 mfs-metalogger 172.16.100.4

數據存儲服務器 mfs-chunkserver-1 172.16.100.5

數據存儲服務器 mfs-chunkserver-2 172.16.100.6

數據存儲服務器 mfs-chunkserver-3 172.16.100.7

節點說明:

Master Server:

由於 Master Server 控制著整個 MooseFS 中的各個組件,並且負責對外提供服務,因此我們一定需要保證 Master Server 處於非常穩定的狀態。比如,針對 Master Server采用雙電源雙路配置,多塊磁盤使用RAID1或RAID10,進行冗余。前面也提到,Master Server 將所有訪問的元數據信息都放在內存當中,提供用戶訪問。因此,當文件數量增加的時候,內存使用量也會增加。根據官方的數據,100萬個文件chunk信息,大概需要300M的內存空間來進行。對於磁盤來講,Master Server 對磁盤的使用量不是很大,這個取決於所用的文件和chunk塊的數目(記錄在主元數據文件)以及對文件作出操作的數量(記錄在元數據更改日誌),一般情況下 20G 可以用來存儲信息 2500 萬個文件變更記錄長達50小時。由此看來,作為Master Server 內存量夠大才是重中之重。

Metalogger Server:

在 MooseFS 的設計中,雖然 Metalogger Server 只是用來收集 MooseFS 主服務器的元數據(文件更改的信息的變化)的備份,對硬件的要求不應該高於主服務器的備份。但是需要註意的是,如果在Master Server沒有做高可用的情況下,主服務器宕機之後,我們是需要啟用Metalogger Server 來頂替主服務器的。因此,從這方面考慮,Metalogger Server 至少也是和 Master Server 的配置相同的,這點切記!

Chunk Server:

針對 Chunk Server,它是真正存儲數據的載體。因此,我們對它的要求就簡單粗暴了很多,只要保障硬盤的性能即可。如果是普通的業務,可以選擇多塊盤做RAID5即可,當然RAID0或RAID10都是可以的。需要註意的是,由於 MooseFS 的默認負載均衡算法的問題,我建議所有 Chunk Server 的磁盤大小保持一致。這樣子,我們才能保證 MooseFS 在使用過程中,各個 Chunk 節點的數據使用量是大致一致的。否則,磁盤容量大的 Chunk Server 使用量會加大,而磁盤容量小的 Chunk Server 的使用量會變小。切記,切記!當然,如果公司員工有能力的話,也可以對 MooseFS 的負載均衡算法中每次對carry 變量的增加算法這一部分進行改進,來避免默認算法的缺點,使存儲數據能夠均衡分布在各個 Chunk Server 上。




部署:

部署 Master Server

1、參數介紹

--disable-mfsmaster # 不創建成管理服務器(用於純節點的安裝)

--disable-mfschunkserver # 不創建成數據存儲chunkserver服務器

--disable-mfsmount # 不創建mfsmount和mfstools(如果用開發包安裝,他們會被默認創建的)

--enable-mfsmount # 確定安裝mfsmount和mfstools(如果

--prefix=DIRECTORY # 鎖定安裝目錄(默認是/usr/local)

--sysconfdir=DIRECTORY # 選擇配置文件目錄(默認是${prefix}/etc))

--localstatedir=DIRECTORY # 選擇變量數據目錄(默認是${prefix}/var,MFS元數據被存儲在mfs的子目錄下,默認是${prefix}/var/mfs )

--with-default-user # 運行守護進程的用戶,如果配置文件中沒有設定用戶,默認為nobody用戶

--with-default-group # 運行守護進程的用戶組,如果配置文件中沒有設定用戶組,默認為nogroup用戶組


2、安裝Master Server

yum install zlib-devel -y

groupadd -g 1000 mfs

useradd -u 1000 -g mfs -s /sbin/nologin mfs

cd /usr/local/src

wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27

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

make

make install

ln -s /usr/local/mfs-1.6.27 /usr/local/mfs


官方文檔:

https://moosefs.com/download/centosfedorarhel.html

版本6:

curl "http://ppa.moosefs.com/MooseFS-3-el6.repo" > /etc/yum.repos.d/MooseFS.repo

curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS

版本7:

curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo

--------------------------------------------------------------

安裝Master Server

yum install moosefs-master moosefs-cli moosefs-cgi moosefs-cgiserv

/etc/init.d/moosefs-master start

查看日誌,端口,防火墻開放9419 9420 9421端口

--------------------------------------------------------------


安裝Chunkservers

yum install moosefs-chunkserver


安裝Metaloggers

yum install moosefs-metalogger


安裝Clients

yum install moosefs-client


開機自動掛載:

yum install fuse

vim /etc/fstab

mfsmount /mnt/mfs fuse defaults 0 0

mfsmaster.host.name: /mnt/mfs moosefs defaults 0 0


啟動服務

service moosefs-master start

service moosefs-chunkserver start


寫入文件測試


本文出自 “蔡超” 博客,請務必保留此出處http://caicai2009.blog.51cto.com/3678925/1942811

Linux搭建MFS分布式文件系統