導航:首頁 > 網路共享 > nfs網路共享搭建作品簡介

nfs網路共享搭建作品簡介

發布時間:2023-01-21 11:19:52

① Linux搭建NFS伺服器

作者:SpookZanG
linux搭建NFS伺服器
一、什麼是NFS服務
NFS是Network
File
System的簡寫,即網路文件系統.
網路文件系統是FreeBSD支持的文件系統中的一種,也被稱為NFS.
NFS允許一個系統在網路上與它人共享目錄和文件。通過使用NFS,用戶和程序可以象訪問本地文件一樣訪問遠端系統上的文件。
二、NFS的優勢
1.本地工作站使用更少的磁碟空間,因為通常的數據可以存放在一台機器上而且可以通過網路訪問到。
2.用戶不必在每個網路上機器里頭都有一個home目錄。Home目錄
可以被放在NFS伺服器上並且在網路上處處可用。
3.諸如軟碟機,CDROM,和
Zip®
之類的存儲設備可以在網路上面被別的機器使用。這可以減少整個網路上的可移動介質設備的數量。
NFS至少有兩個主要部分:一台伺服器和一台(或者更多)客戶機。客戶機遠程訪問存放在伺服器上的數據。為了正常工作,一些進程需要被配置並運行。
三、NFS的搭建
1、伺服器端
安裝NFS的服務程序
yum
install
-y
nfs-utils
寫配置文件
寫入
/music
192.168.0.0/255.255.255.0(rw,sync)
格式是:
要共享的目錄
共享的IP及掩碼或者域名(許可權,同步更新)
啟動服務
/etc/init.d/portmap
restart
/etc/init.d/nfs
restart
chkconfig
nfs
on
chkconfig
portmap
on
然後關閉防火牆以及更改Selinux關於NIS的選項
/etc/init.d/iptables
stop
(防護牆服務關閉)
chkconfig
iptables
off
system-config-selinux
(設置selinux)
2、客戶端
編輯fstab文件,實現開機自動掛載
mount
-t
nfs
IP:/目錄
掛載到的目錄
(此為臨時掛載)
如:mount
-t
nfs
192.168.0.9:/doce
/doc
編輯FSTAB文件
vim
/etc/init.d/fstab
IP:/目錄
掛載到的目錄
nfs
defaults
0
0
然後關閉防火牆以及更改Selinux關於NIS的選項
/etc/init.d/iptables
stop
(防護牆服務關閉)
chkconfig
iptables
off
system-config-selinux
(設置selinux)
至此,搭建完畢。

② Linux實用工具-nfs

nfs伺服器建立

本文介紹Linux環境下nfs服務的搭建過程。

nfs服務的作用是讓其他機器可以通過網路把將本地的nfs目錄掛載,然後通過訪問掛載目錄訪問本地機器。在嵌入式開發中經常會將運行的開發板上的整個文件系統,做為本地的一個主目錄,然後開發板啟動的時候通過nfs服務,將本地的這個目錄掛載上去,作為根文件系統。
這里分別介紹在Ubuntu和CenterOS上面nfs服務的配置過程。

編輯/etc/exports,在其中增加要共享的目錄


其中 /home/quietheart/nfs,10.1.14.0/24代表共享給哪個子網,rw是可讀寫許可權

然後

建立好了nfs之後,如果板子裡面的內核支持網路和nfs,需要板子和你的機器各有一個網線和網口,兩者在同一個網段,配置好了就能互訪。也可以把機器和板子用一根網線鏈接(板子有獨立的網口),這樣不需要網關,就能使板子掛載機器的nfs系統了,但是機器也不能夠上網了。

添加類似如下一行:

在配置NFS之前先查看「rpm -q nfs-utils portmap「兩個軟體包是否安裝,默認都是安裝的。

這里,'<your nfs directory>'是你本地的nfs目錄,可以隨意設置。具體含義參見"info exports".

這一步有時候可以不用做。

具體在:"系統"->"管理"->"安全級別和防火牆"

至此nfs服務搭建完畢.

這里說一下測試nfs是否好用的方法:

在其它機器上運行:

如果成功則完畢。

無。

通過以上可知,在Linux上面配置nfs服務的過程大致一樣。

③ NFS服務搭建及數據無縫遷移

五一節辦公室要停電,機房雖有UPS,但也支撐不了8小時。
因生產環境有業務系統掛了辦公室機房的NAS存儲,故需要進行遷移,步驟記錄如下:

先閑談下技術-----------------------
NFS和samba的區別
samba是混合型網路中的共享服務,windows伺服器可建samba服務,linux伺服器也可建samba服務
nfs只面向unix、linux間的共享,linux伺服器可建nfs服務(winodws系統也可以掛載nfs,就是有點不穩定)

