NFS服务器

NFS服务端概述:

NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

模式:C/S 模式

端口:

RHEL7是以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接

安装nfs

[root@docker-01 ~]# yum -y install rpcbind nfs-utils

配置文件位置

[root@docker-01 ~]# ls /etc/exports

/etc/exports

启动NFS服务

先查看2049端口是否开放:

[root@docker-01 ~]# netstat -antpu | grep 2049

[root@docker-01 ~]# systemctl start rpcbind

[root@docker-01 ~]# systemctl start nfs-server.service

再次查看端口监听状态

[root@docker-01 ~]# netstat -antpu | grep 2049

tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -

udp 0 0 0.0.0.0:2049 0.0.0.0:* -

配置开机自动启动

[root@docker-01 ~]# systemctl enable nfs-server.service

服务的使用方法(看下机器名字,客户端挂载)

showmount -e NFS服务器IP

例:

[root@docker-02 opt]# showmount -e 172.17.120.50

Export list for 172.17.120.50:

挂载(发现挂载不上报错)

[root@docker-02 opt]# mount 172.17.120.50:/tmp /opt

mount.nfs: access denied by server while mounting 172.17.120.50:/tmp

修改配置文件,实战举例

[root@docker-01 tmp]# vim /etc/exports

/tmp *(rw)

注意: * 表示对所有网段开放权限

也可以指定特定的网段

下面是一些NFS共享的常用参数:

ro 只读访问

rw 读写访问

sync 资料同步写入到内存与硬盘当中

async 资料会先暂存于内存当中,而非直接写入硬盘

secure NFS通过1024以下的安全TCP/IP端口发送

insecure NFS通过1024以上的端口发送

wdelay 如果多个用户要写入NFS目录,则归组写入(默认)

no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。

Hide 在NFS共享目录中不共享其子目录

no_hide 共享NFS目录的子目录

subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)

no_subtree_check 和上面相对,不检查父目录权限

all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。

no_all_squash 保留共享文件的UID和GID(默认)

root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash root用户具有根目录的完全管理访问权限

重启服务

[root@docker-01 tmp]# exportfs -rv ##重新读取配置文件,不中断服务.

exporting *:/tmp

客户端查看:

[root@docker-02 opt]# showmount -e 172.17.120.50

Export list for 172.17.120.50:

/tmp *

挂载共享

[root@docker-02 opt]# mount -t nfs 172.17.120.50:/media/ /opt/

[root@docker-02 opt]# df -Th

文件系统 类型 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root xfs 198G 1.4G 197G 1% /

devtmpfs devtmpfs 4.8G 0 4.8G 0% /dev

tmpfs tmpfs 4.9G 0 4.9G 0% /dev/shm

tmpfs tmpfs 4.9G 8.5M 4.8G 1% /run

tmpfs tmpfs 4.9G 0 4.9G 0% /sys/fs/cgroup

/dev/vda1 xfs 397M 133M 264M 34% /boot

tmpfs tmpfs 984M 0 984M 0% /run/user/0

172.17.120.50:/tmp nfs4 198G 1.4G 197G 1% /opt

开机自动挂载:

编辑

[root@docker-02 opt]# vim /etc/fstab

在文件最后添加自动挂载的信息:

/dev/mapper/centos-root / xfs defaults 0 0

UUID=79285dbe-478c-4de0-93e7-ee906f1133cc/boot xfs defaults 0 0

/dev/mapper/centos-swap swap swap defaults 0 0

172.17.120.50:/tmp /opt nfsdefaults0 0

验证写入权限

[root@docker-02 opt]# umount /opt/

[root@docker-02 opt]# ls

yunweimao

[root@docker-02 opt]# df -Th

文件系统 类型 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root xfs 198G 1.4G 197G 1% /

devtmpfs devtmpfs 4.8G 0 4.8G 0% /dev

tmpfs tmpfs 4.9G 0 4.9G 0% /dev/shm

tmpfs tmpfs 4.9G 8.5M 4.8G 1% /run

