MFS 分佈式文件系統(理論+實驗)

前言:

MooseFS是一個具有容錯性的網絡分佈式文件系統。它把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源。

一、MFS 介紹

1.1 MFS 概述
  • 分佈式文件系統(Distributed File System) 是指文件系統管理的物理存儲資源不一
    定直接連接在本地節點上,而是通過計算機網絡與節點相連。簡單來說就是把一些分散的(分
    布在局域網內各個計算機上) 共享文件夾, 集合到一個文件夾內(虛擬共享文件夾)。 對於
    用戶來說, 要訪問這些共享文件夾時, 只要打開這個虛擬共享文件夾, 就可以看到所有鏈接
    到虛擬共享文件夾內的共享文件夾, 用戶感覺不到這些共享文件是分散於各個計算機上的。
    分佈式文件系統的好處是集中訪問、 簡化操作、 數據容災、 提高文件存取性能
1.2 MFS特性
  • ① 通用文件系統,不需要修改上層應用就可以使用
  • ② 可以在線擴容,體系架構可伸縮性極強
  • ③ 部署簡單
  • ④ 高可用,可設置任意的文件冗餘程度(提供比raid1+0更高的冗餘級別,不會影響讀寫性能)
  • ⑤ 可回收在指定時間內刪除的文件(“回收站”提供的是系統級別的服務,不怕誤操作了,提供類似oralce 的閃回等高級dbms的即時回滾特性)
  • ⑥ 提供netapp,emc,ibm等商業存儲的snapshot特性(可以對整個文件甚至在正在寫入的文件創建文件的快照)
  • ⑦ google filesystem的一個c實現
  • ⑧ 提供web gui監控接口
1.2.1 MFS優勢
  • ① 集中訪問
  • ② 簡化操作
  • ③ 數據容災
  • ④ 提高文件存儲性能
1.3 MFS文件系統組成
  • 元數據服務器(Master): 在整個體系中負責管理文件系統, 維護元數據
  • 元數據日誌服務器(MetaLogger): 備份 Master 服務器的變化日誌文件, 文件類型爲 changelog_ml.*.mfs。 當 Master 服務器數據丟失或者損壞,可以從日誌服務器中取得文件恢復
  • 數據存儲服務器(Chunk Server): 真正存儲數據的服務器。 存儲文件時, 會把文件分塊保存, 並在數據服務器之間複製, 數據服務器越多, 能使用的“容量” 就越大, 可靠性就越高, 性能越好。
  • 客戶端(Client): 可以像掛載 NFS 一樣掛載 MFS 文件系統, 其操作是相同的。
1.4 MFS 工作讀寫原理
  • MFS工作流程圖
    在這裏插入圖片描述

  • MFS工作流程圖(簡易版)

在這裏插入圖片描述

  • MFS 讀寫原理\處理過程
  • MFS 讀取數據過程
    • ① client 當需要一個數據時,首先向master server發起查詢請求;
    • ② 管理服務器檢索自己的數據,獲取到數據所在的可用數據服務器位置 (IP地址 |port端口|chunk編號)
    • ③ 管理服務器將數據服務器的地址發送給客戶端
    • ④ 客戶端向具體的數據服務器發起數據獲取請求
    • ⑤ 數據服務器將數據發送給客戶端
  • MFS 寫數據過程
    • ① 當客戶端又數據寫入的需求時,首先向管理服務器提供文件元數據信息請求存儲地址(元數據信息如:文件名|大小|份數等)
    • ② 管理服務器與 Chunk Server 進行交互(只有當所需的分塊 Chunks 存在的時候才進行這個交互),
      但管理服務器只在某些服務器創建新的分塊Chunks,創建成功後由Servers 告知元數據服務器操作成功
    • ③ 管理服務器告知客戶端, 可以在哪個 Chunk Server 的哪些 Chunks 寫入數據。
    • ④ 客戶端向指定的 Chunk Server 寫入數據
    • ⑤ 該 Chunk Server 與其他 Chunk Server 進行數據同步, 同步成功後 Chunk Server 告知客戶端數據寫入成功
    • ⑥ 客戶端將此次寫完成結束信號和一些信息發送到管理服務器來更新文件的長度和最後修改時間

