我有一个可用的 USB 2.0 端口和一个 USB 3.0 端口,并且想在 RAID1 中设置两个 HDD(均为 USB 3.0)。
不完全确定镜像是如何工作的,但想知道是否有某种方法可以将连接到 USB 3.0 端口的驱动器配置为某种“主”驱动器,该驱动器将优先用于“初始”写入/读取,以便最大限度地提高性能,将任何数据复制到连接到 USB 2.0 接口的驱动器。
欢迎任何想法或建议。理想情况下,该解决方案适用于与树莓派 4 兼容的操作系统,但是,我也有兴趣了解任何其他解决方案。
答案1
由于两种独立的 USB 技术存在硬件限制:
使用以下命令设置 RAID-1mdadm
(m
多功能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-mostly
来mdadm
规避一些的差异。
此选项会将其中一个 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