1.环境准备

主机 ⻆⾊ ip
web01 NFS客户端、RSYNC客户端 172.16.1.7
nfs NFS服务端、RSYNC客户端 172.16.1.31
backup NFS服务端、RSYNC服务端 172.16.1.41

2.搭建上传XX系统

1)安装httpd或nginx服务

 yum install -y httpd php

2)配置httpd⽤户

[root@web01 ~]# vim /etc/httpd/conf/httpd.conf
User www
Group www

3)创建⽤户

[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

4)上传代码

[root@web01 ~]# cd /var/www/html/ [root@web01 html]# rz kaoshi.zip [root@web01 html]# ll
total 28
-rw-r--r-- 1 root root 26995 Feb 13 22:23 kaoshi.zip [root@web01 html]# unzip kaoshi.zip
Archive: kaoshi.zip
inflating: info.php
inflating: bg.jpg
inflating: index.html
inflating: upload_file.php [root@web01 html]# ll
total 80
-rw-r--r-- 1 root root 38772 Apr 27 2018 bg.jpg
-rw-r--r-- 1 root root 2633 May 4 2018 index.html -rw-r--r-- 1 root root 52 May 10 2018 info.php
-rw-r--r-- 1 root root 26995 Feb 13 22:23 kaoshi.zip -rw-r--r-- 1 root root 1192 Jan 10 15:35 upload_file.php
[root@web01 html]#

5)授权

[root@web01 html]# chown -R www.www /var/www/html/

6)启动httpd

[root@web01 html]# systemctl start httpd [root@web01 html]# netstat -lntp | grep 80
tcp6 0 0 :::80 :::* LISTEN 23791/httpd

7)访问测试

3.将站点⽬录挂载到nfs服务器

服务端

1)安装nfs

[root@nfs ~]# yum install -y nfs-utils rpcbind

2)配置nfs

[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

3)创建⽤户

[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

4)创建⽬录并授权

[root@nfs ~]# mkdir /data
[root@nfs ~]# chown -R www.www /data/

5)启动NFS

[root@nfs ~]# systemctl start rpcbind nfs-server

6)验证NFS配置

[root@nfs ~]# cat /var/lib/nfs/etab
/data
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,n o_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw, secure,root_squash,all_squash)

客户端(web01)

7)安装rpcbind和nfs

root@web01 ~]# yum install -y nfs-utils rpcbind

8)查看挂载点

[root@web01 ~]# showmount -e 172.16.1.31 Export list for 172.16.1.31:
/data 172.16.1.0/24

9)挂载

root@web01 ~]# mount -t nfs 172.16.1.31:/data /var/www/html/upload [root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 1.7G 17G 10% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/sda1 1014M 127M 888M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 18G 1.6G 17G 9% /var/www/html/upload

10)测试

4.把NFS挂载⽬录数据同步到backup服务器

rsync服务端(backup)

1)安装rsync

[root@backup ~]# yum install -y rsync

2)配置rsync

[root@backup ~]# vim /etc/rsyncd.conf uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200 timeout = 600
ignore errors
read only = false list = false
auth users = rsync_backup secrets file = /etc/rsync.passwd log file = /var/log/rsyncd.log ####################
[data]
path = /data

3)创建⽤户和⽤户组

[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

4)创建密码⽂件并授权

[root@backup ~]# echo "rsync_backup:123" > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd

5)创建⽬录并授权

[root@backup ~]# mkdir /data
[root@backup ~]# chown -R www.www /data

6)启动rsyncd服务

[root@backup ~]# systemctl start rsyncd

rsync客户端(NFS服务器)

7)将/data⽬录推送⾄backup服务器/data

#⽅式⼀:⼿动输⼊密码
[root@nfs data]# rsync -avz /data/ rsync_backup@172.16.1.41::data Password:
#⽅式⼆:配置环境变量
[root@nfs data]# export RSYNC_PASSWORD=123
[root@nfs data]# rsync -avz /data/ rsync_backup@172.16.1.41::data #⽅式三:指定密码⽂件
[root@nfs data]# echo "123" > /etc/rsync.password [root@nfs data]# chmod 600 /etc/rsync.password
[root@nfs data]# rsync -avz /data/ rsync_backup@172.16.1.41::data -- password-file=/etc/rsync.password

5.当NFS服务器出现问题,将web服务器挂载到backup服务器

backup服务器搭建NFS服务端

1)安装NFS

[root@backup ~]# yum install -y rpcbind nfs-utils

2)配置nfs

[root@backup ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

3)创建⽬录并授权

[root@backup ~]# mkdir /data
[root@backup ~]# chown -R www.www /data/

4)启动NFS

[root@backup ~]# systemctl start nfs-server

5)验证NFS

[root@backup ~]# cat /var/lib/nfs/etab /data
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,n o_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw, secure,root_squash,all_squash)

6.当nfs服务器出现问题,切换挂载

[root@web01 ~]# umount -lf /var/www/html
[root@web01 ~]# mount -t nfs 172.16.1.41:/data /var/www/html

7.实时同步inotify

1)安装inotify

[root@nfs data]# yum install -y inotify-tools

2)inotify参数

-m 持续监控

-r 递归

-q 静默,仅打印时间信息

