Linux之我有你也有-共享平台NFS服务器搭建

Linux之我有你也有-共享平台NFS服务器搭建

  最近因工作需要,所以要搭一个共享的服务器用于存储。实现你有我有大家有的共享的和谐局面。想到了NFS-Network File System。接下来我便说一说NFS以及有关它的搭建。

什么是NFS  

  搜索引擎哪家强,有事问度娘(好吧,我承认技术性问题我问的是谷歌,此处为了押韵,不用介怀),度娘是这么解释NFS的:

  NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS这个通过网络共享文件系统的服务在搭建的时候是很简单的,不过,它最大的问题在于“权限”。因为在客户端与服务器端必须具有相同的账号才能够访问某些目录或文件。另外,NFS 的启动需要透过所谓的远程过程调用 (RPC),也就是说,我们并不是只要启动 NFS 就好了, 还需要启动 RPC 这个服务才行啊!这个 NFS 服务器可以让你的 PC 来将网络远程的 NFS 服务器分享的目录,挂载到本地端的机器当中, 在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样 (partition)!使用上面相当的便利!

  

  就如同上面的图示一般,当我们的 NFS 服务器设定好了分享出来的 /home/sharefile 这个目录后,其他的 NFS 客户端就可以将这个目录挂载到自己系统上面的某个挂载点 (挂载点可以自定义),例如前面图示中的 NFS client 1 与 NFS client 2 挂载的目录就不相同。我只要在 NFS client 1 系统中进入 /home/data/sharefile 内,就可以看到 NFS 服务器系统内的 /home/sharefile 目录下的所有数据了 (当然,权限要足够啊!^_^)!这个 /home/data/sharefile 就好像 NFS client 1 自己机器里面的一个 partition 喔!只要权限对了,那么你可以使用 cp, cd, mv, rm... 等等磁盘或档案相关的指令!真是方便之极啊!

NFS的搭建之所需的软件

  RPC主程序:rpcbind

  我们的 NFS 其实可以被视为一个 RPC 服务,而要启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 rpcbind 』这个服务所负责的!也就是说, 在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行!

  NFS主程序:nfs-utils

  就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文件等的软件!这个就是 NFS 服务所需要的主要软件啦!一定要有喔!

  因为我用的是CentOS6.5,所以上述两个软件都有,没有的请自行安装,如果不知道有木有,就用下述指令查看是否有此软件:

1  rpm -qa | grep nfs  #查询是否存在nfs
2  rpm -qa | grep rpcbind  #查询是否存在rpcbind

NFS搭建

  接下来是搭建了,最重要也是最简单的部分,因为只需编辑好配置文件 /etc/exports 之后,先启动 rpcbind (若已经启动了,就不要重新启动),然后再启动 nfs ,你的 NFS 就成功了! 不过这样的设定能否对客户端生效?那就得要考虑你权限方面的设定能力了。废话少说,我们就直接来看看那个 /etc/exports 应该如何设定吧!某些 distributions 并不会主动提供 /etc/exports 档案,所以请你自行手动建立它吧。有以下三种表达方式:

  method 1:

1 [[email protected] ~]# vim /etc/exports
2 /tmp         192.168.100.0/24(ro)
3 [分享目录]   [主机(权限)]   

  method 2:

1 [[email protected] ~]# vim /etc/exports
2 /tmp            localhost(rw)
3 [分享目录]   [主机名(权限)]     

  method 3:

1 [[email protected] ~]# vim /etc/exports
2 /tmp        *(ro,sync)
3 [分享目录]   [通配符表示主机(权限)]    

  至于权限方面 (就是小括号内的参数) 常见的参数则有:

启动服务器端NFS

  配置文件搞定后,当然要开始来启动才行啊!而前面我们也提到过,NFS 的启动还需要 rpcbind 的协助才行啊! 所以赶紧来启动吧!

 1 [[email protected] ~]# /service rpcbind start
 2 # 如果 rpcbind 本来就已经在执行了,那就不需要启动啊!
 3
 4 [[email protected] ~]# service nfs start
 5 # 有时候某些 distributions 可能会出现如下的警告讯息:
 6 exportfs: /etc/exports [3]: No ‘sync‘ or ‘async‘ option specified
 7 for export "192.168.100.10:/home/test".
 8   Assuming default behaviour (‘sync‘).
 9 # 上面的警告讯息仅是在告知因为我们没有指定 sync 或 async 的参数,
10 # 则 NFS 将默认会使用 sync 的信息而已。你可以不理他,也可以加入 /etc/exports。
11
12 [[email protected] ~]# service nfslock start
13 [[email protected] ~]# chkconfig rpcbind on
14 [[email protected] ~]# chkconfig nfs on
15 [[email protected] ~]# chkconfig nfslock on

  在你的 NFS 服务器设定妥当之后,我们可以在 server 端先自我测试一下是否可以联机喔!就是利用 showmount 这个指令来查阅! 

