zoukankan      html  css  js  c++  java
  • nfs 共享存储


    nfs共享文件存储


    network filesystem;

    为什么要使用 nfs?

    如果userA上传文件通过负载均衡器上传到了web01,这个时候userB去下载file1又被负载均衡器分配到了web02

    上面就找不到userA上传的资源了。

    使用了共享存储nfs之后,userA上传的文件到nfs中,那么这个时候userB不管是从哪台web中都可以访问到userA上传的资源。


    nfs原理


    首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口,RPC就会记录下这些端口,并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那么服务器端的RPC就会将之前记录的NFS端口信息告知客户端。如此客户端就会获取NFS服务器端的端口信息,就会以实际端口进行数据的传输了。

    1)首先服务器端启动RPC服务,并开启111端口

    2)服务器端启动NFS服务,并向RPC注册端口信息

    3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

    4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

    5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。


    nfs的安装

    环境准备


    主机名 wan lan 角色
    web01 10.0.0.7 172.16.1.7 nfs客户端
    web02 10.0.0.8 172.16.1.8 nfs客户端
    nfs 10.0.0.31 172.16.1.31 nfs服务端

    1、服务端安装配置


    # centos7只安装nfs-utils
    # centos6需要安装rpcbind
    
    [root@nfs01 ~]# yum -y install nfs-utils
    
    # 2、配置配置文件
    [root@nfs01 ~]# vi /etc/exports
    /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
    /data		允许访问的目录
    
    # 创建用户
    [root@nfs01 ~]# groupadd www -g666
    [root@nfs01 ~]# useradd www -u666 -g666 -s /sbin/nologin -M
    
    # 创建/data目录
    [root@nfs01 ~]# mkdir /data
    [root@nfs01 ~]# chown www.www /data
    
    # 启动服务
    先启动rpc服务,再启动apache服务
    systemctl start rpcbind nfs-server
    
    # 客户端查看nfs共享目录
    [root@nfs01 ~]# showmount -e 10.0.0.31
    [root@web01 ~]# showmount -e 10.0.0.31
    [root@web02 ~]# showmount -e 10.0.0.31
    Export list for 10.0.0.31:
    /data 172.16.1.0/24
    
    # 添加开机自启
    [root@nfs01 ~]# systemctl enable rpcbind
    [root@nfs01 ~]# systemctl enable nfs-server
    
    # 查看配置文件
    [root@nfs01 ~]# cat /var/lib/nfs/etab 
    /data	172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
    
    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 配置all_squash使用,指定NFS的用户UID,必须存在系统

    2、客户端配置


    # 先查看可以挂载的资源
    [root@nfs01 ~]# showmount -e 10.0.0.31
    Export list for 10.0.0.31:
    /data 172.16.1.0/24
    
    # 挂载
    mount -t nfs 172.16.1.31:/data /opt/nfs/
    # 卸载
    umount /opt/nfs/
    
    # 开机自动挂载
    写入/etc/fstab
    mount -a
    
  • 相关阅读:
    LeetCode 4 :Majority Element
    LeetCode 3 :Min Stack
    Oracle操作4
    plsql安装教程
    java Date与String互相转化
    Oracle操作3
    Oracle操作2
    Oracle操作
    Oracle11g修改密码
    Visual Studio2013完全卸载
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13287788.html
Copyright © 2011-2022 走看看