tmpfs tmpfs 4.9G 0 4.9G 0% /sys/fs/cgroup

/dev/vda1 xfs 397M 133M 264M 34% /boot

tmpfs tmpfs 984M 0 984M 0% /run/user/0

[root@docker-02 opt]# mount -a

[root@docker-02 opt]# df -Th

文件系统 类型 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root xfs 198G 1.4G 197G 1% /

devtmpfs devtmpfs 4.8G 0 4.8G 0% /dev

tmpfs tmpfs 4.9G 0 4.9G 0% /dev/shm

tmpfs tmpfs 4.9G 8.5M 4.8G 1% /run

tmpfs tmpfs 4.9G 0 4.9G 0% /sys/fs/cgroup

/dev/vda1 xfs 397M 133M 264M 34% /boot

tmpfs tmpfs 984M 0 984M 0% /run/user/0

172.17.120.50:/tmp nfs4 198G 1.4G 197G 1% /opt

[root@docker-02 opt]# touch huqi

[root@docker-02 opt]# ls

huqi yunweimao

如果创建文件夹报错

[root@docker-02 opt]# touch huqi

touch: 无法创建"/huqi": 权限不够

解决方法:

设置访问权限一般包含2部分

1)服务本身权限

2)目录访问权限

nfs默认使用nfsnobody用户

[root@docker-01 tmp]# grep nfs /etc/passwd

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

修改权限

[root@docker-01 tmp]# chmod 777 -R /tmp

[root@docker-01 tmp]# chown nfsnobody.nfsnobody -R /tmp

再次验证写入权限

[root@docker-02 opt]# touch yunweicat

[root@docker-02 opt]# ll !$

ll yunweicat

-rw-r--r--. 1 root root 0 8月 18 15:21 yunweicat

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

本文分享自微信公众号 - 运维猫(centos15),作者:胡齐

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS7 搭建FastDFS分布式文件系统(上)

    FastDFS的作者淘宝资深架构余庆,这个优秀的轻量及的分布式文件系统的开源没多久,立马就火了。FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非...

    胡齐
  • 搭建iscsi存储系统

    SATA:容量大,500G, 750G, 1T, 2T, 3T, 4T 不支持热插拔,价格低。

    胡齐
  • chattr 命令,超越权限任性修改

    chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功...

    胡齐
  • Windows里golang交叉编译Linux文件在docker里的centos中运行

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

    hotqin888
  • Gradle打jar包如何上传到maven本地库

    前言 本篇教程偏向实战,程序猿直接copy代码加入到自己的项目中做简单的修修改改便可使用,而对于Gradle以及Maven不在此进行展开介绍,如有读者...

    互扯程序
  • 尾调用优化

    尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。 ? 一、什么是尾调用? 尾调用的概念非常简单,一句话就能说清楚,就是指某个函数...

    ruanyf
  • Docker容器学习梳理--SSH方式登陆容器

    前面几篇已经介绍了Docker基础环境的部署,下面介绍下通过ssh方式登陆Docker容器的操作记录(其实不太建议直接用ssh去连接上容器的想法,虽然可以,但是...

    洗尽了浮华
  • Oracle数据库的安装与配置

    本文编辑 : 严小样儿 编程工具 : Oracle、Linux、Xstart、CRT或Xshell 阅读时长 : 15分钟

    DataScience
  • 浅析Kafka的消费者和消费进度的案例研究

    本文主要讨论Kafka组件中的消费者和其消费进度。我们将通过一个使用Scala语言实现的原型系统来学习。本文假设你知道Kafka的基本术语。

    you
  • 通过代码组合覆盖率确定回归测试用例的优先级(CS SE)

    回归测试用例优先级排序(RTCP)旨在通过尽早执行更重要的测试用例来提高故障检测率。已经基于不同的覆盖标准提出了各种RTCP技术。其中,大多数技术都利用代码覆盖...

    刘子蔚

扫码关注云+社区

领取腾讯云代金券