一、地址規劃
主控服務器MasterServer:192.168.11.100 安裝Master角色
元數據日誌服務器MetaLoggerServer:192.168.11.103 安裝metalogger角色
存儲服務器Chunk Server:192.168.11.102 192.168.11.110 安裝chunkserver角色
客戶端Client:192.168.11.111 安裝mfsmount角色和fuse掛載工具
所有節點均配置hosts文件,以便解析mfsmaster
#vi /etc/hosts 192.168.11.100 mfsmaster |
二、安裝配置mater管理數據服務(192.168.11.100)
1、下載
wget http://sourceforge.net/projects/moosefs/files/moosefs-packages/2.0.60/moosefs-packages-2.0.60-centos.tar.gz |
2、創建用戶
useradd mfs -s /sbin/nologin |
3、安裝
#tar -zxvf moosefs-packages-2.0.60-centos.tar.gz -C src/ #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount #make && make install |
4、mfs配置文件目錄
5、生成配置文件
#cp /usr/local/mfs/etc/mfs/mfsmaster.cfg.dist /usr/local/mfs/etc/mfs/mfsmaster.cfg #主配置文件 #cp /usr/local/mfs/etc/mfs/mfsexports.cfg.dist /usr/local/mfs/etc/mfs/mfsexports.cfg #掛載目錄和權限配置文件 #cp /usr/local/mfs/etc/mfs/mfstopology.cfg.dist /usr/local/mfs/etc/mfs/mfstopology.cfg #允許chunkserver加入集羣配置 #cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs #mfs數據文件 |
5.1、配置文件詳解(配置文件默認使用#註釋,如不修改註釋的即爲默認配置)
5.1.1、 配置文件位於安裝目錄/usr/local/mfs/etc,需要的配置文件有兩個:mfsmaster.cfg 和mfsexports.cfg,mfsmaster.cfg 是主配置文件,mfsexports.cfg 是被掛接目錄及權限設置。
mfsmaster.cfg爲主配置文件
需要注意的是,凡是用#註釋掉的變量均使用其默認值。以上是對master server 的mfsmaster.cfg 配置文件的解釋,對於這個文件不需要做任何修改就可以工作。
5.1.2、 mfsexports.cfg 是被掛接目錄及權限配置文件
注:配置文件共有三個部分。
第一部分:客戶端IP地址
第二部分:被掛載的目錄
第三部分:客戶端擁有的權限
地址可以被指定爲以下幾種形式
* 所有的ip 地址 n.n.n.n 單個ip 地址 n.n.n.n/b IP 網絡地址/位數掩碼 n.n.n.n/m.m.m.m IP網絡地址/子網掩碼 f.f.f.f-t.t.t.t IP段 |
目錄需注意的地方:
/ 表示MooseFS 根; . 表示MFSMETA 文件系統 |
權限部分:
ro 只讀模式共享 rw 讀寫的方式共享 alldirs 許掛載任何指定的子目錄 maproot 映射爲root,還是指定的用戶 password 指定客戶端密碼 |
5.2、啓動master server
/usr/local/mfs/sbin/mfsmater start |
注:可能會遇到以下錯誤
5.2.1、mfstopology.cfg不存在。此配置文件是後期版本加入的。cp /usr/local/mfs/etc/mfs/mfstopology.cfg.dist /usr/local/mfs/etc/mfs/mfstopology.cfg即可解決
2.2.2、metadata.cfg不存在,不能創建數據文件,解決方法:cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs
啓動成功後會有如下提示
啓動完成後在/usr/local/mfs/var/mfs目錄下,之前cp的metadata.mfs配置文件會變成metadata.mfs.back。直到停止服務
停止master服務命令
/usr/local/mfs/sbin/mfsmaster stop |
2.2.3、爲了監控 MooseFS 當前運行狀態,我們可以運行 CGI 監控服務,這樣就可以用瀏覽器查看整個
MooseFS 的運行情況:
# //usr/local/mfs/sbin/mfscgiserv |
二、安裝配置元數據日誌服務(192.168.11.103)
1、創建用戶
useradd mfs -s /sbin/nologin |
2、編譯安裝
#tar -zxvf moosefs-packages-2.0.60-centos.tar.gz -C src/ #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount #make && make install |
3、生成配置文件
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg |
4、編輯配置文件
vim mfsmetalogger.cfg ############################################### # RUNTIME OPTIONS # ############################################### # WORKING_USER = mfs # WORKING_GROUP = mfs # SYSLOG_IDENT = mfsmetalogger # LOCK_MEMORY = 0 # NICE_LEVEL = -19 # FILE_UMASK = 027 # DATA_PATH = /usr/local/mfs/var/mfs # BACK_LOGS = 50 # BACK_META_KEEP_PREVIOUS = 3 # META_DOWNLOAD_FREQ = 24 ############################################### # MASTER CONNECTION OPTIONS # ############################################### # MASTER_RECONNECTION_DELAY = 5 MASTER_HOST = 192.168.11.100 #如修改爲IP則取消#,如爲默認需添加hosts文件 # MASTER_PORT = 9419 # MASTER_TIMEOUT = 10 |
5、啓動mfsmetaloger服務
/usr/local/mfs/sbin/mfsmetalogger start 可能會遇到下面的錯誤 原因:元數據日誌服務器會向master服務器發出mfsmaster的請求。因此需要配置hosts文件 vi /etc/hosts 192.168.11.100 mfsmaster 再次啓動 |
三、安裝配置chunkserver數據存儲服務器(192.168.11.102 192.168.11.110)
1、創建用戶
useradd mfs -s /sbin/nologin |
2、編譯安裝
#tar -zxvf moosefs-packages-2.0.60-centos.tar.gz -C src/ #./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --with-default-group=mfs --disable-mfsmaster #make && make install |
配置文件位於安裝目錄/usr/local/mfs/etc ,需要的配置文件有兩個: mfschunkserver.cfg 和mfshdd.cfg,mfschunkserver.cf 是主配置文件,mfshdd.cfg 是服務器用來分配給MFS使用的空間,最好是一個單獨的硬盤或者一個raid 卷,最低要求是一個分區。
3、生成配置文件
# cp /usr/local/mfs/etc/mfs/mfschunkserver.cfg.dist /usr/local/mfs/etc/mfs/mfschunkserver.cfg # cp /usr/local/mfs/etc/mfs/mfshdd.cfg.dist /usr/local/mfs/etc/mfs/mfshdd.cfg |
4、編輯mfschunkserver.cfg配置文件
[root@mail etc]# vi mfschunkserver.cfg # WORKING_USER = mfs # WORKING_GROUP = mfs # DATA_PATH = /usr/local/mfs/var/mfs # LOCK_FILE = /var/run/mfs/mfschunkserver.pid # SYSLOG_IDENT = mfschunkserver # BACK_LOGS = 50 # MASTER_RECONNECTION_DELAY = 30 MASTER_HOST = mfsmaster 元數據服務器的名稱或地址,可以是主機名,也可以是ip 地址 MASTER_PORT = 9420 # MASTER_TIMEOUT = 60 # CSSERV_LISTEN_HOST = * # CSSERV_LISTEN_PORT = 9422 這個監聽端口用於與其它數據存儲服務器間的連接,通常是數據複製 # CSSERV_TIMEOUT = 60 # CSTOCS_TIMEOUT = 60 # HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg 分配給MFS 使用的磁盤空間配置文件的位置 |
注:需要添加hosts條目 192.168.11.100 mfsmaster
5、創建共享目錄,並修改共享配置文件
#mkdir /home/data #vim /usr/local/mfs/etc/mfs/mfshdd.cfg /home/data |
注:這裏的/home/data是給mfs指定的分區,在本機上可以是一個獨立的磁盤掛載目錄。
需要修改屬主爲mfs
chown -R mfs:mfs /home/data
6、啓動mfschunkserver
啓動時可能會遇到下面的錯誤
原因:乜有對mfs工作目錄寫入的權限
解決辦法:chown -R mfs:mfs /usr/local/mfs/var/mfs。再次啓動
7、停止mfschunkserver
/usr/local/mfs/sbin/mfschunkserver stop |
四、客戶端配置(192.168.11.111)
由於MFS依賴與fuse,所以需要先安裝fuse
1、下載fuse
#wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.3/fuse-2.9.3.tar.gz |
2、安裝
./configure && make && make install |
3、導入環境變量
#echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile #source /etc/profile |
4、安裝mfs
4.1、創建用戶
useradd mfs -s /sbin/nologin |
4.2、編譯安裝
#tar -zxvf moosefs-packages-2.0.60-centos.tar.gz -C src/ #./configure --prefix=/usr/local/mfs --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver #make && make install |
4.3、掛載文件系統
#mkdir /mnt/mfs #創建掛載點 #/usr/local/mfs/bin/mfsmount /mnt/mfs -H mfsmaster或/usr/local/mfs/bin/mfsmount /mnt/mfs -H 192.168.11.100 #掛載 |
4.4、查看掛載信息
五、驗證
5.2、驗證是否可正常讀寫
cp /etc/hosts /mnt/mfs |
5.3、mfs是通過副本保存文件的。可以指定文件保存的副本數量。
/usr/local/mfs/bin/mfsrsetgoal 3 /mnt/mfs/ #設置保存副本數量爲3份 |
5.4、查看設置是否成功
/usr/local/mfs/bin/mfsgetgoal /mnt/mfs/hosts |
5.5、實際的拷貝份數和拷貝到chunkserver節點可以通過mfscheckfile 和mfsfile info 命令來證實
/usr/local/mfs/bin/mfscheckfile /mnt/mfs/hosts /usr/local/mfs/bin/mfsfileinfo /mnt/mfs/hosts |
我只有兩臺chunkserver。可以看到,實際拷貝了兩份,存放在兩個chunkserver節點上
注意:空文件不會拷貝。
5.6、設置刪除文件後空間回收時間。
默認回收時間爲7天(604800秒)
# /usr/local/mfs/bin/mfssettrashtime 600 /mnt/mfs # /usr/local/mfs/bin/mfsgettrashtime 600 /mnt/mfs |
六、破壞性測試
6.1、實驗環境爲兩臺chunkserver,先停止一臺chunkserver。看數據存儲是否正確