1. 程式人生 > >(Linux)遠端掛載網路磁碟詳解---nfs共享

(Linux)遠端掛載網路磁碟詳解---nfs共享

前言

在Linux或Windows乃至其他的系統,我們經常會需要進行磁碟的掛載。通常從掛載的方式的上分為本地掛載和遠端掛載。Linux的本地掛載就不介紹了,這篇文章介紹的是遠端掛載網路磁碟。

遠端掛載網路磁碟

實際上,這個操作與使用nfs共享一個檔案的方法是相同的。思路是服務端將一塊磁碟空間本地掛載到一個目錄,然後通過網路使用nfs將這個目錄進行共享,客戶端最後將服務端共享的目錄掛載到自己本地的一個目錄,這樣就使客戶端擁有了一塊網路磁碟。

優點是:服務端的同一塊磁碟可以掛載到不同的客戶端,實現檔案的共享;可以擴充客戶端的儲存空間。
缺點是:依賴網路,當網路聯通失敗,客戶端掛載的網路磁碟會無法使用。

做網路掛載,服務端與客戶端網路要聯通,最好是在同一區域網內。

NFS簡介

  • Sun公司於1984年釋出。

  • NFS 是一種可分散式的網路檔案系統。

  • 可以通過網路使不同的機器、不同的作業系統,能夠分享資料,使客戶端能通過網路訪問並分享檔案到位於服務端的磁碟中。

  • NFS在檔案傳送或資訊傳送過程中依賴於RPC協議。RPC負責負責資訊的傳輸。

服務端操作

【1】安裝NFS程式

yum -y install nfs*

rpcbind,在centos6以前自帶的yum源中為portmap。
使用yum安裝nfs時會下載依賴,因此只要下載nfs即可,無需再下載rpcbind.

【2】檢視是否安裝了nfs與rpcbind

rpm -qa |grep nfs
rpm -qa |grep rpcbind

這裡寫圖片描述

【3】建立共享的目錄並共享

如要共享的目錄已存在請跳過建立

<1>mkdir /mnt/nfs01

<2>vim /etc/exports
/mnt/nfs01 10.10.10.0/24 (rw,no_root_squash,no_all_squash,sync)


配置


/mnt/nfs01      10.10.10.0/24    (rw,no_root_squash,no_all_squash,sync)

要共享的目錄     要分享給的客戶端   客戶端對此共享目錄的許可權


----------


客戶端指定


192.168.1.125           指定特定的的IP可以共享nfs目錄

*                       指定所有網段及ip都可以共享nfs目錄

192.168.1.0/24          指定子網中的所有主機都可以共享nfs目錄

2018fs.wxyonghe.com     指定域名的主機可以共享nfs目錄


----------


許可權


rw                      可讀可寫     

ro                      只讀(還與檔案系統的rwx有關)

sync                   資料同步寫入到記憶體與硬碟中

async                   資料先暫存於記憶體當中,不會直接寫入硬碟

wdelay                  當有寫操作,就會檢查是否有相關的寫操作,並在一起執行(預設設定)

no_wdelay               當有寫操作就立即執行,通常要與sync配合使用

root_squash             當客戶端登陸NFS的身份為root使用者時,將客戶端的root使用者及所屬組都對映為匿名使用者或使用者組(預設設定) 

no_root_squash         使客戶端可以使用root身份及許可權來操作共享的目錄

all_squash              無論客戶端登陸NFS的身份為何,都將對映為匿名使用者

no_all_squash           無論客戶端登陸NFS的身份為何,都將對映為root使用者(預設設定)

anonuid                 將遠端訪問的所有使用者都對映為匿名使用者,並指定該使用者為本地使用者

anongid                 將遠端訪問的所有使用者組都對映為匿名使用者組賬戶,並指定該匿名使用者組賬戶為本地使用者組賬戶

secure                  使客戶端只能從小於1024的tcp/ip埠連線服務端(預設設定)

insecure                允許客戶端從大於1024的tcp/ip埠連線服務端

subtree                 當共享的目錄是一個子目錄,服務端會檢查其父目錄的許可權(預設設定)

no_subtree              當共享的目錄是一個子目錄,服務端不檢查其父目錄的許可權

【4】啟動nfs,rpcbind,並設為開機自啟

(centos7)
systemctl start nfs
systemctl start rpcbind
systemctl enable nfs
systemclt enable rpcbind

(centos6)
service nfs start
service rpcbind start

【5】檢視是否共享成功

showmount -e localhost

這裡寫圖片描述

可看到共享的目錄及客戶端,即為成功

客戶端操作

【1】安裝NFS程式

yum -y install nfs*

【2】啟動nfs

(centos7)
systemctl start nfs
systemctl start rpcbind
systemctl enable nfs
systemctl enable rpcbind

(centos6)
service nfs start
service rpcbind start
chkconfig nfs on
chkconfig rpcbind on

【3】建立掛載目錄

mkdir /data/nfsone

【4】檢視是否共享成功

showmount -e nfs服務端IP

showmount -e 10.10.20.212

這裡寫圖片描述

【5】網路掛載

mount -t nfs -o nolock 服務端IP:共享目錄絕對路徑 本地掛載目錄
mount -t nfs -o nolock 10.10.20.212:/mnt/nfs01 /data/nfsone

centos7的nfs預設使用的是nfs4,所以mount -t 無需指定nfs4也可以

【6】檢視是否成功

df -Th

這裡寫圖片描述

【7】解除安裝網路磁碟

與解除安裝本地掛載相同

umount /data/nfsone

umount 10.10.20.212:/mnt/nfs01