NFS服务器简介

Linux和Windows之间可以通过Samba共享文件,Linux之间资源共享可以用到网络文件系统(Network File System , NFS)

它的核心功能就是可以通过网络,让不同的客户端,可以彼此访问共同的文件系统 ,来实现文件的共享。

NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步

NFS的好处

1.本机使用更少的磁盘空间
2.home目录可以被放在NFS服务器上,并在网络中随处可用

实验原理:

RPC远程进程调用

因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111。
当客户端需求NFS服务时,就会访问服务器的111端口(RPC),RPC会将NFS工作端口返回客户端。

NFS服务流程

  1. NFS启动时,自动选择工作端口小于1024的1011端口,并向RPC(工作于111端口)汇报,RPC记录。
  2. 客户端需要NFS提供服务时,首先向111端口的RPC查询NFS工作端口。
  3. RPC回答客户端,NFS工作在1011端口。
  4. 然后,客户端直接访问NFS服务器的1011端口,请求服务。
  5. NFS服务经过权限认证,允许客户端访问自己的数据。

NFS服务组件

  1. rpc.nfsd
    这个守护进程的主要作用就是判断,检查客户端是否具备登陆主机的权限,负责处理NFS请求。
  2. rpc.mounted
    这个守护进程的主要作用就是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录主机后,在开始使用NFS主机提供的文件之前,它会检查客户端的权限(根据/etc/ exports来对比客户端的权限)。通过这一关之后,客户端才可以顺利访问NFS服务器上的资源。
  3. Rpcbind
    这个守护进程的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过该端口向服务器请求服务。
  4. rpc.locked
    rpc.stated守护进程使用本进程来处理崩溃系统的锁定恢复。因为既然NFS文件可以让众多的用户同时使用,客户端同时使用一个文件时,就有可能造成一些问题。此时,rpc.locked可以帮助解决这个难题。
  5. rpc.stated
    这个守护进程负责处理客户与服务器之间的文件锁定问题,确定文件的一致性(与rpc.locked有关)。当因为多个客户端同时使用一个文件造成文件破坏时,rpc.stated可以用来检测该文件并尝试恢复。
  6. rpc.quotad
    这个守护进程提供了NFS和配额管理程序之间的接口。不管客户端是否通过NFS对它们的数据进行处理,都会受配额限制。

Linux下NFS服务器部署

我是在centos7上进行的部署

  1. 首先安装nfs服务
[root@nfs ~]# yum clean all  //安装前先清除缓存
[root@nfs ~]# yum install rpcbind nfs-utils -y

启动nfs服务

[root@nfs ~]# systemctl restart rpcbind
[root@nfs ~]# systemctl restart nfs

查询NFS程序是否正常运行
我们看到nfs和mounted选项,说明NFS正常运行。

root@nfs ~]# rpcinfo -pprogram vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100024    1   udp  47228  status100024    1   tcp  54782  status100005    1   udp  20048  mountd100005    1   tcp  20048  mountd100005    2   udp  20048  mountd100005    2   tcp  20048  mountd100005    3   udp  20048  mountd100005    3   tcp  20048  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl100003    3   udp   2049  nfs100003    4   udp   2049  nfs100227    3   udp   2049  nfs_acl100021    1   udp  43697  nlockmgr100021    3   udp  43697  nlockmgr100021    4   udp  43697  nlockmgr100021    1   tcp  46497  nlockmgr100021    3   tcp  46497  nlockmgr100021    4   tcp  46497  nlockmgr

配置共享目录,在/etc/exports配置文件中编辑

export文件格式
NFS服务的配置,主要就是创建并维护/etc/exports文件。

[root@nfs ~]# mkdir /tmp1   //创建共享目录
[root@nfs ~]# mkdir /tmp2
[root@nfs ~]# vim /etc/exports
/tmp1  192.168.225.0/24(rw)
/tmp2  192.168.225.0/24 (rw)
#共享目录   nfs客户端1(权限)  nfs客户端2(权限)
[root@nfs ~]# firewall-cmd --permanent --add-service=nfs
success    //配置防火墙放行nfs服务
[root@nfs ~]# firewall-cmd --reload
success
[root@nfs ~]# systemctl restart nfs  //重启nfs服务

