溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)服務(wù)器如何進(jìn)行nfs配置

發(fā)布時(shí)間:2022-01-24 10:17:34 來(lái)源:億速云 閱讀:134 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Linux系統(tǒng)服務(wù)器如何進(jìn)行nfs配置,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

NFS是由Sun公司發(fā)展的,他最主要的功能就是可以透過(guò)網(wǎng)絡(luò),讓不同的機(jī)器、不同的操作系統(tǒng)、可以彼此分享個(gè)別的文件 (share files)。

Linux系統(tǒng)服務(wù)器如何進(jìn)行nfs配置1、服務(wù)端和客戶端必須軟件nfs-utils,事實(shí)上在安裝nfs-utils的同時(shí),rpcbind作為依賴(lài)包被安裝,因此無(wú)需再單獨(dú)安裝rpcbind。單獨(dú)安裝rpcbind時(shí)不會(huì)同時(shí)安裝nfs-utils。

 [root@Geeklp-NFS-Server ~]# yum -y install nfs-utils1

2、啟動(dòng)服務(wù)端的nfs和rpcbind服務(wù),并將其設(shè)置為開(kāi)機(jī)啟動(dòng)(作為服務(wù)器,應(yīng)保證服務(wù)在每次重啟之后都能迅速提供服務(wù))

 [root@Geeklp-NFS-Server ~]# systemctl start nfs
 [root@Geeklp-NFS-Server ~]# systemctl enable nfs
 [root@Geeklp-NFS-Server ~]# systemctl status nfs
 ● nfs-server.service - NFS server and services
    Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
    Active: active (exited) since 四 2017-12-07 17:01:25 CST; 58s ago
 [root@Geeklp-NFS-Server ~]# systemctl start rpcbind
 [root@Geeklp-NFS-Server ~]# systemctl enable rpcbind
 [root@Geeklp-NFS-Server ~]# systemctl status rpcbind
 ● rpcbind.service - RPC bind service
    Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
    Active: active (running) since 四 2017-12-07 17:01:25 CST; 3min 26s ago
  Main PID: 35630 (rpcbind)
    CGroup: /system.slice/rpcbind.service
            └─35630 /sbin/rpcbind -w123456789101112131415

3、在服務(wù)端創(chuàng)建共享目錄。

 [root@Geeklp-NFS-Server ~]# mkdir /nfs1

4、修改服務(wù)端配置文件 修改服務(wù)端配置文件/etc/exports,增加如下一行: /nfs 192.168.237.22/24(rw,sync) 5、依次重啟服務(wù)端rpcbind、nfs服務(wù)

 [root@Geeklp-NFS-Server ~]# systemctl restart rpcbind
 [root@Geeklp-NFS-Server ~]# systemctl restart nfs12

6、 配置服務(wù)端防火墻

 [root@Geeklp-NFS-Server ~]# firewall-cmd --add-service=nfs --permanent
 success
 [root@Geeklp-NFS-Server ~]# firewall-cmd --reload
 success1234

7、啟動(dòng)客戶端nfs服務(wù)(客戶端可以不啟動(dòng)rpcbind服務(wù)),掛載服務(wù)端nfs目錄。

 [root@Geeklp-NFS-Client ~]# systemctl start nfs
 [root@Geeklp-NFS-Client ~]# mount -t nfs 192.168.237.21:/nfs /mnt12

8、測(cè)試。 在客戶端查看一下掛載情況。

 [root@Geeklp-NFS-Client mnt]# df -Th
 文件系統(tǒng)                類(lèi)型      容量  已用  可用 已用% 掛載點(diǎn)
 /dev/mapper/centos-root xfs       8.3G  966M  7.4G   12% /
 devtmpfs                devtmpfs  478M     0  478M    0% /dev
 tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
 tmpfs                   tmpfs     489M  6.8M  482M    2% /run
 tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
 /dev/sda1               xfs       247M  105M  142M   43% /boot
 tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
 192.168.237.21:/nfs     nfs4       14G  1.2G   13G    9% /mnt12345678910

