![备份 Linux 网络服务器的最佳方法是什么?](https://linux22.com/image/483505/%E5%A4%87%E4%BB%BD%20Linux%20%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我正在运行一个典型的 LAMP 服务器。我需要通过网络备份此机器上的数据,且不中断服务。备份系统支持 SSH、FTP、SMB、NFS 和 iSCSI。实现此目标的最佳方法是什么?
答案1
您可以使用“scp”(使用 SSH)来备份数据,但更好的选择是设置“rsync”:复制 Web 服务器
rsync 非常快,因为它只镜像差异而不是进行完整复制。
答案2
Rsync是最好的东西。但是,作为通用备份工具,它有几个缺点(不是缺点,它是一款优秀的文件复制工具)。您有两个问题:
备份集会随时间推移而生成,因此复制的第一个文件将比复制的最后一个文件更旧。是的,很明显,但如果两个文件都需要同步,那么您的备份将无法反映服务器状态。大多数情况下这可能不是问题,但如果是,则在恢复时会遇到问题。
有些数据无法很好地复制,例如 MySQL DB 文件。如果文件处于打开状态,并且其部分内容位于内存中,则不会备份服务器的真实状态。
解决方案相当简单:确保所有正在运行的重要服务在备份之前立即将其数据刷新到磁盘,然后确保对磁盘状态进行快照。
MySQL 有转储数据库的工具 - mysqldump。我使用它来创建一个备份的 sql 文件,之后我忽略了 mysql 文件本身,当我需要恢复时,我知道我可以恢复转储。 LVM 具有拍摄磁盘快照的功能。这些会创建一个备用分区,并且从拍摄快照时起的所有磁盘写入都会透明地转到快照分区,这意味着您的原始驱动器保持不变。拍摄备份后,删除快照,所有更改都会“提交”到主磁盘。
或者,您可以使用虚拟化系统来托管您的 Web 服务器,然后备份涉及暂停 VM 映像并将其文件(使用 rsync!)复制到备份目标。恢复非常简单,只需将备份文件复制回来并取消暂停即可(在此期间您将有短暂的停机时间,但如果您暂停并使用快照文件系统,某些 VM 系统可以最大限度地减少停机时间)。
如果你有钱,最好的选择是使用类似r1soft 的持续数据保护,它会不断备份更改。
答案3
Rsync 很棒,但 rdiff-backup 更棒。它不仅保留了所有文件的镜像,还允许您根据需要从以前的备份中恢复旧版本。它只保存文件中更改的部分(“反向差异”),因此您无需保存一大堆额外数据即可获得恢复功能。
它使用与 rsync 相同的算法,但功能更加强大和实用。
此外,duplicity 是一个与 rdiff-backup 非常相似的系统,但它在客户端完成所有操作(即它不需要安装在服务器上)。它还可以在发送备份之前对其进行加密,并且可以配置为与 Amazon S3 存储配合使用。
答案4
我将使用 DRBD 将网络内容和网络配置同步到另一台服务器或共享。