文章目录
NFS介绍
NFS是Network File System的缩写,它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件或目录
NFS挂载结构图
NFS工作原理简图
NFS服务端要先启动rpcbind(CentOS6.5)和后启动NFS服务,客户端需要启动rpcbind服务
NFS 服务器端设置
NFS软件
要部署NFS服务,必须安装下面两个软件包
- nfs-utils:NSF主程序
包括rpc.nfsd,rpc.mountd等等 - rpcbind:rpc主程序
NFS可以被视为一个RPC程序,在启动任何一个RPC程序之前,需要做好端口映射工作,这个映射工作就是由rpcbind服务来完成的,因此必须先启动rpcbind服务
查看NFS软件包
没有安装的话yum install nfs-utils ,yum install rpcbind
进行安装
执行命令rpcinfo -p localhos
t,如果rpcbind服务未启动,执行该命令检查时,会报错
解决方法:/etc/init.d/rpcbind start
启动rpcbind服务
启动rpcbind服务后,netstat -lnt
会发现多出一个111端口,这就正确了
启动NFS服务
/etc/init.d/nfs start
启动nfs服务后,在使用rpcinfo -p localhost
会发现多出来好多东西,例如
设置rpcbind服务为开机自启动
chkconfig rpcbind on
chkconfig --level 345 rpcbind on
chkconfig --list | egrep “rpcbind|nfs” #查看是否启动
配置NFS服务
NFS配置文件路径:/etc/exports
不配置时内容为空
exports文件格式
NFS共享目录 客户端地址1(参数1,参数2) 客户端地址2(参数1,参数2)
注意共享目录的权限 chmod -R 777 /root
NFS主要有3类选项:
- 访问权限选项
- 设置输出目录只读:ro
- 设置输出目录读写:rw
- 用户映射选项
- all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
- no_all_squash:与all_squash取反(默认设置);
- root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
- no_root_squash:与rootsquash取反;
- anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
- anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
- 其它选项
- secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
- insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
- sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
- async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
- wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
- no_wdelay:若有写操作则立即执行,应与sync配合使用;
- subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
- no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
举例:
/root 192.168.1.1(rw.sync)
/root 192.168.1.1/24(rw,sync,all_squash,anonuid=2000,anongid=2000)
/root 192.168.1.1(ro)只读共享
配置完成后重启服务 /etc/init.d/nfs reload
从NFS客户端挂载
获取服务端提供的共享目录
showmount -e 服务端ip
###挂载
Mount -t nfs 192.168.1.3:/root /mnt
如果出现mount.nfs: access denied by server while mounting 192.168.1.103:/root/work/nfs
这样的错误
解决方法:
- 在/etc/exports里面,添加insecure
- 需要修改/etc/sysconfig/nfs文件,将
#Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
#Turn off v4 protocol support
#RPCNFSDARGS="-N 4" //这句前面的#去掉就可以了
然后关闭rpcbind和nfs服务在重启rpcbind和nfs服务,一定要注意顺序
- 查看挂载:
df -h
解除挂载
umount -f nfs 192.168.172.128:/ASura /mnt
#或者
umount /mnt
客户端启动自动挂载nfs文件系统
vim /etc/fstab