zoukankan      html  css  js  c++  java
  • CentOs7安装配置NFS文件服务器

    一、准备工作

    环境说明

    系统版本 内核版本 用途 IP地址 主机名
    CentOS Linux release 7.4.1708 (Core) 

    3.10.0-693.el7.x86_64

    NFS服务器端 192.168.10.101

    Client.ifeng.com

    CentOS release 6.5 (Final)

    2.6.32-431.el6.x86_64

    NFS客户端 192.168.10.102

    nginx.ifeng.com

    关闭SELinux

    #关闭SELinux
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld


    二、安装配置NFS服务端

    安装软件包,由于NFS软件是需要RPC服务,它在NFS共享时候负责通知客户端,服务器的NFS端口号,因此需要一并安装

    yum install -y rpc-bind nfs-utils

    主要配置文件说明/etc/exports

    /etc/exports文件内容格式:
      <输出目录> 客户端(选项:访问权限,用户映射,其他]
      输出目录是指NFS系统中所定义的共享给客户端使用的文件系统
    客户端是定义网络中可以访问这个NFS共享目录的IP地址或网段或域名等
      客户端常用的指定方式
        指定ip地址的主机:192.168.100.1
        指定一个子网:192.168.100.0/24 也可以写成:192.168.100.0/255.255.255.0
        指定域名的主机:david.bsmart.cn
        指定域中的所有主机:*.bsmart.cn
        所有主机:*
    选项用来设置输出目录的访问权限、用户映射等。
      NFS主要有3类选项:
      设置输出目录只读:ro
      设置输出目录读写:rw
    用户映射选项
      all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
      no_all_squash:与all_squash取反(默认设置);
      root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
      no_root_squash:与rootsquash取反;
      anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
      anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
    其它选项
      secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
      sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
      async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
      wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
      no_wdelay:若有写操作则立即执行,应与sync配合使用;
      subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
      no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

    配置NFS

    示例:向所有人共享share目录,权限为可读写(创建NFS共享目录的时候建议命名一些有意义的目录名,方便其他人知道此目录的用途)

    #创建共享目录
    [root@Client ~]# mkdir /data/NFS/share -p
    #授权
    [root@Client share]# chmod 766 /data/NFS/share/
    [root@Client share]# chown -R nfsnobody.nfsnobody /data/NFS/share/ #添加到NFS配置文件 [root@Client share]# echo "/data/NFS/share *(rw,sync)" >>/etc/exports #启动nfs和rbcbind服务 [root@Client share]# systemctl restart rpcbind [root@Client share]# systemctl restart nfs #查看NFS配置结果 [root@Client share]# showmount -e 127.0.0.1 Export list for 127.0.0.1: /data/NFS/share *

    客户端挂载NFS共享目录(客户端需要安装nfs-utils包)

    #查看NFS服务器
    [root@nginx ~]# showmount -e 192.168.10.101
    Export list for 192.168.10.101:
    /data/NFS/share *
    #创建挂载目录
    [root@nginx ~]# mkdir -p /data/NFS/share 
    #挂载NFS共享目录
    [root@nginx ~]# mount -t nfs 192.168.10.101:/data/NFS/share /data/NFS/share/
    #查看挂载结果
    [root@nginx ~]# df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root     18G  2.7G   14G  17% /
    tmpfs                           491M     0  491M   0% /dev/shm
    /dev/sda1                       485M   34M  426M   8% /boot
    192.168.10.101:/data/NFS/share   18G  1.5G   17G   9% /data/NFS/share
    #添加挂载到开机启动
    echo "mount -t nfs 192.168.10.101:/data/NFS/share /data/NFS/share/">>/etc/rc.local 

    测试:

    客户端向共享目录写入文件,查看服务端结果

    #客户端
    [root@nginx share]# echo "12312313" >>test.txt
    [root@nginx share]# cat test.txt 
    12312313
    [root@nginx share]# pwd
    /data/NFS/share
    
    #服务端
    [root@Client share]# pwd
    /data/NFS/share
    [root@Client share]# cat test.txt 
    12312313

    一键安装配置脚本,共享目录为/data/NFS/share,共享方式为面向所有人可读写(此处可根据需要修改为变量方式):

    服务端:

    #!/bin/bash
    #create:2018.4.9
    #nfs server
    setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld yum install -y rpc-bind nfs-utils mkdir -p /data/NFS/share echo "/data/NFS/share *(rw,sync)" >>/etc/exports chown -R nfsnobody.nfsnobody /data/NFS/share/ chmod 766 /data/NFS/share/ sysctl restart rpcbind systemctl restart nfs

    客户端:

    #!/bin/bash
    #create:2018.4.9
    #nfs client
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    /etc/init.d/iptables stop
    yum install -y nfs-utils
    mkdir -p /data/NFS/share
    mount -t nfs 192.168.10.101:/data/NFS/share /data/NFS/share/
    echo "mount -t nfs 192.168.10.101:/data/NFS/share /data/NFS/share/">>/etc/rc.local
  • 相关阅读:
    Leetcode-113 Path Sum II(路径总和 II)
    Leetcode-946 验证栈序列(Validate Stack Sequences)
    Leetcode-945 Minimum Increment to Make Array Unique(使数组唯一的最小增量)
    UVa-10129 Play on Words
    UVa-10305 Ordering Tasks
    UVa-816 Abbott's Revenge
    UVa-1103 Ancient Messages
    种子填充(flood fill)
    内存池
    Leetcode-942 DI String Match(增减字符串匹配)
  • 原文地址:https://www.cnblogs.com/cangyuefeng/p/8758267.html
Copyright © 2011-2022 走看看