正常掛載,無(wú)異常。 在服務(wù)端及客戶端分別寫(xiě)入數(shù)據(jù),發(fā)現(xiàn)只能在服務(wù)端對(duì)/nfs目錄進(jìn)行讀寫(xiě),而在客戶端只能讀取。因?yàn)槎际鞘褂胷oot賬戶進(jìn)行操作的,在客戶端看到的root是指服務(wù)端的root而并非客戶端的root。為了盡快使用、體驗(yàn)nfs服務(wù),在服務(wù)端將/nfs目錄的權(quán)限設(shè)置為7,此時(shí)就能愉快的體驗(yàn)nfs帶來(lái)的樂(lè)趣了。但這并不嚴(yán)謹(jǐn),不是我們想要達(dá)到的目標(biāo)。

四、高級(jí)拓展部分

今天不是特別忙,一下子更新了好幾篇博文,難免疏漏,還望諸位多多提出意見(jiàn)或建議。 一到公司,做完日常巡檢,就繼續(xù)來(lái)完成昨天未完成的任務(wù)了。發(fā)現(xiàn)了2個(gè)問(wèn)題: (1)客戶端NFS掛載不上了,報(bào)錯(cuò):mount.nfs: access denied by server while mounting 192.168.237.21:/nfs 我仔細(xì)檢查了一遍防火墻、服務(wù)端nfs、rpcbind服務(wù)狀態(tài)、網(wǎng)絡(luò)等,都沒(méi)有發(fā)現(xiàn)任何問(wèn)題。問(wèn)題出在哪呢?忽然回憶起來(lái),昨天關(guān)機(jī)之前改過(guò)/etc/exports文件,把括號(hào)內(nèi)的內(nèi)容改為了(rwx,sync),去掉x之后依次重啟服務(wù)端rpcbind、nfs服務(wù),掛載成功! (2)客戶端端無(wú)需啟動(dòng)rpcbind及nfs服務(wù)即可掛載NFS,但是需要安裝nfs服務(wù)。

 [root@Geeklp-NFS-Client ~]# systemctl status rpcbind
 ● rpcbind.service - RPC bind service
    Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
    Active: inactive (dead)
 [root@Geeklp-NFS-Client ~]# systemctl status nfs
 ● nfs-server.service - NFS server and services
    Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
    Active: inactive (dead)
 [root@Geeklp-NFS-Client ~]# umount /mnt
 [root@Geeklp-NFS-Client ~]# mount -t nfs 192.168.237.21:/nfs /mnt
 [root@Geeklp-NFS-Client ~]# df -Th
 文件系統(tǒng)                類(lèi)型      容量  已用  可用 已用% 掛載點(diǎn)
 /dev/mapper/centos-root xfs       8.3G  966M  7.4G   12% /
 devtmpfs                devtmpfs  478M     0  478M    0% /dev
 tmpfs                   tmpfs     489M     0  489M    0% /dev/shm
 tmpfs                   tmpfs     489M  6.7M  482M    2% /run
 tmpfs                   tmpfs     489M     0  489M    0% /sys/fs/cgroup
 /dev/sda1               xfs       247M  105M  142M   43% /boot
 tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
 192.168.237.21:/nfs     nfs4       14G  1.1G   13G    8% /mnt1234567891011121314151617181920

在客戶端設(shè)置開(kāi)機(jī)自動(dòng)掛載NFS服務(wù): [root@Geeklp-NFS-Client ~]# echo “/nfs 192.168.237.21:/nfs /mnt nfs defaults 0 0”>>/etc/fstab 移除rpcbind安裝包的時(shí)候,nfs也會(huì)作為依賴(lài)被刪除。單獨(dú)刪除nfs-utils時(shí)并不會(huì)同時(shí)刪除rpcbind。nfs-utils不能脫離rpcbind而單獨(dú)存在。

