内容参考linux第三章_第1页
内容参考linux第三章_第2页
内容参考linux第三章_第3页
内容参考linux第三章_第4页
内容参考linux第三章_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 NFS服务的配置与应用学习目标了解NFS的概念熟悉NFS所需软件及其软件结构掌握NFS服务器的基本配置方法掌握NFS客户端的使用方法了解NFS常见错误及排错方法NFS服务概述 NFS ( Network File System )网络文件系统。NFS由Sun 微系统公司(Sun Microsystem, Inc)于1984年开发的UNIX表示层协议,RFC1813)由于NFS使用起来非常方便,因此很快得到了大多数的UNIX/Linux系统的广泛支持,而且还被IETE(国 际互联网工程组)制定为RFC1904、RFC1813 和 RFC3010标准。 网络文件系统(NFS)是一种分布式文

2、件系统,提供了一种在网络上的机器间输出文件的方法,文件就如同位于用户的本地磁盘上一样。NFS采用了典型的服务器/客户机的模式NFS服务概述(续)NFS是一个RPC服务,它使我们能够在Unix/Linux系统之间实现资源共享,类似于Windows系统中的资源共享功能。当使用者想用远程文件时,只要用mount就可把远程的文件系统挂接在自己的文件系统之下,从用户角度看来,在这些远程的文件系统操作和本地的文件系统上操作并没有什么不同。NFS服务概述(续)网络的目标是让用户更方便地共享信息。如果网络中仅仅有Linux/unix机器,它们之间的文件共享使用NFS比较方便。一台NFS服务器就如同一台文件服务

3、器,只要将其文件系统共享出来,NFS客户端就可以将它挂载到本地系统中,从而可以象使用本地文件系统中的文件一样使用那些远程文件系统中的文件。文件系统文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。 NFS的主要特点(1)信息访问的

4、透明性:访问远程主机共享文件的过程与访问本机文件是相同的,所有内部细节对用户透明。(2)良好的扩展性:由于NFS系统是一种分布式的数据库系统,容易扩充新的资源或软件,不需要改变现有的工作环境。NFS并不需要对其下层的操作系统进行修改,而只需对该层协议进行扩展。(3)操作的简易性:NFS允许用户使用熟悉的UNIX命令去操作远程文件。NFS的工作原理 NFS是基于客户/服务器模式的。NFS服务器是输出一组文件的计算机,而NFS客户端是访问文件的计算机。客户和服务器端通过远程过程调用(RPC,Remote Procedure Call)通信,当客户主机上的应用程序访问远程文件时,客户主机内核向远程N

5、FS服务器发送一个请求,等待服务器响应,而NFS服务器一直处于等待状态,如果接收到客户请求,就处理请求并将结果返回客户机。NFS服务器上的目录如果可以被远程用户访问,就称为“导出(export)”;客户主机访问服务器导出目录的过程称为“安装(mount)”,或称为“挂接”、“导入”等。NFS的工作原理(续)在下图中,/ShareA、/ShareB和/ShareC分别是三台Linux中的NFS共享目录,那么客户端要访问服务器上的共享目录,就可以使用mount命令将它们分别安装在本地Linux系统的/mntA、/mntB和/mntC目录下,这样用户在访问远程系统中的文件就象访问本地的文件一样。NF

6、S简介 NFS共享示意图NFS服务的概述RPC 协议 RPC(Remote Procedure Call Protocol):远程过程调用协议虽然 NFS 有属于自己的协议和所使用的端口号( port number) ,但NFS 本身没有提供信息传输的协议和功能。NFS之所以能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议,而这些传输协议用到这个RPC功能。作用是管理 port 的对应与服务相关性的工作 RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。RPC 协议(续)RPC它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协

7、议。 RPC 协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC 协议(续)RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 NFS如何

8、工作NFS建立在XDR/RPC协议上XDP: eXternal Data Representation(外部数据表示)RPC: Remote Procedure Calls(远端进程呼叫)XDR把计算机数据转化成独立与计算机的外部标准格式。客户端发送RPC包给服务器请求服务。RPC数据传送模式RPCXDPDaemon守护进程Linux系统上提供的网络服务都是由运行于后台的守护进程来执行。一个系统一般在后台同时存在好几个守护进程。由于此类进程对前台的用户来说是透明的,不加干预情况下不会自动停止,有如系统服务的守护天使一般,称为守护进程。守护进程工作原理客户服务器网络模型的网络程序连接方式是通过T