1 [[email protected] ~]# showmount [-ae] [hostname|IP]
2 选项与参数:
3 -a :显示目前主机与客户端的 NFS 联机分享的状态;
4 -e :显示某部主机的 /etc/exports 所分享的目录数据。
5
6 # 1. 请显示出刚刚我们所设定好的相关 exports 分享目录信息
7 [[email protected] ~]# showmount -e localhost
8 Export list for localhost:
9 /tmp         *

  很简单吧!所以,当你要扫瞄某一部主机他提供的 NFS 分享的目录时,就使用 showmount -e IP (或hostname) 即可!非常的方便吧!这也是 NFS client 端最常用的指令喔!

  如果报错的话,有可能是端口被防火墙禁止了,可以开放端口,当然简单粗暴的方法就是关掉防火墙:

1 service iptables stop

  或者不想简单粗暴的就这样做,

  一般来说, NFS 的服务仅会对内部网域开放,不会对因特网开放的。然而,如果你有特殊需求的话, 那么也可能会跨不同网域就是了。但是,NFS 的防火墙特别难搞,为什么呢?因为除了固定的 port 111, 2049 之外, 还有很多不固定的埠口是由 rpc.mountd, rpc.rquotad 等服务所开启的,所以,你的 iptables 就很难设定规则! 那怎办?难道整个防火墙机制都要取消才可以?

  为了解决这个问题, CentOS 6.x 有提供一个固定特定 NFS 服务的埠口配置文件,那就是 /etc/sysconfig/nfs 啦! 你在这个档案里面就能够指定特定的埠口,这样每次启动 nfs 时,相关服务启动的埠口就会固定,如此一来, 我们就能够设定正确的防火墙啰!这个配置文件内容很多,绝大部分的数据你都不要去更改,只要改跟 PORT 这个关键词有关的数据即可。 那么需要更改的 rpc 服务有哪些呢?主要有 mountd, rquotad, nlockmgr 这三个,所以你应该要这样改:

 1 [[email protected] ~]# vim /etc/sysconfig/nfs
 2 RQUOTAD_PORT=1001   <==约在 13 行左右
 3 LOCKD_TCPPORT=30001 <==约在 21 行左右
 4 LOCKD_UDPPORT=30001 <==约在 23 行左右
 5 MOUNTD_PORT=1002    <==约在 41 行左右
 6 # 记得设定值最左边的批注服务要拿掉之外,埠口的值你也可以自行决定。
 7
 8 [[email protected] ~]# /etc/init.d/nfs restart
 9 [[email protected] ~]# rpcinfo -p | grep -E ‘(rquota|mount|nlock)‘
10     100011    2   udp   1001  rquotad
11     100011    2   tcp   1001  rquotad
12     100021    4   udp  30001  nlockmgr
13     100021    4   tcp  30001  nlockmgr
14     100005    3   udp   1002  mountd
15     100005    3   tcp   1002  mountd

  然后将对应的端口号给开放即可。

NFS客户端的挂载

  你要如何挂载 NFS 服务器所提供的文件系统呢?基本上,可以这样做: 

  1. 确认本地端已经启动了 rpcbind 服务!
  2. 扫瞄 NFS 服务器分享的目录有哪些,并了解我们是否可以使用 (showmount);
  3. 在本地端建立预计要挂载的挂载点目录 (mkdir);
  4. 利用 mount 将远程主机直接挂载到相关目录。

  比如说将客户端在 192.168.100.10 这部机器上,而服务器是 192.168.100.254 ,将服务器上的目录挂在在客户端上。 

1 [[email protected] ~]# showmount -e 192.168.100.254
2 Export list for 192.168.100.254:
3 /tmp         *

  接下来我想要将远程主机的 /home/public 挂载到本地端主机的 /home/nfs/public , 所以我就得要在本地端主机先建立起这个挂载点目录才行啊!然后就可以用 mount 这个指令直接挂载 NFS 的文件系统啰!

1 [[email protected] ~]# mkdir -p /home/nfs/public
2 [[email protected] ~]# mount -t nfs 192.168.100.254:/home/public /home/nfs/public

  然后看看挂载情况:

1 [[email protected] ~]# df
2 文件系统               1K-区段      已用     可用 已用% 挂载点
3 ....(中间省略)....
4 192.168.100.254:/home/public
5                        7104640    143104   6607104   3% /home/nfs/public

  不想挂载想取消的话使用如下命令: 

1 [[email protected] ~]# umount /home/nfs/public

  好了,今天学习到此为止,赶火车去也~

时间: 2024-12-26 05:03:25

Linux之我有你也有-共享平台NFS服务器搭建的相关文章

在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器

