前言
NFS服务经常会用到,它用于网络上共享存储。举例来说,
假如由三台机器ABC,他们急需要访问一个目录,且目录
中都是图片,传统的做法就是把这些图片分别放到ABC中
但使用NFS服务,只需要把图片放到A上,然后A共享给B,
和C。
一、NFS概述
NFS (Network File System)网络文件系统(做文件存储,共享)
1. 依赖于RPC (远端过程调用)客户端访问服务器的过程由RPC服务管理
2. 需安装nfs-utils、rpcbind软件包
3. 系统服务: nfs、 rpcbind
4. 共享配置文件: /etc/exports (唯一 一个配置文件为空的文件)
注:NFS是专门用来存储的服务器,NFS中的数据有图片等等,不方便放入数据库,所以他只是一个专门用来存储的服务器,NFS比Samba的功能要多
1.NFS工作与原理
客户机存在RPC服务,RPC服务会向NFS服务器索要开放的端口号,(NFS服务不是固定的端口对外开放服务,端口具有随机性),所以RPC服务是专门用来管理端口的。NFS服务启动时RPC同时启动,在启动过程中NFS会向RPC服务申请要开放的端口号,客户端的RPC服务也会通过TCP/IP协议连接到服务端的RPC服务询问客户端需要的访问的端口号,这时,服务端RPC服务告知客户端PRC服务开放的端口号。之后客户端通过访问服务器IP和从RPC服务获取的端口号来访问NFS服务,访问同时NFS服务映射了一个本地文件访问的路径去访问本地磁盘里的文件。所以RPC是在此过程中的中间调度的一个程序。
二、NFS服务配置
1.环境部署
NFS服务器
1.编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡
systemctl restart network
在/opt下面创建两个目录
mkdir /opt/web1
mkdir /opt/web2
进入到 /opt/web1,编辑一个index.html的文件做测试
cd /opt/web1
vi index.html #编辑
添加:
<html><tittle>web1</tittle><body><h1>This is web1<h1><body></html>
进入到 /opt/web2,编辑一个index.html的文件做测试
cd /opt/web2
vi index.html #编辑
添加:
<html><tittle>web2</tittle><body><h1>This is web2<h1><body></html>
// An highlighted block
var foo = 'bar';
客户机
使用两台客户机做测试用
客户机1
编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡
systemctl restart network
客户机2
编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡
systemctl restart network
关闭防火墙
临时关闭防火墙
systemctl stop firewalld
setenforce 0
永久关闭防火墙
systemctl disable firewalld
vi /etc/selinux/config
修改:
SELINUX=disabled
此时防火墙已永久关闭
可以ping一下主机的连通性,确保实验环境
2.NFS服务搭建
服务器
yum安装NFS服务
yum -y install nfs-utils
编辑
vi /etc/exports
/opt/web1 20.0.0.19(ro)
/opt/web2 20.0.0.20(ro)
启动服务
systemctl start nfs
systemctl start rpcbind
NFS服务器产看自己共享的目录
showmount -e
查看NFS是否开启
systemctl status nfs
客户机配置
安装apache
yum -y install httpd
开启http服务
systemctl start httpd
查看服务是否开启
systemctl status httpd
查询NFS服务器发布的共享目录
showmount -e 20.0.0.18
客户机1
将服务器的目录文件挂载到本地
mount 20.0.0.18:/opt/web1 /var/www/html
df -Th #检查挂载情况
客户机2
将服务器的目录文件挂载到本地
mount 20.0.0.18:/opt/web2 /var/www/html
df -Th #检查挂载情况
// An highlighted block
var foo = 'bar';
测试
打开浏览器输入
http://localhost
或者是输入IP地址测试