使用 1 个较大的驱动器对 2 个较小的驱动器进行 raid

使用 1 个较大的驱动器对 2 个较小的驱动器进行 raid

我必须重新设置 RAID 阵列,并且面临一些不同大小的磁盘。我想要使​​用 2x 5TB 和 1 8TB 驱动器进行 raid 1 镜像。我不确定执行此操作的最佳方法。

到目前为止我想到的两个选择......

一、LVM 2x 5TB 并将其添加到带有另一个 8tb 磁盘的 mdadm raid 1

第二,在 8tb 上创建两个分区并创建两个 raid1 分区,然后将它们合并到 LVM 中。

归根结底,我只想安装一个分区。为了使事情变得更加复杂,我正在考虑添加另一个磁盘,该磁盘可能不是 RAID,而只是通过 RSYNC 手动备份。我希望将此磁盘与 RAID1 一起作为单个安装提供,因此这可能意味着我将使用 LVM 来提供最终的 raid。

我对选项一的关注是将 LVM 添加到 RAID1 /dev/md0,然后将 /dev/md0 + 另一个磁盘添加到不同的 LVM。

我有点担心对我的数据进行重大修改并寻找输入。为了分解问题,我主要关注这个关于使用 3 个磁盘进行 raid1 的问题,其中两个磁盘很小,一个很大。然后我就可以专注于下一部分。

谢谢您,如果您需要任何其他信息,请告诉我。

更新:

我正在考虑使用 ZFS now 与 mdadm 来学习新工具。例如使用 LVM 创建 2x 5TB 的池,然后创建 lvm + 8tb HDD 的 ZFS 池。这可以吗?> 我读过 ZFS 希望对磁盘进行直接原始访问,并且想知道 LVM 是否可以在这种情况下工作。

答案1

不“推荐”像这样使用 ZFS,但它会工作得很好。完全可以使用 mdadm 将两个 5Tb 驱动器连接在一起,然后将该设备传递给 ZFS。

有很多关于为大规模生产系统调整 ZFS 的建议,但这些建议与想要使用 ZFS 进行数据完整性保护的小规模用户无关。

我假设您使用的是最近的 linux disto,在这种情况下:

mdadm --create /dev/md/twosmall /dev/disk/by-id/small1 /dev/disk/by-id/small2 --level=0 --raid-devices=2

将在 /dev/md/twosmall 为您创建一个 10Tb 设备,然后:

zpool create -f eight mirror /dev/md/twosmall /dev/disk/by-id/large

将从组合中创建一个 zfs 池。

请注意-f此处,否则该zpool create命令将因设备大小不同而失败。我建议先运行它而不使用-f以确保没有其他错误消息。

twosmalleight是我为 mdadm raid 和 zfs 池随机选择的名称,您应该将这些/dev/disk/by-id名称替换为适当的名称。我使用该命令ls -l /dev/disk/by-id | grep -v part | grep -v wwn | sort -k 11获取系统中按 /dev/sd? 排序的驱动器列表。快捷方式。

答案2

我最终做了什么,有很多方法可以在 Linux 中给猫剥皮,无论谁说你需要有 2 个相同大小的驱动器,都没有创意!

注意:ZFS 喜欢拥有整个磁盘,因此通过在分区上使用您会失去它的一些功能,请进行研究,但对于我的家庭服务器/数据存储池,我确信这是可以的。

我使用 ZFS 创建分区,如下所示:

1x4TB /dev/sda1
1x1TB /dev/sda2

1x4TB /dev/sdb1
1x1TB /dev/sdb2

1x4TB /dev/sdc1
1x4TB /dev/sdc2

然后使用 ZFS 创建镜像,如下所示:

/dev/sda1 /dev/sdc1 # 8TB
/dev/sdb1 /dev/sdc2 # 8TB
/dev/sda2 /dev/sdb2 # That leftover 1TB, might as well not waste it!

最后,我将所有内容与 MergeFS 作为单个安装点呈现给“操作系统/最终用户”。

注意:我遇到了很多麻烦,mhddfs甚至不用麻烦,使用mergefs.

相关内容