青蛙学Linux—NFS

NFS,Network File Syttem,网络文件系统。它允许网络上运行不同操作系统的主机通过网络连接到运行NFS服务的主机上,以实现数据共享。NFS的配置非常简单,经过简单的设置既能快速使用NFS。

使用NFS,首先在服务端运行NFS服务,并设置共享指定的目录,客户端即可将该目录挂载到本地,以使用这些共享的目录。

1、NFS服务端配置

要运行NFS服务端依赖以下软件包:

rpcbind
nfs-utils

请确保运行NFS服务端的主机已经安装了以上软件包。如果以上软件包尚未安装,可以使用YUM进行安装。

NFS服务端需要启动以下两个服务:

rpcbind
nfs
nfslock    # 分布式锁,运行在服务端,由客户端进行请求加锁,一个可选的服务

NFS服务端的配置文件为:

/etc/exports

该文件默认为空。该文件的格式非常简单:

共享路径 客户端地址(选项)
  • 共享路径:提供给客户端访问的目录
  • 客户端地址:允许访问服务器共享资源的主机,可以是IP地址、主机名、域名,支持通配符
  • 选项:可能为以下值, ro – read only,客户端对共享资源仅有只读的权限;rw – read write,客户端对共享资源拥有读写的权限;no_root_squash - 信任客户端root用户,如果客户端登录的用户为root,则客户端对共享资源拥有最高权限;root_squash - 默认值,不信任客户端root用户,如果客户端登录的用户为root,则将被映射成为nfsnobody,对于共享资源仅有只读的权限;all_squash - 不管客户端登录的是什么用户,都将被映射为nfsnobody;no_all_squash - 默认值,只有当客户端登录的用户UID和GID与共享资源的UID和GID一致时,该用户才对共享资源拥有读写权限;sync - 默认值,共享数据同步写入磁盘;async - 数据暂时保存在内存,不写入磁盘

在完成/etc/exports的配置之后,使用以下命令使配置立即生效:

exportfs [选项]

常用选项:

  • -r:重新挂载共享目录
  • -v:在屏幕上输出详细信息

2、连接NFS服务器

2.1、Linux主机连接NFS服务器

在需要连接到NFS服务器的主机上也必须安装以下依赖包:

rpcbind
nfs-utils

使用mount命令即可连接到NFS服务器上指定的共享目录:

mount -t nfs NFS服务器:共享目录 本地目录

使用以下命令可以查看NFS服务器上的共享目录:

showmount -e NFS服务器

2.2、Windows连接NFS服务器

NFS支持不同的操作系统,所以Windows也可以连接到NFS服务器以使用共享的资源。这里以Windows 10为例介绍如何在Windows下连接NFS服务器。

安装Windows下的NFS支持软件:

打开控制面板,进入程序和功能,然后点击启用或关闭Windows功能选项,勾选以下内容

1

确定后等待功能安装完毕,然后进入命令提示符,使用以下命令连接NFS服务器:

mount \\NFS服务器\共享目录 盘符

3、一个例子

有主机A、B、C三台主机,在主机A上运行NFS服务,主机B和C做为客户端连接到主机A上使用同一个共享目录。

三台主机的状况如下:

  • 主机A:IP地址为192.168.0.106,操作系统为CentOS 6.10
  • 主机B:操作系统为CentOS 7.5.1804
  • 主机C:操作系统为Windows 10

3.1、NFS服务端设置

使用YUM查看是否已经安装NFS依赖的软件包:

[root@localhost /]# rpm -qa|grep rpcbind
rpcbind-0.2.0-16.el6.x86_64
[root@localhost /]# rpm -qa|grep nfs-utils
nfs-utils-lib-1.1.5-13.el6.x86_64
nfs-utils-1.2.3-78.el6_10.1.x86_64

查看rpcbing和nfs服务是否已经启动:

