Linux搭建NFS网络共享文件服务器

参考文档:https://blog.csdn.net/qq_32368213/article/details/80448305

NFS共享文件服务器
主程序:rpcbind nfs-utils
主要配置文件:/etc/exports
NFS 文件系统维护指令:/usr/sbin/exportfs
分享资源的登录档:/var/lib/nfs/*tab
客户端查询服务器分享资源的指令:/usr/sbin/showmount

一、安装部署
server端
#查看是否已安装
~>rpm -qa | grep nfs
~>rpm -qa | grep rpcbind

#安装
~>yum install rpcbind nfs-utils -y
#自定义共享文件夹
~>chmod 666 /data/lys
#配置共享文件夹访问控制
~>vim /etc/exports
#添加
/data/lys client_IP(rw,sync,no_root_squash,no_all_squash)
#共享的目录 允许访问IP:可擦写,同步写入到硬盘,开放客户端使用root身份来操作服务器的文件系统,不隐藏子目录,不开放匿名用户

1 )访问权限选项
        设置输出目录只读:ro
        设置输出目录读写:rw
2 )用户映射选项
        all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
        no_all_squash:与all_squash取反(默认设置);
        root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
        no_root_squash:与rootsquash取反;
        anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
        anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
3 )其它选项
        secure:限制客户端只能从小于 1024 的tcp/ip端口连接nfs服务器(默认设置);
        insecure:允许客户端从大于 1024 的tcp/ip端口连接服务器;
        sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
        async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
        wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
        no_wdelay:若有写操作则立即执行,应与sync配合使用;
        subtree_check:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
        no_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

~>exportfs -r #配置文件变更后生效
~>service nfs restart #重启nfs
~>rpcinfo -p localhost #检查nfs服务生效,mountd nlockmgr端口随机
#配置固定端口:解决随机端口导致的防火墙策略问题
~>vim /etc/sysconfig/nfs
#添加
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
~>service nfs restart
#检查共享文件
~>showmount -e
#检查访问权限
~>exportfs

client端:
~>yum install rpcbind nfs-utils -y #安装
~>mount -t nfs server_IP:/data/lys /mnt #挂载
~>df -h #查看是否挂载成功

二、设置开机启动和自动挂载
1)安装完成之后在/etc/init.d/文件夹下 会生成相应的nfs和rpcbind文件
~>chkconfig rpcbind on
~>chkconfig nfs on
~>vim /etc/fstab
#添加
server_IP:/data/lys /mnt nfs defaults 0 0 #实现永久挂载
2)问题:在/etc/init.d/没有相关文件,使用chkconfig不能直接启动服务开机启动
问题:编辑fstab文件,会使主机开机时,自动检测挂载nfs文件,拖慢开机速度
问题:nfs服务端主机未开启,fstab中默认挂载硬盘后,系统无法启动
解决方法:编写脚本实现开机启动和自动挂载
server端
~>vim auto_Configuration.sh
#!/bin/bash
#chkconfig:2345 80 90
service rpcbinds start
service nfs start
~>chmod +x /etc/init.d/auto_Configuration.sh
~>chkconfig --add auto_Configuration.sh #添加该脚本到启动项中

client端
~>vim auto_Configuration.sh
#!/bin/sh
#chkconfig:2345 80 90
service rpcbinds start
service nfs start
mount -t nfs server_IP:/data/lys /mnt
~>chmod +x /etc/init.d/auto_Configuration.sh #添加该脚本到启动项中
~>chkconfig --add auto_Configuration.sh #添加该脚本到启动项中

#执行chkconfig可查看脚本是否添加到启动项
#chkconfig有几个等级:0:表示关机,
#1:表示单用户模式
#2:表示无网络链接多用户命令行模式
#3:表示有网络链接多用户命令行模式
#4:表示不可用情况
#5:表示带图形界面的多用户模式
#6:表示重新启动
#chkconfig:2345就代表在2345的等级下启动这个服务
#后面的80 90分别是启动优先级和关闭优先级

posted on 2020-09-22 13:14  鑫春  阅读(365)  评论(0编辑  收藏  举报

导航