export文件格式
例如:
/home Client(rw)
/home Client (rw) #注意有个空格
在以上的第一行中,客户端Client对/home目录具有读取和写入权限,而第二行中的Client对/home目录只具有读取权限(这是系统对所有客户端的默认值)。而除Client之外的其他客户端对/home目录具有读取和写入权限。
权限规则:
至于权限方面(就是小括号内的参数),常见的参数有以下几种。
● rw:read-write,可读/写的权限。
● ro:read-only,只读权限。
● sync:数据同步写入内存与硬盘当中。
● async:数据会先暂存于内存当中,而非直接写入硬盘。
● no_root_squash:登录NFS主机使用共享目录的用户,如果是root,那么对于这个共享的目录来说,它就具有root的权限。这个设置“极不安全”,不建议使用。
● root_squash:如果登录NFS主机使用共享目录的用户是root,那么这个用户的权限将被压缩成匿名用户,通常它的UID与GID都会变成nobody(nfsnobody)这个系统账号的身份。
● all_squash:不论登录NFS的用户身份如何,它的身份都会被压缩成匿名用户,即nobody(nfsnobody)。
● anonuid:anon是指anonymous(匿名者),前面关于术语squash提到的匿名用户的UID设定值,通常为nobody(nfsnobody),但是可以自行设定这个UID值。当然,这个UID必须存在于/etc/passwd当中。
● anongid:同anonuid,但是变成Group ID就可以了。

nfs客户端挂载配置:
使用showmount命令查看nfs服务器共享信息。

[root@nfs ~]# showmount -e 192.168.225.10   //nfs服务器IP
Export list for 192.168.225.10:
/tmp2 (everyone)
/tmp1 192.168.225.0/24

在客户端创建目录,并挂载共享目录

[root@client ~]# mkdir /mnt/public
[root@client ~]# mkdir /mnt/data
[root@client ~]# vim /etc/fstab  //自动挂载
192.168.225.10:/tmp1 /mnt/public  nfs defaults 0 0
192.168.225.10:/tmp2 /mnt/data nfs defaults 0 0
[root@client ~]# mount -a  //使文件生效
[root@client ~]# df -Th     //检查是否挂载成功
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G   1% /run
tmpfs                   tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.4G   31G  13% /
/dev/sda1               xfs      1014M  185M  830M  19% /boot
tmpfs                   tmpfs     378M   24K  378M   1% /run/user/0
/dev/sr0                iso9660   4.4G  4.4G     0 100% /run/media/root/CentOS 7 x86_64
192.168.225.10:/tmp1    nfs4       36G  4.8G   31G  14% /mnt/public
192.168.225.10:/tmp2    nfs4       36G  4.8G   31G  14% /mnt/data

测试
在nfs服务器的共享目录里创建一个10.txt文件

[root@nfs ~]# cd /tmp1
[root@nfs tmp1]# touch 10.txt
[root@nfs tmp1]# vim 10.txt
[root@nfs tmp1]# cat 10.txt
this is first tmp

在客户端的挂载目录里可以看到有一个10.txt文件

[root@client ~]# cd /mnt/public/
[root@client public]# ls
10.txt
[root@client public]# cat 10.txt
this is first tmp

这样就可以实现Linux 间的文件共享

