NFS 文件共享
NFS介绍
- NFS(Network File System,网络文件系统)是当前主流异构平台共享文件系统之一。主要应用在UNIX环境下。最早是由Sun Microsystems开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,广泛应用在FreeBSD、SCO、Solaris等异构操作系统平台,允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。换言之,NFS可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。
- 网络文件系统(NFS)从1984 年问世以来持续演变,并已成为分布式文件系统的基础;
NFS 实现原理
NFS服务器启动后,都会开启对客户端连接对应的端口号,端口号的范围是1~1024,但每次启动NFS服务器,相应服务器端口号都各不相同。为了确保客户端每次都能正确的连接到NFS服务器上,NFS通过一个远程过程调用(Remote Procedure Call ,RPC )的协议来协助NFS 服务器完成连接,程序可以通过使用这种协议向网络中另一台计算机上的程序请求服务,在NFS中,RPC最主要的功能就是指定并监听NFS守护进程对应的端口号,并将端口信息通知给客户端,让客户端可以连接到正确端口上来,因此也可以说,NFS是一个RPC服务器。需要注意的是,远程挂载NFS服务器的本地主机也需要同步启动RPC协议。
要使用NFS服务器,需要在NFS服务端至少启用两个系统守护进程(daemons),分别是rpc.nfsd 和rpc.mountd。
NFS 服务搭建
安装NFS软件包
[root@nfs ~]# yum -y install nfs-uils rpcbind
创建共享目录,并设置足够的权限
[root@nfs ~]# mkdir /opt/nfsfile [root@nfs ~]# chmod -Rf 777 /opt/nfsfile/ [root@nfs ~]# echo "welcome to linux" > /opt/nfsfile/README
修改NFS主配置文件
[root@nfs ~]# vim /etc/exports /opt/nfsfile 172.16.59.*(rw,sync,roo_squash)
共享资源路径:就是要共享出来的目录或者磁盘分区。
主机地址:设置允许使用NFS服务器共享资源的客户端主机地址,主机地址可以是主机名、域名、IP地址等,支持匹配
选项:下面是各个选项的含义。
- ro: 既 read only也就是客户端主机对共享咨询仅有读权限。
- rw: 即 read write, 也就是可短短主机对共享资源有读、写权限。
- no_root_squash: 信任客户端,根据用户UID进行判断,如果登陆NFS主机的用户是ROOT,那么次用就拥有对共享资源的最高权限。此参数不安全,建议不要使用。
- root_squash: 不管登陆NFS主机的是什么用户,都会将共享文件的UID和GID 隐射到匿名用户 nfsnobody.
- no_all_squash: 系统预设值,保留共享文件的UID和GID默认权限。
- anonuid: 将登入NFS主机的用户都设定成指定的UID,此UID必须在于NFS服务端/etc/passwd中。
- anongid: 与anonuid 含义类似,但是编程GIDle,即用户组ID 。
- sync:资料同步写入磁盘中,默认选择
- aync: 资料会先暂时存放在内存中,不会直接写入硬盘。
启动服务
[root@nfs ~]# systemctl start nfs rpcbind [root@nfs ~]# systemctl enable nfs rpcbind
客户端访问
Linux客户端
发现服务器上共享信息
[root@promethues ~]# showmount -e 172.16.59.191
Export list for 172.16.59.191:
/opt/nfsfile 172.16.59.196
挂载并使用
[root@promethues ~]# mount 172.16.59.191:/opt/nfsfile /opt/nfs191/ [root@promethues ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 172.16.59.191:/opt/nfsfile 18G 1.7G 17G 10% /opt/nfs191 [root@promethues ~]# cd /opt/nfs191/ [root@promethues nfs191]# ls README [root@promethues nfs191]# touch abc [root@promethues nfs191]# ll 总用量 4 -rw-r--r--. 1 root root 0 3月 30 22:56 abc -rw-r--r--. 1 root root 17 3月 30 22:22 README
windows 客户端
打开 控制面板 —> 程序 —> 启用或关闭Windows功能
或者
也可以用【Win+R】运行,复制输入以下命令:
OptionalFeatures
mount IP:/nfsroot X: (IP为NFS服务器得IP,/nfsroot为你挂载得目录路径)