阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux NFS服务器详解

544次阅读
没有评论

共计 6065 个字符,预计需要花费 16 分钟才能阅读完成。

What is NFS

NFS 是 Network FileSystem 的缩写,即网络文件系统,它可以实现挂载远程电脑上的设备到本地从而像访问本地磁盘一样操作,有点类似于 windows 的网上邻居。是 SUN 公司 1984 年开发的,v1 版本只在 SUN 公司内部使用过,v2, v3, v4 是公开版本,一般红帽 5 默认是 v3 版本,红帽 6 默认目前最新的 v4 版本。

 

How it works

我们知道一个程序是不可以直接操作硬件资源的,当一个程序需要读写硬盘数据时,需要把请求提交给内核 Kernel, 然后由 kernel 再相关的结果返回给进程,这个过程我们称为本地过程调用 Local Procedure Call. 如果当应用程序的进程要调用的库不在本地而是在远程主机上,这时我们就需要一种可以提供我们远程调用的技术,也就是我们经常会提到的 RPC–Remote Procedure Call, 那么 RPC 我们天天说,到底什么是 RPC 呢,简单的说 RPC 是为了简化公布式程序开发而开发出的一种编程技术,是一种技术框架,有了 RPC 开发人员就不用考虑本地如何去调用远程主机的库等资源,是透明的就像调用本地的一样,一切 RPC 就给办的妥妥的了。而著名的 portmap 就是 RPC 在 Linux 上的一种具体实现,工作在 TCP 和 UDP 的 111 号端口。

回到 NFS 上来简单说一下,NFS 客户端要请求 NFS 服务器时,首先会先把请求发给本地的 RPC stub 存根调用,可以理解成 RPC 客户端然后通过 RPC 客户端与 RPC 服务端联系,RPC 服务端通过分析知道请求的 NFS 资源,然后申请相应的空闲端口给 NFS 进程并通知给 RPC 客户端,这样 NFS 客户端就可以通过得到的端口号和服务器通信啦。

 

安装和配置

1、安装

使用 rpm –qa | grep nfs-utils 查看软件包是否已安装

如果未安装 yum install –y nsf-utils 安装即可

简单说几个安装生成比较重要的文件或程序

/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/rpcsvcgssd // 以上几个是生成的脚本
/etc/sysconfig/nfs //nfs 的配置文件
/sbin/rpc.lockd // 管理文件锁,防止同一文件多人同时读写造成文件损坏
/usr/sbin/exportfs // 这个命令很重要,修改了 exports 文件后不需要重启 nfs 服务就可以刷新服务资源靠的就是他
/usr/sbin/mountstats // 可以按挂载点查看客户端各种状态信息,很详细
/usr/sbin/nfsiostat // 按挂载点查看客户端 IO 详细状态信息
/usr/sbin/nfsstat // 可以查看服务端或客户端各种 NFS 状态信息
/usr/sbin/showmount // 查看 NFS 服务器和挂载上的客户端各种信息

2、配置使用

I) /etc/exports 这个文件控制 NFS 服务器共享出去的资源以及访问权限等

在 NFS 服务器上编辑此文件加上一行

/nfs(服务器上要共享出去的目录)192.168.0.0/24(rw,sync) 可以是单一的 IP 地址,也可以指定网段,rw- 可读写,sync- 同步写入,ro- 只读,rsync- 异步写入

mkdir /nfs 创建共享的目录

II) 保存退出启动 nfs 服务 service nfs start

启动后可以用以下命令查看已经成功共享

[root@ha1 hbase]# showmount -e localhost
Export list for localhost:
/nfs 192.168.188.0/24

III) 客户端挂载设备

mkdir /mnt/nfs 创建挂载点

mount –t nfs 192.168.188.128:/nfs /mnt/nfs

然后就可以切到 /mnt/nfs 目录下像操作本地磁盘一样了

此时在服务器上可以用 showmount –a localhost 查看都有哪些客户端挂载上来了

Linux NFS 服务器详解

3、一些小缺陷和高级应用

nfs 一个比较薄弱的环节在于对用户的身份认证,因为他是通过连接上来的用户的 UID 来识别用户的,所以只要你的 UID 和服务器上的某个存在的用户 UID 相同,你就可以拥有和此用户相同的权限,千说万说不如一看,上图:

在服务器上建立 uid 为 8888 的用户 Hadoop,在 /nfs 目录创建 hadoop 目录并改属主属组为 hadoop