[root@Geeklp-NFS-Client ~]# yum -y remove rpcbind
作為依賴(lài)被刪除:     nfs-utils.x86_64 1:1.3.0-0.48.el7_4                                                    quota.x86_64 1:4.01-14.el7   12

移除rpcbind及nfs安裝包時(shí)如果沒(méi)有卸載NFS,那么之前掛載的NFS目錄依然可以進(jìn)行操作。但無(wú)法再次被掛載。要想掛載,必須安裝nfs-utils。 扯遠(yuǎn)了,言歸正傳,說(shuō)好在這一節(jié)咱們要來(lái)聊一聊NFS的高級(jí)配置的。以示區(qū)分,本次使用的NFS共享目錄為:/NFS-Server。 (一)在服務(wù)端新建NFS共享目錄/NFS-Server,在客戶端新建掛載點(diǎn)目錄/NFS-Client。

[root@Geeklp-NFS-Server ~]# mkdir /NFS-Server
[root@Geeklp-NFS-Client ~]# mkdir /NFS-Client12

在此,我們先熟悉一下 /etc/exports 配置文件的語(yǔ)法與參數(shù),為接下來(lái)的內(nèi)容做準(zhǔn)備。

[root@Geeklp-NFS-Server ~]# vim /etc/exports
/NFS-Server 192.168.237.22/24(ro) localhost(rw)  *.geeklp.com(ro,sync)                           12
  • /NFS-Server:共享目錄

  • 192.168.237.22/24(ro):共享給指定主機(jī)的IP,括號(hào)內(nèi)為權(quán)限

  • localhost(rw):可使用主機(jī)名

  • *.geeklp.com(ro,sync):可使用域名,并且可以使用通配符 對(duì)于括號(hào)內(nèi)的權(quán)限:

參數(shù)值內(nèi)容說(shuō)明
rw ro該目錄分享的權(quán)限是可擦寫(xiě) (read-write) 或只讀 (read-only),但最終能不能讀寫(xiě),還是與文件系統(tǒng)的 rwx及身份有關(guān)。
sync asyncsync 代表數(shù)據(jù)會(huì)同步寫(xiě)入到內(nèi)存與硬盤(pán)中,async 則代表數(shù)據(jù)會(huì)先暫存于內(nèi)存當(dāng)中,而非直接寫(xiě)入硬盤(pán)!
no_root_squash root_squash客戶端使用 NFS 文件系統(tǒng)的賬號(hào)若為 root 時(shí),系統(tǒng)該如何判斷這個(gè)賬號(hào)的身份?預(yù)設(shè)的情況下,客戶端 root 的身份會(huì)由 root_squash 的設(shè)定壓縮成 nfsnobody,如此對(duì)服務(wù)器的系統(tǒng)會(huì)較有保障。但如果你想要開(kāi)放客戶端使用 root 身份來(lái)操作服務(wù)器的文件系統(tǒng),那么這里就得要開(kāi) no_root_squash 才行!
all_squash不論登入 NFS 的使用者身份為何, 他的身份都會(huì)被壓縮成為匿名用戶,通常也就是 nobody(nfsnobody)
anonuid anongidanon 意指 anonymous (匿名者) 前面關(guān)于 *_squash 提到的匿名用戶的 UID 設(shè)定值,通常為 nobody(nfsnobody),但是你可以自行設(shè)定這個(gè) UID 的值!當(dāng)然,這個(gè) UID 必需要存在于你的 /etc/passwd 當(dāng)中!anonuid 指的是 UID 而 anongid 則是群組的 GID。

(二)幾個(gè)應(yīng)用案例。 1、全面共享NFS目錄,讓誰(shuí)都能以root權(quán)限來(lái)操作共享目錄里面的內(nèi)容。

[root@Geeklp-NFS-Server /]echo "/NFS-Server *(rw,no_root_squash)">>/etc/exports
[root@Geeklp-NFS-Server /]# systemctl restart rpcbind
[root@Geeklp-NFS-Server /]# systemctl restart nfs123

