天津电子信息职业技术学院
暨国家示范性软件职业技术学院
Linux 管理综合实训报告
课设题目:NFS服务器安装与配置
姓名:
系别:网络技术系
专业:计算机网络技术
班级:
指导教师:成****
设计时间:2013年6月25日至2013年7月8日
引言
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC
的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
关键字:NFS 网络文件系统信息传输
目录
NFS服务器简介 ...........................................................................................................................- 1 - NFS运作理论..............................................................................................................................- 1 - NFS Server主机规划.................................................................................................................- 2 -
一、实训目的:...........................................................................................................................- 3 -
二、实训内容:...........................................................................................................................- 3 -
三、实训要求...............................................................................................................................- 3 -
四、NFS服务器的配置 ...............................................................................................................- 4 -
(一)NSF服务器的安装............................................................................................- 4 -
(二)启动和停止NFS服务.......................................................................................- 6 -
(三)测试NFS服务...................................................................................................- 8 -
(四)NFS客户端的使用............................................................................................- 8 -
(五)NFS故障解决....................................................................................................- 9 -
五、NFS服务器的相关命令..................................................................................................... - 10 -
六、个人总结............................................................................................................................ - 11 -
NFS服务器简介
NFS(Network File System)是由升阳(Sun)最先开发,它的目标是让不同机器能够跨平台共享相同的档案资源。简单来说,可以看成是一种远端的档案系统。也因为跨平台的目标,所以几乎所有的Unix Like平台都支援NFS,如IBM AIX、Sun Solaris、HP Unix、GNU/Linux和FreeBSD等,都可以透过NFS来共享档案和目录资源。目前在MS Windows上虽然有NFS Client可以安装,但几乎是商业软件。
所以大家常在Unix Like系统中使用NFS来共享档案资源。或许读者会奇怪,为何不用Samba 网芳分享,这样MS Windows和Unix都可以互相连线?这是因为NFS效能比Samba好很多,所以常常在平行运算的超级电脑或者商业大型系统上,使用一台NFS Server,其他Server 透过光纤通道连线到NFS档案服务器取得资料。
NFS运作理论
NFS有好几个版本,最新版是NFSv4。而NFSv1到NFSv4都是透过RPC来运作,所谓的RPC (Remote Procedure Call) 是远端程序呼叫。当跑一个程式时,该程式呼叫另外一个程式去做事情然后把结果传回来称为Procedure Call,所以当一个程式呼叫在不同主机的程式去处理事情并传回结果,我们就称为Remote Procedure Call。对于呼叫别人的程式来说,它会感觉到被呼叫的程式也是在本地执行的。所以RPC有个好处就是在写程式的时候,只要管好呼叫的部份,我们不必实际去处理网络封包等细节,这些细节就给RPC系统处理即可,这样程式也会好写很多。故RPC程式要处理远端传输的问题,只要写好procedure call来呼叫远端主机的程序读取或写入硬盘即可,这大大简化coding的难度。
NFS的实作就是靠RPC了,所以NFS是不处理网络封包的问题,它只从Client呼叫Server 上的NFS procedure,并且告诉该remote procedure想要干嘛,而封包实际的传输就透过标准的RPC协定来达成。故在NFS系统上,Client端和Server端都要安装RPC系统,而RPC 在Linux核心里已经有内建。
NFS Server主机规划
设定其实是不难,难的是资源分享的规划和权限设计。这个万一没弄好,别人有可能可以随便对你的NFS Server存取资料。所以在设定前,先想想看要怎样规划档案分享吧!读者首先要想的是NFS Server可以提供给哪些Client机器使用?基本上它不提供帐号认证的方式,所以它使用IP范围来控管Client端。再来你要考虑分享出去的目录权限问题,权限分配有以下几种方式。
1.no_root_squash:这种权限设定就有点危险了!它的意思是若Client端
帐号在Server上也有的话,那么在Client端操作该分享目录时,会有该帐号在
Server上的权限。危险的地方是在当Client端是root时,那么可以同时取得Server 上在分享出来的目录下完整权限。若是Server端没有该帐号,但是Client端有该
帐号时,就会变成用nobody来操作该分享目录唷!我们通常使用root_squash会比较安全,且经常会配合NIS一起使用。
2.root_squash:这个基本上和no_root_squash一样。不同的是当Client
端用root去操作时,就会变成匿名的nobody权限,所以就安全多了,Client端也无法去做大规模的破坏。通常会配合NIS一起使用。
3.all_squash:这代表了不管Client端用什么帐号,在该分享目录的权限
都只有nobody。在开放给所有人使用的匿名NFS Server通常会用这样的设定。
4.anonuid/anongid:当Client mount起来后,不管用什么帐号,在该目录
的权限只有anonuid指定的帐号与anongid指定的群组。当你把anonuid和anongid 都设成nobody的id时,其实和all_squash有一样的意义!
考虑好权限问题后,读者还要考虑该目录是只能读 (ro),或者可以读写 (rw)。当要开放给大家只能抓东西,这时候都会配合ro的设定。若是配合NIS让每一部机器的帐号和权限都一样的话,那可以把家目录都放在NFS Server上,并使用rw的设定,这时候不同机器可以负责不同的运算功能,例如网页和Mail Server等,但都是存放在同一个档案系统上。接下来要考虑可以挂载该分享目录的IP范围,这有两种表示法,一种是直接写上它的IP,笔者不建议用网址(https://www.sodocs.net/doc/a83062332.html,)的方式,除非你是写死在hosts里面,不然有可能会因为DNS Server被hack导致你的NFS Server也被攻陷!另外一种方式是用网域的表示方式。
例如你想要整个192.168.1.xxx的C Class网域都可以连线到该台NFS Server,那你可以写成192.168.1.0/24。后面的24是netmask 255.255.255.0的简写,换算方式是把该netmask 转成二进制后,从前面数过来看有几个1。如每一个255都由8个1bit组成,所以总共3个255就是24了!计算结果是整个C Class简写为24,B Class简写为16,以此类推。通常要分享到整个网域时,常会把主机全部放在防火墙里面,这样NFS系统会比较安全,不然会直接指定可以存取的Client IP。
由于NFSv3和NFSv4 Server都是使用exports这个资源分享设定档,而NFSv4多了虚拟根目录的概念,所以若要两个同时使用的话,要把所有分享的目录bind到同一个子目录下,故这时候exports的写法要稍微注意一下,需符合NFSv4的规则,并且bind的规则也要记得写到fstab里面。
一、实训目的:
1.掌握Linux系统之间资源共享和互访方法,掌握NFS服务器和客户端的安装与配置。
2.实训环境:在虚拟PC机的Linux操作系统中进行实作。
二、实训内容:
1.架设一台NFS服务器
2.利用Linux客户端连接并访问NFS服务器上的共享资源
三、实训要求
1.熟悉安装NFS服务器的方法。
2.掌握NFS服务的配置。
3.掌握启动和停止NFS服务。
4.掌握测试NFS服务的方法。
5.NFS客户端的使用。
四、NFS服务器的配置
(一)NSF服务器的安装
1.NFS服务器的安装
检查linux系统中是否安装了nfs-utils和portmap两个软件包
2.查看NFS服务器是否启动
命令#service nfs status
#service portmap status
3.如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)
命令#service nfs start
#service portmap start
4.指定NFS服务器的配置文件
NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exports”,该文件用于被指NFS服务器提供的目录共享
命令#vi /etc/exportfs
配置“exports”文件格式如下例如:/home/nfs *(sync,rw) 注意*和(不能有空格,否则会报错
/home *(sync,ro)
Home:共享目录名
*:表示所有主机
(sync,ro):设置选项
exports文件中的“配置选项”字段放置在括号对(“()”)中,多个选项间用逗号分隔
sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项
ro:设置输出的共享目录只读,与rw不能共同使用
rw:设置输出的共享目录可读写,与ro不能共同使用
exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址
192.168.152.13指定IP地址的主机
https://www.sodocs.net/doc/a83062332.html,指定域名的主机
192.168.1.0/24指定网段中的所有主机
*https://www.sodocs.net/doc/a83062332.html,指定域下的所有主机
*所有主机
5.重新输出共享目录
Exportfs管理工具可以对“exports”文件进行管理
命令#exportfs –rv 可以让新设置的“exports”文件内容生效
6.显示NFS服务器的输出目录列表
显示当前主机中NFS服务器的输出列表
# showmount -e
7.显示NFS服务器中被挂载的共享目录
显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录
# showmount -d
8.在另外一个linux系统中挂在共享目录
显示NFS服务器的输出
# showmount -e 172.16.75.1
挂载NFS服务器中的共享目录
# mount -t nfs 172.16.75.1:/software /mnt/