共计 2661 个字符,预计需要花费 7 分钟才能阅读完成。
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 服务器的安装与配置非常简单,安装-配置共享目录-客户端挂载 即可;
相关阅读:
Ubuntu 12.04 安装 NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm
NFS 服务器安装配置实现 Ubuntu 12.04 与 ARM 文件共享 http://www.linuxidc.com/Linux/2012-10/73159.htm
Ubuntu 搭建 nfs 服务器 http://www.linuxidc.com/Linux/2012-10/71930.htm
文件服务器 NFS 配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm
Ubuntu 下搭建 NFS 网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm
Heartbeat_ldirector+LB+NFS 实现 HA 及 LB、文件共享 http://www.linuxidc.com/Linux/2013-06/85292.htm
CentOS 5.5 配置 NFS 服务器教程 http://www.linuxidc.com/Linux/2013-03/81737.htm
Ubuntu 12.10 下 NFS 的安装使用 http://www.linuxidc.com/Linux/2013-03/80478.htm