9、CP端口之间连接实现的。服务器侦听(Listen)某个端口等待客户连接。连接成功后客户机和服务器才开始通信。守护程序的工作就是打开一个端口,并在该端口上等待连接请求。如果接受到客户端的连接请求,它就创建一个子进程来接受该连接。而父进程继续侦听端口。常见网络应用端口:ftp-data: 20/ tcp|udp ftp: 21/ tcp|udpssh: 22/ tcp|udp telnet: 23/ tcp|udpLinux mount / umount 不同的操作系统使用不同的文件系统格式。MS-DOS支持FAT16文件系统,Windows98支持FAT16、FAT32文件系统,WindowsN

10、T支持FAT16、NTFS文件系统,Windows2000则支持FAT16、FAT32、NTFS三种文件系统格式,而 Linux差不多支持所有的文件系统格式,但一般使用ext2或ext3文件系统。很多用户使用的是windows操作系统,如果想在运行的Linux下访问其它文件系统中的资源的话,就要用Linux mount命令来实现。 2. Linux mount命令的基本用法是?格式:Linux mount命令-参数 设备名称 挂载点 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统。-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。-n 不把安装

11、记录在/etc/mtab 文件中。-r 将文件系统安装为只读。-v 详细显示安装信息。-w 将文件系统安装为可写,为命令默认情况。-t 指定设备的文件系统类型,常见的有:ext2 linux目前常用的文件系统msdos MS-DOS的fat,就是fat16vfat windows98常用的fat32nfs 网络文件系统iso9660 CD-ROM光盘标准文件系统ntfs windows NT/2000/XP的文件系统auto 自动检测文件系统挂接命令(mount)首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。命令格式:mount -t

12、 vfstype -o options device dir其中:1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsMount Windows文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接

13、设备iocharset:指定访问文件系统所用字符集3.device 要挂接(mount)的设备。4.dir设备在系统上的挂接点(mount point)。挂接光盘镜像文件1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。#cp /dev/cdrom /home/sunky/mydisk.iso 注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso2、将文件和目录制作成光盘镜像文件,执行下面的命令。#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ my

14、dir注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk3、光盘镜像文件的挂接(mount)#mkdir /mnt/vcdrom注:建立一个目录用来作挂接点(mount point)#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。 NFS的组成(1)NFS协议:NFS协议定义客户机可能向NFS服务器发送的请求、请求中可能使用的参数和

15、服务器可能返回的应答。(2)RPC协议:RPC协议负责定义客户机和服务器之间的信息格式。NFS请求是以RPC包的形式发送的。(3)扩展数据表达(XDR):提供网络传输数据的方法,该方法与计算机独立。所有的RPC请求都使用XDR传送。(4)NFS服务器代码和守护进程:负责处理所有客户机请求,提供对导出文件系统的访问。NFS守护进程侦听客户机请求。(5)NFS客户代码和守护进程:向服务器发送RPC请求,访问远程文件系统。对于NFS由服务器和客户端角色之分,因此NFS的配置包括NFS服务器端的配置和NFS客户机的配置两部分。NFS服务器的配置步骤NFS服务器的配置包括四个主要步骤:(1)安装NFS软

16、件包。(2)在/etc/exports文件中配置NFS服务器上要导出的文件系统或目录。(3)启动NFS服务。(4)导出/etc/exports中配置的文件系统或目录。NFS守护进程 使用NFS服务,至少需要启动以下3个系统守护进程。 (1)rpc.nfsd (2)rpc.mountd (3)portmap NFS守护进程需要的套件 要激活 NFS 我们必须要有两个套件才行,分别是: nfs-utils:提供rpc.nfsd 及 rpc.mountd这两个 NFS DAEMONS的软件 portmap NFS守护进程NFS需要启动的DAEMONS rpc.nfsd:主要负责登陆权限检测。 rpc

17、.mountd:主要功能是管理NFS的文件系统。当客户端顺利的通过rpc.nfsd登陆NFS服务器后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证, rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限。 portmap: 主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务提供的服务试,portmap会将所管理的与服务对应的端口号提供给客户端,从而使客户端可以通过端口向服务器请求服务注:在REDHAT中PORTMAP是默认启动的 NFS守护进程rpc.nfsd:主要功能就是在管理 Client 是否能够登入主机的权限,以及这个登入者的

