NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
一、NFS安装、配置
yum -y install nfs-utils nfs-utils-lib rpcbind
mkdir -p /home/network/nfs
vim /etc/exports
增加
/home/network/nfs *(rw,sync,no_root_squash,no_all_squash)
保存退出
exportfs -r
service rpcbind restart
service nfs restart
chkconfig --level 35 nfs on
chkconfig --level 35 rpcbind on
服务端验证NFS共享:
showmount -e
注:正常能显示出上面设置的共享目录,如果报如下错误:
clnt_create: RPC: Program not registered
说明 rpcbind服务与NFS服务 启动顺序不对,把他俩都停了,重新启动,先启动rpcbind服务再启动nfs服务;
客户端验证NFS共享:
showmount -e 192.168.1.207 (即NFS服务器的IP地址)
注:正常也能显示出上面设置的共享目录,如果报如下错误:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
说明防火墙没有开启相应需要开启的端口,把防火墙关掉,再测试应该就可以正常了;不过防火墙比较重要,一般情况下,不会随意关闭,在服务端可开启如下命令列出的所有端口即可:
# rpcinfo -p localhost
二、客户端挂载
cd
mkdir testnfs
mount -t nfs 192.168.1.207:/home/network/nfs testnfs
验证NFS挂载
df
正常能多显示出类似红色字体内容:
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda3 50403012 1772272 46070384 4% /
tmpfs 914652 0 914652 0% /dev/shm
/dev/sda1 198337 27655 160442 15% /boot
192.168.1.207:/home/network/nfs
13383232 538944 12164480 5% /root/testnfs
或者
cd /root/testnfs
mkdir test
然后到服务端 /home/network/nfs 目录下,是否出现一个 test的文件夹即可;
设置系统启动自动挂载:
vim /etc/fstab
新增
192.168.1.207:/home/network/nfs /root/testnfs nfs defaults 0 0
三、知识扩展
exports命令:
参数说明如下。
(1)-a:全部挂载(或卸载)/etc/exports文件内的设定。
(2)-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
(3)-u:卸载某一目录。
(4)-v:在export时将共享的目录显示在屏幕上。
/etc/exports文件内容格式:
<共享目录> [客户端1 选项(访问权限,用户映射,其他)]
用户映射选项
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服务器也不检查其父目录的权限,这样可以提高效率;
结束词:写了那么多,有些知识只是供学习参考使用,其实NFS服务器的安装与配置非常简单,安装-配置共享目录-客户端挂载 即可;