NFS伺服器上的操作--------------------------

nfs伺服器操作系統版本:
[root@c7110 ~]# more /etc/system-release
CentOS Linux release 7.9.2009 (Core)

nfs伺服器安裝nfs服務
[root@c7110 ~]# yum -y install nfs-utils rpcbind

創建nfs目錄,並授權
[root@c7110 ~]# mkdir /opt/nfs-test
[root@c7110 ~]# chmod 777 /opt/nfs-test

編輯nfs服務配置文件
[root@c7110 ~]# vi /etc/exports
內容如下:
/opt/nfs-test *(rw,root_squash,all_squash,sync)

重新載入nfs配置:
[root@c7110 ~]# exportfs -r

nfs服務設置開機啟動
[root@c7110 ~]# systemctl enable rpcbind
[root@c7110 ~]# systemctl enable nfs
[root@c7110 ~]# systemctl enable nfs-lock
[root@c7110 ~]# systemctl enable nfs-idmap

啟動nfs服務
[root@c7110 ~]# systemctl start rpcbind
[root@c7110 ~]# systemctl start nfs
[root@c7110 ~]# systemctl start nfs-lock
[root@c7110 ~]# systemctl start nfs-idmap

查看nfs服務啟動後,所監聽的埠信息:
[root@c7110 ~]# rpcinfo -p

linux伺服器伺服器上操作-------------------------------
業務伺服器安裝nfs軟體客戶端
[root@c7111 ~]# yum -y install nfs-utils

建立一個掛載目錄
[root@c7111 ~]# mkdir /opt/test-m

掛載nfs伺服器共享出來的目錄
[root@c7111 ~]# mount -t nfs 10.x.x.10:/opt/nfs-test /opt/test-m/

