NFS——Linux系统之间的文件共享.doc
文本预览下载声明
NFS服务器的配置
Samba是Linux和Windows之间进行文件共享的桥梁,而在Linux中资源共享则可以通过NFS(Network File System,网络文件系统)来实现。
NFS最早是由Sun公司开发的分布式计算机系统的一部分,它允许用户连接到一个共享位置,然后对该位置上的文件及文件夹进行操作。
RPC简介
NFS服务没有固定的端口,因为NFC支持的功能相当多(包括文件传输、身份验证等功能),而每个功能都会占用一个端口。因此,NFS会采用动态端口的方式来工作,从而避免了占用过多的固定端口。采用动态端口,意味着NFS为每个功能提供服务是都会随机抽取一个小于1024的端口来提供服务。但是NFS提供的端口如此之多,客户端不能确定访问哪个端口才能获得NFS的服务,此时,需要RPC(Remote Procedure Call,远程进程调用)服务,记录每个NFS功能对应的端口。NFS启动的时候,会自动向RPC服务器注册,把自己各个功能使用的端口提供给RPC。RPC工作于固定端口111,当客户端向NFS服务发出请求时,客户端则会访问服务器的111端口,RPC将NFS工作端口返回给客户端。
实际上,NFS可以被认为是一个RPC程序,在启动任何一个RPC程序之前,都需要做好端口映射(port mapping)工作,这个工作就是由RPC主程序portmap负责的。在启动任何一个RPC Server之前,用户都需要启动portmap。
1、启动NFS
# service portmap start
# service nfs start
2、配置NFS
编辑/etc/exports,在文件中列出,要共享的目录。书写规则是:(每个共享规则一行)
共享目录 主机(参数)
例如:
/mnt/disk1 192.168.70.51(ro,sync, no_root_squash)
上面的规则代表将/mnt/disk1目录以读写同步方式共享给主机192.168.70.51。如果登陆到NFS主机的用户是root,那么该用户就具有NFS主机的root用户的权限。下面是一些NFS共享的常用参数:
rw:可读写的权限;
ro:只读的权限;
no_root_squash: 登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限
root_squash:在登入 NFS 主机使用目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份;
all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于etc/passwd中。
anongid:同 anonuid ,但是变成 group ID 就是了!
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
Insecure: 允许从这台机器过来的非授权访问。
3、exportfs命令:
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
exportfs [-aruv]
参数的意义如下:
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :在 export 的时候,将详细的信息输出到屏幕上。
具体例子:
[root @test root]# exportfs –rv ==全部重新 export 一次!
4、客户端配置
客户端运行以下命令MOUNT NFS文件系统
#mount -t nfs 192.168.70.50:/opt /mnt/disk1
显示全部