NFS服务器安装与配置.docx
- 文档编号:5858351
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:10
- 大小:122.28KB
NFS服务器安装与配置.docx
《NFS服务器安装与配置.docx》由会员分享,可在线阅读,更多相关《NFS服务器安装与配置.docx(10页珍藏版)》请在冰豆网上搜索。
NFS服务器安装与配置
天津电子信息职业技术学院
暨国家示范性软件职业技术学院
Linux管理综合实训报告
课设题目:
NFS服务器安装与配置
姓名:
系别:
网络技术系
专业:
计算机网络技术
班级:
指导教师:
成****
设计时间:
2013年6月25日至2013年7月8日
引言
NFS是NetworkFileSystem的缩写,即网络文件系统。
一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。
功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。
RPC,远程过程调用(RemoteProcedureCall)是能使客户端执行其他系统中程序的一种机制。
NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。
而这些传输协议用到这个RPC功能的。
可以说NFS本身就是使用RPC的一个程序。
或者说NFS也是一个RPCSERVER。
所以只要用到NFS的地方都要启动RPC服务,不论是NFSSERVER或者NFSCLIENT。
这样SERVER和CLIENT才能通过RPC来实现PROGRAMPORT的对应。
可以这么理解RPC和NFS的关系:
NFS是一个文件系统,而RPC是负责负责信息的传输。
关键字:
NFS网络文件系统信息传输
NFS服务器简介
NFS(NetworkFileSystem)是由升阳(Sun)最先开发,它的目标是让不同机器能够跨平台共享相同的档案资源。
简单来说,可以看成是一种远端的档案系统。
也因为跨平台的目标,所以几乎所有的UnixLike平台都支援NFS,如IBMAIX、SunSolaris、HPUnix、GNU/Linux和FreeBSD等,都可以透过NFS来共享档案和目录资源。
目前在MSWindows上虽然有NFSClient可以安装,但几乎是商业软件。
所以大家常在UnixLike系统中使用NFS来共享档案资源。
或许读者会奇怪,为何不用Samba网芳分享,这样MSWindows和Unix都可以互相连线?
这是因为NFS效能比Samba好很多,所以常常在平行运算的超级电脑或者商业大型系统上,使用一台NFSServer,其他Server透过光纤通道连线到NFS档案服务器取得资料。
NFS运作理论
NFS有好几个版本,最新版是NFSv4。
而NFSv1到NFSv4都是透过RPC来运作,所谓的RPC(RemoteProcedureCall)是远端程序呼叫。
当跑一个程式时,该程式呼叫另外一个程式去做事情然后把结果传回来称为ProcedureCall,所以当一个程式呼叫在不同主机的程式去处理事情并传回结果,我们就称为RemoteProcedureCall。
对于呼叫别人的程式来说,它会感觉到被呼叫的程式也是在本地执行的。
所以RPC有个好处就是在写程式的时候,只要管好呼叫的部份,我们不必实际去处理网络封包等细节,这些细节就给RPC系统处理即可,这样程式也会好写很多。
故RPC程式要处理远端传输的问题,只要写好procedurecall来呼叫远端主机的程序读取或写入硬盘即可,这大大简化coding的难度。
NFS的实作就是靠RPC了,所以NFS是不处理网络封包的问题,它只从Client呼叫Server上的NFSprocedure,并且告诉该remoteprocedure想要干嘛,而封包实际的传输就透过标准的RPC协定来达成。
故在NFS系统上,Client端和Server端都要安装RPC系统,而RPC在Linux核心里已经有内建。
NFSServer主机规划
设定其实是不难,难的是资源分享的规划和权限设计。
这个万一没弄好,别人有可能可以随便对你的NFSServer存取资料。
所以在设定前,先想想看要怎样规划档案分享吧!
读者首先要想的是NFSServer可以提供给哪些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。
在开放给所有人使用的匿名NFSServer通常会用这样的设定。
4.anonuid/anongid:
当Clientmount起来后,不管用什么帐号,在该目录的权限只有anonuid指定的帐号与anongid指定的群组。
当你把anonuid和anongid都设成nobody的id时,其实和all_squash有一样的意义!
考虑好权限问题后,读者还要考虑该目录是只能读(ro),或者可以读写(rw)。
当要开放给大家只能抓东西,这时候都会配合ro的设定。
若是配合NIS让每一部机器的帐号和权限都一样的话,那可以把家目录都放在NFSServer上,并使用rw的设定,这时候不同机器可以负责不同的运算功能,例如网页和MailServer等,但都是存放在同一个档案系统上。
接下来要考虑可以挂载该分享目录的IP范围,这有两种表示法,一种是直接写上它的IP,笔者不建议用网址(xxx.mook.org)的方式,除非你是写死在hosts里面,不然有可能会因为DNSServer被hack导致你的NFSServer也被攻陷!
另外一种方式是用网域的表示方式。
例如你想要整个192.168.1.xxx的CClass网域都可以连线到该台NFSServer,那你可以写成192.168.1.0/24。
后面的24是netmask255.255.255.0的简写,换算方式是把该netmask转成二进制后,从前面数过来看有几个1。
如每一个255都由8个1bit组成,所以总共3个255就是24了!
计算结果是整个CClass简写为24,BClass简写为16,以此类推。
通常要分享到整个网域时,常会把主机全部放在防火墙里面,这样NFS系统会比较安全,不然会直接指定可以存取的ClientIP。
由于NFSv3和NFSv4Server都是使用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服务器是否启动
命令#servicenfsstatus
#serviceportmapstatus
3.如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)
命令#servicenfsstart
#serviceportmapstart
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地址的主机
指定域名的主机
192.168.1.0/24 指定网段中的所有主机
* 指定域下的所有主机
* 所有主机
5.重新输出共享目录
Exportfs管理工具可以对“exports”文件进行管理
命令#exportfs–rv可以让新设置的“exports”文件内容生效
6.显示NFS服务器的输出目录列表
显示当前主机中NFS服务器的输出列表
#showmount-e
7.显示NFS服务器中被挂载的共享目录
显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录
#showmount-d
8.在另外一个linux系统中挂在共享目录
显示NFS服务器的输出
#showmount-e172.16.75.1
挂载NFS服务器中的共享目录
#mount-tnfs172.16.75.1:
/software/mnt/
9.查看mnt目录中的内容
Cd/mnt|ll
10.卸载系统中已挂载的NFS共享目录
命令#umount/mnt/
总结:
(1)在配置NFS服务器之前用ping命令确保两个linux系统正常连接,如果无法连接关闭图形界面中的防火墙#serviceiptablesstop
(2)在配置中确保输入的命令是正确的
(3)更改完“exports”文件后要输入exportfs–rv,使得“exports”文件生效。
(4)检查nfs服务是否开启,默认是关闭的。
(5)卸载的时候不能在/mnt目录中卸载,必须注销系统后卸载。
每当的修改了/etc/exports文件的内容后,实际上不需要重新启动nfs服务,而直接使用命令exports就可以生效。
它的命令格式如下
exports【选项】
选项有一下几个
-a输出在/etc/exports文件中所设置的所有目录
-r重新读取/etc/exports文件中的设置,并使设置立即生效,而不重新启动服务。
-u停止输出某一目录
-v在输出目录时将目录显示到屏幕上。
介绍两个长用的组合命令:
exportfs-rv重新输出共享目录
exportfs-auv停止当前主机中服务器的所有共享目录输出。
(二)启动和停止NFS服务
在对exports文件进行了正确的配置后,就可以启动NFS服务器了。
1、启动NFS服务器
为了使NFS服务器能正常工作,需要启动portmap和nfs两个服务,并且portmap一定要先于nfs启动。
#serviceportmapstart
#servicenfsstart
2、查询NFS服务器状态
#serviceportmapstatus
#servicenfsstatus
3、停止NFS服务器
要停止NFS运行时,需要先停止nfs服务再停止portmap服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止portmap服务
#servicenfsstop
#serviceportmapstop
4、设置NFS服务器的自动启动状态
对于实际的应用系统,每次启动LINUX系统后都手工启动nfs服务器是不现实的,需要设置系统在指定的运行级别自动启动portmap和nfs服务。
#chkconfig--listportmap
#chkconfig--listnfs
设置portmap和nfs服务在系统运行级别3和5自动启动。
#chkconfig--level35portmapon
#chkconfig--level35nfson
chkconfig--level35portmapon
chkconfig--level35nfson
当然也可以用ntsysv找到nfs和portmap把前面加上*号即可。
(三)测试NFS服务
1.检查输出目录所使用的选项
即使在/etc/exports下设置了一两个选项,但是在真正输出目录时还有很多的默认选项,所以有必要查看/var/lib/nfs/etab文件,
来看看真正的选项。
注:
在这个文件中会看到anonuid=-2,anongid=-2,实际上是65536-2=65534,也就是说匿名用户帐户及所属用户组帐户的
id为UID=65534,GID=65534。
对照/etc/passwd和/etc/group文件可以知道就是nfsnobody
2.使用showmount命令测试nfs服务器的输出目录状态
showmount【选项】nfs服务器名称或地址
-a显示指定的nfs服务器的所有客户端主机及其所连接的目录。
-d显示指定的nfs服务器中以被客户端连接的所有输出目录。
-e显示指定的nfs服务器上所有输出的共享目录。
(四)NFS客户端的使用
1.先检查nfs服务器的信息
showmount-eip
注:
出错的可能原因在服务器的2个进程没有启动或是被防火墙给过滤掉了,可以serviceiptablesstop先关闭防火墙。
2.连接NFS服务器
mount-tnfs服务器名或ip地址:
输出目录本地挂载
3.卸载NFS服务器
umount本地挂载点
注:
如果有客户端还在使用nfs服务器时要关机,应先把portmap和nfs两个服务给关闭,否则要等待很久才能关机。
如果无法正
常关掉可先用命令netstat-utlp找出他们的pid,然后使用kill命令杀死。
当然还可以使用exports-auv命令将当前的
主机中nfs服务器的所有输出目录停止掉,再关机。
4.启动时自动连接nfs
vi/etc/fstab
格式如下:
nfs服务器名或ip地址:
输出目录本地挂载目录nfsdefault00
(五)NFS故障解决
1、NFSD没有启动起来
首先要确认NFS输出列表存在,否则nfsd不会启动。
可用exportfs命令来检查,如果exportfs命令没有结果返回或返回不正确,则需要检查/etc/exports文件。
2、mountd进程没有启动
mountd进程是一个远程过程调用(RPC),其作用是对客户端要求安装(mount)文件系统的申请作出响应。
mountd进程通过查找/etc/xtab文件来获知哪些文件系统可以被远程客户端使用。
另外,通过mountd进程,用户可以知道目前有哪些文件系统已被远程文件系统装配,并得知远程客户端的列表。
查看mountd是否正常启动起来可以使用命令rpcinfo进行查看,在正常情况下在输出的列表中应该象这样的行:
1000051udp1039mountd
1000051tcp1113mountd
1000052udp1039mountd
1000052tcp1113mountd
1000053udp1039mountd
1000053tcp1113mountd
五、NFS服务器的相关命令
1、exportfs
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?
这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
#exportfs[-aruv]
-a 全部挂载或卸载/etc/exports中的内容
-r 重新读取/etc/exports中的信息,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v在export的时候,将详细的信息输出到屏幕上。
具体例子:
#exportfs-au卸载所有共享目录
#exportfs-rv重新共享所有目录并输出详细信息
2、nfsstat
查看NFS的运行状态,对于调整NFS的运行有很大帮助。
3、rpcinfo
查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo-p可以查看出RPC开启的端口所提供的程序有哪些。
4、showmount
-a显示已经于客户端连接上的目录信息
-eIP或者hostname显示此IP地址分享出来的目录
5、netstat
可以查看出nfs服务开启的端口,其中nfs开启的是2049,portmap开启的是111,其余则是rpc开启的。
最后注意两点,虽然通过权限设置可以让普通用户访问,但是挂载的时候默认情况下只有root可以去挂载,普通用户可以执行sudo。
NFSserver关机的时候一点要确保NFS服务关闭,没有客户端处于连接状态!
通过showmount-a可以查看,如果有的话用killkillallpkill来结束,(-9强制结束)
六、个人总结
通过两周的实训,我发现自己对Linux下架设NFS服务器并不熟练,对各种命令还不能熟练掌握,自己并没有完全完成老师安排的任务,在以后的学习中,自己会更加努力,同时感谢老师和同学们的支持与帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NFS 服务器 安装 配置