一. NFS服务介绍

1.1什么是NFS服务

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样,也就是说客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。

1.2 NFS服务的优缺点

1.2.1优点

a.节省本地存储空间将常用的数据存放在一台服务器可以通过网络访问

b.简单容易上手

c.方便部署非常快速,维护十分简单

1.2.2缺点

a.局限性容易发生单点故障,及server机宕机了所有客户端都不能访问

b.在高并发下NFS效率/性能有限

c.客户端没用用户认证机制,且数据是通过明文传送,安全性一般(一般建议在局域网内使用)

d.NFS的数据是明文的,对数据完整性不做验证

e.多台机器挂载NFS服务器时,连接管理维护麻烦

2. NFS服务工作原理

2.1 NFS原理简单介绍

NFS Server服务器上设定/data目录被分享,而客户端可以通过internet将/data目录挂载到本地的挂载点(常用mnt)后,客户端就可以进入挂载点目录进行文件的读写。NFS客户端所开放的端口是随机的我们不知道,那该怎么办呢?那是不是就不能进行数据传输了呢?

2.2 RPC简单介绍

2.2.1什么是rpc服务

RPC(Remote Procedure Call)即远程过程调用。RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的port上去。

2.2.2 RPC服务原理

a.执行顺序:1(注册端口)--à2(达成协议)-à3(直接建立联系)--à4(达成协议)--à5(建立连接)

b.那为啥rpc能够找到对应的port呢?这是因为当服务器在启动NFS时会随机取用数个port,并且主动的向RPC注册,因此RPC可以知道每个NFS的port对应的NFS功能,然后RPC又是固定使用port111来监听客户端的需求并汇报客户端的正确的port。

2.2.3 portmap

功能:主要是把RPC程序号转化为Internet的端口号。

特点:只在第一次建立连接时候帮助网络应用程序找到正确的port,当当双方正确连接时,端 口就和应用绑定,portmap就无用。相当于媒婆。

RPC:Remote Procedure Call,远程过程调用,如NFS

二、部署

1、进程

rpc.nfsd        NFS守护进程

rpc.mountd        管理文件系统和权限

portmap        端口映射

uid,gid

2、常用目录和文件

/etc/exports

/usr/sbin/exportfs

/usr/sbin/showmount