在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程.假设你已经配置好了一个 NFS 服务器和一个客户端.如果还没有,可以参考 安装和配置 NFS 服务器[2] - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置. 另外,你可能还需要配置 SELinux[3] 和 firewalld[4] 以允许通过 NFS 进行文件共享. 下面的例子假设你的 NFS 共享目录在 box2 的 /nfs: # semanage fcontext

Linux NFS服务器搭建

1.NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.   在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 2.安装NFS服务器端:sudo apt-get install nfs-kernel-server: 3.配置/etc/exports:sudo vim /etc/exports :   Ubuntu NFS允许挂

2Ubuntu下nfs服务器搭建,Linux多台电脑共享目录

 1安装nfs(网络文件系统)服务器 共享的原理: 安装命令: sudo apt-get install nfs-kernel-server 2设置/etc/exports配置文件 添加以下这行配置 其中: *表示所有ip,如果想指定ip,可以把*换成你自己的ip地址. rw:表示只读权限,如果想变成只读的,修改配置为ro sync:表示同步的方式.任何人对这个目录的修改,其它人都可以看到. 3.在用户目录下创建nfs目录 4.重启服务器,发现有4个OK,这时候说明配置成功了. 5.磁盘挂载

牛来了平台源码搭建开发教程 选择合适你的 Linux 发行版

你想做什么?我将根据常见需求对Linux版本进行分类.牛来了平台源码搭建QQ2189563389请添加链接描述这里有一些重叠的地方,而且如果准备充分的话,这些Linux发行版任何一个都可以满足你的期望需求.Linux的一大优点是允许你随心所欲.但是,归根结底,发行版之间还是有区别的,有些能为你做很多工作,或者某个版本具有更适合针对某个目标的设计.下面我会根据实现目标的最简单途径来对这些发行版分类. 我是刚刚入门的Linux新手有很长一段时间,我会给Linux新手推荐Ubuntu.就易用性和兼容性

如何在 Linux 上永久挂载一个 Windows 共享

导读 如果你已经厌倦了每次重启 Linux 就得重新挂载 Windows 共享,读读这个让共享永久挂载的简单方法. 在 Linux 上和一个 Windows 网络进行交互从来就不是件轻松的事情.想想多少企业正在采用 Linux,需要在这两个平台上彼此协作.幸运的是,有了一些工具的帮助,你可以轻松地将 Windows 网络驱动器映射到一台 Linux 机器上,甚至可以确保在重启 Linux 机器之后共享还在. 在我们开始之前 要实现这个,你需要用到命令行.过程十分简单,但你需要编辑 /etc/fs

QA知识共享平台

概要 功能:暂供ICBU-QA部交流使用的知识共享平台,这里只放置文章内容,大容量的视频电子书等推荐放在fileserver中(10.20.142.52),这里可以做一个链接. 解决问题的.技术细节深入分析的.疑难杂症的.新技术介绍的等等,无论来源,原创转载均可,但要有含金量. 文章无论长短,建议短小精悍型的,太长的最好精简一下,尤其是转载的文章! 注意:编辑时,每个大项的子节点深度最多为2,简化层次 环境领域 领域战略 关注团队环境的问题(效果数据搜集) 提高测试效率,保证测试质量.(工作分类

Linux进程间通信(消息队列/信号量+共享内存)

写在前面 不得不说,Deadline果真是第一生产力.不过做出来的东西真的是不堪入目,于是又花了一早上重写代码. 实验内容 进程通信的邮箱方式由操作系统提供形如 send()和 receive()的系统调用来支持,本实验要求学生首先查找资料了解所选用操作系统平台上用于进程通信的系统调用具体形式,然后使用该系统调用编写程序进行进程间的通信,要求程序运行结果可以直观地体现在界面上.在此基础上查找所选用操作系统平台上支持信号量机制的系统调用具体形式,运用生产者与消费者模型设计实现一个简单的信箱,该信箱

(转载)linux下的僵尸进程处理SIGCHLD信号Linux环境进程间通信(五): 共享内存(下)

Linux环境进程间通信(五): 共享内存(下) 在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同.系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面. 系统调用mmap()通过映射一个普通文件实现共享内存.系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内

资料共享平台----nabcd

知识共享平台NABCD模型 N(need)需求 大一新生刚刚开始大学生活,不适应大学学习生活的节奏,并且课堂上知识容量大.密度高,学生不能立刻掌握所学知识点,同时,网上资料冗杂繁复,指向性不强,导致学生不能高效的学习,为了充分利用学生的课余时间,培养学生自学能力,辅助老师教学,他们需要一个过来人的引导,帮助他们理清学习的思路和知识的框架结构,快速高效的帮助他们掌握核心知识,增加学习的积极性和自信心.从这个角度来说,针对石家庄铁道大学教学特点开发的“知识共享平台”是乘势而来,是广大师生的共同呼唤.