参考资料:http://www.centoscn.com/image-text/install/2016/0929/7993.html
参考资料:http://www.linuxidc.com/Linux/2015-05/117378.htm
首先要说nfs是什么?
NFS(network file system)网络文件系统,类似Windows中的文件夹共享,如下有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C。但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是
通过网络的方式去访问A上的那个目录。
现在你安装centos后,系统会自动给你装上这个软件,但是据我的经验,不知道什么原因,有时候在启动服务的时候会报错,所以建议你在用命令装一下,如果你的服务端是其他类型的linux,比如fedora,那下面的教程就不适合了,具体下面介绍:
步骤如下:
一 安装
yum list installed | grep nfs 检测一下自己装了没有nfs
或者用次命令:rpm -qa | grep samba
如果已经存在,则用下面的命令卸载重装
rpm -e --nodeps ******nfs
如果不存在,直接装:
yum -y install nfs-utils rpcbind
(实际上需要安装两个包nfs-utils和rpcbind, 不过当使用yum安装nfs-utils时会把rpcbind一起安装上)
二 添加配置,设置共享目录
编辑exports文件,路径为:vi /etc/exports 这个文件刚开始是空的,需要你自己去写内容;
在配置文件中添加这句话:/opt/test/ 192.168.1.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
这句话的解释为:
/opt/test 为共享目录
192.168.1.0/24 可以为一个网段,一个IP,也可以是域名,域名支持通配符 如: *.qq.com
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,可以在此处自行设定。
anongid:匿名用户的GID值。
当你设置完后,则下面一定要让这个配置文件生效:exportfs -r
三 启动服务端的nfs服务
先为rpcbind和nfs做开机启动:
systemctl enable rpcbind.service
systemctl enable nfs-server.service
然后分别启动rpcbind和nfs服务:
systemctl start rpcbind.service
systemctl start nfs-server.service
检查是否启动成功,下面命令都是:
chkconfig rpcbind on
chkconfig nfs on
rpcinfo -p
查看可挂载目录及可连接的IP
showmount -e IP 这个ip是你共享目录的主机ip
关闭服务器防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
四: 配置客户端 和 挂载
这里面分为两种情况,一种是,客户端是在其他linux上进行访问(比如fedora),一种是centos;
如果你的客户端是fedora,则直接用service nfs start,其中nfs,
然后是 showmount -e 192.168.222.200;查看贡献目录的主机,展示共享目录;
挂载:mount -t nfs -o nolock 192.168.157.130:/data/gongxiang/ /home/nfsdata
就可以同步访问共享目录了。
下面客户端上装的是centos;
1、安装nfs,并启动服务。
yum install -y nfs-utils
systemctl enable rpcbind.service
systemctl start rpcbind.service
客户端不需要启动nfs服务,只需要启动rpcbind服务.
2、检查 NFS 服务器端是否有目录共享
showmount -e 192.168.222.200
客户端 也就是上图的B C主机客户端的挂载,(挂载就是把共享文件主机的共享目录挂到客户端的某个目录下面,然后再客户端的这个目录下就可 以完全操作服务器上的这个共享目录)
3. df -h
挂载完成,剩下就可以访问数据了。