![使用 1 个较大的驱动器对 2 个较小的驱动器进行 raid](https://linux22.com/image/170178/%E4%BD%BF%E7%94%A8%201%20%E4%B8%AA%E8%BE%83%E5%A4%A7%E7%9A%84%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%AF%B9%202%20%E4%B8%AA%E8%BE%83%E5%B0%8F%E7%9A%84%E9%A9%B1%E5%8A%A8%E5%99%A8%E8%BF%9B%E8%A1%8C%20raid.png)
我必须重新设置 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
以确保没有其他错误消息。
twosmall
和eight
是我为 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
.