MFS的工做原理圖:vim
管理服務器:master | 負責各個數據存儲服務器的管理,文件讀寫調度,文件空間回收和恢復,多節點的拷貝 |
元數據日誌服務器:metalogger | 負責備份master服務器的變化日誌文件,類型爲changelog_ml.*.mfs |
數據存儲服務器:chunkservers | 負責鏈接master,遵從master調度,提供存儲空間,而且爲客戶端提供數據傳輸 |
客戶機掛載使用:client | 經過fuse 內核接口遠程管理服務上管理的數據存儲服務器 |
MFS安裝開始:bash
元數據服務器安裝和配置:master useradd mfs -s /sbin/nologin tar zxvf moosefs-2.0.81-1.tar.gz cd moosefs-2.0.81 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs make && make install cd /usr/local/mfs/etc/mfs cp mfsmaster.cfg.dist mfsmaster.cfg cp mfsexports.cfg.dist mfsexports.cfg cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs 這是一個8字節的文件,爲mfs新增項目 ln -s /usr/local/mfs/sbin/mfsmaster /usr/sbin/ mfsmaster start
mfsmaster.cfg配置文件: # WORKING_ USER = mfs #運行master server 的用戶 # WORKING_ GROUP = mfs #運行master server 的組 # SYSLOG_IDENT = mfsmaster #master server 在syslog 中的標識,說明是由master serve 產生的 # 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); # MATOML_LISTEN_HOST = * #metalogger 監聽的IP 地址(默認是*,表明任何IP); # MATOML_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 #chunks 的迴環頻率(默認是:300 秒);# CHUNKS_DEL_LIMIT = 100 # CHUNKS_WRITE_REP_LIMIT = 1 #在一個循環裏複製到一個chunkserver 的最大chunk 數目(默認是1) # CHUNKS_READ_REP_LIMIT = 5 #在一個循環裏從一個chunkserver 複製的最大chunk 數目(默認是5) # REJECT_OLD_ CLIENTS = 0 #彈出低於1.6.0 的客戶端掛接(0 或1,默認是0)
元數據日誌服務器安裝和配置:metalogger 該服務僅須要一個配置文件,這裏咱們只須要從模板文件複製一個,而後稍微加以修改便可 cp mfsmetalogger.cfg.dist mfsmetalogger.cfg vim mfsmetalogger.cfg 修改成master的地址: MASTER_HOST = xxx.xxx.xxx.xxx ln -s /usr/local/mfs/sbin/mfsmetalogger /usr/sbin/ mfsmetalogger start
metalogger配置文件: # WORKING_USER = mfs # WORKING_GROUP = mfs # SYSLOG_IDENT = mfsmetalogger # LOCK_MEMORY = 0 # NICE_LEVEL = -19 # DATA_PATH = /usr/local/mfs/var/mfs # BACK_LOGS = 50 # META_DOWNLOAD_FREQ = 24 元數據備份文件下載請求頻率。默認爲24小時,即每隔一天從元數據服務器(MASTER)下載一個metadata.mfs.back 文件。當元數據服務器關閉或者出故障時,matedata.mfs.back 文件將消失,那麼要恢復整個mfs,則需從metalogger 服務器取得該文件。請特別注意這個文件,它與日誌文件一塊兒,纔可以恢復整個被損壞的分佈式文件系統。 # MASTER_RECONNECTION_DELAY = 5 MASTER_HOST = 192.168.0.1 # MASTER_PORT = 9419 # MASTER_TIMEOUT = 60 # deprecated, to be removed in MooseFS 1.7 # LOCK_FILE = /var/run/mfs/mfsmetalogger.lock
數據存儲chunkserver服務器的安裝配置:chunkservers 數據存儲服務器有2個配置服務器須要修改,一個是主配置文件 mfschunkserver.cfg ,另外一個配置文件是 mfshdd.cfg。每一個服務器用來分配給 MFS使用的空間最好是一個單獨的硬盤或者一個raid卷,最低要求是一個分區 cp mfschunkserver.cfg.dist mfschunkserver.cfg 修改成master的IP地址: MASTER_HOST = xxx.xxx.xxx.xxx 元數據服務器的名稱或地址 cp mfshdd.cfg.dist mfshdd.cfg 須要以下一行內容就能夠了: /sdb #我添加了一個硬盤 mkfs.ext4 /dev/vdc mkdir sdb mount /dev/vdc sdb/ chown –R mfs:mfs /sdb ln -s /usr/local/mfs/sbin/mfschunkserver /usr/sbin/ mfschunkserver start
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 = 192.168.0.1 #元數據服務器的名稱或地址,能夠是主機名,也能夠是ip 地址 # MASTER_PORT = 9420 #爲Matser中 MATOCS_LISTEN_PORT指定的端口 # 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 使用的磁盤空間配置文件的位置
MFS客戶端的安裝及配置:client tar zxvf fuse-2.7.4.tar.gz cd fuse-2.7.4 ./configure make && make install tar zxvf moosefs-2.0.81-1.tar.gz cd moosefs-2.0.81 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount make && make install echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >>/etc/profile source /etc/profile mkdir /mnt/mfs ln -s /usr/local/mfs/bin/mfsmount /usr/sbin/ mfsmount /mnt/mfs/ -H xxx.xxx.xxx.xxx 注意,全部的MFS都是掛接同一個元數據服務器master,而不是其餘數據存儲服務器chunkserver 設置文件副本數量,建議以3份爲佳 設置副本數目 mfsrsetgoal 3 /mnt/mfs