Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124344
  • 博文数量: 37
  • 博客积分: 2094
  • 博客等级: 大尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-14 08:39
文章分类
文章存档

2010年(37)

分类: LINUX

2010-03-14 17:48:40

NFS是一种网络文件系统,是系统间进行文件共享的一种网络协议
在NFS的应用结构中有服务器和客户机两种角色
NFS客户端通过挂载NFS文件系统的方式访问
NFS服务器中输出的共享目录
在同一台主机中即可以是NFS服务器也可以作为NFS客户机
NFS有自己的协议与使用的端口,但是在传输文件或其他相关信息传送的时候,NFS使用的则是一个称为远端程序呼叫的协议来协助NFS本身的运作,简称RPC。
什么是RPC?
字面上理解就是一些程序在执行远程连接时,需要用到的程序。简单说,当我们在使用某些服务来进行远程连线时,有些数据,例如主机的IP,服务的端口与对应到的服务的PID,都需要管理与对应,这些管理端口的对应与服务相关的工作,就是RPC的任务。
现在我们将NFS和RPC两者的相关性连接起来理解,那么你该知道,NFS本身的服务并没有提供文件传输的协议,但是NFS却能让我们进行文件的分享,这其中的原因就是NFS使用到一些其他相关的传输协议。而这些传输的协议,就是使用到RPC的功能了。也就是说,NFS本身就是使用RPC的一个程序。更白话点说,NFS也可以看做是一个RPC服务器。要注意的是,不但运行NFS的服务器需要启动RPC服务,同时要挂载NFS分区的客户端机器,也需要启动RPC服务才行。也就是说,NFS主要在管理共享出来的目录,而文件的传输方面,是RPC的事。
搭建NFS服务所需软件包:
portmap软件包
提供了运行portmap服务所需的文件。portmap服务为NFS等服务器程序提供RPC服务的支持
nfs-utils软件包
提供了NFS服务器的启动脚本和管理维护工具
这两个软件包在系统中默认是已经安装的

相关文件
/etc/exports
是NFS的主要设定文件。
/usr/sbin/exportfs
这个是维护NFS共享资源的指令,我们可以利用这个指令重新分享/etc/exports变更的目录资源,将NFS服务器共享出来的目录写在或重新共享等等。
usr/sbin/showmount
exportfs是用在NFS服务器端,而showmount则主要是用在client端,可以用他来查看NFS共享出来的目录资源。
/var/lib/nfs/xtab
这个文件是NFS的纪录文件,当我们的NFS共享出目录资源后,到底有哪些客户端连接到我们的NFS主机呢,就是看这个文件的内容。
/etc/exports文件用于配置NFS服务器中输出的共享目录,该文件的布局如下:

 
exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址,如下:

 
了解一些设置选项的属性:
rw:可读写的权限;ro:只读;
no_root_squash:登入NFS主机使用分享目录的使用者,如果是root,那么对于这个共享的目录来说,他就具有root的权限,这个项目不安全,不建议使用。
root_squash:在登入NFS主机使用共享目录的使用者如果是root,那么这个使用者的权限将被改变成匿名使用者,通常他的UID和GID都会变成nfsnobody身份。
all_squash:无论登入NFS的使用者身份为何,他的身份都会被改变成为nfsnobody。
anonuid:前面关于*_squash 提到的匿名使用者的UID 设定值,通常为nobody,但是您可以自行设定这个UID 的值!当然,这个UID 必需要存在与您的/etc/passwd 当中!
anongid:同anonuid ,但是变成group ID 就是了!
sync:资料同步写入到内存与硬盘中;
async:资料会先暂存内存当中,而非直接写入硬盘!
看一个/etc/exports文件的配置实例:

 
看看我机器上的实例:

重新启动nfs/portmap服务,如下图:

 
显示指定NFS服务器中的共享目录列表
# showmount -e 192.168.1.10

那么如何将NFS服务器上的共享资源挂载到本地呢?看如下操作:

查看是否被挂载同样也可以使用mount命令来查看
showmount命令同样也可以用来查看与NFS服务器连接的信息

 
查看当前nfs服务器上已经被客户机挂载使用的共享资源:

 
查看指定nfs服务器的客户机的信息

 
下面我们来学习服务器端命令的使用:
重新输出共享目录:
使nfs服务器重新读取exports文件中的设置

 
 
停止输出所有目录:
停止当前主机中NFS服务器的所有目录输出(但是nfs服务并没有关闭)

 
将nfs共享资源写入/etc/fstab中实现自动挂载

这样只要机器一启动就自动挂载nfs上的共享资源到本地/mnt目录下面。
接下来学习nfs客户端使用nfs+auto实现按需挂载
首先编辑/etc/auto.master,如下:

在/etc/auto.master添加上图中被标识的那行(/etc/test1中配置挂载项挂载在/mnt下)
接下来我们得到/etc下面新建一个名为test1的文件,并在里面配置挂载项

重启autofs服务

下面来测试一下

呵呵!测试成功!

 
各种文件系统的挂载实例如下:
nfs -ro,soft,intr 172.16.0.3:/var/ftp/pub
cd -fstype=iso9660,iocharset=cp936,ro :/dev/cdrom
fd -fstype=vfat :/dev/fd0
win -fstype=smbfs ://10.8.22.18/dir
local -fstype=ext3 :/dev/hda1
说明:
 以上的挂载分别挂载的是nfs,cdrom,floppy,windows共享,本地文分区。挂载成功后,访问的位置分别是:/mnt/nfs,/mnt/cd,/mnt/fd,/mnt/win,/mnt/local。
卸载和正常卸载一样操作
例子以及说明:
public -rw,bg,soft,rsize=32768,wsize=32768 192.168.1.254:/home/public
test -rw,bg,soft,rsize=32768,wsize=32768 192.168.1.254:/home/test
temp -rw,bg,soft,rsize=32768,wsize=32768 192.168.1.254:/tmp
当我们在用戶端要使用 /mnt/public 的資料时,此時 autofs 才會去192.168.1.254 挂载 /home/public  !当隔了 5 分钟沒有使用该目录下的資料后, 则/mnt/public将会主动的卸载。
参数说明:
fg 前台执行,mount 会持续尝试挂载,直到成功或 time out为止
bg后台执行mount命令,如果服务器经常重启,建议使用 bg 比较好。hard服务器和客户机任何一个离线,則 RPC 会持续的呼叫,直到对方恢复连线为止
soft 当 RPC time out 后重复呼叫,而非持续呼叫,如果你的服务器总重启,则建议
intr 当你使用上hard 方式挂载时,若加上 intr 这个参数, 则当RPC 持续呼叫中,该次的呼叫是可以被中断的 (interrupted)。
不过挂载镜像文件时有点特殊:
cdrom -fstype=iso9600,loop  :/rhel5u3.iso
 
 
 
 
 
 
 
 
 
 
 
 
 

 
阅读(1310) | 评论(1) | 转发(0) |
0

上一篇:有关Telnet服务的使用

下一篇:NIS服务

给主人留下些什么吧!~~

chinaunix网友2010-03-14 20:00:20

恭贺开博!!