[root@localhost ~]# service rpcbind status
rpcbind (pid  1684) 正在运行...
[root@localhost ~]# service nfs status
rpc.svcgssd 已停
rpc.mountd (pid 2503) 正在运行...
nfsd (pid 2519 2518 2517 2516 2515 2514 2513 2512) 正在运行...
rpc.rquotad (pid 2498) 正在运行...

服务端设置允许任何主机连接,并设置rw及all_squash,共享目录为/data。在/etc/exports中写入如下内容:

/data *(rw,all_squash)

由于使用的是all_squash选项,客户端登录到NFS服务器的用户将被自动映射为nfsnobody,所以必须将/data目录的属主和属组设置为nfsnobody,这样客户端才可以读写共享目录:

[root@localhost /]# chown -R nfsnobody:nfsnobody data

使配置立即生效:

[root@localhost ~]# exportfs -r

3.2、主机B连接NFS服务器

主机B的操作系统为CentOS 7.5.1804,所以这里先检查下NFS依赖的软件包是否安装:

[root@localhost ~]# rpm -qa|grep rpcbind
[root@localhost ~]# rpm -qa|grep nfs-utils

无任何返回信息,表明依赖的软件包尚未安装,使用YUM安装这两个依赖包:

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

安装好依赖包后使用mount命令挂载NFS服务器上的共享目录,挂载到主机B的/nfs目录下:

[root@localhost ~]# mount -t nfs 192.168.0.106:/data /nfs

使用df命令查看是否挂载成功:

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   22G  2.1G   20G   10% /
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G  8.8M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M   14% /boot
tmpfs                    783M     0  783M    0% /run/user/0
192.168.0.106:/data       22G  2.9G   18G   14% /nfs

通过返回的信息可以看到共享目录已经挂载到了/nfs。

3.3、主机C连接NFS服务器

首先查看控制面板-程序和功能-启用和关闭Windows功能下的NFS服务是否已经安装,安装完成后即可使用以下命令连接NFS服务器,并为共享目录分配 x: 盘符:

Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。C:\Users\FangYu>mount \\192.168.0.106\data x:
x: 现已成功连接到 \\192.168.0.106\data命令已成功完成。

此时在资源管理器里就可以看到x盘了:

2

转载于:https://www.cnblogs.com/yu2006070-01/p/10149260.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

extjs 学习中

首先找了个js得开发工具:Komodo Edit 但是安装了好多次都没有出现提示,均告失败!今天再次鼓起勇气安装试试:首先安装Komodo-Edit-4.3.2-1263; 成功!然后: 下载extjs_api_catalogs-2.0.2-ko.xpi &#xff…

好友让我看这段代码

周末的时候,一个微信好友让我旁边看一段代码在写下面的文章之前,我先简单说下写代码是一件非常有意思的事情,同时也是一件需要我们认真对待的事情,我不认为一定要把代码写的和大神一样看不明白,但是至少要逻辑清晰&…

使用github管理Eclipse分布式项目开发

使用github管理Eclipse分布式项目开发 老关我在前面的博文(github管理iOS分布式项目开发)中介绍了github管理iOS分布式开发,今天老关将向大家介绍使用github管 理Eclipse分布式项目。事实上我们的516inc团队这在开发一个多移动平台项目&#…

小玩一个并行多线程MCU—MC3172

大家好转发一篇杂烩君的文章,杂烩君是我同一个高中的老乡,他平时分享的嵌入式知识非常不错。——————大家好,我是杂烩君。最近,朋友送了块小板子,板子上的MCU是个很有意思的东西——并行多线程处理器MC3172 。通俗…

Android 人脸识别签到(一)

因为Android课程设计自己选题,所以作者选了这个相对简单的。本来开始是想做大学课程查签到,拍一张集体照,就可识别哪些人已到,哪些未到。查了一下百度AI开发平台的人脸识别接口,发现V3的接口文档有M:N的人脸识别&#…

[系列文章]上传文件管理控件v2

