1. 程式人生 > 其它 >|NO.Z.00024|——————————|^^ 構建 ^^|——|分散式儲存之MFS.V2|----------------------------------|6臺server|

|NO.Z.00024|——————————|^^ 構建 ^^|——|分散式儲存之MFS.V2|----------------------------------|6臺server|



[Applications:分散式儲存之MFS.V2]                                                                [Applications.LBC&HAC$HPC] [網路儲存叢集|儲存|分散式儲存之MFS|6臺server]








一、構建MFS叢集:構建叢集拓撲
### --- MFS-Master:10.10.10.11
### --- MFS-MetaData:10.10.10.12
### --- MFS-ChunkServer:10.10.10.13    10.10.10.14(分開新增,演示新增MFS-ChunkServer容易)
### --- MFS-Client:10.10.10.15

~~~     在真實生產環境中Chunkserver的磁碟性質最好一直,
~~~     比如SSD、HDD或者空間大小一直,有利於它的平均分配
二、系統部署規劃
### --- 系統部署規劃

~~~     Windows:10.10.10.240:Chrome登入監控頁面
~~~     HA-server1:MFS-MasterServer:元資料儲存節點
~~~     HA-server2:MFS-MetaData:備份元資料儲存節點
~~~     HA-server3:MFS-ChunkServer:儲存資料實體
~~~     HA-server4:MFS-ChunkServer:儲存資料實體
~~~     HA-server5:MFS-Client:MFS的客戶端

三、實驗專題: 1、配置Master Server Node:10.10.10.11MFS-Master節點
### --- 配置Master Server Node:10.10.10.11MFS-Master節點
### --- 將moosefs-3.0.84-1.tar.gz原始碼包上傳到伺服器中

