当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Debian和UbuntuLinux的NFS配置介绍

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 Debian和UbuntuLinux的NFS配置介绍


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 68 ::
收藏到网摘: n/a

NFS(NetworkFileSystem,网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样!
 
一般而言,使用nfs能够方便地使各unix-like系统之间实现共享。但如果需要在unix-like和windows系统之间共享,就得使用samba了!
 
NFS运行在SUN的RPC(RemoteProcedureCall,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信。由此,NFSserver也可以看作是RPCserver.
 
正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。比如:某个NFSclient发起NFS服务请求时,它需要先得到一个端口(port)。所以它先通过portmap得到portnumber.(不仅NFS,所有的RPC服务程序启动之前,都需要设定好portmap)
 
在启动RPC服务(比如NFS)之前,需要启动portmap服务!(关于nfs和portmap是否存在于当前系统,看后面的"NFS安装"部分。
 
与NFS相关的几个文件,命令
 
1、/etc/exports
 
对NFS卷的访问是由exports来批准,它枚举了若干有权访问NFS服务器上文件系统的主机名。
 
2、/sbin/exportfs
 
维护NFS的资源共享。可以通过它重新设定/etc/exports的共享目录,卸载NFSServer共享的目录或者重新共享等。
 
3、/usr/sbin/showmount
 
用在NFSServer端,而showmount则主要用在Client端。showmount可以用來查看NFS共享的目录资源。
 
4、/var/lib/nfs/xtab
 
NFS的记录文档:通过它可以查看有哪些Client连接到NFS主机的记录。
 
下面这几个并不直接负责NFS,实际上它们负责所有的RPC
 
5、/etc/default/portmap
 
实际上,portmap负责映射所有的RPC服务端口,它的内容非常非常之简单(后面详述)
 
6、/etc/hosts.deny
 
设定拒绝portmap服务的主机
 
7、/etc/hosts.allow
 
设定允许portmap服务的主机
 
安装NFS
 
Debian/Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
 
$sudoapt-getinstallnfs-kernel-server
 
(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
 
这样,宿主机就相当于NFSServer.
 
同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common.
 
$sudoapt-getinstallnfs-commmon
 
nfs-common和nfs-kernel-server都依赖于portmap!
 
配置NFS
 
由于NFS是一个RPCserver程序。而portmap是用来挂你RPC的端口号映射的。所以先要配置portmap.
 
配置portmap
 
方法1:编辑/etc/default/portmap,将-i127.0.0.1去掉。
 
方法2:$sudodpkg-reconfigureportmap,对Shouldportmapbeboundtotheloopbackaddress?选N.
 
配置/etc/hosts.deny
 
(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
 
###NFSDAEMONS
 
portmap:ALL
 
lockd:ALL
 
mountd:ALL
 
rquotad:ALL
 
statd:ALL
 
配置/etc/hosts.allow
 
允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页hosts_access(5),hosts_options(5)。加入:
 
###NFSDAEMONS
 
portmap:192.168.2.
 
lockd:192.168.2.
 
rquotad:192.168.2.
 
mountd:192.168.2.
 
statd:192.168.2.
 
/etc/hosts.deny和/etc/hosts.allow设置对portmap的访问。采用这两个配置文件有点类似"mask"的意思。现在/etc/hosts.deny中禁止所有用户对portmap的访问。再在/etc/hosts.allow中允许某些用户对portmap的访问。
 
运行$sudo/etc/init.d/portmaprestart重启portmapdaemon.
 
配置/etc/exports
 
NFS挂载目录及权限由/etc/exports文件定义
 
比如我要将将我的home目录中的/home/zp/share目录让192.168.2.*的IP共享,则在该文件末尾添加下列语句:
 
/home/zp/share192.168.2.*(rw,sync,no_root_squash)
 
或者:/home/zp/share192.168.2.0/24(rw,sync,no_root_squash)
 
192.168.2.*网段内的NFS客户端能够共享NFS服务器/home/zp/share目录内容。且有读,写权限,并且该用户进入/home/zp/share目录后的身份为root
 
最好加上sync,否则$sudoexportfs-r时会给出警告,sync是NFS的默认选项。
 
运行$showmount-e查看NFSserver的exportlist.
 
若更改了/etc/exports,运行$sudoexportfs-r更新
 
运行$sudo/etc/init.d/nfs-kernel-serverrestart重启nfs服务
 
/etc/exports实际上就是nfs服务器的核心配置文件了。鸟哥的Linux私房菜列举了一些exports文件的写法。
 
测试NFS
 
可以尝试一下挂载本地磁盘(假设本地主机IP地址为:192.128.2.1,将/home/zp/share挂载到/mnt)
 
$sudomount192.168.2.1:/home/zp/share/mnt
 
运行$df看看结果
 
$sudoumount/mnt
 
注意被拷贝文件的读/写权限!
 
另外,可以使用一定的参数:
 
使用加参数的办法:mount-onolock,rsize=1024,wsize=1024,timeo=15192.168.2.130:/tmp//tmp/