温馨提示×

CentOS FTPServer如何做容灾

小樊
38
2026-08-04 03:51:52
栏目: 智能运维

在 CentOS 上部署 FTPServer(FTP over SSL/TLS) 的容灾,通常从 高可用(HA)数据备份/恢复 两个层面来做。下面按“常见生产方案”给你一个完整思路,你可以根据规模选择。


一、FTPServer 容灾总体思路

容灾目标:

  1. 服务不中断(高可用)
  2. 数据不丢失(可恢复)
  3. 故障可快速切换

核心组成:

  • FTP 服务(vsftpd / proftpd)
  • 用户认证数据
  • FTP 数据目录
  • 证书(SSL)
  • 配置文件

二、常见容灾方案(由简到复杂)

✅ 方案一:主备模式(推荐入门)

架构:

主 FTPServer(CentOS A)
   ↓
备 FTPServer(CentOS B)

1️⃣ 两台服务器安装相同环境

yum install -y vsftpd openssl

2️⃣ 同步配置文件

rsync -avz /etc/vsftpd/ root@backup:/etc/vsftpd/

3️⃣ 同步 FTP 数据目录

rsync -avz /data/ftp/ root@backup:/data/ftp/

✅ 建议用 定时任务 + inotify 实时同步

4️⃣ 证书同步

rsync -avz /etc/ssl/certs/ftp.pem root@backup:/etc/ssl/certs/

5️⃣ 故障切换

  • DNS 切换
  • 或 VIP(keepalived)

✅ 方案二:Keepalived + FTPServer(推荐)

架构:

VIP: 192.168.1.100
 ├── Master FTPServer
 └── Backup FTPServer

1️⃣ 安装 Keepalived

yum install -y keepalived

2️⃣ Master 配置

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1

    virtual_ipaddress {
        192.168.1.100
    }
}

3️⃣ Backup 配置

state BACKUP
priority 90

4️⃣ 数据同步(rsync / NFS / GlusterFS)


✅ 方案三:共享存储(中大型)

架构:

FTPServer A  ─┐
              ├── 共享存储(NFS / SAN / GlusterFS)
FTPServer B  ─┘

✅ 优点:

  • 数据天然一致
  • 切换快

⚠ 缺点:

  • 存储是单点(需存储层容灾)

三、FTPServer 数据容灾(必须做)

1️⃣ FTP 数据目录备份

rsync -az /data/ftp/ /backup/ftp_$(date +%F)/

2️⃣ 增量备份(推荐)

rsync -a --delete /data/ftp/ /backup/ftp/

3️⃣ 远程容灾

rsync -az /data/ftp/ remote:/data/ftp/

✅ 可结合:

  • cron 定时
  • shell 脚本
  • 异地机房

四、用户和配置容灾

1️⃣ 系统用户

rsync -avz /etc/passwd /etc/shadow /etc/group backup:/etc/

2️⃣ vsftpd 配置

/etc/vsftpd/vsftpd.conf
/etc/vsftpd/user_list

✅ 统一版本,避免配置差异


五、SSL 证书容灾(重要)

FTPS 依赖证书,丢失会导致客户端无法连接。

/etc/ssl/certs/ftp.pem
/etc/ssl/private/ftp.key

✅ 备份 + 同步
✅ 证书过期前更新


六、容灾演练(必须)

演练内容

  • 主服务器宕机
  • VIP 是否漂移
  • 数据是否完整
  • 客户端是否无感知

验证命令

ip addr show
ftp -d 192.168.1.100

七、推荐生产级方案(总结)

规模 建议方案
rsync + 手动切换
Keepalived + rsync
Keepalived + 共享存储
云厂商 SLB + ECS

八、我可以继续帮你

如果你愿意,可以告诉我:

  1. 用的是 vsftpd 还是 proftpd
  2. 数据量多大(GB/TB)
  3. 是否允许短时间中断
  4. 是否在内网 / 公网

我可以直接给你: ✅ 可执行的完整脚本
Keepalived 完整配置
rsync + inotify 实时同步方案

0