A. linux 环境下搭建NFS服务
NFS(Network File System),网络文件存储系统,它最早是由 Sun 公司开发的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP 网络共享资源。通过 NFS 协议,我们本地 NFS 的客户端应用可以透明的读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机,不同的操作系统可以共享存储的服务。
NFS 在文件传送或信息传送过程中依赖 RPC(Remote Procere Call)协议,即远程过程调用,NFS的各项功能都必须向 RPC 来注册,如此一来 RPC 才能了解 NFS 这服务的各项功能 Port,PID,NFS 在服务器所监听的 IP 等,而客户端才能透过 RPC 的询问找到正确对应的端口,所以 NFS 必须要有 RPC 存在是才能成功的提供服务,简单的理解二者关系:NFS 是一个文件存储系统,而 RPC 是负责信息的传输。
通过上面的简介,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils ,客户端只需要安装 nfs-utils 即可,由于我们选用 CentOS 系统,所以可以使用 yum 快速的安装。
然后安装 NFS 服务
另:Ubuntu 16.04 安装命令
我们在服务端创建一个共享目录 /data/share ,作为客户端挂载在远端入口,然后设置权限
然后,修改 NFS 配置文件 /etx/exports
说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许IP为 192.168.0.0/24 区间的客户端挂载。然后,如果客户端IP不在该区间也想要挂载的话,可以设置IP区间更大或者设置为 * 即允许所有客户端挂载,例如: /home *(ro, sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。
接下来,我们先启动 RPC 服务
我们发现,启动了 NFS 服务后,RPC 注册的端口列表明显增多。现在服务端都启动起来了,在服务端看下是否正确加载了设置的 /etc/exports 配置
最后,在另一台Linux虚拟机上测试一下,是否能够正确挂载。首先,我们可以在客户端查看下NFS服务端设置可共享的目录信息
然后,在客户端创建挂载目录/share
最后,挂载远端目录到本地 /share 目录
可以看到,可以正确将远端 NFS 目录挂载到本地。注意:挂载点 /share 目录必须已经存在,而且目录中没有文件或子目录
最后,我们在 NFS 服务端 /data/share 目录下创建一个文件,看下客户端能否正确读取并修改
都可以了,这里因为上面设置了 NFS 远端目录权限为 rw 拥有读写权限,如果设置为 ro ,那么客户端只能读取,不能写入。根据实际应用场景合理配置。
NFS 默认使用 UDP协议进行挂载,为了提供 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载命令如下:
最后,卸载命令
B. linux下nfs服务允许所有用户访问如何做
在/etc/exports中加上一句
/mnt/share *(ro,async,no_root_squash,nohide)
然后执行
exportfs -rv
上面括号上中的ro为只读,如果为rw的话,就是读写权限
C. LINUX怎样安装和使用NFS服务
举例,有台机器叫AAA,想把自己机器根下的一个叫abc的目录极其里面的所有文件都共享给一台叫BBB的机器。
在这里AAA就可看成是服务器,BBB为客户端,方法如下:
(在AAA上先配置)
1.
vi /etc/exports
(用vi编辑器打开共享资源,在里面填写共享的属性,linux下nfs的共享资源路径为etc下的exports)
打开编辑器后,里面可能什么都没有,需要自己填写,然后保存即可,在这里填写
2.
/abc BBB(ro)
之后按Esc停止文字录入,然后按Shift+;键,在出来的冒号后输入wq,表示保存退出!
(这个的格式是这样的:先给出要共享的路径,然后空格,后面写共享给谁,可以是IP地址或主机名。再后面的括号里表示以什么方式来共享,ro是客户端只能读,如果想让客户端可以改,可设为rw,即可读写)
D. linux挂载aixnfs没有写权限
应该是文件系统的权限不正确引起的。此时,请检查AIX NFS服务器上的文件系统的权限设置,确保Linux主机有读写权限,或者执行mount -o remount命令将Linux挂载后的文件系统重新挂载一次,这样就能够获得写操作的权限。