18、 IDNFS守护进程rpc.mountd:管理 NFS 的档案系统,当 Client 端顺利的通过 rpc.nfsd 而登入主机之后,在他可以使用 NFS server 提供的档案之前,还会经过档案使用权限的认证程序!他会去读 NFS 的设定档 /etc/exports 来比对 Client 的权限,当通过这一关之后, Client 就可以取得使用 NFS 档案的权限NFS服务的安装 可使用下面的命令来检查系统中是否已经安装了这两个包。rpm -q nfs-utils portmapNFS服务的安装 如果系统尚未安装这两项服务,则可将Red Hat Enterprise Linux 5的第1张

19、安装盘放入光驱。加载光驱后,在光盘的Server目录下可以分别找到portmap服务的RPM安装包文件portmap-4.0-.i386.rpm和NFS服务的RPM安装包文件nfs-utils-1.0.9-16.el5.i386.rpm,然后先使用下面的命令安装portmap服务。rpm ivh /mnt/Server/ portmap-4.0-.i386.rpm再使用下面的命令安装NFS服务。rpm ivh /mnt/Server /nfs-utils-1.0.9-16.el5.i386.rpmNFS的启动和停止NFS的启动和停止是通过/etc/rc.d/init.d目录中的脚本文件nfs实

20、现的,执行该脚本时必须以root身份登陆。在命令行启动NFS的命令为/etc/rc.d/init.d/nfs start ,如下图8-3所示:停止NFS的命令为/ etc/rc.d /init.d/nfs stop。 rootCandy root# /etc/rc.d/init.d/nfs stop当然,也可以用service命令启动和停止NFS服务,命令为: rootCandy root#service nfs start /启动NFS服务 rootCandy root#service nfs stop /停止NFS服务启动和停止NFS服务 1启动NFS服务 /etc/init.d/port

21、map start/etc/init.d/nfs start2停止NFS服务 /etc/init.d/nfs stop/etc/init.d/portmap stop 3重新启动NFS服务 /etc/init.d/nfs restart 4检查portmap和nfs服务的状态 /etc/init.d/portmap status/etc/init.d/nfs status PS:注意关闭与启动的次序portmap端口为111 nfs端口为2049启动和停止NFS服务5设置自动启动NFS服务 对于实际应用中的Linux系统,每次开机后都手工启动nfs服务是不现实的,应该设置系统在指定的运行级别(

22、通常为3和5)自动启动portmap和nfs服务。chkconfig -level 35 portmap onchkconfig -level 35 nfs on 启动和停止NFS服务 执行“ntsysv”命令启动服务配置程序,找到“nfs”和“portmap”服务,分别在其前面加上“*”,然后选择“确定”即可。 服务器端配置服务器端配置配置NFS主要涉及配置文件/etc/exports,它用于NFS服务器段,其中列出了NFS服务器中要导出的目录、可以访问这些目录的NFS客户机及其访问权限。服务器端配置配置NFS配置文件/etc/exports exprots文件中每一行设置了一个共享目录,配

23、置格式: 客户端1(选项1,选项2,) 客户端2(选项1,选项2,) 或: 客户端1 选项(访问权限,用户映射,其他) 客户端2 选项(访问权限,用户映射,其他) 上面这个格式表示,同一个目录分享给两个不同的主机,但提供给这两台主机的权限和参数是不同的,所以分别设定两个主机得到的权限。服务器端配置 例:/home/xxx (rw)允许的用户mount /home/xxx目录 例:/home/test00(rw) PS: 该目录必须是一个绝对路径.服务器端配置/etc/exports: 编辑 /etc/exports 这个档案,请注意,这个档案如果不存在,请自行建立。并且,档名不要写错了!exp

24、orts文件的格式客户端常用的指定方式 客户端说明0指定IP地址的主机/24(或192.168.16.*)指定子网中的所有主机 指定域名的主机* 指定域中的所有主机*(或缺省)所有主机exports文件的格式访问权限选项 访问权限选项说明ro设置输出目录只读rw设置输出目录可读写exports文件的格式用户映射选项 用户映射选项说明all_squash将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(一般均为nfsnobody)no_all_squash不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置)root_squash将root用户及所属用户组都映射为

