最近在搞實驗室集群環境,需要把存儲服務器用起來,兩臺存儲服務器大概12T的大小,想實現使其他的8個計算節點都能像訪問本地目錄一樣訪問存儲服務器,類似windows下的文件共享,因此使用了NFS服務。
NFS介紹和原理
NFS 是Network File System的縮寫,即網絡文件系統。是一種使用于分散式文件系統的協定,功能是讓客戶端通過網絡訪問不同主機上磁盤里的數據,主要用在類Unix系統上實現文件共享的一種方法。
NFS使用RPC,即遠程過程調用 (Remote ProcedureCall) ,它能使客戶端執行其他系統中的程序。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些依賴RPC的傳輸協議。可以簡單理解RPC和NFS的關系:NFS是一個文件系統,而RPC負責信息的傳輸。
詳細配置
1. 前期配置
關閉服務端和客戶端的防火墻和selinux,這里的服務端指需要共享出去的存儲服務器,客戶端指其他的8個計算節點。以下所有命令是在centos7環境下
1.1 關閉防火墻
systemctl stop firewalld
1.2 把selinux設置為許可模式(或者關閉)
etenforce 0
(如果想要禁用,需要更改配置文件,把SELINUX設置成disabled,重啟生效)
2.服務端配置
2.1 安裝需要的軟件包(使用yum)
yum install -y rpc-bind nfs-utils
2.2 創建想要共享的文件夾,例如 /datas
mkdir /datas
2.3 把共享目錄的權限設定為所有用戶都可讀可寫權限
chmod -R 777 /datas
2.4 修改NFS服務的主配置文件 /etc/exports
vim /etc/exports
#添加如下規則
/datas *(rw,sync)
規則說明:/datas代表共享的文件,*代表所有主機都可以訪問,rw指讀和寫的權限,sync表明使用同步方式。
其他更為精確的可選配置如下:
2.5 開啟NFS服務
systemctl start nfs
至此服務端的nfs配置完畢,回想一下,我們主要做了:
關閉防火墻和selinux
將我們創建的目錄/datas通過nfs主配置文件/etc/exports共享出去
開啟nfs服務
Ps:如果想共享服務器的某個硬盤,只需要將/datas目錄使用mount命令掛載到該硬盤即可。
查看硬盤和掛載情況的命令為:
df -h
例如將硬盤設備/dev/sdd 掛載到/datas
mount /dev/sdd /datas
接下來配置客戶端
3.客戶端配置
3.1 關閉防火墻和selinux
同上
3.2 安裝NFS
同上
3.3 將服務端的共享目錄掛載到本機的 /data-nfs目錄上,我這里的ip是IB卡的的ip,沒有IB驅動的可以直接使用內網ip,/data-nfs是我自定義的目錄。
mount -t nfs 12.12.12.29:/datas /data-nfs
至此,客戶端配置完畢,訪問/data-nfs目錄就相當于訪問服務端的/datas目錄
ps:以上配置重啟機器后會出問題,建議設置開機啟動執行。
《Linux就該這么學》https://www.linuxprobe.com/