我已经在脑子里思考了一整天了,想要扩展一下范围并获得一些关于这个设置的反馈/意见,以及如果它失败了我该如何处理。
我有一个 Ubuntu 服务器系统,其中文件系统本身位于一个相对较小的磁盘上,它存储的主要数据位于使用 MDADM 在 RAID5 中配置的 5 个磁盘上。
存储在 RAID 阵列中的数据是中等优先级。不存在任何敏感的个人用户数据,因此丢失数据并不意味着世界末日。但是,随着驱动器数量的增加,我希望有一点冗余,因此 RAID 5 是显而易见的选择。
因此,如果阵列中的某个驱动器发生故障,我可以在发生任何灾难性事件之前将其替换掉。如果在替换第一个驱动器时另一个驱动器发生故障,那么我就会被不幸的雷击中。
我想知道的是,我可以对包含操作系统的驱动器做什么。现在,我正在做的是使用 rsync 每晚将数据备份到远程位置。每周一次,该远程位置将文件系统打包并存储(它将始终保留 4 个最新的 tarball)。我的逻辑是,这会导致盒子之间的流量最低,这很好,因为服务器位于我家,但我将在远程端进行“完整”的每周备份以及每晚备份。我的备份脚本中的 rsync 行如下:
rsync --info=progress2 --numeric-ids -aAXPve ssh /* <remote>:~/server_backup --exclude=~/Download/* --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude=/lost+found --delete
无论如何,我遇到过 RAID 阵列上的驱动器故障。这很容易,而且感觉很满意,因为您只需要将其换出,告诉 MDADM 您更换了驱动器,然后等待一两天让新驱动器完全添加到阵列中。但是,我还没有遇到文件系统驱动器故障的情况。这就是我在这里试图获得有关我应该做什么的意见/反馈的原因。
我考虑为操作系统添加另一个小驱动器,并使用 RAID 1 镜像这两个驱动器。我猜这样做的好处是,如果一个驱动器完全崩溃,另一个驱动器将拯救我的文件系统。缺点是,如果出现某种损坏,或者我真的搞砸了什么,数据会立即在两个设备之间镜像。基本上,我更喜欢增量备份和完整备份的想法,而不是文件系统的镜像设置。
好的,但是当文件系统驱动器最终出现故障时,会发生什么呢?我去商店,买了一个新驱动器,插上电源,然后会发生什么?
我是否必须在驱动器上安装 Ubuntu,然后反转 rsync 命令?我的 RAID 分区会发生什么?这是一种迂回的问法,RAID 在哪里元数据存储了?是在 OS 驱动器上吗?它是否通过 rsync 进入了保存增量备份的远程存储库?它是否仅驻留在 RAID 驱动器本身的超级块中?
如果我去为文件系统获取一个新的驱动器,安装 Ubuntu,并将其重新添加到我的服务器中,它会看到什么?它会看到阵列吗?
如果我将所有更改从远程备份服务器 rsync 回本地服务器,那么然后看到阵列了吗?
或者我对这两种情况的假设都是错误的?
我希望为这个驱动器最终坏掉做好准备。我一直勤于做 rsync 异地备份,但我想确定我所做的一切是否都是在浪费时间,以及在保存文件系统的驱动器发生灾难性故障后,我可以做些什么来确保我可以继续使用我的系统。
答案1
阵列元数据存储在每个分区或驱动器上,这些分区或驱动器是 raid 成员,位于称为超级块的区域中。您可能希望查看 raid wiki 以了解更多详细信息。例如,您可以使用
mdadm --detail /dev/sdc1
參考https://raid.wiki.kernel.org/index.php/RAID_setup#RAID-1
參考https://raid.wiki.kernel.org/index.php/RAID_setup#The_Persistent_Superblock_.282011.29
假设您使用传统的 raid 布局(即没有缓存等),您应该能够在干净的操作系统安装下重新组装 raid5 而不会出现问题。
提醒一下,raid 阵列都是关于正常运行时间,而不是备份。
參考http://marc.info/?l=linux-raid&m=135811522817345&w=1
如果操作系统驱动器上的数据量很小,并且您可以快速响应,则执行恢复可能足够快,适合您的使用情况。而且您可以将宝贵的驱动器托架留作其他用途(例如,使 raid5 更大)。
您甚至可以预先创建一个备份可启动驱动器,这样您就可以关闭电源,更换驱动器并重新打开电源。确保每季度或每月刷新并测试一次,以免它变得太陈旧。
如果您想转移到 raid1,有几种不同的方法可以实现,它们都需要一点耐心和停机时间。我在下面链接了一个例子。快速谷歌搜索一下,就会找到许多类似的结果。