Linux NFS 服务器详解

Linux NFS 服务器详解

在客户端创建一个用户 openstack 其 uid 也为 8888,切换到已挂载的 /mnt/nfs 目录下,可以看到 hadoop 这个目录的属主属组已经变成 openstack 了,

Linux NFS 服务器详解

Linux NFS 服务器详解

再来测试一下权限:服务端用 hadoop 创建文件,客户端修改,删除完全无压力,呵呵是不是挺危险的呢。

Linux NFS 服务器详解

 

Linux NFS 服务器详解

 

没问题,nfs 开发大神当时也意识到了这个缺陷,所以还是一点小小的补救措施的。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2013-11/92209p2.htm

 

相关阅读:

Ubuntu 12.04 安装 NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm

NFS 服务器安装配置实现 Ubuntu 12.04 与 ARM 文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm

Ubuntu 搭建 nfs 服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm

文件服务器 NFS 配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm

Ubuntu 下搭建 NFS 网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm

Heartbeat_ldirector+LB+NFS 实现 HA 及 LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm

CentOS 5.5 配置 NFS 服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm

Ubuntu 12.10 下 NFS 的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm

在 /etc/exports 权限控制可以可以有如下选项控制

root_squash 此项是默认就启用的,有的朋友可能已经发现了,当你在客户机上用 root 操作的时候,是没有其他任何权限的,因为对于 uid= 0 的 root 账户已经被映射为其他用户了,当然要映射为哪个用户也是可以自己去定义的。

no_root_squash 顾名思义,这个选项就是不启用 root 的账号的映射,这样是不是很爽啊,你本地的用户可以作远程机器的 root 账号来用,可以为所欲为,当然这样是不安全的。这个功能在无盘系统中会比较有用,其他情况就切记一定不要开啦。

all_squash 这个就更见名知义啦,所有 nfs 客户端连接上来的用户都全部映射为一个用户

anonuid, anongid 这两项接在 root_squash 或 all_squash 后面定义要映射到哪个用户

少废话,没图说个 jj

 

look… root 只是个摆设,傀儡是也,木有实权。。。

Linux NFS 服务器详解

 

废话不说,加上 no_root_squash

Linux NFS 服务器详解

忘了说这个非常重要的命令 exportfs 了,常用主要两个参数 –ra 和 –ru r 就是 reexport 重新输出,a 就是 all 所有, u 就是 unexport,这样不用重启 nfs 服务就可以使 export 配置立刻生效,以防影响正在使用中的用户,其他选项 man exports 吧,学习 linux 会看 man 文档也是一个灰赏重要的技能撒。

Linux NFS 服务器详解

Look again… root 不再是傀儡鸟。。。

Linux NFS 服务器详解

on more… 把所有客户都 squash 到 Hadoop 上 Linux NFS 服务器详解

 

为了使效果明显一些,我新建一个用户 bob,进 hadoop 目录哈哈一样畅通无阻,为所欲为,也尝尝做一回土豪的赶脚。。

Linux NFS 服务器详解

好吧 NFS 配置是个比较简单的活,暂且就说这么多了,简单归简单,系统管理可是个细活,一定要小心谨慎之。其他的更多功能小伙伴们根据需求自己搭配吧,菜鸟在此献丑了,有不对的地方亲一定要给指出来啊,我们共同进步。你可以打我骂我拿砖拍我。。。千万不要不理我,,,土豪。。。

What is NFS

NFS 是 Network FileSystem 的缩写,即网络文件系统,它可以实现挂载远程电脑上的设备到本地从而像访问本地磁盘一样操作,有点类似于 windows 的网上邻居。是 SUN 公司 1984 年开发的,v1 版本只在 SUN 公司内部使用过,v2, v3, v4 是公开版本,一般红帽 5 默认是 v3 版本,红帽 6 默认目前最新的 v4 版本。

 

How it works

我们知道一个程序是不可以直接操作硬件资源的,当一个程序需要读写硬盘数据时,需要把请求提交给内核 Kernel, 然后由 kernel 再相关的结果返回给进程,这个过程我们称为本地过程调用 Local Procedure Call. 如果当应用程序的进程要调用的库不在本地而是在远程主机上,这时我们就需要一种可以提供我们远程调用的技术,也就是我们经常会提到的 RPC–Remote Procedure Call, 那么 RPC 我们天天说,到底什么是 RPC 呢,简单的说 RPC 是为了简化公布式程序开发而开发出的一种编程技术,是一种技术框架,有了 RPC 开发人员就不用考虑本地如何去调用远程主机的库等资源,是透明的就像调用本地的一样,一切 RPC 就给办的妥妥的了。而著名的 portmap 就是 RPC 在 Linux 上的一种具体实现,工作在 TCP 和 UDP 的 111 号端口。