一、引言: 开发v1的时候,遇到很多困难(因为我是新手),于是就上网找了一些资料。 其中,这篇《数据绑定的总结 》文章(http://www.cnblogs.com/qingtianyzl/articles/351012.html)被我…

[ mongoDB ] - mongoDB的基本操作

mongoDB的基本操作 强烈推荐参考官方用户手册: http://www.mongodb.org/display/DOCS 1)插入(insert) 插入的value是json对象,以下示例循环添加了10个用户信息,字段可以是字符串、数值、对象、数组等。 通过VUE查看&am…

信号量保护之位带操作

大家好,上篇文章写的一个中断操作变量的问题,鱼鹰帮忙回复了,大家可以再看看这篇文章。好友让我看这段代码CM3位带操作如果存储器系统支持“锁定传送”( lockedtransfers),或者总线上只有一个主机&#xff…

CCScene切换的所有特效(28种)以及设置屏幕横竖屏!

CCScene 对于使用cocos2d的童鞋肯定很熟悉,那么在使用 CCScene *s [CCScenenode];[s addChild: [restartAction() node]];[[CCDirectorsharedDirector]replaceScene:s]; 对scene进行场景(CCLayout)进行切换时,cocos2d提供了一…

关于MySqlConnection的一个特殊异常

最近给一个客户做一个项目,其中要与另外一个系统进行数据交换,而那个系统使用的是MySql,因此,从网上下载了一个MySql Connector,由于以前没有用过MySql,而且这个MySql服务器位于互联网上,因此&a…

文档设置及使用

原文链接:http://stynzf.blogbus.com/logs/15944928.html在上一篇文档(《微软文档管理解决方案2007》之一:安装部署)中,讲述了如何安装部署“文档管理解决方案” 这次我们通过将该子网站作为“Windows中文站”的一个文…

SSL和HTTPS

SSL说明: 1)简介 SSL (Secure Socket Layer)为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。它已被广泛地用于Web浏览器与服务器之间…

N32替换STM32,这些细节别忽略!

前言目前大形势影响,芯片价格日益上涨,采购周期变长,导致国产芯片替代进口芯片成为大趋势,该文章记录了使用国民技术的N32替换STM32的操作流程。话不多说,上步骤。一、工程配置1.安装硬件库硬件库为厂家提供的资料&…

五分钟读懂UML类图

平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一、类的属性的表示方式 在UML类图中,类使用包含类名、属性(field) 和方法(meth…

只会纯硬件,让我有点慌

纯硬件产品在市面上现在很少了,大多都带有单片机,比如智能路灯,智能门禁,智能家居等等。为了提高竞争力,单片机相关知识的学习必不可少。给大家推荐一本龙顺宇老师的新书《深入浅出STC8增强型51单片机进阶攻略》。&…

NSLog的常用格式说明小释

NSLog的格式如下所示: % 对象%d, %i整数%u 无符整形%f 浮点/双字 %.nf 带有n小数点的浮点/双字%x, %X二进制整数%o 八进制整数%zu size_t %p 指针%e 浮点/双字 (科学计算) %g 浮点/双字%s C字符串%.*s Pascal字符串%c 字符%C unichar %lld 64位长整数(long long) %llu 无符64位…

感觉自己好傻

前几天,一个微信微信朋友找我聊天。他在一家公司工作了4年多,但是这四年基本没有什么技术上的提升,做的事情也一些打杂的事情,核心技术在芯片原厂,软件SDK也是别人写好的,他能做的就是对接客户,…

图形处理单元(GPU)的演进

CPU 和 GPU好久没有更新了,最近在阅读 CUDA 相关的一些论文,因为都是碎片化阅读,容易导致读过后,可能过一段时间又忘记掉,所以决定抽时间翻译翻译阅读的论文,一方面增强自己记忆,一方面与大家共…

TCP通信过程大讨论

转载地址:http://www.cricode.com/3568.html 本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。 图1 TCP 三次握手…

Android 自定义View以及ValueAnimator学习

2019独角兽企业重金招聘Python工程师标准>>> 看了ApiDemo里面的BoucingBall,觉得挺好的,所以特地学习了一下,将代码注释后贴到这里,以便以后学习。 class BallView extends View implements ValueAnimator.AnimatorUpd…