您好,登錄后才能下訂單哦!
NFS 是Network File System的縮寫,即網(wǎng)絡(luò)文件系統(tǒng)。一種使用于分散式文件系統(tǒng)的協(xié)定。功能是通過網(wǎng)絡(luò)讓不同的機(jī)器、不同的操作系統(tǒng)能夠彼此分享個(gè)別的數(shù)據(jù)讓應(yīng)用程序在客戶端通過網(wǎng)絡(luò)訪問位于服務(wù)器磁盤中的數(shù)據(jù),是在類Unix系統(tǒng)間實(shí)現(xiàn)磁盤文件共享的一種方法。NFS 的基本原則是“容許不同的客戶端及服務(wù)端通過一組RPC分享相同的文件系統(tǒng)”,它是獨(dú)立于操作系統(tǒng),容許不同硬件及操作系統(tǒng)的系統(tǒng)共同進(jìn)行文件的分享。NFS在文件傳送或信息傳送過程中依賴于RPC協(xié)議。RPC,遠(yuǎn)程過程調(diào)用(Remote Procedure Call) 是能使客戶端執(zhí)行其他系統(tǒng)中程序的一種機(jī)制。NFS本身是沒有提供信息傳輸?shù)膮f(xié)議和功能的,但NFS卻能讓我們通過網(wǎng)絡(luò)進(jìn)行資料的分享,這是因?yàn)镹FS使用了一些其它的傳輸協(xié)議。而這些傳輸協(xié)議用到這個(gè)RPC功能的??梢哉fNFS本身就是使用RPC的一個(gè)程序。或者說NFS也是一個(gè)RPC SERVER。所以只要用到NFS的地方都要啟動(dòng)RPC服務(wù),不論是NFSSERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實(shí)現(xiàn)PROGRAM PORT的對應(yīng)??梢赃@么理解RPC和NFS的關(guān)系:NFS是一個(gè)文件系統(tǒng),而RPC是負(fù)責(zé)信息的傳輸。
操作系統(tǒng):CentOS Linux release 7.3.1611 (Core)
服務(wù)端:10.0.1.16
客戶端:10.0.1.1 10.0.1.2
命令如下:
#yum list |grep nfs-utils #查看是否有nfs-utils的rpm包
#yum install nfs-utils.x86_64 -y #安裝nfs-utils
#groupadd -g 1005 rick
#useradd -g 1005 -u 1005-M rick
#mkdir -p /share/data
#chown -R rick:rick /share/data
注:1005是用戶id和用戶組id,這個(gè)實(shí)驗(yàn)我使用自定義的;也可以使用默認(rèn)的,使用
cat /etc/passwd |grep rick 命令行查看,例如
rick:x:1001:1001::/home/rick:/bin/bash
以冒號為分隔符,第一個(gè)字段是用戶名稱;第二個(gè)字段是密碼,是隱藏的;第三個(gè)字段是用戶id;第四個(gè)字段是用戶組id;第五個(gè)字段是描述;第六個(gè)字段是用戶的主目錄;第七個(gè)字段是用戶可用的shell。
命令:vim /etc/exports
添加 /share/data *(rw,sync,all_squash,anonuid=1005,anongid=1005)
共享目錄 權(quán)限設(shè)置,*代表允許所有ip訪問,其他權(quán)限參考2.4節(jié)
注:這里為了方便使用*來設(shè)置可訪問共享目錄的ip,為了安全起見,部署的時(shí)候建議指定可訪問的單個(gè)ip或者一個(gè)網(wǎng)段,
例如
/share/data 10.0.1.1(rw,sync,all_squash,anonuid=1005,anongid=1005)
#指定單個(gè)ip可訪問共享文件目錄
/share/data 10.0.1.0/24(rw,sync,all_squash,anonuid=1005,anongid=1005)
#指定某個(gè)網(wǎng)段可以訪問共享文件目錄
或者
/share/data 10.0.1.1(rw,sync,all_squash,anonuid=1005,anongid=1005)
10.0.1.2(rw,sync,all_squash,anonuid=1005,anongid=1005)
#上面兩行是連接起來的哦,ip()空格ip(),多個(gè)ip使用空格分隔
#指定多ip可訪問共享文件目錄
systemctl start rpcbind.service
systemctl start nfs-server.service
#firewall-cmd --permanent --add-port=111/tcp
#firewall-cmd --permanent --add-port=2049/tcp
#firewall-cmd --reload
yum install nfs-utils.x86_64 -y
mount -t nfs 10.0.1.16:/share/data /opt
注:/opt目錄是自定義的,如果本地沒有此目錄會(huì)自動(dòng)創(chuàng)建
vim /etc/fstab
添加10.0.1.16:/share/data /opt nfs defaults 0 0
參數(shù)值 | 內(nèi)容說明 |
rw | 該目錄分享的權(quán)限是可讀寫 (read-write) 或唯讀 (read-only),但最終能不能讀寫,還是與檔案系統(tǒng)的 rwx 及身份有關(guān)。 |
sync | sync 代表資料會(huì)同步寫入到記憶體與硬碟中,async 則代表資料會(huì)先暫存於記憶體當(dāng)中,而非直接寫入硬碟! |
no_root_squash | 用戶端使用 NFS 檔案系統(tǒng)的帳號若為 root 時(shí),系統(tǒng)該如何判斷這個(gè)帳號的身份?預(yù)設(shè)的情況下,用戶端 root 的身份會(huì)由 root_squash 的設(shè)定壓縮成 nfsnobody, 如此對伺服器的系統(tǒng)會(huì)較有保障。但如果你想要開放用戶端使用 root 身份來操作伺服器的檔案系統(tǒng),那麼這裡就得要開 no_root_squash 才行! |
all_squash | 不論登入 NFS 的使用者身份為何, 他的身份都會(huì)被壓縮成為匿名使用者,通常也就是 nobody(nfsnobody) 啦! |
anonuid | anon 意指 anonymous (匿名者) 前面關(guān)於 *_squash 提到的匿名使用者的 UID 設(shè)定值,通常為 nobody(nfsnobody),但是你可以自行設(shè)定這個(gè) UID 的值!當(dāng)然,這個(gè) UID 必需要存在於你的 /etc/passwd 當(dāng)中! anonuid 指的是 UID 而 anongid 則是群組的 GID 囉。 |
本文是參考鳥哥的私房菜-服務(wù)器而進(jìn)行的實(shí)驗(yàn),且本文沒有鳥哥寫的那么詳細(xì)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。