二、MFS實驗

2.1 實驗環境

在這裏插入圖片描述

2.2 實驗思路
  • ① 搭建MFSmaster
  • ② 搭建MFS日誌服務器
  • ③ 搭建chunk 存儲端
  • ④ 使用MFS 掛載到客戶端
  • ⑤ 創建MFS監控
  • ⑥ 學習MFS維護及災難恢復
2.3 配置環境
  • 所有服務器關閉防火牆、核心防護、配置yum倉庫及hosts映射
#修改所有服務器主機名
hostnamectl set-hostname Master
su
hostnamectl set-hostname MetaLogger
su
hostnamectl set-hostname Chunk1
su
hostnamectl set-hostname Chunk2
su
hostnamectl set-hostname Chunk3
su
hostnamectl set-hostname Client
su

[root@master ~]# vim /etc/hosts
#在行爲插入以下內容
192.168.226.128 Master
192.168.226.132 MetaLogger
192.168.226.133 Chunk1
192.168.226.134 Chunk2
192.168.226.148 Chunk3
192.168.226.167 Client
-----》wq

#安裝編譯器
[root@master ~]# yum -y install gcc zlib-devel
2.4 搭建Master服務
  • 創建用戶並編譯安裝源碼包
[root@master ~]# mount.cifs //192.168.226.1/LAMP-C7 /mnt
Password for root@//192.168.226.1/LAMP-C7:  
[root@master mnt]# cd /mnt
[root@master mnt]# tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
[root@master mnt]# cd /opt/moosefs-3.0.100/
[root@master moosefs-3.0.100]# ./configure \	#配置
> --prefix=/usr/local/mfs \				#指定安裝目錄
> --with-default-user=mfs \				#指定運行用戶
> --with-default-group=mfs \			#指定運行組
> --disable-mfschunkserver \			#禁用chunk功能
> --disable-mfsmount					#禁用mfsnount功能
[root@master moosefs-3.0.100]# make && make install
.......省略部分內容
  • 複製master服務器配置文件
