使用 USB 2.0 和 USB 3.0 接口时最大限度地提高 RAID1 效率

使用 USB 2.0 和 USB 3.0 接口时最大限度地提高 RAID1 效率

我有一个可用的 USB 2.0 端口和一个 USB 3.0 端口,并且想在 RAID1 中设置两个 HDD(均为 USB 3.0)。

不完全确定镜像是如何工作的,但想知道是否有某种方法可以将连接到 USB 3.0 端口的驱动器配置为某种“主”驱动器,该驱动器将优先用于“初始”写入/读取,以便最大限度地提高性能,将任何数据复制到连接到 USB 2.0 接口的驱动器。

欢迎任何想法或建议。理想情况下,该解决方案适用于与树莓派 4 兼容的操作系统,但是,我也有兴趣了解任何其他解决方案。

答案1

由于两种独立的 USB 技术存在硬件限制:

  • USB2.0最大信令速率为 480Mbps
  • USB3.x最大信令速率为 5120Mbps (5.0 Gbps)

使用以下命令设置 RAID-1mdadmm多功能d设备adm控制器)会有一些缺点。

选项 1:添加硬件。

添加 USB 3.x 端口分配器/USB 3.x HUB,并将两个 HDD 连接到 HUB,并将 HUB 连接到 Pi 的 USB 3.x 端口,从而将其各自的最大理论传输速率降低到 2560 Mbps (5120/2)而不是将一个连接到 USB2 端口,另一个连接到 USB3,因为这会降低最大理论传输速率两者的仅为 480Mbps。

选项 2:同住一些速度差异。²

好的,所以您没有时间、金钱或物理空间在此解决方案中放置 USB HUB 和 Pi 以及 2 个 HDD:
因为 RAID 中没有“主”和“辅助”这样的东西(任何版本)但只有JBOD合并为一个,您可以使用选项write-mostlymdadm规避一些的差异。

此选项会将其中一个 HDD 指定为“慢速”,并且所有读取都将来自快速 HDD但所有写入仍将等待慢速写入。 (所以只有USB 3.0磁盘的一半好处)

设置 RAID:

以下所有命令都需要作为root或 一起执行sudo

假设第一个 HDD 出现,/dev/sdc第二个 HDD出现,/dev/sdd执行以下命令,md0使用 2 个 HDD 创建一个名为 RAID 级别 1 的软件 RAID:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd

仅当您使用选项 #2 时,你应该添加--write-mostly 慢速行驶之前sdd以示例为例)并使用以下命令而不是上面的命令(将鼠标悬停在其上以取消隐藏它以避免使用任何混淆):

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc --write-mostly /dev/sdd

现在我们必须在新创建的/dev/md0软件 RAID 上创建文件系统:

mkfs.ext4 -F /dev/md0

现在我们要将这个空间安装在/mnt(如果您需要将其安装在其他地方,请替换它)

mkdir --parents /mnt/md0

并编辑您fstab以在每次启动时包含此安装(在您的末尾添加第二行fstab):

nano /etc/fstab
/dev/md0  /mnt/md0 ext4 defaults 0 2

Ctrl+X Y Enter保存并退出。

现在重新启动以使其处于活动状态或键入以下命令而不重新启动:

mount /dev/md0 /mnt/md0

注1:链条中最薄弱的环节决定了 2 个 HDD 合二为一时的整体速度。 :-(
笔记2:谢谢弗拉桑斯蒂芬·基特为了为我指明正确的方向对于第二个选项!
注3:mdadm有关 pi 本身类型的更多信息man mdadm并阅读它(所有这些甚至是您认为永远不需要的东西,例如在失败后重新组装 RAID...);-)
注意 4:RAID 不能替代备份! ;-P

相关内容