/var/lib/nfs/*tab

etab        记录NFS分享出来的目录的完整权限设定值

xtab        记录曾经链接到此NFS主机的相关客户端数据

3、配置文件

/etc/exports

格式

输出目录        客户端 选项        [访问权限,用户映射,其他]

输出目录:        需要共享的目录路径

客户端:        服务的用户对象

选项:        共享的权限,紧跟客户端列

例:

cat /etc/exports

/test *(ro)

#共享/test目录,*所有用户(ro)权限为只读权限

4、客户端

指定ip地址的主机:192.168.171.144

指定子网中的所有主机:192.168.171.0/24, 192.168.171.0/255.255.255.0

指定域名的主机:www.baidu.com

指定域中的所有主机:*.baidu.com

所有主机:*                                                张三                      李四 S

5、选项                                               root

访问权限选项:

ro        只读

rw        读写

no_all_squash                      对普通用户不映射(默认设置)

all_squash                将所有普通用户和组映射为匿名用户和组

root_squash                将root用户和组映射为匿名用户和组(默认设置)

no_root_squash        对root用户和组不映射

anonuid=xxx                将用户映射为服务器上的指定UID

anongid=xxx                将用户组映射为服务器上的指定GID

其他选项:

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

用户映射选项:(张三用了李四家的nfs服务,但是张三用root的身份在李四上面创建了一个文件,这个文件默认的所属用户所属组都是root,但是对于李四来说他可能将这个文件认为是自己服务端上的root创建的文件所以张三创建的这个root用户的文件在nfs上会默认映射为匿名用户和组。还有如果张三用redhat用户在李四上创建但是李四端就没有redhat用户,默认创建就不会显示为redhat了。)

例子

服务端

配置#vim /etc/exports

/data *(ro)                        :wq

#mkdir /data

配置完成后重启服务

#systemctl restart nfs

用以下命令来查看共享的nfs

#showmount -e 192.168.221.250

Export list for 192.168.140.250:

/data *

关闭防火墙

#systemctl stop firewalld

客户端

#mount (服务端地址)192.168.140.250:/data /mnt

服务端

[root@r ~]# exportfs -r  重新读一遍

#ehco haha >> /data/haha

客户端

[root@hehe mnt]# ll /mnt

总用量 4

-rw-r--r--. 1 root root 5 2月  11 10:28 haha

注意:在客户端如果要删除haha文件需要在服务端的主配置文件更改为

data *(rw)

将ll -d /data 权限更改为如下

[root@r ~]# ll -d /data

drwxr-xrwx. 2 root root 17 2月  11 10:28 /data

然后在客户端删除/mnt/haha

在客户端写入文件

[root@hehe mnt]# echo hehe >> /mnt/hehe.txt

[root@hehe mnt]# ll /mnt

总用量 4

-rw-r--r--. 1 nfsnobody nfsnobody 5 2月  11 10:55 hehe.txt   root用户直接映射为匿名用户

如果是在客户端用普通用户创建文件在/mnt 在服务端查看/data的权限是客户端普通用户的uid,gid 如果在服务端有与客户端相对应的uid gid就显示用户名。

/data  *(rw,all_squash)

exportfs -r

NFS文件共享(net file system)相关推荐

  1. NFS(Network File System 网络文件系统)

    NFS(Network File System 网络文件系统) Linux与Linux之间的文件共享.提供远端读存文件的服务 最主要的功能就是让网络上的UNIX可以共享目录及档案.可以将远程所共享出来 ...

  2. Centos7——NFS(Network File System)服务

    NFS(Network File System)即网络文件系统,允许计算机之间通过网络共享资源:在NFS客户端即可NFS服务端所共享的目录挂载到本地,此时即可像读写本地目录一样读写远程计算机的目录与文 ...

  3. NFS (Network File System)网络文件系统

    文章目录 1.nfs简介 1.1应用场景 2.nfs工作机制 2.1体系组成 2.2实现原理 2.3工作机制 2.4相关配置参数 安装步骤 1.nfs简介 主要用于网络中linux或unix计算机之间 ...

  4. NFS服务器是什么?(Network File System 网络文件系统)(远程主机间 mount 挂载目录)(ubuntu:nfs-kernel-server)

    NFS 是 Network File System的简写.NFS 是由Sun公司发展, 并於1984年推出, NFS是一个RPC service ,它使我们能够达到档案的共享, 它的设计是为了在不同的 ...

  5. Linux上(Redhat7)实现NFS文件共享服务

    NFS(Network File System)网络文件系统基于TCP/IP 主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录,可以像使用本地主机资源那样远程读写文件夹 主要用途:N ...

  6. windows10没有nfs服务_CentOS 7集群间实现NFS文件共享

    最近在搞实验室集群环境,需要把存储服务器用起来,两台存储服务器大概12T的大小,想实现使其他的8个计算节点都能像访问本地目录一样访问存储服务器,类似Windows下的文件共享,因此使用了NFS服务. ...

  7. Linux运维笔记-文档总结-NFS文件共享(网络文件系统)

    转自:http://m.blog.csdn.net/blog/index?username=Ningdaxing1994 觉得这个写得不错哈哈~ 以下所有操作都是在Red-hat 7.0上 1.NFS ...

  8. linux nfs 修复文件,linux nfs Read-only file system

    root@pts/4 # touch 1 touch: cannot touch `1': Read-only file system mount没有权限? root@pts/0 # mount /d ...

  9. NFS==network file system

    NFS ==network file system 建立NFS yum install -y nfs-utils rpcbind # rpcbind:网络通信工具 vim /etc/exports 写 ...

最新文章

  1. Pure-FTPd服务器
  2. 独家 | 5个机器学习开源项目来挑战你的数据科学技能!(附链接)
  3. 配置Servlet3.0的方式和注意事项!
  4. NeurIPS 2020 | 微软亚研院论文摘录之强化学习GAN篇
  5. 第08章-使用Spring Web Flow
  6. 网络多人聊天室1.0 群聊
  7. HDUOJ---携程员工运动会场地问题
  8. 深度学习之facenet人脸识别网络介绍
  9. 平衡二叉树的调整(详解 LL、RR、LR、RL)
  10. python_飞机大战_main_py_一
  11. 双问号??在 js 中的应用
  12. Java 消息队列、缓存、同步(个人理解:空谈)
  13. 企业为什么要上OA?
  14. 初识postgrest
  15. 一个无向图包含 2020 条边,如果图中没有自环和重边,请问最少包含多少个结点?
  16. 关于 simulink 的 1/z 模块是什么的问题
  17. 简单的小青蛙跳一跳问题
  18. HTML(网页设计)基础到加强
  19. camstart API 服务器负载均衡
  20. win10开机内存占用80%,内存占用过高

热门文章

  1. 不多于 5 位的正整数逆序输出(python)
  2. 如何让窗口总在最下面?
  3. 有哪些适合户外使用的耳机值得推荐?户外运动耳机盘点
  4. capabilities: ambient capabilities说明
  5. ​永洪科技出席科博会:领先源于洞察
  6. 在数字世界复刻现实:与5G同频共振的XR远景
  7. 计算机在医学影像中的应用,计算机图像处理技术在医学影像中的进展与应用研究...
  8. 魅蓝metal是android吗,红米Note3和魅蓝metal哪个好?有什么区别?
  9. 基于jsp+mysql+ssm社会保险养老系统-计算机毕业设计
  10. JBOSS EAP实战(1)