NFS服务器搭建与配置相关推荐

  1. Centos7 | NFS服务器搭建与配置

    一.NFS服务简介 1.什么是NFS NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器.不同的操作系统可以共享彼此的文件. NFS服务器可以让PC将网 ...

  2. NFS服务器搭建及配置

    环境规划 将web服务的站点目录挂载到共享目录 实现修改共享目录下的内容 web服务一访问即发生变化 从而证明nfs创建成功 名称 ip nfs服务端 10.0.0.6 web服务器 10.0.0.7 ...

  3. ubuntu nfs 服务器搭建

    参考资料:朱老师物联网大讲堂嵌入式linux一期课程,环境搭建相关资料(微信搜索"朱老师物联网大讲堂",关注公众号可下载相关资料) ubuntu nfs 服务器搭建 前言 一.安装 ...

  4. Exynos4412 NFS服务器搭建

    环境: 主机:ubuntu 12.04 开发板主芯片:Exynos4412 交叉编译器:arm-2009q3.tar.bz2 一.确保pc ip和开发板ip处于同一网段 例如:我的ubuntu12.0 ...

  5. 网站服务器怎么组件,网站服务器搭建与配置详解!

    原标题:网站服务器搭建与配置详解! 服务器大家经常会听说,但是可能大家对个中概念还有些不明白,这里跟大家说说网站服务器的搭建与配置. 网站服务器概念 网站服务器是网络应用的基础硬件设施,简言之即存放网 ...

  6. Git服务器搭建和配置

    Git服务器搭建和配置 参考博客: 1.http://blog.csdn.net/michaelhan3/article/details/51637271 2.http://blog.csdn.net ...

  7. NFS服务器搭建-共享PC与ARM主板文件

    NFS服务器搭建-共享PC与ARM主板文件 在搭建好交叉编译环境之后需要实现目标板与宿主机的文件共享,在这里选择NFS,由于资料较多.需要注意的以下几点: 目标板与宿主机需要连接在同一个网段内. 宿主 ...

  8. 网络系统管理赛项之debian 十七 . LDAP服务器搭建及配置方法

    LDAP服务器搭建及配置方法 LDAP服务器搭建 一.赛题LDAP搭建需求 二.LDAP简单理论介绍 1.什么是LDAP? 2.LDAP相关模型 三.安装 slapd 安装过程 四.修改主配置文件 五 ...

  9. FTP服务器搭建与配置

    FTP服务器搭建与配置 01.FTP简介 FTP的全称是File Transfer Protocol,即文件传输协议.可以FTP程序访问远程资源. 02.勾选FTP服务器选项 步骤:打开控制面板-&g ...

最新文章

  1. 关于tomcat中文乱码的问题解决
  2. 解决WAMP搭建PHP环境后后局域网其他机器无法访问的问题
  3. 每天AI资讯这么多,该看哪些?推荐一份优质AI内参!
  4. 用微信小程序开发的Canvas绘制可配置的转盘抽奖
  5. JSON 分析数据格式
  6. 【Transformer】TNT: Transformer iN Transformer
  7. delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
  8. unity3d 预制体
  9. (五)nodejs循序渐进-回调函数和异常处理(基础篇)
  10. django-后台管理
  11. 给定一个数组 prices计算其利润最大
  12. 如何使用APUE源代码(UNIX高级编程)-转
  13. webdriver 等待页面加载完成_Python爬虫,登陆神器Selenium等待(waits)页面加载的三种方法...
  14. 麻瓜编程python web百度网盘_麻瓜编程_Python Web开发工程师_附课程配套资料
  15. Linux内核五个安全模块简述
  16. typecho图片插件_Typecho图片表情插件Smilies1.1.3更新
  17. 2^n-1的因数分解问题
  18. 菜肴百度百科html,酸汤鱼
  19. 微信营销十一(微信公众号吸粉技巧)
  20. 如果到来,会是怎样情况,fuck,

热门文章

  1. z世代消费力白皮书_“Z世代”的世界 消费流里的商机
  2. java archlinux_ArchLinux的使用(2):开发环境的搭建
  3. EMUI10升级用户破亿,助推HUAWEI HiCar驶入生态发展快车道
  4. 数字拆分问题算法回溯_拆分自然数的几种算法
  5. altium designer导入cad图纸
  6. 什么是显卡的OpenGL模式
  7. 【SemiDrive源码分析】【X9芯片启动流程】26 - R5 SafetyOS 之 LK_INIT_LEVEL_TARGET 阶段代码流程分析(TP Drvier、Audio Server初始化)
  8. 易诚互动携手阿里金融云加速银行业云化
  9. linux 定时器 jiffies,linux下jiffies定时器和hrtimer高精度定时器(示例代码)
  10. 卫龙携手契约锁,推动人事、采购、销售业务电子签