查看下已掛載的nfs
[root@c7111 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.5G 0 1.5G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.5G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 97G 2.3G 95G 3% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 297M 0 297M 0% /run/user/0
10.x.x.6:/opt/nfs-test 97G 4.1G 93G 5% /opt/test-m

經測試,數據可讀可寫,證明nas服務沒有問題,於是進行數據同步,數據同步用rsync命令。

rsync -avp [email protected]::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000

數據同步完,通知研發進行掛載切換。研發同事在測試時,發現文件屬性中的uid及gid與原來的不一致,有些擔心,於是又小完善了一下NFS服務。

編輯nfs服務配置文件
[root@c7110 ~]# vi /etc/exports
內容如下:
/opt/nfs-test *(no_all_squash,anonuid=600,anongid=600)

重新載入nfs配置:
[root@c7110 ~]# exportfs -r

④ 簡述安裝nfs網路共享服務的步驟

下載了之後點確認安裝之後的話就可以了。

⑤ Ubuntu 16.04 搭建 NFS 文件共享伺服器

伺服器端需要安裝 nfs-kernel-server 軟體包:
$ sudo apt-get update
$ sudo apt-get install nfs-kernel-server

默認情況下,NFS 伺服器上定義了某個共享目錄,則該目錄及其子目錄下的所有文件都可被訪問。
出於對安全的考慮,客戶端任何需要 超級用戶 (即 root 用戶,UID=0 & GID=0)許可權的文件操作都默認映射到 UID=65534 和 GID=65534 的用戶,即 Ubuntu 系統中的 nobody:nogroup。
例如客戶端使用 root 許可權在掛載的共享目錄中創建文件時,該文件的 屬主 屬組 自動變為 nobody:nogroup ,而非 root:root

sudo mkdir -p /var/nfs/gernel
sudo mkdir -p /var/nfs/public
sudo chown nobody:nogroup /var/nfs/gernel

為了使 NFS 伺服器定義的共享文件可被指定的客戶端主機訪問,需要在伺服器端的 /etc/exports 文件中添加對應的記錄。
該文件的格式如下:
Directory Host(Options ...) Host(Options) #comment
關於 /etc/exports 文件的詳細語法格式可參考 man exports 。

文件示例:

列出 nfs 伺服器上的共享目錄

創建掛載點
sudo mkdir -p /mnt/nfs/gernel
sudo mkdir -p /mnt/nfs/public
sudo mkdir -p /mnt/nfs/starky

掛載遠程目錄
sudo mount 192.168.56.102:/var/nfs/gernel /mnt/nfs/gernel
sudo mount 192.168.56.102:/var/nfs/public /mnt/nfs/public
sudo mount 192.168.56.102:/home/starky /mnt/nfs/starky

許可權測試

NFS 的許可權設定基於 Linux 文件系統的許可權管理,即客戶端掛載遠程共享目錄後,會把它們當成本地磁碟目錄一樣對待,也是根據文件的屬主(組)及其對應的許可權設定來限制訪問。
gernel 目錄的屬主(組)為 nobody:nogroup(65534:65534),所以雖然該目錄為讀寫許可權,非 root 用戶無法執行新建操作。而 root 用戶由於 NFS 默認的安全機制,會自動映射到 nobody:nogroup。
由於我在客戶端和服務端都有一個名為 starky 的用戶,且它們的 UID:GID 都為1000:1000,所以服務端的 /home/starky 目錄可以直接被客戶端的 starky 用戶訪問。且由於 no_root_squash 選項,通過 sudo 命令創建的文件其屬主仍為 root(而不會再映射為 nobody)。
當然這會導致一些安全問題,比如多個客戶端同時都有 UID(GID)為1000的用戶(不管用戶名是什麼),則這些用戶會共享服務端 /home/starky 目錄里的文件許可權。

可編輯 /etc/fstab 文件令掛載共享目錄的 mount 操作成為系統的固定配置(手動輸入的 mount 命令屬於臨時掛載,重啟會自動卸載),使得系統重啟後可以自動掛載遠程文件系統。 /etc/fstab 文件的示例內容如下:

/etc/exports 文件的格式為: Directory Host(Options ...) Host(Options) #comment
其中的 Host 項用來指定可訪問對應共享目錄的主機,其格式可分為以下幾種:

傳輸協議
最初的 NFSv2 由於性能原因使用 UDP 協議,雖然 NFS 添加了自己的 包序列重組 錯誤檢查 功能,但 UDP 和 NFS 都不具備 阻塞控制 演算法,所以在大型的互聯網路環境中缺乏足夠的性能。
NFSv3 提供了 UDP 和 TCP 協議之間的選擇。NFSv4 只能使用 TCP 協議。
隨著 CPU,內存等硬體設備和網路傳輸速度的提高,最初由於性能需求而傾向 UDP 協議的選擇也變得不再必要。

State
NFSv2 和 NFSv3 是 無狀態 的連接,服務端不會跟蹤客戶端對共享目錄的掛載情況,而是使用 "cookie" 來記錄一次成功的掛載。"cookie" 不會因為伺服器重啟而刪除,可以用來在伺服器掛掉之後保留客戶端的連接信息。
NFSv4 是 有狀態 的連接,客戶端和服務端都會維護文件操作紀錄及文件鎖的狀態。所以不再需要 "cookie" 的使用。

文件鎖
早期版本的 NFS 協議(v2 & v3)由於是 無狀態 的連接,它們並不清楚哪些主機正在使用哪些文件。但是文件鎖的實現又需要獲取狀態信息。所以早期協議中的文件鎖是獨立於 NFS 實現的。
而 NFSv4 將文件鎖的實現整合到了核心協議中,雖然此舉增加了復雜度,但同時也解決了早期版本中的很多問題。
但是為了兼容使用 V2 和 V3 協議的客戶端,獨立的 locked statd 守護進程仍舊需要。

安全相關
NFS 協議最初在設計時並不關注安全性,NFSv4 通過引入對更強大的安全服務和身份驗證的支持,加強了該協議的安全性。

傳統的 NFS 協議大多使用 AUTH_SYS 驗證方式,基於 UNIX 的用戶和組標識。在這種方式下,客戶端只需要發送自己的 UID 和 GID 並與伺服器上的 /etc/passwd 文件內容作對比,以決定其擁有怎樣的許可權。
所以當多個客戶端存在 UID 相同的用戶時,這些用戶會擁有相同的文件許可權。更進一步,擁有 root 許可權的用戶可以通過 su 命令切換到任意 UID 登錄,伺服器會因此給予其對應 UID 的許可權。
為了防止上面的問題出現,伺服器可選擇使用更健壯的驗證機制比如 Kerberos 結合 NFS PRCSEC_GSS。

NFS 共享目錄的訪問控制基於 /etc/exports 文件中定義的主機名或 IP 地址。但是客戶端很容易針對其身份和 IP 地址造假,這也會導致一些安全問題。
NFSv4 只使用 TCP 作為自己的傳輸協議,而且通常只開放 2049 埠進行數據傳輸。在配置防火牆時,除了放開 2049 埠的限制外,還要時刻注意數據傳輸的源地址和目標地址。

win10 系統默認不能掛載 NFS 共享目錄,需要進入 控制面板 - 程序 - 程序和功能 - 啟用或關閉 Windows 功能 ,勾選上 NFS 服務

UNIX and Linux System Administration Handbook, 4th Edition
How to Mount an NFS Share Using a Windows 10 Machine

⑥ Linux 環境下搭建NFS服務

NFS(Network File System),網路文件存儲系統,它最早是由 Sun 公司開發的,也是 FreeBSD 支持的文件系統中的一個,它允許網路中的計算機之間通過TCP/IP 網路共享資源。通過 NFS 協議,我們本地 NFS 的客戶端應用可以透明的讀寫位於服務端 NFS 伺服器上的文件,就像訪問本地文件一樣方便。簡單的理解,NFS 就是可以透過網路,讓不同的主機,不同的操作系統可以共享存儲的服務。
NFS 在文件傳送或信息傳送過程中依賴 RPC(Remote Procere Call)協議,即遠程過程調用,NFS的各項功能都必須向 RPC 來注冊,如此一來 RPC 才能了解 NFS 這服務的各項功能 Port,PID,NFS 在伺服器所監聽的 IP 等,而客戶端才能透過 RPC 的詢問找到正確對應的埠,所以 NFS 必須要有 RPC 存在是才能成功的提供服務,簡單的理解二者關系:NFS 是一個文件存儲系統,而 RPC 是負責信息的傳輸。

通過上面的簡介,我們知道 NFS 服務需要依賴 RPC 服務,所以這里 NFS 服務端需要安裝 rpcbind 和 nfs-utils ,客戶端只需要安裝 nfs-utils 即可,由於我們選用 CentOS 系統,所以可以使用 yum 快速的安裝。

然後安裝 NFS 服務

另:Ubuntu 16.04 安裝命令

我們在服務端創建一個共享目錄 /data/share ,作為客戶端掛載在遠端入口,然後設置許可權

然後,修改 NFS 配置文件 /etx/exports

說明一下,這里配置後邊有很多參數,每個參數有不同的含義,具體可以參考下邊。此處,我配置了將 /data/share 文件目錄設置為允許IP為 192.168.0.0/24 區間的客戶端掛載。然後,如果客戶端IP不在該區間也想要掛載的話,可以設置IP區間更大或者設置為 * 即允許所有客戶端掛載,例如: /home *(ro, sync,insecure,no_root_squash) 設置 /home 目錄允許所有客戶端只讀掛載。

接下來,我們先啟動 RPC 服務

我們發現,啟動了 NFS 服務後,RPC 注冊的埠列表明顯增多。現在服務端都啟動起來了,在服務端看下是否正確載入了設置的 /etc/exports 配置

最後,在另一台Linux虛擬機上測試一下,是否能夠正確掛載。首先,我們可以在客戶端查看下NFS服務端設置可共享的目錄信息

然後,在客戶端創建掛載目錄/share

最後,掛載遠端目錄到本地 /share 目錄

可以看到,可以正確將遠端 NFS 目錄掛載到本地。注意:掛載點 /share 目錄必須已經存在,而且目錄中沒有文件或子目錄
最後,我們在 NFS 服務端 /data/share 目錄下創建一個文件,看下客戶端能否正確讀取並修改

都可以了,這里因為上面設置了 NFS 遠端目錄許可權為 rw 擁有讀寫許可權,如果設置為 ro ,那麼客戶端只能讀取,不能寫入。根據實際應用場景合理配置。
NFS 默認使用 UDP協議進行掛載,為了提供 NFS 的穩定性,可以使用 TCP 協議掛載,那麼客戶端掛載命令如下:

最後,卸載命令

閱讀全文

與nfs網路共享搭建作品簡介相關的資料

熱點內容
恢復無線網路設置 瀏覽:756
紅米共享電腦網路 瀏覽:38
如何授權華為手機搜索某些網路 瀏覽:265
哪個軟體有免費的網路電視 瀏覽:363
網路安全立法解決對策 瀏覽:170
怎樣連接移動網路電視啊 瀏覽:966
軟體公司與網路公司 瀏覽:942
網路ipad最多能用多少台主機 瀏覽:238
如何找到家裡網路信號強的地方 瀏覽:955
計算機網路通常使用什麼交換技術 瀏覽:108
如何進手機聲改改網路 瀏覽:506
萬象網路手機版下載 瀏覽:857
如何關閉別人的網路連接 瀏覽:684
智能建築計算機網路系統檢測規范 瀏覽:782
登錄華美線上網路連接錯誤 瀏覽:762
家裡有無線網路用什麼路由器 瀏覽:776
網路推銷白酒怎麼做 瀏覽:37
用友網路軟體測試二面 瀏覽:265
網路貨款都有哪些軟體 瀏覽:920
小米手機王者榮耀網路一直卡 瀏覽:621

友情鏈接