2021 => 手把手教你NFS部署(实用)

NFS服务

原理:供文件共享服务,为Web Server 配置集群中的后端存储。 支持多节点同时挂载以及并发送与写入。

架构解析

2021 => 手把手教你NFS部署(实用)_第1张图片

这是一张大型网站高并发架构图,我们只需注意图中圈红的地方

建立NFS文件系统本质就是用来进行存储,一般数据是不会放本地

比如一些MySQL数据库/var/lib/mysql ,nginx网站目录 /usr/share/nginx/html/..........还有很多

这些都可以结合NFS网络文件系统进行挂载与远程存储

主要是增加数据的可靠性与安全性,方便与数据灾备方案与备份.........

​ 一、环境准备

2021 => 手把手教你NFS部署(实用)_第2张图片

CentOS版本: CentOS Linux release 7.9.2009 (Core)

端口:111

1、关闭firewalld、selinux

2、准备两台机器:

  • nfs-servce:192.168.178.135

  • nfs-cilent:192.168.178.139

nfs-server/nfs-client

#两台主机同时进行
​
#1. 关闭防火墙:
[root@192 ~]# systemctl stop firewalld
[root@192 ~]# systemctl disable firewalld
​
#2. 关闭Selinux:
[root@192 ~]# sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config       #永久关闭
​
#3. 因为永久关闭要重启,先进行临时关闭
[root@192 ~]# setenforce 0
​
#4. 查看是否成功关闭Selinux:
[root@192 ~]# getenforce 
Permissive      #出现此,代表临时关闭Selinux成功

二、安装软件与配置

nfs-server

#1. 进行域名解析:
[root@nfs-server ~]# vim /etc/hosts
192.168.178.135 nfs-server      #Server IP
192.168.178.139 nfs-client      #Client IP
​
#2. 获取阿里云源:
[root@nfs-server ~]# yum -y install wget && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
​
#3. 安装相关软件:
[root@nfs-server ~]# yum -y install nfs-utils
​
#4. 创建网站文件存放目录:
[root@nfs-server ~]# mkdir /webdata
[root@nfs-server ~]# chmod 777 /webdata/
[root@nfs-server ~]# echo "nfs-test 2021-09-23 Sunny" > /webdata/index.html
[root@nfs-server ~]# df /webdata/ -hT
文件系统                类型  容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs   3.5G  1.5G  2.1G   42% /
​
#5. 编写NFS配置:
[root@nfs-server ~]# vim /etc/exports
#添加
/webdata 192.168.178.0/24(rw)    #代表所有的178网段的主机拥有读写权限
​
#6. 开启服务:
[root@nfs-server ~]# systemctl start nfs-server && systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
​
#7. 检查语法格式:
[root@nfs-server ~]# exportfs -v
/webdata        192.168.178.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
​
#8. 查看nfs-server是否启动成功:
[root@nfs-server ~]# ss -anpt | grep 111
LISTEN     0      128          *:111                      *:*                   users:(("rpcbind",pid=1709,fd=8))
LISTEN     0      128       [::]:111                   [::]:*                   users:(("rpcbind",pid=1709,fd=11))

nfs-client

#1. 进行域名解析:
[root@nfs-client ~]# vim /etc/hosts
192.168.178.135 nfs-server
192.168.178.139 nfs-client
​
#2. 获取阿里云源:
[root@nfs-client ~]# yum -y install wget && wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
​
#3. 安装相对应的软件:
[root@nfs-client ~]# yum -y install nfs-utils httpd
​
#4. 启动网站服务:
[root@nfs-client ~]# systemctl start httpd && systemctl enable httpd
​
#5. 查看nfs-server上可用的挂载点:
[root@nfs-client ~]# showmount -e nfs-server
Export list for nfs-server:
/webdata 192.168.178.0/24
​
#6. 进行挂载到httpd的默认网站目录:
[root@nfs-client ~]# mount -t nfs nfs-server:/webdata /var/www/html/
[root@nfs-client ~]# df -hT
文件系统                 类型      容量  已用  可用 已用% 挂载点
192.168.178.135:/webdata nfs4      3.5G  1.5G  2.1G   42% /var/www/html
​
#7. 获取网站主页:
[root@nfs-client ~]# curl nfs-client:80
nfs-test 2021-09-23 Sunny   #远程挂载共享文件成功
 
  

问题解决:客户端不能写入

在服务端:
# vim /etc/exports   
/var/lib/mysql 192.168.178.0/24(rw,no_root_squash) #只需添加 no_root_squash

其他一些权限的代码

  • rw:可读写的权限;
  • ro:只读的权限;
  • no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限;(不添加此选项ROOT只有RO权限)
  • root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody;
  • all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody。
  • anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
  • anongid:同anonuid,但是变成group ID就是了!
  • sync:资料同步写入存储器中。 async:资料会先暂时存放在内存中,不会直接写入硬盘。
  • insecure:允许从这台机器过来的非授权访问。

 

三、设置开机自动加载

#1. 在家目录中加载:
[root@nfs-client ~]# cat ~/.bashrc 
#加入
mount -t nfs nfs-server:/webdata /var/www/html/     #就是把之间挂载的命令写进去,开机会加载该文件
​
#2. 通过/etc/profile加载:
[root@nfs-client ~]# vim /etc/profile
#在最后一行加入即可:
mount -t nfs nfs-server:/webdata /var/www/html/
​
#3. 使用fstab自动挂载:
[root@nfs-client ~]# vim /etc/fstab
#加入 挂载的服务器上的路径  要挂载到本机的路径  类型  
nfs-server:/webdata      /var/www/html      nfs  defaults 0 0

解析:

  • Defaults 同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
  • 第1个1 表示备份文件系统,
  • 第2个1 表示从/分区的顺序开始fsck磁盘检测,0表示不检测。
  • _rnetdev 表示主机无法挂载直接跳过,避免无法挂载主机无法启动

你可能感兴趣的:(Linux技术,nginx,运维,linux,nfs,云计算)