1 NFS基礎了解
-
NFS(Network File System)
即文件操作系統(tǒng); -
NFS
允許網(wǎng)絡中不同計算機相互之間共享資源。
1.1 NFS概述
- 1980年由
SUN
發(fā)展出來的在UNIX&Linux
系統(tǒng)間實現(xiàn)文件共享的一種方法; - 是一種文件系統(tǒng)協(xié)議,支持應用程序在客戶端通過網(wǎng)絡存取位于服務器磁盤中的數(shù)據(jù);
-
NFS
只提供網(wǎng)絡文件共享,不提供數(shù)據(jù)傳輸功能; -
NFS
客戶端和服務端需借助RPC(Remote Procedure Calls)
實現(xiàn)數(shù)據(jù)傳輸; -
NFS
服務器目錄被訪問稱為導出(export
),客戶機訪問導出目錄過程稱為掛載(mount
)或導入(import
)。
1.2 NFS工作流程
第一步:訪問NFS共享資源,NFS客戶端發(fā)出詢問請求,即客戶端RPC服務通過網(wǎng)絡向服務端RPC服務的111端口發(fā)出詢問請求。
第二步: NFS服務端RPC找到對應已注冊的NFSdaemon端口,通知客戶端RPC;
第三步:NFS客戶端獲取端口,直接與NFSNFSdaemon聯(lián)機存儲數(shù)據(jù)。
第四步:NFS客戶端吧數(shù)據(jù)存儲成功后,告訴用戶結果。
2 安裝和啟動NFS服務
2.1 安裝NFS服務器
- 一般情況,系統(tǒng)均已安裝NFS;
- 先檢查下是否安裝NFS,以下兩個是相關的依賴包:
rpm -qa | grep nfs-utils
rpm -qa | grep rpcbind
- 經(jīng)檢查是已經(jīng)安裝了的:
- 如果系統(tǒng)沒有安裝NFS依賴包,則需要安裝:
yum clean all
yum -y install nfs-utils rpcbind
2.2 啟動NFS服務
- NFS狀態(tài)查看:
systemctl status rpcbind.service
systemctl status nfs.service
- 啟動NFS服務:
systemctl start rpcbind.service
systemctl start nfs.service
- 再次查看狀態(tài),都是啟動的:
- 停止NFS服務:
systemctl stop nfs.service
- 重啟NFS服務:
systemctl restart nfs.service
- 設置開機自啟動NFS服務:
systemctl enable rpcbind.service
systemctl enable nfs.service
3 配置NFS服務器和客戶端
3.1 配置NFS服務器
- 配置文件在
/etc/exports
; - 格式為:
共享目錄 [客戶端1(參數(shù))] [客戶端2(參數(shù))]
共享目錄:NFS服務器需要共享的實際路徑(絕對路徑);
客戶端:可以訪問共享目錄的計算機。
- 客戶端常用形式:
客戶端 | 說明 |
---|---|
192.168.1.111 |
指定IP地址的主機 |
192.168.1.0/24 |
指定子網(wǎng)的所有主機 |
192.168.1.* |
指定子網(wǎng)的所有主機 |
www.xxx.com |
指定域名的主機 |
*.xxx.com |
指定域中的所有主機 |
* |
所有主機 |
訪問權限參數(shù):訪問權限設置。
- 常用訪問權限:
訪問權限 | 說明 |
---|---|
ro |
只讀 |
rw |
讀寫 |
用戶映射參數(shù)
- 用戶映射參數(shù)表:
用戶映射 | 說明 |
---|---|
all_squash |
將遠程訪問的所有用戶映射為匿名用戶或用戶組(nfsnobody ) |
no_all_squash |
與上邊相反(默認設置) |
root_squash |
將root用戶… (默認設置) |
no_root_squash |
與上邊相反 |
anonuid=xxx |
將該匿名賬號為本地賬號(UID=xxx ) |
anongid=xxx |
將該匿名用戶組為本地用戶組(GID=xxx)
|
其它參數(shù):對輸出目錄進行控制。
- 常用其它參數(shù):
其它參數(shù) | 說明 |
---|---|
secure |
限制客戶端只能從小于1024的TCP/IP端口鏈接NFS |
insecure |
語序客戶端大于1024的TCP/IP端口連接NFS |
sync |
將數(shù)據(jù)同步寫入內(nèi)存緩沖區(qū)與磁盤中 |
async |
將數(shù)據(jù)先保存在緩沖區(qū)中,必要時才寫入磁盤 |
wdelay |
檢查是否有相關的寫操作 |
no_wdelay |
有寫操作立即執(zhí)行,與sync 配合使用 |
subtree_check |
若輸出目錄為子目錄,則NFS服務器將檢查父目錄的權限 |
no_subtree_check |
若輸出目錄為子目錄,則NFS服務器不檢查父目錄的權限 |
- 比如將
/mnt/temp
目錄,只給IP為172.16.1.33
的計算機進行讀寫權限:
/mnt/temp 172.16.1.33 (rw, sync)
- 比如將
/mnt/temp01
目錄,只給子網(wǎng)中為172.16.1.0/24
的計算機進行讀寫權限,其他計算機制只讀權限:
/mnt/temp0 172.16.1.0/24 (rw, async) * (ro)
3.2 配置NFS客戶端
- 查看NFS服務器信息:
showmount [選項] (參數(shù))
-d:僅顯示已被NFS客戶端加載的共享目錄;
-e:顯示NFS服務器上所有的共享目錄。
showmount -e 192.168.0.190
在使用showmount時建議關閉防火墻,將SELinux設為為允許。
systemctl stop firewalld.service
setenforce 0
getenforce
- 掛在NFS服務器的共享目錄:
將NFS的共享目錄掛在到本地:
mount -t NFS服務器IP:輸出目錄 本地掛在目錄
- 比如:
mkdir /mnt/mytemp
mount -t nfs 192.168.0.190:/mnt/mytemp /mnt/mytemp
- 卸載NFS服務器:
umount 掛載點
- 啟動時自動掛在NFS共享目錄:
192.168.0.190: /mnt/temp /mnt/mytemp nfs defaults 0 0
4 實際示例
4.1 基本要求
- NFS服務器192.168.0.190;
- 要求1:共享目錄/mnt/temp,允許192.168.0.0/24網(wǎng)段內(nèi)計算機訪問;
- 要求2:共享目錄/mnt/share, 允許用戶zhang訪問,IP為192.168.0.10;
- 要求3:共享目錄/mnt/upload,允許192.168.0.0/24網(wǎng)段作為上傳目錄,所屬組為nfsupload,UID和GID均為666;
- 要求4:共享目錄/mnt/nfs,除192.168.0.0/24網(wǎng)段用戶訪問,只讀,可向internet提供數(shù)據(jù)內(nèi)容;
4.2 案例實現(xiàn)
- 安裝NFS服務:
yum -y install rpcbind
yum -y install nfs-utils
- 創(chuàng)建目錄和測試文件:
# 創(chuàng)建目錄:
mkdir -p /mnt/temp
mkdir -p /mnt/share
mkdir -p /mnt/upload
mkdir -p /mnt/nfs
# 創(chuàng)建測試文件
touch /mnt/temp/temp1.txt /mnt/temp/temp2.txt
touch /mnt/share/data1.txt /mnt/share/data2.txt
touch /mnt/upload/upload.txt
touch /mnt/nfs/nfs1.txt /mnt/nfs/nfs2.txt
- 設置共享目錄權限屬性:
# 要求1:
chmod 1777 /mnt/temp/
ll -d /mnt/temp/
# 要求2:
useradd zhang
passwd zhang
cat /etc/passwd | grep zhang
chmod 700 /mnt/share/
chown -R zhang:zhang /mnt/share/
ll -d /mnt/share/
# 要求3:
groupadd -g 666 nfsupload
useradd -g 666 -u 666 -M nfsupload
cat /etc/passwd | grep nfs
chown -R nfsupload:nfsupload /mnt/upload
ll -d /mnt/upload/
# 要求4:
ll -d /mnt/nfs/
- 編輯
/etc/exports
:
/mnt/temp 192.168.0.0/24 (rw,no_root_squash)
/mnt/share 192.168.0.10 (rw)
/mnt/upload 192.168.0.0/24 (rw,all_squash,anonuid = 666,anongid = 666)
/mnt/nfs 192.168.0.0/24 (ro) * (rw,all_squash)
- 關閉防火墻,設置Selinux為允許,重啟NFS服務:
systemctl stop firewalld.service
setenforce 0
getenforce
systemctl restart nfs
- NFS客戶端安裝客戶端軟件:
yum -y install nfs-utils
- 查看NFS服務器上共享的目錄:
showmount -e 192.168.0.190
文章來源:http://www.zghlxwxcb.cn/news/detail-760522.html
- 在客戶機上創(chuàng)建目錄,將NFS的目錄掛在到該目錄:
mkdir /mnt/ClientNFS
mount -t nfs 192.168.0.190:/mnt/nfs/ /mnt/ClientNFS/
- 同樣方法去掛載其他的NFS目錄即可;
- 并在客戶機上創(chuàng)建組666:
groupaddd -g 666 nfsupload
useradd -g 666 -u 666 -M nfsupload
以下內(nèi)容請忽略哈~文章來源地址http://www.zghlxwxcb.cn/news/detail-760522.html
var code = "b63aa6d3-45eb-4e38-a9db-4b391f9391f1"
到了這里,關于Linux/centos上如何配置管理NFS服務器?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!