有两台主机
主机1: 192.168.30.160 /opt/datas/
主机2: 192.168.30.157 /opt/remote/
现在要主机2的/opt/remote目录挂载到主机1的/opt/datas路径下,即让主机2能够访问主机1下的文件。
NFS服务器配置
NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机不同操作系统之间可以彼此共享文件。
由于NFS使用起来非常方便,因此很快得到了大多数的UNIX/Linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC3010标准
NFS采用客户/服务器工作模式。
在NFS服务器上将目录设置为输出目录(即共享目录)后,其他客户端就可以将这个目录挂载到自己系统中的某个目录下。
NFS服务所使用的进程:
使用NFS服务,至少需要启动以下3个系统守护进程。
rpc.nfsd
它是基本的NFS守护进程,主要功能是管理客户端是否能够登入服务器。
rpc.mountd
它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
portmap
portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
NFS服务器的安装:
在默认的情况下,RHEl6已经将NFS服务器安装在系统当中了,但如果没有安装,则可以去安装下面的软件。
rpm -ivh nfs-utils-xxxx.rpm
NFS服务端配置:
NFS服务器共享目录时所使用的配置文件为/etc/exports,此文件可能根本不存在,需要手动的创建。语法结构如下:
共享目录的绝对路径 客户端(选项)
例:/share 192.168.0.0/24(ro)
启动或重启nfs服务
service nfs start/restart
exportfs –r(重读/etc/exports文件)
NFS服务器客户端描述:
NFS服务器在共享一个目录的时候,可以支持基于主机的访问权限,即定义只充许那些主机可以来访问此共享目录。
在配置文件中的客户端就是用来指定那些主机可以访问这个目录。
客户端 |
说明 |
192.168.0.10 |
指定IP地址的主机 |
192.168.0.0/24(或192.168.0.*) |
指定子网中的所有主机 |
www.yinhepx.com |
指定域名的主机 |
*.yinhepx.com |
指定域中的所有主机 |
*(或缺省) |
所有主机 |
NFS服务器在共享一个目录的时候,还可以设定许多共享选项,包括访问目录时的权限选项、用户映射选项以及其它访问选项。
NFS访问权限选项:
当客户端在挂载NFS服务器共享的目录时,会根据NFS服务器的权限选项来决定以只读方式或读写方式来挂文件系统
访问权限选项 |
说明 |
ro |
设置输出目录只读 |
rw |
设置输出目录可读写 |
NFS用户映射选项:
NFS客户端在访问服务端共享的目录时,访问的用户可以映射为一个权限很低的普通或系统用户。这样可以增强访问的安全性。
用户映射选项 |
说明 |
all_squash |
将远程访问的所有普通用户及所属用户组都映射为匿名用户或用 户组(nfsnobody) |
no_all_squash |
不将远程访问的所有普通用户及所属用户组都映射为匿名用户或 用户组(默认) |
root_squash |
将root用户及所属用户组都映射为匿名用户或用户组(默认) |
no_root_squash |
不将root用户及所属用户组都映射为匿名用户或用户组 |
anonuid=xxx |
将远程访问的所有用户都映射为匿名用户,并指定该匿名用户账 户为本地用户账户(UID=xxx) |
anongid=xxx |
将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿 名用户组账户为本地用户组账户(GID=xxx) |
NFS其它访问选项:
其他选项 |
说明 |
secure |
限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置) |
insecure |
允许客户端从大于1024的TCP/IP端口连接NFS服务器 |
sync |
将数据同步写入内存缓冲区与磁盘中,虽然这样做效率较低,但可以保证数据的一致性 |
async |
将数据先保存在内存缓冲区中,必要时才写入磁盘 |
wdelay |
检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可提高效率(默认设置) |
no_wdelay |
若有写操作则立即执行,应与sync配合使用 |
subtree_check |
若输出目录是一个子目录,则NFS服务器将检查其父目录的权限(默认设置) |
no_subtree_check |
即使输出目录是一个子目录,NFS服务器也不检查其父目录的权限,这样做可提高效率 |
NFS服务器配置文件维护指令(exportfs):
exportfs命令就是用来维护NFS服务的输出目录列表的,命令的基本格式如下
exportfs [选项]
其选项有以下几个。
-a:输出在/etc/exports文件中所设置的所有目录。
-r:重新读取/etc/exports文件中的设置,并使设置立即生效,而不需重新启动NFS服务。
-v:在输出目录时将目录显示到屏幕上
客户端访问NFS共享目录:
使用showmount命令测试NFS服务器的输出目录状态
showmount命令的基本格式为:
showmount [选项] NFS服务器名称或地址
-e:显示指定的NFS服务器上所有输出的共享目录。
例:showmount -e 192.168.0.20
通过挂载来访问NFS共享目录
mount –t nfs 192.168.0.20:/share /mnt/nfs
通过自动挂载来访问NFS共享目录
cd /net/<nfs服务器IP>/<共享目录>
回到上面主机1的配置:
1,修改主机1下的/etc/exports文件(如果没有自己创建),添加以下内容:
/opt/xdrdata *(insecure,ro,sync,all_squash)
2,启动服务
service nfs start
3,在主机2上执行挂载操作
mount -t nfs 192.168.30.157:/opt/xdrdata /opt/remote
4,通过ls命令即可查看到主机1下的文件
ls /opt/remote