在客戶端掛載此共享目錄:

[root@Geeklp-NFS-Client ~]# mount -t nfs 192.168.237.21:/NFS-Server /NFS-Client/
[root@Geeklp-NFS-Client /]# echo "Geeklp NFS test">/NFS-Client/a.txt
[root@Geeklp-NFS-Client /]# ls -l NFS-Client/
總用量 4
-rw-r--r--. 1 root root 16 12月  8 14:15 a.txt
[root@Geeklp-NFS-Client /]# cat  NFS-Client/a.txt 
Geeklp NFS test1234567

回去服務(wù)端看一下:

[root@Geeklp-NFS-Server /]# ll /NFS-Server/
總用量 4
-rw-r--r--. 1 root root 16 12月  8 14:15 a.txt
[root@Geeklp-NFS-Server /]# cat /NFS-Server/a.txt 
Geeklp NFS test12345

不用在服務(wù)端修改權(quán)限咯! 2、在客戶端卸載共享目錄。再將/NFS-Server限定網(wǎng)段為192.168.237.0/24 且加入geeklpgroup的用戶才能夠讀寫(xiě),其他來(lái)源則只能讀取。 此部分涉及到ACL權(quán)限管理的內(nèi)容。

[root@Geeklp-NFS-Server /]# groupadd geeklpgroup
[root@Geeklp-NFS-Server /]# setfacl -m g:geeklpgroup:rwx /NFS-Server/12

此時(shí)在客戶端掛載此NFS共享目錄,能夠正常讀,但是無(wú)法寫(xiě)入數(shù)據(jù)。在客戶端也添加組geeklpgroup,創(chuàng)建用戶geeklp并將其添加至geeklpgroup內(nèi)。切換到geeklp用戶,寫(xiě)入數(shù)據(jù)成功!

[root@Geeklp-NFS-Client /]# groupadd geeklpgroup
[root@Geeklp-NFS-Client NFS-Client]# useradd geeklp -g geeklpgroup
[root@Geeklp-NFS-Server /]# echo "/NFS-Server 192.168.237.0/24(rw) *(ro)">/etc/exports
[root@Geeklp-NFS-Server /]# systemctl restart rpcbind
[root@Geeklp-NFS-Server /]# systemctl restart nfs
[root@Geeklp-NFS-Client /]# mount -t nfs 192.168.237.21:/NFS-Server /NFS-Client
[root@Geeklp-NFS-Client NFS-Client]# su geeklp
[geeklp@Geeklp-NFS-Client NFS-Client]$ touch d.txt
[geeklp@Geeklp-NFS-Client NFS-Client]$ ll
總用量 0
-rw-r--r--. 1 geeklp geeklpgroup 0 12月  8 15:44 d.txt1234567891011

如果要指定特定用戶對(duì)NFS共享目錄有讀寫(xiě)執(zhí)行的權(quán)限,使用ACL權(quán)限管理一樣能實(shí)現(xiàn)。 3、讓主機(jī)192.168.237.22/24,登錄NFS 主機(jī)時(shí),可以讀寫(xiě)NFS共享目錄,并且在讀寫(xiě)數(shù)據(jù)的時(shí)候都以指定的UID 與 GID來(lái)操作。例如指定uid為1001,gid為1002。