[root@master moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
#複製master服務器mfs配置文件
[root@master mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg
[root@master mfs]# cp mfsexports.cfg.sample mfsexports.cfg
[root@master mfs]# cp mfstopology.cfg.sample mfstopology.cfg

[root@master mfs]# cd /usr/local/mfs/var/mfs/
[root@master mfs]# cp metadata.mfs.empty metadata.mfs

#分配時間
[root@master mfs]# chown mfs:mfs /usr/local/mfs/var/mfs

#啓動服務
[root@master mfs]# /usr/local/mfs/sbin/mfsmaster start
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmaster modules ...
exports file has been loaded
topology file has been loaded
loading metadata ...
metadata file has been loaded
no charts data file - initializing empty charts
master <-> metaloggers module: listen on *:9419
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
mfsmaster daemon initialized properly    

#查看監聽端口
[root@master mfs]# netstat -anpt | grep mfs
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      9202/mfsmaster      
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      9202/mfsmaster      
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      9202/mfsmaster    
2.5 搭建MetaLogger日誌服務器
  • 安裝編譯過程與master服務器一致,此處略過
  • 複製metalogger 主配置文件模板並進行編輯
[root@metalogger moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs
[root@metalogger mfs]# ls
mfsexports.cfg.sample  mfsmetalogger.cfg.sample
mfsmaster.cfg.sample   mfstopology.cfg.sample
[root@metalogger mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@metalogger mfs]# vim mfsmetalogger.cfg
#52行 更改master的IP
MASTER_HOST = 192.168.226.128
  • 啓動MFS服務
[root@metalogger mfs]# /usr/local/mfs/sbin/mfsmetalogger start
open files limit has been set to: 4096
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly
[root@metalogger mfs]# netstat -anpt | grep mfs
tcp        0      0 192.168.226.132:52024   192.168.226.128:9419    ESTABLISHED 29267/mfsmetalogger 
2.6 搭建 Chunk 存儲服務器
  • 安裝編譯過程與master服務器基本一致,只有配置項有所不同,配置內容如下:
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \				#關閉master功能
--disable-mfsmount
  • 三臺chunk 節點服務器操作相同,此處只演示chunk1的節點操作
  • 複製mfschunk 主配置文件模板並修改
[root@chunk1 moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
[root@chunk1 mfs]# ls
mfschunkserver.cfg.sample  mfshdd.cfg.sample     mfsmetalogger.cfg.sample
mfsexports.cfg.sample      mfsmaster.cfg.sample  mfstopology.cfg.sample
    
[root@chunk1 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@chunk1 mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[root@chunk1 mfs]# vi mfschunkserver.cfg
MASTER_HOST = 192.168.226.128
[root@chunk1 mfs]# vim mfshdd.cfg
#添加掛載點
/data
#創建掛載點
[root@chunk1 mfs]# mkdir /data
#給與屬主屬組
[root@chunk1 mfs]# chown -R mfs:mfs /data
  • 啓動MFS服務
[root@chunk1 mfs]# /usr/local/mfs/sbin/mfschunkserver start
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
setting glibc malloc arena max to 4
setting glibc malloc arena test to 4
initializing mfschunkserver modules ...
hdd space manager: path to scan: /data/
hdd space manager: start background hdd scanning (searching for available chunks)
main server module: listen on *:9422
no charts data file - initializing empty charts
mfschunkserver daemon initialized properly
[root@chunk1 mfs]# netstat -anpt | grep mfs
tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      49840/mfschunkserve 
tcp        0      0 192.168.226.133:39072   192.168.226.128:9420    ESTABLISHED 49840/mfschunkserve 
[root@chunk1 mfs]# 
2.7 部署client客戶端
  • 安裝FUSE
[root@client ~]# mount.cifs //192.168.226.1/LAMP-C7 /mnt
Password for root@//192.168.226.1/LAMP-C7:  
[root@client ~]# cd /mnt

[root@client mnt]# tar xzvf fuse-2.9.2.tar.gz -C /opt
[root@client mnt]# cd /opt/fuse-2.9.2/
[root@client fuse-2.9.2]# ./configure 
[root@client fuse-2.9.2]# make && make install

[root@client fuse-2.9.2]# echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> /etc/profile
[root@client fuse-2.9.2]# source /etc/profile
  • 安裝MFS客戶端
[root@client fuse-2.9.2]# cd /mnt
[root@client mnt]# tar zxvf moosefs-3.0.100-1.tar.gz -C /opt
[root@client mnt]# cd /opt/moosefs-3.0.100
[root@client moosefs-3.0.100]# 
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount
[root@client moosefs-3.0.100]# make && make install
  • 掛載MFS文件系統
[root@client moosefs-3.0.100]# cd
#創建掛載點
[root@client ~]# mkdir /opt/mfs
#加載fuse模塊到內核
[root@client ~]# modprobe fuse
#指向master服務器地址
[root@client ~]# /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.226.128
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@client ~]# df -hT
192.168.226.128:9421    fuse.mfs   60G   14G   47G  22% /opt/mfs
#掛載成功
  • MFS優化
  • MFS 在客戶端安裝完畢後, 會生成/usr/local/mfs/bin/目錄, 在這個目錄下有很多命令是用戶所需要的。 爲了方便使用這些命令, 可將/usr/local/mfs/bin 加入到環境變量中
[root@client ~]# vim /etc/profile
#在威航添加以下內容
export PATH=/usr/local/mfs/bin:$PATH
#刷新生效
[root@client bin]# source /etc/profile
    
#mfsgetgoal 命令 用來設置文件被複制的份數,-r選項可以對整個目錄進行遞歸,goal 是指文件被複制的份數
[root@client bin]# mfsgetgoal -r /opt/mfs
/opt/mfs:
 directories with goal          2 :          1

#生產環境 chunk server 節點數量應至少大於2,文件副本數小於等於chunk server 服務器數量
[root@client opt]# mfssetgoal -r 3 /opt/mfs
/opt/mfs:
 inodes with goal changed:                       1
 inodes with goal not changed:                   0
 inodes with permission denied:                  0

#創建文件測試    
[root@client opt]# cd /opt/mfs
[root@client mfs]# touch aaa.txt
m[root@client mfs]# mfsgetgoal aaa.txt 
aaa.txt: 3
[root@client mfs]# 
2.8 開啓MFS監控、訪問測試
  • master節點服務器啓動監控
[root@master ~]# /usr/local/mfs/sbin/mfscgiserv 
  • mfscgiserv是用python編寫的一個web服務器,其監聽端口是9425,可以在masster server 上通過 /usr/local/mfs/sbin/mfscgiserv來啓動,用戶利用瀏覽器就可以完全監控所有客戶掛接、Chunk server、Master server等。

  • 訪問測試

① 用宿主機訪問master頁面(http://192.168.226.128:9425)
在這裏插入圖片描述

② 訪問http://192.168.226.128:9425/mfs.cgi?masterhost=master

在這裏插入圖片描述

三、MFS其他測試

  • master服務器啓動後,metalogger、chunker、client三個元素都能自動與master建立連接。
3.1 MFS啓動順序
1、正常啓動順序:matser---chunker---metalogger---client
2、關閉順序:client---chunker---metalogger---master
實驗環境中中無論如何順序啓動或關閉,未見任何異常。
3.2 斷電測試
1、使用mfsmetarestore -a修復才能啓動,如果無法修復,使用metalogger上的備份日誌進行恢復。(幾次測試發現:如果mfsmetarestore -a無法修復,則使用metalogger也無法修復)。

2、強制使用metadata.mfs.back創建metadata.mfs,可以啓動master,但應該會丟失1小時的數據。

3、mfs開發小組針對此問題回信:明確表示會丟失故障點到上一個整點之間的數據。和之前我猜測的一致。因爲對mfs的操作日誌都記錄到changelog.0.mfs裏面。changelog.0.mfs每小時合併一次到metadata.mfs中,如果突然斷電,則changelog.0.mfs裏面的信息就沒有合併到metadata中,強制使用metadata.mfs.back創建metadata.mfs,就會導致丟失changelog.0.mfs裏的數據。

4、直接斷電測試過程,使用mfsmetarestore –a無法修復,使用metalogger也無法修復的情況較少發生。5次只有一次無法修復。
3.3 chunker的維持
  • chunker的塊(chunks)能夠自動複製或刪除
1、對一個目錄設定“goal”,此目錄下的新創建文件和子目錄均會繼承此目錄的設定,但不會改變已經存在的文件及目錄的copy份數。但使用-r選項可以更改已經存在的copy份數。
 
2、goal設置爲2,只要兩個chunker有一個能夠正常運行,數據就能保證完整性。
假如每個文件的goal(保存份數)都不小於2,並且沒有under-goal文件(可以用mfsgetgoal –r和mfsdirinfo命令來檢查),那麼一個單一的chunkserver在任何時刻都可能做停止或者是重新啓動。以後每當需要做停止或者是重新啓動另一個chunkserver的時候,要確定之前的chunkserver被連接,而且要沒有under-goal chunks。
 
3、實際測試時,傳輸一個大文件,設置存儲2份。傳輸過程中,關掉chunker1,這樣絕對會出現有部分塊只存在chunker2上;啓動chunker1,關閉chuner2,這樣絕對會有部分塊只存在chuner1上。
把chunker2啓動起來。整個過程中,客戶端一直能夠正常傳輸。

4、在客戶端查看,一段時間內,無法查看;稍後一段時間後,就可以訪問了。文件正常,使用mfsfileinfo 查看此文件,發現有的塊分佈在chunker1上,有的塊分佈在chuner2上。
使用mfssetgoal 2和mfssetgoal -r 2均不能改變此文件的目前塊的現狀。
但使用mfssetgoal -r 1後,所有塊都修改成1塊了,再mfssetgoal -r 2,所有塊都修改成2份了。
 
 
5、測試chunker端,直接斷電情況下,chunker會不會出問題:
①、數據傳輸過程中,關掉chunker1,等待數據傳輸完畢後,開機啓動chunker1.
chunker1啓動後,會自動從chunker2複製數據塊。整個過程中文件訪問不受影響。
②、數據傳輸過程中,關掉chunker1,不等待數據傳輸完畢,開機啓動chunker1.
chunker1啓動後,client端會向chunker1傳輸數據,同時chunker1也從chunker2複製缺失的塊。
 
6、如果有三臺chunker,設置goal=2,則隨機挑選2個chunker存儲。

7、如果有一個chunker不能提供服務,則剩餘的2個chunker上肯定有部分chunks保存的是一份。則在參數(REPLICATIONS_DELAY_DISCONNECT = 3600)後,只有一份的chunks會自動複製一份,即保存兩份。
保存兩份後,如果此時壞掉的chunker能夠提供服務後,此時肯定有部分chunks存儲了三份,mfs會自動刪除一份。
 
8、當我增加第三個服務器做爲額外的chunkserver時,雖然goal設置爲2,但看起來第三個chunkserver從另外兩個chunkserver上覆制數據。

9、硬盤空間平衡器是獨立地使用chunks的,因此一個文件的chunks會被重新分配到所有的chunkserver上。

3.4 chunks修復(mfsfilerepair)
1、mfsfilerepair用來處理壞文件(如讀操作引起的I/O錯誤),使文件能夠部分可讀。在丟失塊的情況下使用0對丟失部分進行填充;在塊的版本號(version)不匹配時設置塊的版本號爲master上已知的能在chunkerservers找到的最高版本號;注意:因爲在第二種情況下,可能存在塊的版本號一樣,但內容不匹配,因此建議在文件修復後,對文件進行拷貝(不是快照!),並刪除原始文件。
 
Client端大文件傳輸過程中,強制拔下master主機電源,造成master非法關閉,使用mfsmetarestore -a修復後,master日誌報告有壞塊:
Jan 19 17:22:17 ngmaster mfsmaster[3250]: chunkserver has nonexistent chunk (000000000002139F_00000001), so create it for future deletion
Jan 19 17:22:18 ngmaster mfsmaster[3250]: (192.168.5.232:9422) chunk: 000000000002139F creation status: 20
Jan 19 17:25:18 ngmaster mfsmaster[3250]: chunk 000000000002139F has only invalid copies (1) - please repair it manually 
Jan 19 17:25:18 ngmaster mfsmaster[3250]: chunk 000000000002139F_00000001 - invalid copy on (192.168.5.232 - ver:00000000)
Jan 19 17:26:43 ngmaster mfsmaster[3250]: currently unavailable chunk 000000000002139F (inode: 135845 ; index: 23)
Jan 19 17:26:43 ngmaster mfsmaster[3250]: * currently unavailable file 135845: blog.xxx.cn-access_log200904.tar.gz
Client端使用mfsfilerepair修復
[root@localhost mfstest]# /usr/local/mfs/bin/mfsfilerepair blog.xxx.cn-access_log200904.tar.gz 
blog.xxt.cn-access_log200904.tar.gz:
chunks not changed: 23
chunks erased: 1
chunks repaired: 0
查看master日誌,發現:
Jan 19 17:30:17 ngmaster mfsmaster[3250]: chunk hasn't been deleted since previous loop - retry
Jan 19 17:30:17 ngmaster mfsmaster[3250]: (192.168.5.232:9422) chunk: 000000000002139F deletion status: 13
Jan 19 17:35:16 ngmaster mfsmaster[3250]: chunk hasn't been deleted since previous loop - retry
Jan 19 17:35:16 ngmaster mfsmaster[3250]: (192.168.5.232:9422) chunk: 000000000002139F deletion status: 13
Client端執行以下操作後,master不再報告相關信息:
mv blog.xxt.cn-access_log200904.tar.gz blog.xxt.cn-access_log200905.tar.gz
3.5 chunker空間介紹

-每一個chunkserver的磁盤都要爲增長中的chunks保留些磁盤空間,從而達到創建新的chunk。只有磁盤都超過256M並且chunkservers報告自由空間超過1GB總量纔可以被新的數據訪問。最小的配置,應該從幾個G 字節的存儲。

-每個chunkerserver每次以256M的磁盤空間進行申請,客戶端查看得到的磁盤總使用情況的是每個chunkerserver使用量的總和。例如:如果你有3個chunkerserver,7個分區磁盤,每次你的硬盤使用會增加3*7*256MB (大約5GB)。假如你有150T的硬盤空間,磁盤空間就不用過多考慮了。

-另外,如果你的chunkservers使用專用的磁盤,df將顯示正確的磁盤使用情況。但是如果你有其他的數據在你的MooseFS磁盤上,df將會計算你所有的文件。

-如果你想看你的MooseFS文件的使用情況,請使用'mfsdirinfo'命令。
3.6 snapshot 快照
1、可以快照任何一個文件或目錄,語法:mfsmakesnapshot src dst
2、但是src和dst必須都屬於mfs體系,即不能mfs體系中的文件快照到其他文件系統。
Mfsappendchunks:追加chunks到一個文件
 
3、snapshot測試:
①、對一個文件做snapshot後,查看兩個文件的塊,是同一個塊。把原文件刪除,原文件刪除後(回收站中最初可以看到,但一段時間後,回收站中就徹底刪除了),snapshot文件仍然存在,並且可以訪問。使用mfsfileinfo查看,發現仍然是原來的塊。
②、對一個文件做snapshot後,查看兩個文件的塊,是同一個塊。把原文件修改後,發現原文件使用的塊名變了,即使用的是一個新塊。而snapshot文件仍然使用原來的塊。

3.7 回收站 trash bin

1、設置文件或目錄的刪除時間。一個刪除的文件能夠存放在“ 垃圾箱”中的時間稱爲隔離時間, 這個時間可以用mfsgettrashtime 命令來查看,用mfssettrashtime 命令來設置。單位爲秒。

2、單獨安裝或掛載MFSMETA 文件系統(mfsmount -m mountpoint),它包含目錄/ trash (包含仍然可以被還原的刪除文件的信息)和/ trash/undel (用於獲取文件)。

3、把刪除的文件,移到/ trash/undel下,就可以恢復此文件。
4、在MFSMETA 的目錄裏,除了trash 和trash/undel 兩個目錄,還有第三個目錄reserved,該目錄內有已經刪除的文件,但卻被其他用戶一直打開着。在用戶關閉了這些被打開的文件後,reserved 目錄中的文件將被刪除,文件的數據也將被立即刪除。此目錄不能進行操作。

3.8 文件描述符

1、1.5.12版本,進行大量小文件寫時,出現了一個嚴重錯誤,有可能和操作系統文件描述符有關。操作系統默認文件描述符爲1024.
2、1.6.11版本默認爲100000
3、建議上線時,master和chunker修改文件描述符,即修改/etc/security/limits.conf添加
* - nofile 65535
3.9 mfscgiserv
Mfscgiserv 是一個python 腳本, 它的監聽端口是9425 ,使用/usr/local/mfs/sbin/mfscgiserv 來直接啓動,使用瀏覽器就可全面監控所有客戶掛接, chunkserver 及master server,客戶端的各種操作等。

總結

  • 一般的自動掛載方式如下:
vim /etc/fstab
#尾行插入
192.168.226.128 /opt/mfs mfs defaults,_netdev 0 0
--->wq
#以上掛載好像無法生效
  • 所以我們通過腳本實現自動掛載,操作如下
cd /etc/profiled.
vim up.sh
#!/bin/bash
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.233.131 >/dev/null 2>&1
---->wq
reboot
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章