NFS=Network File System,代表网络文件系统,这是一种在unix / Linux系统之间共享文件和文件夹的服务,
由SUN Microsystems在1990年开发。这里我们来演示一下如何在Ubuntu16.04上搭建NFS服务器。配置方法同样
使用于其它系统,如Debian 8,Ubuntu 17.10 / 17.04 / 15.10 / 15.04 / Ubuntu 14.04
环境:
NFS Server Hostname: nfs.cluster.local
NFS Server IP Address: 172.16.10.21 /16
NFS Client Hostname: nfsc.cluster.local
NFS Client IP Address: 172.16.10.22/16
注意:NFS服务器的IP地址请使用固定IP地址,不要使用DHCP分配方式
NFS主要的服务
rpcbind: rpcbind将RPC程序编号转换为通用地址,主要是在nfs共享时负责通知客户端服务器的nfs端口号
nfs:允许客户机访问nfs共享。
nlockmgr:当NFS服务器崩溃并重新启动时,NFS文件锁定实现了文件锁定恢复。
mountd:处理访问控制列表,以确定客户端是否允许访问NFS共享。
NFS主要配置文件
/etc/exports : 主配置文件。在这个文件中指定选项导出到远程主机的文件系统。
/etc/fstab : 此文件包含用于在系统引导时挂载所有文件系统(包括NFS)的条目。
/etc/hosts.allow, 和 /etc/hosts.deny : 通过这两个文件配置允许或禁止访问NFS
安装和配置NFS服务器
1,切换到root用户
sudo su -
2,安装NFS服务器所需要的包
apt-get install -y nfs-kernel-server
3,创建一个共享目录。在这里,我们将在根目录中创建一个名为nfsshare的新目录,并通过NFS共享此目录
允许客户端对目录有读写权限
修改/etc/exports文件以导出NFS共享
/nfsshare: #共享目录
172.16.0.0/16: #允许访问NFS服务器的IP地址段,这里也可以设置为单独的IP地址来只允许某个固定的IP访问
rw : #读写权限
sync : #文件系统的所有更改都立即刷新到磁盘
no_root_squash : 默认情况下,client端root用户创建的任何文件在服务器上都被视为“nobody”。如果设置了no_root_squash,那么client端root用户将具有与服务器端root用户相同的文件访问级别。
no_subtree_check : 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
4,输出共享目录并做本地验证
exportfs -ra
showmount -e 127.0.0.1
安装和配置NFS客户端
1,切换到root用户
sudo su -
2,安装NFS客户端所需要的包
apt-get -y install nfs-common
3,查看服务器上的NFS共享是否可见
showmount -e 172.16.10.21
4,挂载NFS共享目录
mkdir /mnt/share
mount 172.16.10.21:/nfsshare /mnt/share
5,确认挂载可见
mount grep nfs
df -hT
6,验证写权限
touch /mnt/share/test
7,确认NFS目录可以正常使用后,设置开机自动挂载
编辑/etc/fstab,增下一行如下:
172.16.10.21:/nfsshare /mnt/share nfs rw,sync hard,intr 0 0
8,编辑完成后,保存配置文件并退出,reboot系统
系统重启后,检查自动挂载是否生效
9,向NFS共享止录中写入测试文件,到这里NFS共享就配置完成了。