NFS(Network File System,网络文件系统)
NFS重要指数4星
NFS概述
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS的好处
- 节省本地存储空间,将一些常用的数据存放在一台NFS服务器上且可以通过网络访问,从而减少本地终端对自身存储空间的使用;
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用;
- 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用,这可以减少整个网络上可移动介质设备的数量。
NFS的组成
NFS体系至少需要两个主要部分:
- NFS服务器
- 若干台客户机
NFS的应用
- 多个机器共享一台CDROM或者其他设备;
- 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利;
- 不同客户端可在NFS上观看影视文件,节省本地空间;
- 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
NFS实例
项目名称:为群集中的Web Server配置后端存储
1.主要的设备:
nas 192.168.1.3
web1 192.168.1.10
web2 192.168.1.20
2.为了方便实验需要执行如下操作:
关闭SELinux
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config #修改配置文件,重启后生效
setenforce 0 #临时生效
关闭防火墙
==centos6
iptables -F
service iptables save
==contos7
systemctl stop firewalld
systemctl disable firewalld
这部分是可选的,如果后面要用主机名挂载可将IP地址和主机名写入hosts文件
vim /etc/hosts[可选]
192.168.1.3 nas
192.168.1.10 web1
192.168.1.20 web2
在设置完上面配置后,下面开始正式搭建NFS网络共享存储
一、配置NFS存储端
安装nfs-utils、rpcbind软件包
yum -y install nfs-utils rpcbind
说明:nfs-utils软件包用于共享发布和访问,rpcbind软件包用于RPC支持。NFS服务的实现依赖与RPC(Remote Process Call,远端过程调用)机制,RPC充当NFS客户端和NFS服务器的中介,以完成远程到本地的映射过程。
设置共享目录
mkdir -p /opt/wwwroot
vim /etc/exports
/opt/wwwroot 192.168.1.0/24(rw,sync,no_root_squash) #//不压制root(当client使用root挂载时,也有root权限)
重启NFS服务程序
systemctl restart rpcbind
systemctl enable rpcbind
systemctl restart nfs
systemctl enable nfs
查看本机发布的NFS共享目录
showmount -e
Export list for bogon:
/opt/wwwroot 192.168.1.0/24
或者
exportfs -v
/opt/wwwroot 192.168.1.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
说明:如果在查看本机发布的NFS共享目录时,出现clnt_create: RPC: Program not registered报错,可在文章最后看解决办法。
二、web1 web2 客户端
以web1为例:
安装nfs-utils、rpcbind、httpd软件包
yum -y install nfs-utils rpcbind httpd
启动服务
systemctl start rpcbind
systemctl enable rpcbind
systemctl start httpd
systemctl enable httpd
查看存储端共享
showmount -e 192.168.1.3
Export list for 192.168.1.3:
/opt/wwwroot 192.168.1.0/24
挂载NFS共享目录
手动挂载
mount -t nfs 192.168.1.3:/opt/wwwroot /var/www/html
自动挂载
echo "192.168.1.3:/opt/wwwroot /var/www/html nfs defaults 0 0" >> /etc/fstab
web2的配置同上web1
三、验证NFS
在客户端创建测试文
mount /dev/cdrom /mnt #挂载光盘
mkdir /var/www/html/centos7 #创建测试共享目录
cp -a /mnt/* /opt/www/html/centos7/ cp光盘中内容到测试目录下
在服务端查看
cd /opt/wwwroot
ls
centos7 index.html
cd centos7/
ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
在web2上查看(在web上无需在创建测试文件,直接查看即可)
cd /var/www/html
ls
centos7 index.html
cd centos7/
ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
在浏览器中查看
web1
web2
至此NFS网络共享服务已经搭建完成了,如有疑问,欢迎留言。
在搭建NFS环境时遇到的问题
问题:在搭建完NFS环境后,使用showmount -e查看存储端共享时出现clnt_create: RPC: Program not registered报错,表示rpc程序未注册成功。
解决办法:
现将之前启动的nfs和rpcbind关闭
systemctl stop nfs
systemctl stop rpcbind
再次启动服务(注意,先启动人rpc)
systemctl restart rpcbind
systemctl restart nfs
然后再次使用showmount -e查看存储端共享
[root@localhost yum.repos.d]# showmount -e
Export list for localhost.localdomain:
/opt/wwwroot 172.16.56.0/24 #已经正常了