1. 节点选型与网络规划
- 步骤1:确认业务需求(带宽、延迟、流量计费、合规)。
- 步骤2:在香港机房选择支持CN→HK直连或多线BGP的机房,优先选具备GDPR/本地合规说明的厂商。
- 步骤3:测试方法:从成都多条出口使用mtr/traceroute、iperf3测延迟和丢包,记录峰值与均值,保存为对比基线。
2. 基础环境准备(操作系统与用户配置)
- 步骤1:使用Ubuntu Server LTS或CentOS 7/8,示例以Ubuntu 22.04说明:apt update && apt upgrade -y。
- 步骤2:创建管理用户:adduser deploy && usermod -aG sudo deploy。
- 步骤3:配置SSH密钥登录:在本地生成ssh-keygen -t ed25519;将公钥放到~/.ssh/authorized_keys并禁用密码登录(/etc/ssh/sshd_config:PasswordAuthentication no)。
3. 网络与安全硬化
- 步骤1:配置静态IP或DHCP保留,确保DNS解析稳定。
- 步骤2:安装并配置ufw或firewalld,示例:ufw allow 22/tcp; ufw allow 443/tcp; ufw enable。
- 步骤3:限制SSH源IP(允许成都管理段),配置Fail2Ban防爆破:apt install fail2ban;创建/modify jail.d/ssh.conf。
4. 节点同步与负载均衡建议
- 步骤1:如果有多节点,采用Keepalived+HAProxy做L3/L4漂移和流量分发。
- 步骤2:示例HAProxy简单配置:在/etc/haproxy/haproxy.cfg中定义frontend监听与backend服务器池并设置健康检查。
- 步骤3:测试方法:模拟并发连接并观察tcp连接数与响应时间,调整timeout与maxconn。
5. 本地备份策略总体设计
- 步骤1:采用分层备份:本地增量(快速恢复)、本地快照(一致性)、异地备份(容灾)。
- 步骤2:备份频率示例:重要数据/数据库=每15分钟增量+每日快照;静态文件=每日增量+每周全量。
- 步骤3:保留策略示例:15分钟点保留48小时、每日保留30天、周备份保留12周。
6. 使用rsync实现文件级本地同步
- 步骤1:安装rsync:apt install rsync。
- 步骤2:示例单向同步脚本(/usr/local/bin/backup_rsync.sh):
mkdir -p /backup/local/$(date +%F); rsync -aAX --delete --link-dest=/backup/local/latest /var/www/ /backup/local/$(date +%F)/; rm -f /backup/local/latest; ln -s /backup/local/$(date +%F) /backup/local/latest。
- 步骤3:加入cron:*/15 * * * * /usr/local/bin/backup_rsync.sh >> /var/log/backup_rsync.log 2>&1。
7. 使用Restic/Borg做增量加密备份
- 步骤1:选择restic或borg(restic跨平台,borg支持去重)。安装restic:wget && chmod +x。
- 步骤2:初始化仓库示例:restic init --repo /mnt/backup_repo;设置环境变量RESTIC_PASSWORD。
- 步骤3:备份命令示例:restic -r /mnt/backup_repo backup /var/lib/mysql --tag db;设置cron每日夜间运行并定期执行restic forget --prune --keep-daily 7 --keep-weekly 4。
8. 数据库备份与一致性(以MySQL为例)
- 步骤1:使用mysqldump或xtrabackup保证一致性;推荐Percona XtraBackup做物理备份。
- 步骤2:示例逻辑备份脚本:mysqldump --single-transaction --quick --lock-tables=false -u root -p'密码' dbname > /backup/db/$(date +%F_%H%M).sql。
- 步骤3:将dump文件通过rsync或restic推送到本地备份盘并做加密存储。
9. 快照与卷管理(LVM或云快照)
- 步骤1:若使用LVM,请在备份前create snapshot:lvcreate -L1G -s -n snap_vol /dev/vg/data。
- 步骤2:在快照上执行rsync/备份,完成后lvremove /dev/vg/snap_vol。
- 步骤3:云环境可使用提供的API调用快照,配合脚本自动化(例如调用OpenStack、阿里云或AWS API)。
10. 自动化与监控
- 步骤1:使用Prometheus+Grafana监控备份任务/节点吞吐、磁盘使用、备份失败率。
- 步骤2:对备份脚本增加退出码检查与告警:备份脚本最后判断$?并通过邮件/SMS/钉钉推送失败信息。
- 步骤3:定期演练恢复,至少每月一次,验证快照、restic还原和数据库恢复流程。
11. 恢复流程(实操演示)
- 步骤1:文件恢复:定位备份点(rsync或restic snapshots),示例restic restore latest --target /tmp/restore。
- 步骤2:数据库恢复:停止服务systemctl stop mysql;解压/restore dump;mysql -u root -p < /tmp/restore/db.sql;重启服务并校验一致性。
- 步骤3:记录恢复时间并优化RTO/RPO以满足SLA。
12. 问:在成都管理香港节点时,如何保证同步带宽受限情况下的可靠备份?
- 答:使用增量去重工具(restic/borg)+RSYNC的--link-dest策略减少传输量,安排低峰窗口执行大数据量全量备份;启用压缩(restic自动压缩)并限速rsync(--bwlimit=KBps)以避免占满链路。
13. 问:如何在本地备份同时保证数据安全与合规?
- 答:在备份时启用加密(restic/borg都支持),对敏感数据进行字段级脱敏或加密备份;保存访问日志并限制恢复权限,定期审计并保留合规所需的保留期记录。
14. 问:出现节点故障时,最快的本地恢复实践是什么?
- 答:预先准备好恢复主机和自动化脚本:1) 从最近快照或restic还原关键文件到备用节点;2) 恢复数据库用最近的binlog或增量备份;3) 更新DNS/HAProxy切换流量并验证服务健康,整个流程演练并记录RTO以持续优化。
来源:成都香港服务器托管节点与本地备份策略的最佳实践