什么是NFS
NFS(Network FileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS组成
NFS有一个服务端和若干个客户端组成
NFS作用
- 可以将一些文件放到远程,节省本地存储空间
- 在其他服务器上也能访问相同的文件,可解决负载均衡中,文件同步问题
- 文件便于集中管理,备份
服务端安装及配置
// 安装服务端
sudo apt install nfs-kernel-server
// 修改配置
sudo vi /etc/exports
// 重启
sudo service nfs-kernel-server restart
配置说明
// ip不限
/var/data *(rw,sync,no_root_squash)
//目录 ip(权限) ip(权限)
/var/data 127.0.0(rw,sync,no_root_squash) 127.0.0(rw,sync,no_root_squash)
rw 可读写的权限
ro 只读的权限
no_root_squash 登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限,这个参数『极不安全』,不建议使用
all_squash 不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody
anonuid 可以自行设定这个UID的值,这个UID必需要存在于你的/etc/passwd当中
anongid 同anonuid,但是变成groupID就是了
sync 资料同步写入到内存与硬盘当中
async 资料会先暂存于内存当中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
配置生效,无需重启
sudo exportfs -rv
exportfs命令
常用选项
-a 全部挂载或者全部卸载
-r 重新挂载
-u 卸载某一个目录
-v 显示共享目录
showmount
// 显示NFS服务器上所有的共享目录
showmount -e
// 仅显示已被NFS客户端加载的目录
showmount -a
原文地址 https://www.unix.com/man-page...
固定mountd端口
系统 RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768--65535)来进行通讯,我们可以通过编辑/etc/services 文件为 mountd指定一个固定端口
# vi /etc/services
在末尾添加
mountd 端口号/udp
mountd 端口号/tcp
NFS的守护进程
rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
rpc.mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
portmap:portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
查看 rpc进程
rpcinfo -p
防火墙配置
阿里云有虚拟防火墙,需要配置安全组,如图
客户端配置
安装
apt-get install nfs-common
挂载
showmount -e 服务端ip
// 查看服务端共享目录,若超时了,可能防火墙有问题,需要开放相应端口
mount -t nfs 服务端ip:共享目录 挂载目录
挂载命令详细说明
查看所有挂载
df -h
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。