回到 NFS 上来简单说一下,NFS 客户端要请求 NFS 服务器时,首先会先把请求发给本地的 RPC stub 存根调用,可以理解成 RPC 客户端然后通过 RPC 客户端与 RPC 服务端联系,RPC 服务端通过分析知道请求的 NFS 资源,然后申请相应的空闲端口给 NFS 进程并通知给 RPC 客户端,这样 NFS 客户端就可以通过得到的端口号和服务器通信啦。

 

安装和配置

1、安装

使用 rpm –qa | grep nfs-utils 查看软件包是否已安装

如果未安装 yum install –y nsf-utils 安装即可

简单说几个安装生成比较重要的文件或程序

/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/rpcsvcgssd // 以上几个是生成的脚本
/etc/sysconfig/nfs //nfs 的配置文件
/sbin/rpc.lockd // 管理文件锁,防止同一文件多人同时读写造成文件损坏
/usr/sbin/exportfs // 这个命令很重要,修改了 exports 文件后不需要重启 nfs 服务就可以刷新服务资源靠的就是他
/usr/sbin/mountstats // 可以按挂载点查看客户端各种状态信息,很详细
/usr/sbin/nfsiostat // 按挂载点查看客户端 IO 详细状态信息
/usr/sbin/nfsstat // 可以查看服务端或客户端各种 NFS 状态信息
/usr/sbin/showmount // 查看 NFS 服务器和挂载上的客户端各种信息

2、配置使用

I) /etc/exports 这个文件控制 NFS 服务器共享出去的资源以及访问权限等

在 NFS 服务器上编辑此文件加上一行

/nfs(服务器上要共享出去的目录)192.168.0.0/24(rw,sync) 可以是单一的 IP 地址,也可以指定网段,rw- 可读写,sync- 同步写入,ro- 只读,rsync- 异步写入

mkdir /nfs 创建共享的目录

II) 保存退出启动 nfs 服务 service nfs start

启动后可以用以下命令查看已经成功共享

[root@ha1 hbase]# showmount -e localhost
Export list for localhost:
/nfs 192.168.188.0/24

III) 客户端挂载设备

mkdir /mnt/nfs 创建挂载点

mount –t nfs 192.168.188.128:/nfs /mnt/nfs

然后就可以切到 /mnt/nfs 目录下像操作本地磁盘一样了

此时在服务器上可以用 showmount –a localhost 查看都有哪些客户端挂载上来了

Linux NFS 服务器详解

3、一些小缺陷和高级应用

nfs 一个比较薄弱的环节在于对用户的身份认证,因为他是通过连接上来的用户的 UID 来识别用户的,所以只要你的 UID 和服务器上的某个存在的用户 UID 相同,你就可以拥有和此用户相同的权限,千说万说不如一看,上图:

在服务器上建立 uid 为 8888 的用户 Hadoop,在 /nfs 目录创建 hadoop 目录并改属主属组为 hadoop

Linux NFS 服务器详解

Linux NFS 服务器详解

在客户端创建一个用户 openstack 其 uid 也为 8888,切换到已挂载的 /mnt/nfs 目录下,可以看到 hadoop 这个目录的属主属组已经变成 openstack 了,

Linux NFS 服务器详解

Linux NFS 服务器详解

再来测试一下权限:服务端用 hadoop 创建文件,客户端修改,删除完全无压力,呵呵是不是挺危险的呢。

Linux NFS 服务器详解

 

Linux NFS 服务器详解

 

没问题,nfs 开发大神当时也意识到了这个缺陷,所以还是一点小小的补救措施的。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2013-11/92209p2.htm

 

相关阅读:

Ubuntu 12.04 安装 NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm

NFS 服务器安装配置实现 Ubuntu 12.04 与 ARM 文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm

Ubuntu 搭建 nfs 服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm

文件服务器 NFS 配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm

Ubuntu 下搭建 NFS 网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm

Heartbeat_ldirector+LB+NFS 实现 HA 及 LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm

CentOS 5.5 配置 NFS 服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm

Ubuntu 12.10 下 NFS 的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6065字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7962948
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...