--timefmt 指定输出时间格式

--format 指定事件输出格式

%Xe 事件

%w ⽬录

%f ⽂件

-e 指定监控的事件

access 访问

modify 内容修改

attrib 属性修改

close_write 修改真实⽂件内容

open 打开

create 创建

delete 删除

umount 卸载

3)测试命令

/usr/bin/inotifywait  -mrq  --format '%w %f' -e create,delete,attrib,close_write  /data

4)编写实时同步脚本

[root@nfs ~]# cat inotify.sh #!/bin/bash
dir=/data
export RSYNC_PASSWORD=123
/usr/bin/inotifywait -mrq --format '%w %f' -e
create,delete,attrib,close_write $dir | while read line;do
cd $dir && rsync -az -R --delete . rsync_backup@172.16.1.41::data >/dev/null 2>&1 done &
[root@nfs ~]# sh inotify.sh

5)上传⼀个⽂件,web端查看,nfs挂载⽬录查看,backup服务器备份⽬录查看

Rsync+NFS实战,解决NFS单点问题的更多相关文章

  1. 【集群实战】共享存储实时备份(解决nfs共享存储的单点问题)

    1. nfs存储的单点问题 如果nfs服务器宕机了,则所有的nfs客户机都会受到影响.一旦宕机,会丢失部分用户的数据.为了解决单点问题,需要实现共享存储的实时备份,即:将nfs服务端共享目录下的数据实 ...

  2. 【集群实战】NFS服务常见故障排查和解决方法

    NFS,全名叫Network File System,中文叫网络文件系统,是Linux.UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统. NFS由Sun公司开发,目前已 ...

  3. 【集群实战】NFS网络文件共享服务

    1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...

  4. 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)

    1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...

  5. NFS实战

    博客实践: (1) nfs server导出/data/application/web,在目录中提供wordpress; (2) nfs client挂载nfs server导出的文件系统至/var/ ...

  6. 【集群实战】NFS网络文件共享服务3-相关知识补充(showmount,exports,rpc)

    1. showmount命令说明 showmount命令一般用于从NFS客户端检查NFS服务器端共享目录的情况. 参数说明: -e,--exports 显示NFS服务器输出的目录列表 [root@we ...

  7. 【Rsync项目实战】备份全网服务器数据

    [Rsync项目实战]备份全网服务器数据 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转 ...

  8. 【Rsync项目实战一】备份全网服务器数据

    目录 [Rsync项目实战]备份全网服务器数据 [企业案例] 1.1 环境部署 1.2 开始部署backup服务器:Rsync服务端过程: 1.3 开始部署nfs01服务器:Rsync客户端过程: [ ...

  9. NFS错误Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno=Connection refused

    NFS报错一例 [root@bjs0- ~]# /etc/init.d/portreserve start Starting portreserve:                          ...

  10. Rsync服务实战

    目录 1 安装rsync软件 2 配置 /etc/rsyncd.conf 3 创建用户(运行rsync服务的用户身份) 4 创建虚拟用户密码文件(客户端连接时候使用) 5启动 rsync 服务,并加入 ...

随机推荐

  1. SQL0818N/SQL0901N error when running db2advis

    Skip to content     Support     DownloadsDocumentationForumsCasesMonitoringManage support account   ...

  2. 增、改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN

    转载留存 IT_METHODS    LIKE    BAPI_ALM_ORDER_METHOD处理方法,必选项,存储CREATE CREATETONOTIF CHANGE DELETE RELEAS ...

  3. 二进制安装K8S kubctl get node 返回No resources found

    问题描述:node节点kubelet服务启动成功后,在集群master节点执行命令具体结果如下截图 原因:kubelet设置的cgroups和docker的不一致导致 修改docker的cgroup, ...

  4. 5. icon创建

    1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta charset="U ...

  5. MongoDB 4.0 dump备份脚本

    #!/bin/bash#backup MongoDB #mongodump命令路径DUMP=/mongodb4.0/bin/mongodump #临时备份目录OUT_DIR=/bak/mongobak ...

  6. element-ui的自定义表头

    自定义表头 需求:之前在做一个项目的时候,原型图要求表头文字需要额外解释就会在文字后面标注 1,2作为上标 html中提供了<sup></sup>和<sub>< ...

  7. mysql-8.0.28-winx64数据库win10系统安装步骤

    一.官网下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/ ↓↓↓选择如下图版本↓↓↓ 二.解压安装包到本地 三.新建记事本创建my.ini配置文件 四 ...

  8. git 代码已经commit ,发现提错了分支

    步骤: git reset HEAD^ //把上次提交恢复为未提交状态 git status //查看当前状态 git stash //将修改add到暂存区,暂存代码 git checkout 分支 ...

  9. Delphi实现Windows的气泡提示样式

    其实也不复杂,主要使用到shellAPI下的TNotifyIconData这个结构体: typedef struct _NOTIFYICONDATA { DWORD cbSize; //结构体的大小, ...

  10. A Super Hero

    DP? QwQ这题似乎不能直接贪心2333-- 阶段 很明显的阶段性,\(n\)关便为\(n\)个阶段, 状态 分好阶段后,容易构造出状态的表达: \(f[i,j]\)表示Ma5termind在最开始 ...