一、服务端配置

1、创建目录

mkdir /app/nas

2、安装nfs、rpc

[root@localhost ~]# yum install -y nfs-utils

[root@localhost ~]# yum install -y rpcbind 

3、启动服务

启动rpc并设置rpc为开机启动,忽略图中3行4行

nfs 挂载 docker nfs 挂载nfs_nfs

启动nfs服务和nfs安全传输服务

systemctl start nfs-server nfs

再将服务设置为开机启动

nfs 挂载 docker nfs 挂载nfs_linux_02

 配置之前记得关闭防火墙或配置防火墙放行nfs服务

4、配置共享文件目录,写入配置文件

编辑exports文件:vim /etc/exports,写入目录、IP和用户权限

nfs 挂载 docker nfs 挂载nfs_linux_03

/app/nas 172.18.0.0/24(rw)
/app/protected 172.18.0.0/24(rw)

在172.18.0.0/24 ip范围内皆可访问,(rw)为读写权限,注意权限和ip之间没有空格

用 showmount -e 172.18.0.80查看nfs服务器共享信息

nfs 挂载 docker nfs 挂载nfs_nfs 挂载 docker_04

重新启动nfs以更新配置文件

systemctl reload nfs 或 systemctl restart nfs

配置文件目录部分属性说明

参数

作用

ro

只读

rw

读写

二、客户端配置

 1、在客户端下载nfs-utils组件

nfs 挂载 docker nfs 挂载nfs_nfs_05

 使用showmount查看nfs服务器共享信息

[root@localhost ~]# showmount -e 172.18.0.80

nfs 挂载 docker nfs 挂载nfs_nfs 挂载 docker_04

showmount命令的用法;

参数

作用

-e

显示NFS服务器的共享列表

-a

显示本机挂载的文件资源的情况NFS资源的情况

-v

显示版本号

2、在客户端创建目录

mkdir /app/nas

以下两种方法根据需求使用其一

方法一:

直接使用命令挂载:mount 172.18.0.80:/app/nas /app/nas

方法二:

在/etc/fstab文件中添加以下内容,

在该文件中挂载,好处是使系统每次启动时都能自动挂载,

vim /etc/fstab

这里的IP有变化不要在意,就填nfs服务端的IP即可,本文多次修改又懒得补图,所以以下信息IP和上面不一样

192.168.41.128:/app/nas  /app/nas               nfs     defaults        0 0
192.168.41.128:/app/protected /mnt/data         nfs     defaults        0 1

192.168.41.128是服务端ip、mnt下的data需要自己创建

nfs 挂载 docker nfs 挂载nfs_运维_07

执行mount -a 使配置文件生效

df -h 查看以下磁盘信息 ,刚刚挂载的共享目录出现了

 

nfs 挂载 docker nfs 挂载nfs_服务器_08

三、测试文件共享

在服务端共享目录下创建文件

nfs 挂载 docker nfs 挂载nfs_服务器_09

 在客户端查看,已出现对应文件,此时共享是成功的

在客户端共享目录创建文件

此时出现了报错,仔细看是目录权限的问题

nfs 挂载 docker nfs 挂载nfs_linux_10

回到服务端查看目录权限,发现共项目录只有本机用户才有写权限

 

nfs 挂载 docker nfs 挂载nfs_运维_11

现在给目录赋权

 chmod -R 777 /app/nas

nfs 挂载 docker nfs 挂载nfs_nfs 挂载 docker_12

回到客户端继续创建文件,发现文件已经创建成功

nfs 挂载 docker nfs 挂载nfs_运维_13

 至此,完结撒花...

报错小记:

从这里看我把文件挪入到共项目录是没有权限的

nfs 挂载 docker nfs 挂载nfs_nfs_14

 但其实没问题,文件已经被挪到nas目录下了

nfs 挂载 docker nfs 挂载nfs_linux_15

 参考网络上的解答是如下原因:

There’s your problem. vfat knows nothing about Linux permissions. It’s not an issue of USB mounts, but of file-systems used.

Oh: and to answer your question - no, it’s not a problem.

vfat对Linux权限一无所知。这不是USB挂载的问题,而是使用的文件系统的问题。

这不是问题。

nfs-utils离线安装

下载nfs-utils离线安装包并解压

nfs 挂载 docker nfs 挂载nfs_nfs 挂载 docker_16

安装 rpm -ivh *.rpm --force --nodeps

 并启动systemctl start nfs-server

nfs 挂载 docker nfs 挂载nfs_运维_17

 注:--force --nodeps 可以无视依赖安装