您的位置 首页 php

新手学习第二阶段:搭建NFS服务并使用php简单实现测试

1、什么是NFS

共享网络文件存储服务器

2、NFS的原理

1.用户访问NF客户端,将请求转化为函数

2.NFS通过TCP/IP连接服务端

3.NFS服务端接收请求,会先调用portmap进程进行端口映射

4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端

5.Rpc.mount进程用于判断客户端对服务端的操作权限

6.如果通过权限验证(依赖系统用户),可以对服务端进行操作,修改或读取

3、部署NFS服务

1.安装nfs服务

  yum install nfs-utils rpcbind -y 
注:rpsbind是为nfs提供网络,默认安装nfs-utils 会自动安装rpcbind  

2.关闭防火墙和selinux

  setenforce 0 临时关闭 
 setenforce 1 开启服务 
 cat /etc/selinux/config 
SELINUX=disabled s
ystemctl stop firewalld 关闭防火墙 
systemctl disable firewalld 关闭开机自启  

3.创建一个目录,用于存放文件的仓库

  mkdir /data  

4.创建一个系统用户,用于权限验证(权限验证时,真正验证的是UID)

  useradd www -r -M -s /sbin/nologin -u 996 
说明: 
    -r:创建系统用户 
    -M:不创建用户的home目录 
    -s:指定默认登录shell 
    -u:为账户指定一个唯一的UID  

5.修改NFS的配置文件(作用:指定NFS的仓库及权限)

NFS的配置文件路径:

  /etc/exports  

设置仓库地址:

  vi /etc/exports 
/data 172.22.1.0/20(rw,all_squash,sync,anonuid=996,anongid=996) 
/仓库路径 允许放通IP段/20(rw,all_squash,sync,anonuid=996,anongid=996)  

NFS参数详解:

控制NFS读写权限

 rw 读写权限(常用)
ro 只读权限(不常用)  

控制访问NFS时,NFS基于的权限

 root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)
no_all_squash 无论NFS客户端使用什么账户访问,都不进行压缩(不常用)  

控制NFS同步方式

 sync 同时将数据写入到内存与硬盘中,保障不丢失数据,但是会产生延时(常用)
async 优先将数据保存到内存,然后在写入硬盘,这样效率较高,但可能会导致数据丢失(不常用)  

控制默认的用户(非必须

 anonuid 配置all_squash使用,指定NFS的用户UID,必须存在系统(常用)
anongid 配置all_squash使用,指定NFS的用户GID,必须存在系统(常用)  

6.启动NFS服务

  systemctl start nfs-server rpcbind  

7.查看NFS的挂载点是否设置成功

 查看指定服务器的挂载点
 showmount -e 172.22.1.66
查看本机的挂载点
 showmount -e  

8.给服务端设置权限

  chown www.www /data/  

9.挂载使用(客户端必须安装nfs-utils)

  客户端安装: 
 yum install nfs-utils -y 
挂载目录: 
mount -t nfs 172.22.1.66:/data /opt 
注:需要挂载到本地哪个目录,把/opt 改为需要挂载的就可以,172.22.1.66 为nfs地址,/data 为nfs的挂载目录  

注:如挂载失败,排查一下几个原因

 selinux没有关闭
防火墙没有关闭
nfs客户端未安装  

无权限

 NFS服务端是root权限,查看当前目录权限,更改权限:chown www.www /data/  

四、RPC与NFS如何通讯

5、详解NFS的权限参数

6、使用php简单上传实例,进行测试NFS 挂载是否成功

1.在web机器中,安装web服务,并安装NFS服务

  yum install htppd php -y nfs-utils  

2.上传测试代码

  上传地址:/var/www/html/目录下  

3.开启web服务

  systemctl start httpd  

4.修改httpd的启动用户

  vi /etc/httpd/conf/httpd.conf 
User www 
Group www 
  重启服务 
  systemctl restart httpd 
  查看服务运行 
  ps -ef | grep http  

5.修改站点目录的用户

  chown -R www.www /var/www/html  

6.挂载目录到NFS

  mount -t nfs 172.22.1.66:/data /var/www/html/upload #挂载 
 umount -t nfs 172.22.1.66:/data /var/www/html/upload #卸载  

7.配置开启自动挂载、开机自启服务

  vi /etc/rc.local tail -1 
/etc/rc.local mount -t nfs 172.22.1.66:/data /var/www/html/upload 
systemctl enable rpcbind 
systemctl enable nfs 
rpcinfo -p #查看端口是否生效  

注:所有机器需要使用NFS时,都需要安装NFS服务:nfs-utils,并关闭防火墙及selinux,权限必须设置一致。

文章来源:智云一二三科技

文章标题:新手学习第二阶段:搭建NFS服务并使用php简单实现测试

文章地址:https://www.zhihuclub.com/153824.shtml

关于作者: 智云科技

热门文章

网站地图