zoukankan      html  css  js  c++  java
  • NFS服务搭建

    一、NFS简介

      NFS是网络文件系统的意思,他的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录,NFS客户端,(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务端共享的数据目录挂载到NFS客户端本地系统中,(就是在某一个挂载点下,),从客户端来看,NFS服务端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端NFS服务器的目录,

    二、NFS配置步骤

      1、下载NFS服务

    //下载NFS以及rpcbind
    [root@localhost ~]# yum install nfs-utils rcpbind -y
    [root@localhost ~]# rpm -qa | egrep "nfs|rpcbind"
    nfs-utils-1.3.0-0.54.el7.x86_64
    rpcbind-0.2.0-44.el7.x86_64
    //下载完成之后会多一个nfsnobody的用户
    [root@localhost ~]# id nfsnobody
    uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
    //rpc的主端口是111
    //nfs的主端口是2049
    //为什么需要rpc:因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输之用,用户需要 通过rpc来获取端口访问。
    

      2、启动NFS服务。

    //需要先启动rpc,然后再启动nfs
    [root@localhost ~]# systemctl start rpcbind
    [root@localhost ~]# lsof -i:111
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    rpcbind 11434  rpc    6u  IPv4  29471      0t0  UDP *:sunrpc 
    rpcbind 11434  rpc    8u  IPv4  29473      0t0  TCP *:sunrpc (LISTEN)
    rpcbind 11434  rpc    9u  IPv6  29474      0t0  UDP *:sunrpc 
    rpcbind 11434  rpc   11u  IPv6  29476      0t0  TCP *:sunrpc (LISTEN)
    //查看rpc对应的服务
    [root@localhost ~]# rpcinfo -p localhost
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
    //启动nfs
    [root@localhost ~]# systemctl start nfs
    //查看rpc对应的服务
    [root@localhost ~]# rpcinfo -p localhost
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  41580  status
        100024    1   tcp  41087  status
        100005    1   udp  20048  mountd
        100005    1   tcp  20048  mountd
        100005    2   udp  20048  mountd
        100005    2   tcp  20048  mountd
        100005    3   udp  20048  mountd
        100005    3   tcp  20048  mountd
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    3   tcp   2049  nfs_acl
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100227    3   udp   2049  nfs_acl
        100021    1   udp  37240  nlockmgr
        100021    3   udp  37240  nlockmgr
        100021    4   udp  37240  nlockmgr
        100021    1   tcp  44041  nlockmgr
        100021    3   tcp  44041  nlockmgr
        100021    4   tcp  44041  nlockmgr
    

      3、配置NFS配置文件,

      NFS语法如下:NFS共享的目录 NFS客户端地址(参1 参2)

      NFS共享的目录:为NFS服务端要共享的实际目录,要用绝对路径如/data,注意共享目录的本地权限,如果需要读写共享,一定要让本地目录可以被NFS客户端用户 (nfsnobody)可以读写

      NFS客户端地址:为NFS服务端授权的可访问共享目录的NFS客户端地址,可以为单独的ip地址或者主机名,域名等,也可以为整个网段地址,还可以用 “*”来匹配所有客户端服务器,这里所谓的客户端一般来说是指前端的业务服务器,例如:web服务器,

      权限参数集: 对授权的NFS客户端的访问权限设置,

      NFS配置参数:

        rw 表示可读写权限

        ro 表示只读权限

        sync 请求或写入数据时,数据同步写入NFS server的硬盘才返回,优点:数据安全不会丢,缺点:性能比不启动该参数要查,

        async 写入时数据会先写到内存缓冲区,直到硬盘有空档才会再写入磁盘,这样可以提升写入效率,风险为若服务器宕机或者不正常关机,会损失缓冲区中未写入磁盘的数据,(解决办法:服务器主板电池或加 ups不间断电源,)

        all_squash 不管访问NFS server共享目录的用户身份如何,他的权限都将被压缩成匿名用户,同时它的UID和GID都会变成 nfsnobody 账户身份,在早期多个NFS客户端同时读写NFS server 数据时,这个参数很有用。

    //需要注意的是,要将服务端的防火墙和selinux关闭
    [root@localhost ~]# systemctl stop firewalld.service
    [root@localhost ~]# systemctl disable firewalld.service
    [root@localhost ~]# setenforce 0
    //创建一个用于共享的目录
    [root@localhost ~]# mkdir /data
    [root@localhost ~]# chown -R nfsnobody.nfsnobody /data
    //编辑nfs的配置文件
    [root@localhost ~]# vim /etc/exports
    /data 192.168.80.0/24(rw,sync)    //写入共享的内容
    [root@localhost ~]# systemctl reload nfs          //平滑重启nfs服务
    [root@localhost ~]# showmount -e 192.168.80.131    //自查,显示如下结果即表示nfs服务端已经配置完成
    Export list for 192.168.80.131:
    /data 192.168.80.0/24   

      服务端配置nfs配置完成之后需要配置一下客户端的内容。

    [root@localhost backup]# yum install rpcbind nfs-utils -y
    [root@localhost backup]# systemctl start rpcbind
    [root@localhost backup]# lsof -i:111
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    rpcbind 3738  rpc    6u  IPv4  30074      0t0  UDP *:sunrpc 
    rpcbind 3738  rpc    8u  IPv4  30076      0t0  TCP *:sunrpc (LISTEN)
    rpcbind 3738  rpc    9u  IPv6  30077      0t0  UDP *:sunrpc 
    rpcbind 3738  rpc   11u  IPv6  30079      0t0  TCP *:sunrpc (LISTEN)
    [root@localhost /]# showmount -e 192.168.80.131
    Export list for 192.168.80.131:
    /data 192.168.80.0/24
    [root@localhost /]# mount -t nfs 192.168.80.131:/data/ /data/
    [root@localhost /]# 
    [root@localhost /]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/cl-root    17G  1.1G   16G   7% /
    devtmpfs              478M     0  478M   0% /dev
    tmpfs                 489M     0  489M   0% /dev/shm
    tmpfs                 489M  6.7M  482M   2% /run
    tmpfs                 489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1            1014M  139M  876M  14% /boot
    tmpfs                  98M     0   98M   0% /run/user/0
    192.168.80.131:/data   17G  1.1G   16G   7% /data
    //验证,在客户端往/data目录中写文件,在服务端查看,
    

      

      

      

  • 相关阅读:
    案例详解:MTU不一致导致主机和RAC不断重启
    近千人观看live,晚8点继续安排,2个CPU过高案例+1个文件数据删除案例->Oracle故障分析的方法论+DBA能力提升要领...
    一个模版让报表自动生成,领导:这才是数据分析人该干的事
    如何构造一个 SYN_SENT 状态的连接
    TCP 3次握手原理
    SpringCloud Alibaba微服务番外一
    socket bind 随机端口
    Yii项目Security加密解密类提取
    linux中iptables配置文件及命令详解详解
    linux中iptables配置文件及命令详解详解
  • 原文地址:https://www.cnblogs.com/pandj/p/9396425.html
Copyright © 2011-2022 走看看