[root@Geeklp-NFS-Server /]# groupdel geeklpgroup
[root@Geeklp-NFS-Server /]# setfacl -b /NFS-Server
[root@Geeklp-NFS-Client /]# umount /NFS-Client/
[root@Geeklp-NFS-Client /]# userdel -r geeklp
[root@Geeklp-NFS-Client /]# groupdel geeklpgroup
[root@Geeklp-NFS-Server /]# useradd -u 1001 geeklp-nfs
[root@Geeklp-NFS-Server /]# groupadd -g 1002 geeklp-nfs-g
[root@Geeklp-NFS-Server /]# useradd -u 1001 geeklp-nfs
[root@Geeklp-NFS-Server /]# id geeklp-nfs
uid=1001(geeklp-nfs) gid=1001(geeklp-nfs) 組=1001(geeklp-nfs)
[root@Geeklp-NFS-Server /]# groupadd -g 1002 geeklp-nfs-g
[root@Geeklp-NFS-Server /]# echo "/NFS-Server 192.168.237.22/24(rw,all_squash_root,anonuid=1001,anongid=1002)">/etc/exports
[root@Geeklp-NFS-Server /]# cat /etc/exports
/NFS-Server 192.168.237.22/24(rw,all_squash_root,anonuid=1001,anongid=1002)
[root@Geeklp-NFS-Server ~]# chown geeklp-nfs /NFS-Server/
[root@Geeklp-NFS-Server ~]# chgrp geeklp-nfs-g /NFS-Server/
[root@Geeklp-NFS-Server ~]# systemctl restart rpcbind
[root@Geeklp-NFS-Server ~]# systemctl restart nfs
[root@Geeklp-NFS-Client /]# umount /NFS-Client/
[root@Geeklp-NFS-Client /]# mount -t nfs 192.168.237.21:/NFS-Server /NFS-Client
[root@Geeklp-NFS-Client NFS-Client]# touch geeklp.txt
[root@Geeklp-NFS-Client NFS-Client]# ll
總用量 0
-rw-r--r--. 1 1001 1002 0 12月  8 18:23 geeklp.txt123456789101112131415161718192021222324

在本例中需要注意的要點(diǎn)是:NFS的共享目錄/NFS-Server的用戶與組必須與/etc/exports中指定的用戶uid和組gid相匹配,否則是無(wú)法進(jìn)行寫(xiě)操作的。用戶可以屬于exports中指定組,也可以不屬于。 4、一些相關(guān)命令詳解 (1)exportfs 如果我們?cè)趩?dòng)了NFS之后又修改了/etc/exports,是不是還要重新啟動(dòng)nfs呢?這個(gè)時(shí)候我們就可以用exportfs 命令來(lái)使改動(dòng)立刻生效,該命令格式如下:

exportfs [-aruv]

  -a 全部掛載或卸載 /etc/exports中的內(nèi)容   -r 重新讀取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab   -u 卸載單一目錄(和-a一起使用為卸載所有/etc/exports文件中的目錄)   -v 在export的時(shí)候,將詳細(xì)的信息輸出到屏幕上。 具體例子:

exportfs -au 卸載所有共享目錄

exportfs -rv 重新共享所有目錄并輸出詳細(xì)信息

(2)nfsstat 查看NFS的運(yùn)行狀態(tài)。 (3)rpcinfo 查看rpc執(zhí)行信息,可以用于檢測(cè)rpc運(yùn)行情況的工具,利用rpcinfo -p 可以查看出RPC開(kāi)啟的端口所提供的程序有哪些。 (4)showmount   -a 顯示已經(jīng)于客戶端連接上的目錄信息   -e IP或者h(yuǎn)ostname 顯示此IP地址分享出來(lái)的目錄

大家要注意NFS 服務(wù)器在啟動(dòng)的時(shí)候就得要向 RPC 注冊(cè),所以 NFS 服務(wù)器也是一種 RPC server 。

Linux有哪些版本

Linux的版本有:Deepin、UbuntuKylin、Manjaro、LinuxMint、Ubuntu等版本。其中Deepin是國(guó)內(nèi)發(fā)展最好的Linux發(fā)行版之一;UbuntuKylin是基于Ubuntu的衍生發(fā)行版;Manjaro是基于Arch的Linux發(fā)行版;LinuxMint默認(rèn)的Cinnamon桌面類(lèi)似Windows XP簡(jiǎn)單易用;Ubuntu則是以桌面應(yīng)用為主的Linux操作系統(tǒng)。

關(guān)于Linux系統(tǒng)服務(wù)器如何進(jìn)行nfs配置就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI