Arch-Linux

使用 usb 2.0 和 usb 3.0 介面時最大限度地提高 RAID1 效率

  • August 7, 2019

我有一個 USB 2.0 埠和一個 USB 3.0 埠,並且想在 RAID1 中設置兩個 HDD(均為 USB 3.0)。

不完全確定鏡像是如何工作的,但想知道是否有某種方法可以將連接到 USB 3.0 埠的驅動器配置為“主”驅動器,以便優先用於“初始”寫入/讀取,以便最大限度地提高性能,將任何數據複製到連接到 USB 2.0 介面的驅動器。

歡迎任何想法或建議。理想情況下,該解決方案適用於與樹莓派 4 兼容的作業系統,但是,我也有興趣了解任何其他解決方案。

由於您對 2 種獨立的 USB 技術有硬體限制:

  • USB2.0的最大信號速率為480Mbps
  • USB3.x的最大信號速率為 5120Mbps (5.0 Gbps)

mdadm使用( ulti mevice dinistratoradm )設置 RAID-1會有一些缺點。

選項 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 指定為“慢速”,所有讀取都來自快速硬碟,但所有寫入仍將等待慢速硬碟。(所以只有 USB 3.0 磁碟的一半好處)

設置 RAID:

以下所有命令都需要以root或 with執行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:**感謝fra-sanStephen Kitt為我指出了第二個選項的正確方向!

注 3:mdadm有關 pi 本身的類型的更多資訊man mdadm並閱讀它(所有這些,甚至是你認為的東西您將永遠不需要像在失敗後重新組裝 RAID…) ;-)

注 4:RAID 不是備份的替代品!;-P

引用自:https://unix.stackexchange.com/questions/534249