[root@server11 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz 
[root@server11 ~]# cd moosefs-3.0.84
[root@server11 moosefs-3.0.84]# useradd -s /sbin/nologin -M mfs
### --- 安裝moosefs

[root@server11 moosefs-3.0.84]# yum install -y zlib zlib-devel
[root@server11 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@server11 moosefs-3.0.84]# make && make install
### --- 配置,將常用的檔案軟連線到特定目錄
[root@server11 ~]# chown -R mfs.mfs /usr/local/mfs/
[root@server11 ~]# ln -s /usr/local/mfs/bin/mfscli /usr/local/bin/
[root@server11 ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@server11 ~]# ls /usr/local/mfs/

~~~     bin:命令  etc:etc配置檔案  sbin:管理員命令  share:共享目錄  var:動態資料
[root@server11 ~]# cd /usr/local/mfs/
[root@server11 mfs]# chmod a+x bin/mfscli 
[root@server11 mfs]# chmod a+x sbin/*
[root@server11 mfs]# cd etc/mfs/                                            // 該目錄下會有一堆的樣板檔案;對於主服務來說,開啟一個樣板就會對應一個功能;對於主伺服器來說開啟的是mfsmaster.cfg.sample檔案
[root@server11 mfs]# ls
mfschunkserver.cfg.sample  mfsexports.cfg.sample  mfshdd.cfg.sample  mfsmaster.cfg.sample  mfsmetalogger.cfg.sample  mfstopology.cfg.sample
### --- mfsmaster.cfg修改注配置檔案

[root@server11 mfs]# cp -a mfsmaster.cfg.sample mfsmaster.cfg
[root@server11 mfs]# vim mfsmaster.cfg                                      // 該配置檔案不需要修改,直接退出即可,更詳細的說明在輔助文字中。
[root@server11 mfs]# cp -a mfsexports.cfg.sample mfsexports.cfg             // 使用者訪問過來之後修改對應的許可權,去申明許可權的
[root@server11 mfs]# vim mfsexports.cfg
10.10.10.0/24 . rw,alldirs,maproot=0                                        // 10.10.10.0/24:允許當前客戶端訪問的當前網段 .:點表示MFS根檔案系統 rw:讀寫,alldirs:允許任何目錄都允許掛載,maproot=0:登入過來後是root許可權;若是想寫多個數據可以寫多個行。是正確配置
### --- metadata.mfs修改持久化資料備份配置檔案

[root@server11 mfs]# cd /usr/local/mfs/var/mfs/
[root@server11 var]# pwd
/usr/local/mfs/var/mfs/                                                     // 該目錄下方的是持久化元資料資訊
[root@server11 mfs]# cp -a metadata.mfs.empty metadata.mfs 
[root@server11 mfs]# ls                                                     // 建立了一個元資料的空模板
  metadata.mfs  metadata.mfs.empty
[root@server11 mfs]# vim metadata.mfs               
[root@server11 mfs]# mfsmaster start                                        // 啟動mfsmaster server
master <-> metaloggers module: listen on *:9419                             // 啟動成功後顯示三個埠已經被監聽
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
[root@server11 mfs]# ls                                                     // 且/usr/local/mfs/var/mfs目錄下檔案發生變化,metadata.mfs是未啟動時候的名稱,啟動之後載入到data中並且把檔名稱改為metadata.mfs.back,該檔案相當於完全備份檔案,記憶體與該檔案是一個完整備份,
changelog.0.mfs  metadata.mfs.back  metadata.mfs.empty                      // 完整備份有一定的時間週期,它又出現了一個差異備份,假設我們設定的是2小時備份一次,那麼2小時之內的元資料資訊就會備份在changelog.0.mfs裡,且changelog.0.mfs是一個輪詢的概念
~~~     changelog.0.mfs  metadata.mfs.back  這兩個檔案加在一起就是記憶體裡面的完整備份,即保證了它的效率,又保證了檔案的一致性。
### --- mfscgiserv該程式是官方給的監控頁面
[root@server11 mfs]# mfscgiserv                                             // 回車直接開啟即可

### --- 通過Chrome瀏覽器訪問http://10.10.10.11:9425/得到MFS自己本身自帶的檢測頁面;該頁面不是特別友好,生產環境中還是使用zabbix監控,該監控頁面可以定義為服務是否安裝成功的一個驗證
~~~     Disk:當前存在哪些MFS-ChunkServer
~~~     Mounts:當前哪些使用者掛載
~~~     MFS-Masterserver官方聲稱可以支援上萬個子節點,所有資料流量都是經過MFS-Masterserver,不涉及到真實流量的轉發,壓力非常小

2、配置:Metadata Server Node:10.10.10.12
### --- 目的:當MFS-Master宕機後Metadata保證資料不會丟失
### --- 將moosefs-3.0.84-1.tar.gz原始碼包上傳到伺服器中

[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz [email protected]:/root/
[root@server12 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz 
### --- 安裝moosdfs

[root@server12 ~]# yum install -y zlib zlib-devel
[root@server12 moosefs-3.0.84]# 
[root@server12 moosefs-3.0.84]# useradd -s  /sbin/nologin -M mfs
[root@server12 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
~~~     編譯情況下masterhe和其它節點編譯引數都一致,
~~~     只有client編譯引數不一致,moosefs怎麼判斷哪個節點配置什麼服務,
~~~     就是根據開啟不同的配置檔案來決定配置的是什麼角色。

[root@server12 moosefs-3.0.84]# make && make install
[root@server12 moosefs-3.0.84]#  chown -R mfs.mfs /usr/local/mfs/
[root@server12 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server12 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 修改配置檔案

[root@server12 moosefs-3.0.84]# cd /usr/local/mfs/etc/mfs/
[root@server12 mfs]# pwd
/usr/local/mfs/etc/mfs
[root@server12 mfs]# cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@server12 mfs]# vim mfsmetalogger.cfg
META_DOWNLOAD_FREQ = 2                                                      // 完整備份的輪詢時間,2個小時;也可以根據自己的環境自己定義;若是元資料資料量龐大的話,太佔用網路頻寬,檔案比較小,可以把備份時間設定小一點
MASTER_HOST = 10.10.10.11                                                   // 主伺服器MFS-Master的IP地址是多少
### --- 啟動mfsmetalogger
[root@server12 mfs]# mfsmetalogger start
[root@server12 mfs]# lsof -i :9419
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mfsmetalo 8042  mfs    8u  IPv4  18068      0t0  TCP 10.10.10.12:53599->10.10.10.11:9419 (ESTABLISHED)      

~~~     TCP連線 10.10.10.12:53599埠連線到->10.10.10.11:9419埠 (ESTABLISHED)有資料傳輸,已經建立連線
[root@server12 mfs]# ls /usr/local/mfs/var/mfs/                             // 元資料資訊已經同步過來了     //備份目錄依然是這個目錄
changelog_ml_back.0.mfs  changelog_ml_back.1.mfs  metadata.mfs.empty  metadata_ml.mfs.back
3、配置Chunk Server Node:10.10.10.13
### --- 檢視磁碟,併為磁碟分割槽,建立檔案系統

[root@server13 ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes                                 // 這是新新增的一塊磁碟
 Command (m for help): n                                                    // 新建分割槽
Command action
   e   extended
   p   primary partition (1-4)
p                                                                           // 主分割槽
Partition number (1-4): 
Partition number (1-4): 1                                                   // 1號分割槽號
First cylinder (1-13054, default 1):                                        // 直接回車預設從頭開始
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):         // 直接回車規模人到尾結束;使用所有的空間
Using default value 13054
Command (m for help): w                                                     // w儲存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
### --- 檢視磁碟,併為磁碟分割槽,建立檔案系統

[root@server13 ~]# mkfs.ext4 /dev/sdb1                                      // 格式化sdb1為ext4檔案系統
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@server13 ~]# mkdir /mnt/mfs                                           // 建立掛載點
[root@server13 ~]# useradd -s /sbin/nologin -M mfs                          // 新增mfs使用者
[root@server13 ~]# chown -R mfs.mfs /mnt/mfs/                               // 為掛載點授予mfs使用者許可權
[root@server13 ~]# mount -t ext4 /dev/sdb1 /mnt/mfs/                        // 將/dev/sdb1掛載到/mnt/mfs目錄下
[root@server13 ~]# chown -R mfs.mfs /mnt/mfs/                               // 掛載成功以後在重新提交一下許可權,掛載後它的許可權會發生更替,重新遞迴一下
### --- 配置MFS-ChunkServer節點
~~~     將moosefs-3.0.84-1.tar.gz原始碼包上傳到伺服器中
 
[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz [email protected]:/root/
[root@server13 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz 
 [root@server13 ~]# yum install -y zlib zlib-devel
~~~     安裝moosefs

[root@server13 ~]# cd moosefs-3.0.84
[root@server13 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@server13 moosefs-3.0.84]# make && make install
[root@server13 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server13 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server13 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 修改chunkserver配置檔案

[root@server13 moosefs-3.0.84]# cd /usr/local/mfs/etc/mfs/
[root@server13 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@server13 mfs]# vim mfschunkserver.cfg
MASTER_HOST = 10.10.10.11                                                   // 指定主伺服器的地址MFS-Masterserver地址
MASTER_PORT = 9420                                                          // 指定埠
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg                       // 指定用什麼樣的HDD配置檔案提供的傳輸能力,也就是該檔案提供那幾個目錄提供的儲存能力
[root@server13 mfs]# cp -a mfshdd.cfg.sample mfshdd.cfg
[root@server13 mfs]# vim mfshdd.cfg                                         // 修改hdd配置檔案
#/mnt/hd3 -5GiB                                                             // hd3目錄最大可用空間-掉5GIB空間,為實際使用空間
#/mnt/hd4 1.5TiB                                                            // hd4目錄最大使用空間為1.5TIB           //這兩種方式用的比較少,因為我們都已經掛載了,說明該目錄已經給他使用了
/mnt/mfs                                                                    // 在最後一行添加掛載目錄為/mnt/mfs目錄   
### --- 啟動MFS-Chunserver服務於

[root@server13 mfs]# mfschunkserver start
### --- 驗證:通過Chrome輸入訪問:http://10.10.10.11:9425——>Disk檢視到10.10.10.13:9422/mnt/mfs已經配置完成
4、配置Client Node:10.10.10.15客戶端配置
### --- MFS-Client Server配置i
### --- 需要安裝FUSE使用者空間檔案系統,及相關依賴

[root@server15 ~]# yum install -y fuse fuse-devel fuse-libs
### --- 將moosefs-3.0.84-1.tar.gz原始碼包上傳到伺服器中
~~~     並安裝moosefs及配置
 
[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz [email protected]:/root/
[root@server15 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz
[root@server15 ~]# yum install -y zlib zlib-devel
[root@server15 ~]# cd moosefs-3.0.84
[root@server15 moosefs-3.0.84]# useradd -s /sbin/nologin -M mfs
[root@server15 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkerserver 
[root@server15 moosefs-3.0.84]# make && make install
[root@server15 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server15 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server15 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 可以直接建立掛載點並掛載

[root@server15 moosefs-3.0.84]# mfsmount /mfsclient/ -H 10.10.10.11         // mfsmount /mfsclient/掛載點 -H:指定掛載地址 10.10.10.11:掛載地址
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@server15 moosefs-3.0.84]# chown -R mfs.mfs /mfsclient/
[root@server15 moosefs-3.0.84]# cd /mfsclient/
[root@server15 mfsclient]# vim 1.tx
this is HA-server5 IP:10.10.10.15  is MFS-ClientServer
[root@server15 mfsclient]# mfsfileinfo 1.txt                                // 檢視一下1.txt檔案在哪裡   //只有一個副本數
1.txt:
    chunk 0: 0000000000000002_00000001 / (id:2 ver:1)                       // chunk 0:數字——>chunkID號
        copy 1: 10.10.10.13:9422 (status:VALID)                             // copy 1 在哪個節點10.10.10.13:9422埠的元資料資訊存放在13伺服器中

### --- 驗證:通過Chrome輸入訪問:http://10.10.10.11:9425——>Mounts檢視到10.10.10.15/mfsclient已經配置完成
5、再動態新增一個MFS-ChunkServer:10.10.10.14
### --- 將moosefs-3.0.84-1.tar.gz原始碼包上傳到伺服器中

[root@server11 ~]# scp moosefs-3.0.84-1.tar.gz [email protected]:/root/
[root@server14 ~]# useradd -s /sbin/nologin -M mfs 
[root@server14 ~]# tar -zxvf moosefs-3.0.84-1.tar.gz 
[root@server14 ~]# yum install -y zlib zlib-devel
### --- 安裝moosefs及配置

[root@server14 ~]# cd moosefs-3.0.84
[root@server14 moosefs-3.0.84]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@server14 moosefs-3.0.84]# make && make install
[root@server14 moosefs-3.0.84]# chown -R mfs.mfs /usr/local/mfs/
[root@server14 moosefs-3.0.84]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
[root@server14 moosefs-3.0.84]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
### --- 新增一塊100G的磁碟併為之分割槽建立檔案系統並掛載

[root@server14 ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
[root@server14 ~]# fdisk /dev/sdb 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): 
Using default value 13054
Command (m for help): w
[root@server14 ~]# mkfs.ext4 /dev/sdb1 
[root@server14 ~]# mkdir  /mnt/mfs
[root@server14 ~]# chown -R mfs.mfs /mnt/mfs/
[root@server14 ~]# mount -t ext4 /dev/sdb1 /mnt/mfs/
[root@server14 ~]# chown -R mfs.mfs /mnt/mfs/
### --- 修改mfschunkserver配置檔案並啟動mgschunkserver服務
 
[root@server14 ~]# cd /usr/local/mfs/etc/mfs/
[root@server14 mfs]# cp -a mfschunkserver.cfg.sample mfschunkserver.cfg
MASTER_HOST = 10.10.10.11                                                   // 指定主伺服器的地址MFS-Masterserver地址
MASTER_PORT = 9420                                                          // 指定埠
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg                       // 指定用什麼樣的HDD配置檔案提供的傳輸能力,也就是該檔案提供那幾個目錄提供的儲存能力
[root@server14 mfs]# vim !$
[root@server14 mfs]# cp -a mfshdd.cfg.sample mfshdd.cfg
[root@server14 mfs]# vim !$                                                 // 修改hdd配置檔案
/mnt/mfs 
[root@server14 mfs]# mfschunkserver start

### --- 驗證:通過Chrome輸入訪問:http://10.10.10.11:9425——>Disks檢視到10.10.10.13:9422/mnt/mfs  10.10.10.14:9422/mnt/mfs已經配置完成  

四、驗證
### --- 在MFS-ClientServer節點再次建立一個檔案

[root@server15 mfsclient]# vim 2.txt
2.txt  this is HA-server5 IP:10.10.10.15  is MFS-ClientServer
[root@server15 mfsclient]# mfsfileinfo 2.txt                                // 檢視一下2.txt檔案
2.txt:
    chunk 0: 0000000000000004_00000001 / (id:4 ver:1)
        copy 1: 10.10.10.13:9422 (status:VALID)                             // 有兩個副本數;預設的情況下mfs為所有檔案設定的go都為2 
        copy 2: 10.10.10.14:9422 (status:VALID)                             // 若是你認為這個檔案非常不重要,留一個副本值都沒必要,可以設定go值為1,讓其設定1個副本數

五、MFS維護操作(在10.10.10.15下執行)
### --- 誤刪除檔案恢復處理,垃圾回收站機制

[root@server15 ~]# cd /mfsclient/
[root@server15 mfsclient]# rm -rf 2.txt                                     // 刪除2.txt檔案,後期演示恢復操作
~~~     找回2.txt檔案

[root@server15 mfsclient]# mkdir /mfsback
[root@server15 mfsclient]# mfsmount -m /mfsback/ -H 10.10.10.11
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@server15 mfsclient]# cd /mfsback/
[root@server15 mfsback]# ls
sustained  trash
[root@server15 mfsback]# cd trash/
[root@server15 trash]# yum install -y tree                                  // 因為trash目錄下有很多子目錄,使用tree定位
[root@server15 trash]# tree . >> /root/1.txt                                // 點代表當前目錄,把當前目錄的所有檔名稱輸出到/root/1.txt檔案
[root@server15 trash]# vim /root/1.txt 
├── 009
│   ├── 00000009|2.txt                                                      // 這個刪除的2.txt檔案在該位置,它是這樣的命名規範,注意最後一個名稱即可
│   └── undel   
[root@server15 trash]# cd /mfsback/                                         // 回到trash上一級目錄
[root@server15 mfsback]# mv trash/009/00000009\|2.txt  trash/undel/         // 恢復刪除的檔案;trash/undel/把該檔案拿到trash/undel/誤刪除目錄,就進行了還原操作
[root@server15 mfsback]# ls /mfsclient/
1.txt  2.txt                                                                // 2.txt檔案還原成功
[root@server15 mfsback]# cat /mfsclient/2.txt                               // 檔案內容沒有發生變化
2.txt  this is HA-server5 IP:10.10.10.15  is MFS-ClientServer
~~~     並不是所有檔案都可以恢復的,只有在誤刪除時間之內可以恢復
### --- 修改誤刪除時間

[root@server15 mfsclient]# mfsgettrashtime 2.txt                            // 2.txt檔案預設的誤刪除時間為86400秒
2.txt: 86400                                                                // 預設誤刪除的時間為86400秒
[root@server15 mfsclient]# mfssettrashtime 88888 2.txt                      // 設定該檔案誤刪除時間為88888
2.txt: 88888[root@server15 mfsclient]# mfsgettrashtime 2.txt 
2.txt: 90000                                                                // 再次檢視是一個90000的值,它會自動匹配與自己定義最近的值
### --- 快照功能:類似於軟連線

[root@server15 ~]# cd /mfsclient/
[root@server15 mfsclient]# mkdir back
[root@server15 mfsclient]# mfsmakesnapshot 2.txt back/                      // 把2.txt快照到back目錄下
[root@server15 mfsclient]# cat back/2.txt                                   // 檔案一直,與copy的區別是不佔用兩份空間
2.txt  this is HA-server5 IP:10.10.10.15  is MFS-ClientServer
### --- 冗餘goal設定

[root@server15 mfsclient]# vim 3.txt
3.txt this is HA-server15 10.10.10.15
[root@server15 mfsclient]# mfsfileinfo 3.txt 
3.txt:
    chunk 0: 0000000000000006_00000001 / (id:6 ver:1)                       // 2個副本
        copy 1: 10.10.10.13:9422 (status:VALID)
        copy 2: 10.10.10.14:9422 (status:VALID)
[root@server15 mfsclient]# mfssetgoal 1 3.txt                               // 1表示設定副本值為1
3.txt: goal: 1
[root@server15 mfsclient]# mfsfileinfo 3.txt 
3.txt:
    chunk 0: 0000000000000006_00000001 / (id:6 ver:1)                       // 只有1個副本
        copy 1: 10.10.10.14:9422 (status:VALID)
[root@server15 mfsclient]# mfssetgoal 2 3.txt                               // 同理也可以恢復,副本值為2
3.txt: goal: 2
[root@server15 mfsclient]# mfsfileinfo 3.txt 
3.txt:
    chunk 0: 0000000000000006_00000001 / (id:6 ver:1)                       // 2個副本
        copy 1: 10.10.10.13:9422 (status:VALID)
        copy 2: 10.10.10.14:9422 (status:VALID)
[root@server13 ~]# mfschunkserver stop                                      // 停止13的chunkserver,client訪問不會中斷
sending SIGTERM to lock owner (pid:8132)
waiting for termination terminated
[root@server15 mfsclient]# cat 3.txt                                        // 再去訪問3.txt檔案,依然可以訪問
3.txt this is HA-server15 10.10.10.15                                       // 說明單節點chunkserver宕機,不影響client的正常訪問
[root@server13 ~]# mfschunkserver start
### --- 還原master
 
[root@server11 ~]# mfsmaster stop                                           // 把10.10.10.11的MFS-MasterServer服務停止
sending SIGTERM to lock owner (pid:32553)
waiting for termination terminated
 [root@server11 ~]# ls /usr/local/mfs/var/mfs/                              // 該目錄下的元資料資訊非常重要,若是伺服器意外損壞,這部分資料也會丟失
changelog.1.mfs  changelog.2.mfs  changelog.3.mfs  changelog.6.mfs  metadata.mfs  metadata.mfs.back.1  metadata.mfs.empty  stats.mfs
[root@server11 ~]# rm -rf /usr/local/mfs/var/mfs/*                          // 刪除該目錄下的說有資料,模擬元資料資訊全部丟失
[root@server15 mfsclient]# cat 3.txt                                        // 10.10.10.15客戶端已不能正常訪問資料
[root@server12 ~]# scp -r /usr/local/mfs/var/mfs/* [email protected]:/usr/local/mfs/var/mfs/         //把MFS-ChunkServer下的日誌資訊全部拿到MFS-MasterServer下
[root@server11 ~]# ls /usr/local/mfs/var/mfs/                               // 在MFS-MasterServer下可以看到這部分資料了
changelog_ml.0.mfs  changelog_ml.2.mfs       changelog_ml_back.1.mfs  metadata_ml.mfs.back
changelog_ml.1.mfs  changelog_ml_back.0.mfs  metadata.mfs.empty       metadata_ml.mfs.back.1     
[root@server11 ~]# mfsmaster -a                                             // -a表示自動恢復元資料資訊操作
 [root@server15 mfsclient]# cat 3.txt                                       // 在MFS-ClientServer下又可以訪問3.txt檔案了,說明恢復成功,有時會有延遲時間
3.txt this is HA-server15 10.10.10.15                                       // 說明只要MFS-MasterServer宕機完全不可用了,只要我們有MFS-MataDataServer伺服器,還是可以再次進行恢復操作的。不會導致元資料資訊丟失








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)