NFS(Network File System 网络文件系统)
Linux与Linux之间的文件共享、提供远端读存文件的服务
最主要的功能就是让网络上的UNIX可以共享目录及档案、可以将远程所共享出来的文件系统挂载到本地端。
特点:分布式存储、集中管理
NFS简介:
NFS是系统间进行文件共享的一种网络协议、在NFS的应用结构中有服务器和客户机两种角色、NFS客户端通过挂载的方式访问NFS服务器中的共享目录、在同一台主机中即可以是NFS服务器亦可以作为NFS客户机、建立在RPC协议上的服务。RHEL默认已安装此服务。
NFS搭建:(服务端172.16.30.2 客户端172.16.30.3)
netstat -tulnp | grep nfs/111(此命令用来查看某个服务是否开启)
nfs服务对应的端口号是111
rpm -q rpcbind
systemctl status rpcbind 查看状态
添加防火墙(firewall-cmd --get-service)
firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=172.16.30.0/24 service name=nfs accept’ --permanent
firewall-cmd --add-rich-rule ‘rule family=ipv4 source address=172.16.30.0/24 service name*=rpc-bind* accept’ --permanent
firewall-cmd --reload
编辑NFS主配置文件(etc/exports)
/common 172.16.30.0/24(rw,sync)
重启服务:systemctl restart nfs
客户端验证:(-t 表示类型)
mount -t nfs 172.16.30.2:/common /mnt
目前客户端无权限创建文件,只有服务端有权限,可以在服务端将共享目录的权限变成o+w
chmod o+w /common
但是在客户端创建的目录或文件,显示的权限为:nfsnobody
- ```
[root@c mnt]# ll
total 0
-rw-r–r--. 1 root root 0 Dec 17 21:54 121
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Dec 17 21:56 123
-rw-r–r--. 1 nfsnobody nfsnobody 0 Dec 17 21:55 test
方法1:在服务端
[root@b common]# chown -R root.root test
[root@b common]# ll
total 0
-rw-r–r--. 1 root root 0 Dec 17 21:54 121
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Dec 17 21:56 123
-rw-r–r--. 1 root root 0 Dec 17 21:55 test
方法2:进到/var/lib/nfs编辑 etab 这里面记录挂载信息
[root@b nfs]# vim /var/lib/nfs/etab找到root_squash字段后复制
[root@b nfs]# exportfs -v
/common 172.16.30.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
[root@b nfs]# vim /etc/exports
/common 172.16.30.0/24(rw,sync,no_root_squash)
:wq
[root@b nfs]# systemctl restart nfs
客户端验证:
[root@c mnt]# mkdir test1
[root@c mnt]# ll
total 0
-rw-r–r--. 1 root root 0 Dec 17 21:54 121
drwxr-xr-x. 2 nfsnobody nfsnobody 6 Dec 17 21:56 123
-rw-r–r--. 1 root root 0 Dec 17 21:55 test
drwxr-xr-x. 2 root root 6 Dec 17 22:14 test1
延申:
[root@c mnt]# showmount -e 172.16.30.2
Export list for 172.16.30.2:
/common 172.16.30.0/24
showmount -e 这条命令可以查看任何一台提供共享的客户机开启的共享
[root@b nfs]# exportfs -v
/common 172.16.30.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
exportfs -v 查看共享的目录以及功能
注:这里的root_squash相当于将root抹除了,所以要在服务端主配置文件中叫上no_root_squash