在 mdraid 中使用多个 LVM 层是否明智

在 mdraid 中使用多个 LVM 层是否明智

我正在构建一个家庭服务器,它将用于一些不同的事情。我真的很想尝试使用 Btrfs raid 1 阵列来存储大型数据,但我使用的是 CentOS 7(较旧的内核,尽管据说在 3.10 之前已经稳定),并且对其稳定性和我的能力有一些普遍的担忧修复出现的问题,因此我决定在 MD RAID 1 上继续使用 ext4(目前)。不过,我希望保持足够的灵活性,以便以后可以进行转换。在我看来,最简单的方法是让 MD 在每个磁盘的一个逻辑卷之上运行,这样我就可以随着时间的推移更轻松地调整整体 raid 大小,然后在其之上放置其他逻辑卷来管理磁盘使用情况对于各种事情。 (我想我可以使用 LVM raid,但由于此处列出的原因,我倾向于反对它:使用 LVM 进行 RAID 与 MDRAID 比较

例如这样的事情:

| /share | /userX | /userY | /media |
 -----------------------------------
|  LVM1  |      LVM2       |  LVM3  |
 -----------------------------------
|           RAID 1 Volume           |
 -----------------------------------
|    LVM volume   |    LVM volume   |
 -----------------------------------
|      Disk 1     |     Disk 2      |

这将使我能够灵活地管理顶层的磁盘使用情况以及管理整体 RAID 大小,因此理论上我最终可以开始为另一个系统使用额外的磁盘空间,不是吗?

我感觉我错过了一些东西——性能损失?太复杂?加,这个问题让我怀疑我的方法,尽管那张海报似乎做了一些略有不同的事情。我并不是要在这里存储核代码,并且我会对重要内容进行异地备份,但我想避免用可能导致问题的解决方案搬起石头砸自己的脚。

答案1

大多数 init 系统可能不会预料到这种情况,因此它们不会准备先组装 LVM,然后组装 MD,然后再次组装 LVM。

如果将 LVM 置于 MD 之下,则必须非常小心。 MD 应该与物理磁盘一起使用,但是使用 LV 作为 RAID 成员,您很容易最终会出现两个成员共享相同磁盘的情况。也就是说,如果使用 MD 作为独立层,而不是 LVM 本身的 raid 功能,在后一种情况下,LVM 本身会确保这一点。

如果 MD 成员最终共享磁盘,则单个磁盘故障最终将导致多个成员死亡。基本上,如果没有真正的冗余,您将运行毫无意义的 RAID。

问题是,这样的设置有什么意义呢?仅从您的图形来看,显然附加的 LVM 层是多余的。直接使用磁盘即可。

大多数想要将 RAID1 设置完全更改为其他设置的人只需删除一个磁盘并在其上构建新系统即可。您暂时失去了此过程的冗余,但无论如何您应该始终拥有备份,对吗?

LVM 的大多数其他优点不适用于 RAID。您不需要将 LVM 置于 RAID 之下即可增大或缩小 RAID。 MD 自己就能做到这一点。

相关内容