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

猜你喜欢

转载自blog.csdn.net/jihu0412/article/details/80175765
今日推荐