NFS 介绍
关于 NFS 的相关介绍
最后更新于
这有帮助吗?
关于 NFS 的相关介绍
最后更新于
这有帮助吗?
NFS 具有和 SMB 相同的用途,目的是通过网络访问文件系统,但是两者使用不同的协议
我们可以通过 NFS 将远程目录挂载在本地系统上,就和插了一个 U 盘一样
配置文件: /etc/exports
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows 网络共享用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS,ceph
NFS 协议没有身份验证和授权机制。授权取自配置文件系统的可用信息,服务器负责将客户端提供的用户信息翻译成文件系统的用户信息,并尽可能正确的将相应的授权信息转换成 UNIX 要求的语法
NFSV2
比较旧但是受到许多系统支持,并且最初完全通过 UDP 运行
NFSV3
具有更多的功能,包括可变文件大小和更好的错误报告,但是与 NFSV2 客户端不安全兼容
NFSV4
包括 Kerberos ,通过防火墙和 Internet 工作,不再需要端口映射器,支持 ACL, 应用基于状态的操作,并提高了性能和安全性
用户访问NFS客户端,将请求转化为函数
NFS通过TCP/IP连接服务端
NFS服务端接收请求,会先调用portmap进程进行端口映射
Rpc.nfsd进程用于判断NFS客户端能否连接服务端;
Rpc.mount进程用于判断客户端对服务端的操作权限
如果通过权限验证,可以对服务端进行操作,修改或读取
服务端
安装相关软件
关闭防火墙和 selinux
创建一个目录,用于存放共享文件或者目录
创建一个系统用户,到时客户端也创建同样用户来统一用户
修改NFS的配置文件(作用:指定NFS的仓库及权限)
rw
读写权限 (常用)
ro
只读权限 (不常用)
root_squash
当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户(默认)
no_root_squash
当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员(不常用)
all_squash
无论 NFS 客户端使用什么账号访问,都映射为 NFS 服务器的匿名用户(常用)
no_all_squash
访客被映射为服务器上相同 uid 的用户(默认)
sync
同时将数据写入到内存和硬盘中,保证数据不丢失数据(常用)
async
优先将数据保存到内存中,然后再写入硬盘,这样效率高,但可能会丢失数据(不常用)
secure
限制客户端只能从小于1024的tcp/ip端口连接服务器 (默认)
insecure
允许客户端从大于1024的tcp/ip端口连接服务器
anonuid
指定匿名访问的用户的本地用户 UID ,默认为 65534
anongid
指定匿名访问用户的本地用户组GID,默认为 65534
wdelay
检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认)
no_wdelay
若有写操作则立即执行,应与sync配合使用
subtree_check
若输出目录是一个子目录,则nfs服务器将检查其父目录的权限 (默认)
no_subtree_check
即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
启动NFS服务
查看NFS的挂载点是否设置成功
给挂载点授权(用于存放共享文件或者目录)
客户端
挂载使用(客户端必须安装nfs-utils)
客户端
安装web服务软件及nfs-utils
将代码上传到网站根目录(/var/www/html)
给目录下的文件授权
修改web软件的用户
关闭selinux和防火墙
启动web软件
挂载
测试: 上传、访问
安装web服务软件及nfs-utils
将NFS挂载到web网站对应目录
开启web服务
测试