一、NFS 服务器介绍
nfs ( Network File System )即网络文件系统,其基于 UDP/IP使用 nfs 能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上其它计算机中的文件就像在访问自己的计算机一样。
二、NFS 服务器的特点
- 提供透明文件访问以及文件传输;
- 容易扩充新的资源或软件,不需要改变现有的工作环境;
- 高性能,可灵活配置。
三、NFS 服务器的适用场景
四、NFS服务器搭建
1、配置介绍
/nfs/rootfs *(rw,sync,no_subtree_check,no_root_squash)
- /nfs/rootfs :共享的目录;
- * :不限定客户端;
- rw :共享目录可读可写;
- sync :将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
- no_subtree_check :即使输出目录是一个子目录, nfs 服务器也不检查其父目录的权限,这样可以提高效率;
- no_root_squash :来访的 root 用户保持 root 帐号权限;
2、常见错误
1)错误现象: RPC: Program not registered & retrying
原因: nfs 服务没有启动
解决方法:启动服务
2)错误现象: The stale file handle error
原因:服务器上的共享资源移动位置了
解决方法:客户端使用 umount 和 mount 重新挂接
3、NFS环境搭建
1) 运行下面的命令安装NFS服务器(需要保持网络通畅)。
linux@ubuntu:~ $ sudo apt-get install nfs-kernel-server
2)运行下面的命令,创建一个目录,并在该文件下创建一个文件,用于测试nfs。
linux@ubuntu:~ $ sudo mkdir /nfs
linux@ubuntu:~ $ mkdir /nfs/rootfs
linux@ubuntu:~ $ echo "nfs test" > /nfs/rootfs/test.txt
3)编辑/etc/exports配置文件。
linux@ubuntu:~ $ sudo vim /etc/exports
添加如下内容:
/nfs/rootfs *(rw,sync,no_subtree_check,no_root_squash)
其中:
- /nfs/rootfs:共享的目录;
- *:不限定客户端;
- rw:共享目录可读可写;
- sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
- no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可
- 以提高效率;
- no_root_squash:来访的root用户保持root帐号权限;
4)Ubuntu17.10及以后版本需要增加以下配置,因为新版本Ubuntu只支持nfs 3和nfs 4,而uboot默
认使用nfs 2
linux@ubuntu:~ $sudo vi /etc/default/nfs-kernel-server
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
5)使用下面的命令,重启NFS服务。
linux@ubuntu:~ $ sudo service nfs-kernel-server restart
6)使用下面的命令,将共享目录挂在到/mnt目录下,并修文件。
linux@ubuntu:~ $ sudo mount -t nfs localhost:/nfs/rootfs /mnt
linux@ubuntu:~ $ vim /mnt/test.txt
7)使用下面的命令,查看原来的文件已经被修改。
linux@ubuntu:~ $ cat /nfs/rootfs/test.txt
8)使用下面的命令取消挂载。
linux@ubuntu:~ $ sudo umount /mnt