nfs共享文件
NFS的简介
NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS

为什么使用NFS
    1.实现多台服务器之间数据共享
    2.实现多台服务器之间数据一致
NFS的原理
     1.用户访问NFS客户端,将请求转化为函数
    2.NFS通过TCP/IP连接服务端
    3.NFS服务端接收请求,会先调用portmap进程进行端口映射
    4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端;
    5.Rpc.mount进程用于判断客户端对服务端的操作权限
    6.如果通过权限验证,可以对服务端进行操作,修改或读取

FNS实践
NFS环境准备
客户端:web01
服务端:nfs
关闭防火墙与selinux     
服务端:
1、安装NFS和rpcbind
[root@nfs ~]# yum install nfs-utils rpcbind -y
2、创建挂载点
[root@nfs ~]# mkdir /web/nfs{1..9}
3、配置挂载点
[root@nfs ~]# vim /etc/exports
格式:
    [挂载点] [可以访问的IP]([权限])
/web/nfs1  172.16.1.0/20(rw,sync,all_squash)
4、关闭selinux和防火墙
[root@nfs ~]# setenforce 0
[root@nfs ~]# systemctl disable --now firewalld
5、启动Nfs和rpcbind服务
[root@nfs ~]# systemctl start nfs-server 
[root@nfs ~]# systemctl start rpcbind
6、检查服务端是否正常
[root@nfs ~]# showmount -e [服务端的地址,默认是本机地址]
[root@nfs ~]# cat /var/lib/nfs/etab
7、给挂载点授权
[root@nfs ~]# chown -R nfsnobody.nfsnobody /web
客户端:
1、安装NFS
[root@web01 opt]# yum install -y nfs-utils
2、创建目录
[root@web01 opt]# mkdir /opt/nfs/
3、挂载NFS
[root@web01 opt]# mount -t nfs 172.16.1.31:/web/nfs1  /opt/nfs/
4、测试NFS文件同步功能
NFS配置详情
| 参数作用 | |
|---|---|
| rw | 读写权限 (常用) | 
| ro | 只读权限 (不常用) | 
| root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 (不常用) | 
| no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 (不常用) | 
| all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 (常用) | 
| no_all_squash | 无论NFS客户端使用什么账户访问,都不进行压缩 (不常用) | 
| sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 (常用) | 
| async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 (不常用) | 
| anonuid | 配置all_squash使用,指定NFS的用户UID,必须存在系统 (常用) | 
| anongid | 
                              
1、控制读写
  
rw、ro
2、控制文件权限
  root_squash
  no_root_squash
  all_squash
  no_all_squash
3、控制写模式
  sync
  async
4、控制用户
  anonuid
  anongid
统一用户:
  1、创建用户
    [root@nfs nfs1]# groupadd www -g 666
    [root@nfs nfs1]# useradd www -u 666 -g 666 -M -r -s /sbin/nologin 
  2、修改挂载点权限
    [root@nfs nfs1]# chown -R www.www /web/
  3、使用
                 
搭建web服务
1、安装web软件
  [root@web01 opt]# yum install httpd php php-devel -y
2、将代码放置于网站的根目录
  [root@web01 opt]# cd /var/www/html/
      # 上传代码
3、授权
  mkdir upload
  chown www.www upload
  chown -R www.www /var/www/html
4、关闭selinux和防火墙
  [root@nfs ~]# setenforce 0
  [root@nfs ~]# systemctl disable --now firewalld
5、修改web软件的用户
  [root@web01 html]# vim /etc/httpd/conf/httpd.conf
    User www
    Group www
6、启动web软件
  [root@web01 html]# systemctl start httpd
  
7、测试
    1、上传    
    2、访问

实现文件共享
1、修改NFS配置文件
  [root@nfs nfs1]# vim /etc/exports
    /web/upload  172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666)
2、创建挂载点
  [root@nfs nfs1]# mkdir /web/upload
  [root@nfs nfs1]# chown www.www /web/upload
3、重启NFS
  [root@nfs nfs1]# systemctl restart nfs-server rpcbind
4、客户端安装NFS软件
  [root@web01 html]# yum install nfs-utils -y
  [root@web02 html]# yum install nfs-utils -y
  [root@web03 html]# yum install nfs-utils -y
5、挂载
  [root@web01 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
  [root@web02 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
  [root@web03 html]# mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload
6、测试
  用web2上传,web3查看
 


 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号