NFS安装和简单配置说明

NFS安装和简单配置说明

NFS 安装和简单配置

摘抄自 Wiki NFS 简介 部分说明

网络文件系统(Network File System,缩写 NFS)是一种分布式文件系统,力求客户端主机可以访问服务器端文件,并且其过程与访问本地存储时一样,它由Sun微系统(已被甲骨文公司收购)开发,于1984年发布。

NFS 服务可以挂载远程主机的共享目录到本地,就像操作本地磁 盘一样,非常方便的操作远程文件。

它基于开放网络运算远程过程调用(ONC RPC)系统:一个开放、标准的 RFC 系统,任何人或组织都可以依据标准实现它。

下面在 Centos7 中安装 NFS 服务。

根据官网说明 Chapter 8. Network File System (NFS) - Red Hat Customer Portal,CentOS 7.4 以后,支持 NFS v4.2 不需要 rpcbind 了,但是如果客户端只支持 NFC v3 则需要 rpcbind 这个服务。

1
yum install -y nfs-utils

注意:只安装 nfs-utils 即可,rpcbind 属于它的依赖,也会安装上。

小贴士:Centos7 nfs 服务文件 /usr/lib/systemd/system/nfs.service 链接 /usr/lib/systemd/system/nfs-server.service 服务文件。

注意: NFS 依赖 rpcbind 服务,nfs 服务默认端口 2049/(tcp/udp/sctp) , rpcbind 服务默认端口 111/(tcp/udp)

设置 NFS 服务开机自启

1
2
systemctl enable nfs
# systemctl enable nfs-server

启动 nfs 服务

1
systemctl start nfs

防火墙打开 nfs 服务

1
2
3
4
5
6
7
firewall-cmd --zone=public --permanent --add-service={rpc-bind,mountd,nfs}
firewall-cmd --reload

# 或者开放端口
firewall-cmd --zone=public --permanent --add-port=2049/tcp
firewall-cmd --zone=public --permanent --add-port=2049/udp
firewall-cmd --reload

NFS 共享目录配置文件 /etc/exports

添加共享目录配置

1
2
3
4
5
/server/nfs 192.168.99.0/24(rw,sync,all_squash,subtree_check)
# 以 nfsnobody 创建文件,但不能删除

/server/nfs 192.168.99.0/24(rw,sync,root_squash,subtree_check) [推荐]
# 以访问账户创建文件,仅能编辑、删除本账户文件
  • /data/:共享目录位置
  • 192.168.0.0/24:允许使用此资源的客户端 IP 范围,* 表示所有即无客户端限制
  • rw:权限设置,可读可写
  • sync:数据同步写入磁盘
  • root_squash:当 root 账号访问时映射为 NFS 服务端匿名账户(nobody),普通账户映射为普通账户
  • no_root_squash: 允许远程 root 用户访问共享目录,拥有 root 权限(不推荐,不安全)
  • no_all_squash: 保留客户端用户的 UID 和 GID
  • all_squash:不管客户端使用什么账户访问,均映射为 NFS 服务器匿名账户(nobody),推荐
  • subtree_check:服务端会验证客户端创建的文件所在挂载点是否已经变更

配置完成后重启 nfs 服务让配置生效或执行刷新配置命令。

1
2
3
4
5
# 重启 nfs 服务
systemctl restart nfs

# 刷新配置,让其立即生效,执行如下命令
exportfs -a

验证 nfs 服务配置是否生效

1
2
3
4
$ showmount -e localhost

Export list for localhost:
/server/nfs 192.168.99.0/24

下面客户端就可以使用 nfs 服务提供的共享目录。

和 nfs 服务安装一致。

1
yum install -y nfs-utils

nfs 客户端仅需使用 rpcbind 服务

注意:客户端不需要打开防火墙,因为客户端时发出请求方,网络能连接到服务端即可。客户端也不需要开启 NFS 服务,因为不共享目录。

检测 nfs 服务端共享目录是否能用

1
2
3
4
$ showmount -e 192.168.99.90

Export list for 192.168.99.90:
/server/nfs 192.168.99.0/24

创建客户端挂载目录

1
mkdir -p /data/share/nfs

挂载 nfs 服务共享目录

1
mount -t nfs 192.168.99.90:/data/nfs/ /data/share/nfs

NFS 默认 UDP 协议挂载,为了提高 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载命令可使用如下命令:

mount -o proto=tcp,nolock -t nfs 192.168.1.1:/data/share /data/share

自动挂载写入自启挂载配置文件 /etc/fstab

1
2
3
4
192.168.99.90:/data/nfs /data/share/nfs nfs defaults 0 0

# 采用 tcp 协议挂载
192.168.99.90:/data/nfs /data/nfs/share nfs proto=tcp,noatime,nodiratime,nolock,intr 0 0

相关内容