Cluster Project 1

全网备份实战

项目实施可用服务器列表

hostname
ip

web01

172.16.1.17

web02

172.16.1.18

nfs01

172.16.1.31

backup

172.16.1.41

m01

172.16.1.61

项目要求一:全网数据备份

每天晚上 00 点整在 web 服务器(web01、web02)上打包备份系统配置文件、网站程序目录及访问日志,并通过 rsync 命令推送至备份服务器(backup)上保存

详细要求

1. web 服务器和 backup 备份服务器的备份目录都必须为 /backup

2. 要求备份的系统配置文件包含但不限于:

a. 定时任务服务的配置文件 ( /var/spool/cron/root )

b. 开机自启动的配置文件 ( /etc/rc.d/rc.local )

c. 日常脚本的目录 ( /server/scripts )

3. Web服务器目录 ( /var/www/html )

4. Web服务器日志 ( /app/logs )

5. Web服务器本地保留打包后7天的备份数据即可

6. 备份服务器 backup 上保留最近7天的备份数据,同时保留6个月内每周一的所有数据副本

7. 备份服务器 backup 上按照备份数据服务器上的内网IP为目录保存备份,备份的文件按照时间名字保存

8. 需要确保数据完整正确,每天早上8:00 把备份成功或失败的结果信息发送至系统管理员邮箱

项目要求二:后端共享存储

1. 在 NFS 服务端 (nfs01) 上共享 /data/w_shared 及 /data/r_shared 两个文件目录,允许从 NFS 客户端 web01、web02 上分别挂载共享目录后可实现从 web01、web02 上只读 /data/r_shared ,可写 /data/w_shared

2. NFS 客户端 web01、web02 上的挂载点为 /data/b_w (写), /data/b_r (读),

3. 从 NFS 客户端 web02 上的可写挂载点目录创建任意文件,从 NFS 客户端 web01 上可以删除这个创建的文件,反之也可以

问答题:如何优化 NFS 服务,大并发场景 NFS 压力大如何解决?

项目要求三:NFS 共享存储实时数据同步

当用户通过 web 服务器将数据写入到 NFS 服务器 nfs01 时,同时复制到备份服务器 backup 上。

项目实现总架构逻辑图

一键部署脚本

所有脚本存放于管理机 m01 的 /server/scripts 目录下

shell
说明

onekey_install_cluster.sh

一键安装总脚本

distribute_keys.sh

onekey distribute keys

ansible_server_install.sh

install ansible on management server

rsync_server_install.sh

install rsync server

rsync_client_install.sh

install rsync client

nfs_server_install.sh

install nfs server

nfs_client_install.sh

install nfs client

sersync_install.sh

install sersync on nfs server

backup_web_server_data.sh

backup web server data

check_backup_data.sh

check backup data on backup server

config_mail.sh

configure email service on backup server

onekey_install_cluster.sh

distribute_keys.sh

ansible_server_install.sh

rsync_server_install.sh

rsync_client_install.sh

nfs_server_install.sh

nfs_client_install.sh

sersync_install.sh

backup_web_server_data.sh

check_backup_data.sh

config_mail.sh

Last updated