25、匿名用户或用户组(默认设置)no_root_squash不将root用户及所属用户组都映射为匿名用户或用户组anonuid=xxx将远程访问的所有用户都映射为匿名用户,并指定该匿名用户账户为本地用户账户(UID=xxx)anongid=xxx将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)参数: no_root_squash:登入 NFS 主机的使用者如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!此参数很不安全,建议不要使用! root_squash:在登入 NFS 主机的使用者如果是 root 时,那么这

26、个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份(缺省); all_squash:不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody anonuid:前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anongid:同 anonuid ,但是变成 group ID 就是了 exports文件的格式常用的其他选项 其他选项说明secure限制客户端只能从小于102

27、4的TCP/IP端口连接NFS服务器(默认设置)insecure允许客户端从大于1024的TCP/IP端口连接NFS服务器sync将数据同步写入内存缓冲区与磁盘中,虽然这样做效率较低,但可以保证数据的一致性async将数据先保存在内存缓冲区中,必要时才写入磁盘wdelay检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可提高效率(默认设置)no_wdelay若有写操作则立即执行,应与sync配合使用subtree_check若输出目录是一个子目录,则NFS服务器将检查其父目录的权限(默认设置)no_subtree_check即使输出目录是一个子目录,NFS服务器也不检查其父目录的权限

28、,这样做可提高效率NFS服务配置实例 1例如可以编辑/etc/exports为:/nfs/public /24(rw,async) *(ro)/nfs/liu 0(rw,sync)/nfs/root * (ro,no_root_squash)/nfs/users * (rw,insecure,all_squash,sync,no_wdelay)/mnt/cdrom 192.168.16.*(ro)NFS服务配置实例 2例一:我要将 /tmp 分享出去给大家使用,由于这个目录本来就是大家都可以读写的,因此我要让所有的人都可以存取。此外,我要让 root 写入的档案还是具有 root 的权限 例二

29、:我要将一个公共的目录 /home/public 公开出去,但是只有限定局域网络内 /24 这个网域可以读写,其它人则只能读取 三:我要将一个私人的目录 /home/test 开放给 00 这个 Client 端的机器来使用 例四:我要让 * 网域的主机,登入我的 NFS 主机时,可以存取 /home/linux ,但是他们存资料的时候,我希望他们的 UID 与 GID 都变成 40 这个身份的使用者 图形界面NFS服务器的设置打开“系统”|“管理”|“服务器设置”| “NFS” 如下图所示:图形界面NFS服务器的设置(续)在“NFS服务器配置方案”界面中,单击工具栏上的“添加”按钮,将出现“

30、编辑NFS共享”界面,如下图所示。exports文件导出exportfs: 如果我们修改了 /etc/exports 这个档案之后,是否需要重新激活 nfs 呢?并不需要,只要使用 exportfs 重新扫瞄一次 /etc/exports 这的档案,并且重新将设定加载即可!因此,就要来了解一下 exportfs 的用法了 exports文件导出exportfs命令就是用来维护NFS服务的输出目录列表的。exportfs 选项其选项有以下几个。 -a:输出在/etc/exports文件中所设置的所有目录。-r:重新读取/etc/exports文件中的设置,并使设置立即生 效,而不需重新启动NFS

31、服务。 -u:停止输出某一目录。 -v:在输出目录时将目录显示到屏幕上 NFS服务配置实例3 /tmp*(rw,no_root_squash) /home/public192.168.0.*(rw) *(ro) /home/test00(rw) /home/linux * (rw,all_squash,anonuid=40,anongid=40) NFS服务配置实例3设定好后可以使用以下命令启动NFS: /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的) /etc/rc.d/init.d/nfs start NFS服务配置实例3具体例子

32、: # exportfs -rv =全部重新 export 一次! exporting 00:/home/test exporting 192.168.0.*:/home/public exporting * :/home/linux exporting *:/home/public exporting *:/tmp reexporting 00:/home/test to kernel exportfs -au 本地网络设置编辑文件/etc/hosts,输入主机名称和ip地址的对应关系# vi /etc/hosts localhostlocalhost.localdomain host5 localhost host6 host7:wq!说明:如果没有输入主机清单可能造成rpc服务超时!2、启动相关服务启动rpc服务:#service portmap start启动后nfs服务#service nfs start 3、向网络导出共享目录vi /etc/exports /homehost1(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论