1. NFS簡介
NFS是Network File System的簡寫,即網(wǎng)絡(luò)文件系統(tǒng). 網(wǎng)絡(luò)文件系統(tǒng)是FreeBSD支持的文件系統(tǒng)中的一種,也被稱為NFS。
NFS允許一個系統(tǒng)在網(wǎng)絡(luò)上與他人共享目錄和文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠(yuǎn)端系統(tǒng)上的文件。
NFS必須和RPC共同使用,而且只兼容類UNIX系統(tǒng)。通過遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)協(xié)議來實(shí)現(xiàn)了RPC服務(wù)(portmap 或rpcbind服務(wù))。RPC 最主要的功能就是在指定每個 NFS 功能所對應(yīng)的 port number ,并且回報給客戶端,讓客戶端可以連結(jié)到正確的port上去
2. NFS工作原理
NFS服務(wù)端和客戶端之間通過隨機(jī)選擇端口來傳輸數(shù)據(jù),NFS服務(wù)端利用RPC協(xié)議與客戶端進(jìn)行溝通決定使用的隨機(jī)端口,然后利用這個端口來傳輸數(shù)據(jù),使用的隨機(jī)端口通常小于1024。RPC協(xié)議用來統(tǒng)一管理NFS的隨機(jī)端口,其使用的端口默認(rèn)為111。
通信過程:
1.客戶端向服務(wù)端的rpc服務(wù)請求服務(wù)端的NFS端口
2.服務(wù)端的rpc服務(wù)返回NFS端口信息給客戶端
3.客戶端通過獲取到的NFS端口建立和服務(wù)端的連接
4.服務(wù)端獲取本地共享文件的信息
5.服務(wù)端通過NFS端口建立和客戶端的連接
6.開始進(jìn)行文件傳輸
3. 配置NFS服務(wù)端
3.1 啟動服務(wù)
[root@k8s-node-02 backup]# ps -ef|grep nfs
root 123018 2 0 11:18 ? 00:00:00 [nfsiod]
root 123110 2033 0 11:18 pts/0 00:00:00 grep --color=auto nfs
[root@k8s-node-02 backup]# 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@k8s-node-02 backup]# systemctl start nfs
[root@k8s-node-02 backup]# systemctl enable nfs
[root@k8s-node-02 backup]# systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: active (exited) since Thu 2023-02-16 11:19:14 EST; 1s ago
Process: 123374 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 123357 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 123355 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 123357 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CGroup: /system.slice/nfs-server.service
Feb 16 11:19:13 k8s-node-02 systemd[1]: Starting NFS server and services...
Feb 16 11:19:14 k8s-node-02 systemd[1]: Started NFS server and services.
不同版本的系統(tǒng)可能默認(rèn)安裝的軟件不同,如果沒有該軟件,需要安裝
[root@k8s-node-02 backup]# yum install -y nfs-utils
3.2 修改配置文件
NFS的配置文件/etc/exports
[root@k8s-node-02 backup]# cat /etc/exports
/share *(rw,sync,no_subtree_check,no_root_squash)
[root@k8s-node-02 backup]# mkdir /configs
[root@k8s-node-02 backup]# exportfs -arv #使配置文件生效
這個文件是NFS的主要配置文件,不過系統(tǒng)并沒有默認(rèn)值,所以這個文件不一定會存在。這里的*
表示任何客戶端都可以訪問/share
選項(xiàng):
配置項(xiàng) | 說明 |
---|---|
rw | 可讀寫權(quán)限。 |
ro | 只讀權(quán)限。 |
no_root_squash | 當(dāng)?shù)卿汵FS主機(jī)使用共享目錄的使用者是root時,其權(quán)限將被轉(zhuǎn)換成為匿名使用者,通常它的UID與GID都會變成nobody身份。 |
root_squash | 如果登錄NFS主機(jī)使用共享目錄的使用者是root,那么對于這個共享的目錄來說,它具有root的權(quán)限。 |
all_squash | 忽略登錄NFS使用者的身份,其身份都會被轉(zhuǎn)換為匿名使用者,通常即nobody。 |
anonuid | 通常為nobody,也可以自行設(shè)定這個UID的值,UID必須存在于/etc/passwd中。 |
anongid | 同anonuid,但是變?yōu)镚roup ID。 |
sync | 同步寫入資料到內(nèi)存與硬盤中。 |
async | 資料會先暫存于內(nèi)存中,而非直接寫入硬盤。 |
subtree_check | 如果共享/usr/bin之類的子目錄時,強(qiáng)制NFS檢查父目錄的權(quán)限(默認(rèn)) |
no_subtree_check | 和上面相對,不檢查父目錄權(quán)限 |
wdelay | 如果多個用戶要寫入NFS目錄,則歸組寫入(默認(rèn)) |
no_wdelay | 如果多個用戶要寫入NFS目錄,則立即寫入,當(dāng)使用async時,無需此設(shè)置。 |
hide | 在NFS共享目錄中不共享其子目錄 |
no_hide | 共享NFS目錄的子目錄 |
secure | NFS通過1024以下的安全TCP/IP端口發(fā)送 |
insecure | NFS通過1024以上的端口發(fā)送 |
hide | 在NFS共享目錄中不共享其子目錄 |
如:
/home/share 192.168.88.109(rw,sync) 192.168.88.102(ro) 配置說明:對192.168.88.109賦予讀寫權(quán)限,102機(jī)器僅有只讀權(quán)限。
4. 配置NFS客戶端
服務(wù)端
[root@k8s-node-02 backup]# echo 123>/share/123
[root@k8s-node-02 backup]# ll /share/
total 0
-rw-r--r--. 1 root root 0 Feb 16 11:51 123
[root@k8s-node-02 backup]#
客戶端文章來源:http://www.zghlxwxcb.cn/news/detail-653476.html
[root@k8s-node-02 backup]# mkdir /share
[root@k8s-node-02 backup]# mount 192.168.71.183:/share /share
[root@k8s-node-02 backup]# ll /share
total 0
[root@k8s-node-02 backup]# ll /share
total 0
-rw-r--r-- 1 root root 0 Feb 16 11:51 123
[root@server ~]# showmount -e node-138
Export list for node-138:
/share *
[root@server ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 846M 0 846M 0% /dev
tmpfs tmpfs 875M 0 875M 0% /dev/shm
tmpfs tmpfs 350M 9.8M 340M 3% /run
/dev/sda2 xfs 20G 4.8G 16G 24% /
/dev/sr0 iso9660 8.0G 8.0G 0 100% /media/cdrom
/dev/sda1 xfs 1014M 257M 758M 26% /boot
tmpfs tmpfs 175M 52K 175M 1% /run/user/42
tmpfs tmpfs 175M 36K 175M 1% /run/user/0
/dev/mapper/vg0-lv1 xfs 197M 14M 184M 7% /mnt/lv1
node-138:/share nfs4 27G 18G 9.7G 65% /nfs
5. 防火墻設(shè)置
如果在需要啟用防護(hù)墻的服務(wù)器上安裝nfs,則需要對其放行,命令如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-653476.html
firewall-cmd --add-service=nfs
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --add-service=mountd
firewall-cmd --add-service=mountd --permanent
到了這里,關(guān)于NFS服務(wù)器搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!