我有一个家庭文件服务器,其配置如下:
- 4 个 2TB 硬盘
- 1 个运行 Debian 操作系统的 8GB USB 闪存盘
我想将操作系统闪存驱动器的完整磁盘备份到操作系统中安装的另一个(非相同)8GB 以上的闪存驱动器。我希望无需物理或手动访问服务器,只需设置计划的自动任务来执行备份即可。
我在寻找解决方案时发现,主要问题在于无法在备份期间阻止对文件系统的写入;这可能会损坏备份。
一种可能的解决方案是启动单用户模式,然后使用该dd
实用程序,但我不知道完全自动化的可行性如何。我的想法是:
- Cron 作业启动备份,首先重新启动进入单用户(运行级别 1)
- 如何才能进入能够安装备份驱动器并运行 dd 命令的状态?
- 重新启动回到正常使用模式(我的系统为运行级别 2)
然后,如果系统出现故障,我只想移除出现故障的驱动器,插入备份,并用新的 USB 驱动器替换备份,因为备份系统上也会运行备份脚本。
这个计划可行吗?还是根本行不通?有没有其他实用程序可以为我提供类似的解决方案?
答案1
既然您使用的是 Linux,为什么不使用 LVM?您只需要两个(或更多)相同的硬盘,然后创建卷组的镜像副本。然后,如果一个磁盘发生故障,拆分镜像,插入另一个磁盘,一切就都好了。
执行 dd 复制是进行备份的最糟糕方法之一。首先,它可能会复制遇到的任何损坏,其次,它会复制整个磁盘,包括任何占用大量时间的空白扇区,第三,如果在创建备份时主磁盘出现故障,您的备份将功亏一篑。
我使用一款名为 burp 的免费备份客户端/服务器,它有很多非常好的功能。您可以在同一个盒子上运行客户端和服务器,并将目标设置为外部磁盘。
我在美国和英国各有一台 VPS。每天晚上我都会导出我的 MySQL 数据库,然后备份所有重要文件,例如 /etc、/home、/var/www、/var/named 和其他一些地方。
burp 还会为您处理重复数据删除,因此如果您的文件没有变化,则无需进行完整的备份。
因此,总而言之,LVM 镜像提供了一定程度的冗余,然后对偶尔删除的文件或需要从故障中恢复的文件进行远程增量备份。
答案2
您无法在同一个 cron 作业中切换到单用户并进行备份。但您可以手动切换到单用户并执行 cron 作业来检查您是否处于单用户状态,进行备份,然后再次切换到级别 2。