NFS(network file system)網(wǎng)絡(luò)文件系統(tǒng)壳贪,類似Windows中的文件夾共享,如下有三臺機器A, B, C寝杖,它們需要訪問同一個目錄违施,目錄中都是圖片,傳統(tǒng)的做法是把這些圖片分別放到A, B, C瑟幕,但是使用NFS只需要放到A上磕蒲,然后A共享給B和C即可。訪問的時候只盹,B和C是通過網(wǎng)絡(luò)的方式去訪問A上的那個目錄辣往。
一、在A機上安裝 NFS 服務(wù)器所需的軟件包
yum install -y nfs-utils
yum install -y ?rpcbind
(實際上需要安裝兩個包nfs-utils和rpcbind, 不過當(dāng)使用yum安裝nfs-utils時會把rpcbind一起安裝上)
二殖卑、編輯exports文件站削,添加從機
vim ?/etc/exports
/home/nfs ? 192.168.222.201(rw,sync,fsid=0) ? 192.168.222.202(rw,sync,fsid=0)
配置說明:
這一行分為三個部分:
第一部分:/home/nfs ,這個是本地要共享出去的目錄懦鼠。
第二部分:192.168.222.0/24 钻哩,允許訪問的主機,可以是一個IP:192.168.222.201肛冶,也可以是一個IP段:192.168.222.0/24
第三部分:括號中部分街氢。
rw表示可讀寫,ro只讀睦袖;
sync :同步模式珊肃,內(nèi)存中數(shù)據(jù)時時寫入磁盤;async :不同步,把內(nèi)存中數(shù)據(jù)定期寫入磁盤中伦乔;
no_root_squash :加上這個選項后厉亏,root用戶就會對共享的目錄擁有至高的權(quán)限控制,就像是對本機的目錄操作一樣烈和。不安全爱只,不建議使用;
root_squash:和上面的選項對應(yīng)招刹,root用戶對共享目錄的權(quán)限不高恬试,只有普通用戶的權(quán)限,即限制了root疯暑;
all_squash:不管使用NFS的用戶是誰训柴,他的身份都會被限定成為一個指定的普通用戶身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用妇拯,用于指定使用NFS的用戶限定后的uid和gid幻馁,前提是本機的/etc/passwd中存在這個uid和gid。
fsid=0表示將/home/nfs整個目錄包裝成根目錄
這個配置文件也可以這樣寫:
/opt/test/ 192.168.222.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
NFS 修改配置文件后無需重啟服務(wù)越锈,如下命令刷新即可:
exportfs ? -rv
三仗嗦、啟動A機上nfs服務(wù)
先為rpcbind和nfs做開機啟動:
systemctl enable rpcbind.service
systemctl enable nfs-server.service
然后分別啟動rpcbind和nfs服務(wù):
systemctl start rpcbind.service
systemctl start nfs-server.service
確認(rèn)NFS服務(wù)器啟動成功:
rpcinfo -p
通過查看service列中是否有nfs服務(wù)來確認(rèn)NFS是否啟動。
showmount -e 192.168.222.200
查看可掛載目錄及可連接的IP
四瞪浸、關(guān)閉A機上的防火墻或者給防火墻配置nfs的通過規(guī)則
iptables ?-F
systemctl stop firewalld.service
五儒将、在B吏祸,C機上配置clinet端
1对蒲、安裝nfs,并啟動服務(wù)贡翘。
yum install -y ?rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
客戶端不需要啟動nfs服務(wù)蹈矮,只需要啟動rpcbind服務(wù)
2、檢查 NFS 服務(wù)器端是否有目錄共享
showmount -e 192.168.222.200
3鸣驱、使用 mount 掛載A服務(wù)器端的目錄/home/nfs到客戶端B的目錄/home/nfs下
[root@localhost ~]# mkdir /home/nfs
[root@localhost ~]# mount -t nfs192.168.222.200:/home/nfs//home/nfs/
[root@localhost ~]# df -h
文件系統(tǒng)?????????????????? 容量? 已用? 可用 已用% 掛載點
/dev/mapper/centos-root???? 11G? 1.3G? 9.1G?? 13% /
devtmpfs?????????????????? 911M???? 0? 911M??? 0% /dev
tmpfs????????????????????? 921M???? 0? 921M??? 0% /dev/shm
tmpfs????????????????????? 921M? 8.5M? 912M??? 1% /run
tmpfs????????????????????? 921M???? 0? 921M??? 0% /sys/fs/cgroup
/dev/sda1????????????????? 497M? 170M? 328M?? 35% /boot
tmpfs????????????????????? 185M???? 0? 185M??? 0% /run/user/0
192.168.222.200:/home/nfs?? 11G? 1.3G? 9.1G?? 13% /home/nfs
4泛鸟、掛載完成,可以正常訪問本機下的/home/nfs踊东,如果在服務(wù)端A在共享目錄/home/nfs中寫入文件北滥,B、C機上可以看到闸翅,但是不能在這個目錄中寫入文件.
六再芋、在服務(wù)器端A再建立一個共享目錄,并且可以允許A坚冀、B济赎、C寫入共享目錄
1、在B、C機上取得root用戶ID號
[root@localhost home]# id root
uid=0(root) gid=0(root) 組=0(root)
2司训、在A服務(wù)器上再建立一個共享目錄
mkdir /home/nfs1
# vim /etc/exports
/home/nfs 192.168.222.201(rw,sync,fsid=0) 192.168.222.202(rw,sync,fsid=0)
/home/nfs1 192.168.222.0/24(rw,sync,all_squash,anonuid=0,anongid=0)
加入第二行构捡,anonuid=0,anongid=0即為root用戶id。
3壳猜、讓修改過的配置文件生效
exportfs ?-rv
使用exportfs命令勾徽,當(dāng)改變/etc/exports配置文件后,不用重啟nfs服務(wù)直接用這個exportfs即可统扳,它的常用選項為[-aruv].
-a :全部掛載或者卸載捂蕴;
-r :重新掛載;
-u :卸載某一個目錄闪幽;
-v :顯示共享的目錄啥辨;
4、 查看新的可掛載目錄及可連接的IP
showmount -e 192.168.222.200
5盯腌、在B溉知、C clinet端新掛載一個目錄
showmount -e 192.168.222.200? #查看新的掛載共享目錄是否有了。
mkdir nfs1
mount -t nfs 192.168.222.200:/home/nfs1/ /home/nfs1/
ll / >/home/nfs1/test.txt?? #測試向新的共享目錄中可以寫入文件了腕够。
(卸載掛載:umount /home/nfs1/)
6级乍、想在客戶機B、C上實現(xiàn)開機掛載帚湘,則需要編輯/etc/fstab或者將掛載命令寫入到?/etc/rc.local
vim /etc/fstab
加入以下內(nèi)容:
192.168.222.200:/home/nfs ? ? ? ? ? ? ? ?/home/nfs ? ? nfs??? nolock?? 0 0
192.168.222.200:/home/nfs1?????????????? /home/nfs1 ? ?nfs??? nolock?? 0 0
保存后玫荣,重新掛載
mount -a
vim /etc/rc.local
mount ?-t nfs ?192.168.222.200:/home/nfs1/ ?/home/nfs1/