NFS是什么
NFS是附加在本地文件系統(tǒng)之上的一層虛擬層,這個虛擬層可以使一個本地文件系統(tǒng)通過網(wǎng)絡(luò)輸出給其他主機訪問,所以NFS叫做網(wǎng)絡(luò)附加存儲火鼻。NFS只適用于linux或unix主機之間的網(wǎng)絡(luò)共享糕伐,不支持windows主機万搔。
NFS實現(xiàn)過程
比如服務(wù)器端有一個xfs文件系統(tǒng)通過監(jiān)聽的套接字向外輸出,它通過內(nèi)核中的nfs模塊把本地的xfs接口轉(zhuǎn)成了nfs接口變成nfs服務(wù)端向外輸出扣孟√痰蹋客戶端要使用nfs服務(wù)器提供的網(wǎng)絡(luò)附加存儲時,先用mount命令把nfs服務(wù)器提供輸出的文件系統(tǒng)掛載至本地的文件系統(tǒng)路徑下,此時客戶端查看掛載的目錄是nfs文件系統(tǒng)鸽斟,當(dāng)訪問這個掛載的目錄時拔创,所有的請求都通過這個協(xié)議遠(yuǎn)程傳輸?shù)絥fs服務(wù)器,服務(wù)端會將客戶端的nfs請求通過內(nèi)核nfs模塊再轉(zhuǎn)成服務(wù)器本地磁盤上的xfs文件來操作富蓄。
圖片.png
NFS配置
環(huán)境配置
192.168.10.10 nfs服務(wù)器
192.168.10.11 客戶機
配置服務(wù)端
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mkdir -pv /data/mysql/test
[root@localhost ~]# useradd -u 1001 lsh
[root@localhost ~]# chown -R 1001.1001 /data/mysql/test/
[root@localhost ~]# ll -d /data/mysql/test/
drwxr-xr-x 2 lsh lsh 6 Jun 18 22:30 /data/mysql/test/
#把test目錄賦值屬主屬組為1001
[root@localhost ~]# vim /etc/exports
/data/mysql 192.168.10.11(rw) 192.168.0.0/16(ro)
[root@localhost ~]# systemctl start nfs.service
客戶機掛載測試
[root@localhost ~]# yum -y install nfs-utils #客戶端也要安裝nfs包才能識別掛載
[root@localhost data]# mount -t nfs 192.168.10.10:/data/mysql /mnt
[root@localhost data]# mount | grep /data/mysql
192.168.10.10:/data/mysql on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.11,local_lock=none,addr=192.168.10.10)
#查看掛載信息剩燥,掛載成功
[root@localhost ~]# cd /mnt/test/
[root@localhost test]# touch a.txt
touch: cannot touch ‘a(chǎn).txt’: Permission denied
#進入掛載的目錄創(chuàng)建文件失敗,因root管理員權(quán)限在服務(wù)端被映射成nfsnobody沒有寫權(quán)限
[root@localhost ~]# useradd -u 1001 lsh
[root@localhost ~]# su - lsh
[lsh@localhost ~]$ cd /mnt/test/
[lsh@localhost test]$ touch a.txt
[lsh@localhost test]$ ll
total 0
-rw-rw-r-- 1 lsh lsh 0 Jun 18 22:46 a.txt
#客戶機登錄屬主屬組ID為1001的用戶就擁有對掛載目錄的讀寫權(quán)限
配置客戶端root在掛載目錄中映射成1001用戶
服務(wù)端
[root@localhost ~]# vim /etc/exports
/data/mysql 192.168.10.11(rw,anonuid=1001,anongid=1001) 192.168.0.0/16(ro)
[root@localhost ~]# exportfs -rav
客戶端
[root@localhost ~]# mount -t nfs 192.168.10.10:/data/mysql /mnt
[root@localhost ~]# cd /mnt/test/
[root@localhost test]# touch root.txt
[root@localhost test]# ll
total 0
-rw-rw-r-- 1 lsh lsh 0 Jun 18 22:46 a.txt
-rw-r--r-- 1 lsh lsh 0 Jun 18 23:09 root.txt
#用root可以在目錄下創(chuàng)建文件立倍,root映射成了屬主lsh
用另一臺主機192.168.10.12測試
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mount -t nfs 192.168.10.10:/data/mysql /mnt
[root@localhost ~]# cd /mnt/test/
[root@localhost test]# ll
total 0
-rw-rw-r-- 1 1001 1001 0 Jun 18 22:46 a.txt
-rw-r--r-- 1 1001 1001 0 Jun 18 23:09 root.txt
[root@localhost test]# touch hi.txt
touch: cannot touch ‘hi.txt’: Read-only file system
#掛載成功灭红,但是此ip段在服務(wù)器上只定義了讀權(quán)限,沒有寫權(quán)限