網(wǎng)絡(luò)文件系統(tǒng)(英語:Network File System,縮寫作 NFS)是一種分布式文件系統(tǒng)協(xié)議,最初由Sun Microsystems公司開發(fā),并于1984年發(fā)布。其功能旨在允許客戶端主機(jī)可以像訪問本地存儲一樣通過網(wǎng)絡(luò)訪問服務(wù)器端文件。
NFS和其他許多協(xié)議一樣,是基于開放網(wǎng)絡(luò)運(yùn)算遠(yuǎn)程過程調(diào)用(ONC RPC)協(xié)議之上的。它是一個(gè)開放、標(biāo)準(zhǔn)的RFC協(xié)議,任何人或組織都可以依據(jù)標(biāo)準(zhǔn)實(shí)現(xiàn)它。
參見維基百科
與之類似的還有很多CIFS、HDFS等,它們實(shí)現(xiàn)不同,但是解決的問題都差不多:提供一個(gè)共用的存儲系統(tǒng)。大部分很多情況下,我們的分布式系統(tǒng)都是無狀態(tài)的,但是也有很多有狀態(tài)的應(yīng)用(需要存儲數(shù)據(jù)),例如dcos中的有狀態(tài)應(yīng)用gitlab、jenkins、數(shù)據(jù)庫等,它們每次創(chuàng)建都會有一個(gè)新的沙盒來存儲數(shù)據(jù),之前的數(shù)據(jù)就會消失,這時(shí)候就需要一個(gè)統(tǒng)一的存儲系統(tǒng),就需要NFS等網(wǎng)絡(luò)存儲來解決。
安裝服務(wù)端
- 安裝應(yīng)用
$ sudo yum install nfs-utils
- 配置目錄
$ sudo mkdir /var/lib/nfs
$ sudo chmod 777 /var/lib/nfs
- 編輯/etc/exports:配置能夠訪問共享資源的ip和目錄
$ cat /etc/exports
/data 10.0.1.0/24(rw,async,no_subtree_check,no_root_squash,fsid=0)
# /data :共享的NFS目錄
# 192.168.0.0/24:ip地址是192.168.0.250/24的nfs客戶端可以訪問共享目錄;也可以指定多個(gè)客戶端ip,如 1.1.1.1,*.topspeedsnail.com
# rw:指定nfs客戶端可以讀寫共享目錄
詳細(xì)配置查看
修改了/etc/exports需要配置,使用$ sudo exportfs -a使其生效。
- 啟動(dòng)服務(wù)并設(shè)置開機(jī)啟動(dòng)
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server
# 設(shè)置開機(jī)啟動(dòng)
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs-server
安裝客戶端
$ sudo yum install nfs-utils
- 創(chuàng)建一個(gè)共享的映射目錄
$ mkdir /mnt/data
- 掛載目錄
$ sudo mount -t nfs 192.168.0.250:/data /mnt/data
現(xiàn)在在目錄/mnt/data 下新建一個(gè)文件:touch test.txt,回到192.168.0.250的/data目錄看看是否已經(jīng)同步創(chuàng)建了test.txt。
不登高山,不知天之高也;不臨深溪,不知地之厚也
感謝指點(diǎn)、交流、喜歡