网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。

一、服务器的配置
以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。
1、执行如下命令编辑文件/etc/exports:

#vi /etc/exports




在该文件里添加如下内容:


/home/work 192.168.0.*(rw,sync,no_root_squash)




添加的内容表示:


允许ip 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录


/home/work 也称为服务器输出共享目录。



括号内的参数意义描述如下:


[list]


rw:读/写权限,只读权限的参数为ro;


all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);


no_all_squash 与all_squash取反(默认设置);


root_squash 将root用户及所属组都映射为匿名用户或用户组(默认设置);


no_root_squash 与rootsquash取反;


anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户 (UID=xxx);


anongid=xxx 将远程访问的所有用户组都映射为匿名用 户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);


secure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);


insecure 允许客户端从大于1024的tcp/ip端口连接服务器;


sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;


async 将数据先保存在内存缓冲区中,必要时才写入磁盘;


wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率 (默认设置);


no_wdelay 若有写操作则立即执行,应与sync配合使用;


subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);


no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;


[/list]



2、接着执行如下命令,启动端口映射:


#/etc/rc.d/init.d/portmap start




3、最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求:


#/etc/rc.d/init.d/nfs start




4、启动或停止NFS服务


# sevice nfs start|stop|restart
#chkconfig --level 35 nfs on //设置NFS自动启动方式;




二、客户端配置


1、Linux客户端可以直接通过mount命令挂载NFS文件


# mkdir /mnt/nsf1
# mount -t nfs 192.168.0.231:/nfs/frank /mnt/nfs1
# mount | grep nfs
# umount /mnt/nfs1




2、自动挂载


autofs 服务会根据/etc/auto.master文件来控制自动挂载命令:automount的命令可以更加方便的指定挂载点,主机名, 输出目录等等。



autofs的配置文件以父-子关系来组织,主配置文件(/etc/auto.master) 列出了所有的挂载点,然后他会连接到一个特定的映射类型, 这个类型可以是配置文件,程序, NIS映射或者其他挂载方式,auto.master文件包含了如下内容。


/home/share /etc/auto.share




home指本地挂载点,/etc/auto.home指具体挂载配置



auto.home的内容如下:


share  -fstype=nfs 192.168.92.56:/home/share



这个文件设置了将192.168.92.56:/home/share 挂载到本地的 /home/share