Linux上的RAID

Linux上的RAID有三種:

硬RAID(hard-RAID)
通過專門的RAID控制芯片實現。一般表現爲RAID卡,並且卡上有專用的、獨立於主板BIOS的固件(一般也稱其爲BIOS)。
僞RAID(fake-RAID)
通過SATA/IDE等磁盤控制芯片附帶的RAID固件(集成於主板的BIOS中)實現,所以又稱爲"bios-RAID"。典型的例子就是Intel ICHxR系列南橋芯片。
軟RAID(soft-RAID)
完全通過操作系統內核實現的RAID。不需要任何額外的輔助硬件。

硬RAID在性能上是最好的,所有RAID操作都由RAID控制芯片完成,不佔用任何CPU和內存資源,而且RAID卡上一般還有額外的緩存進一步提升性能。對於操作系統和主板上的BIOS而言,硬RAID和一塊普通的硬盤沒有任何差別。但硬RAID的劣勢也在於它的完全獨立性,由於它完全依賴硬件實現,我們無法知道其精確的內部工作方式,而且RAID配置信息也保存在這塊卡上,萬一RAID卡自身損壞的話,硬盤中的數據恢復就沒有那麼容易了。

至於fake-RAID和soft-RAID,兩者本質上都是利用CPU資源進行RAID操作,在性能上差距很小,對操作系統也都不是完全透明的。但本文作者推薦使用軟RAID而不是僞RAID,理由如下:

  • 對於軟RAID來說,因爲它跟硬件沒有任何關係,並且它的配置信息也是保存在硬盤上的,所以即使主板壞了,把硬盤拿到另一個Linux系統下照樣可以讀出正確數據來。
  • 對於僞RAID來說,因爲它與硬RAID有類似的硬件依賴性,並且它的配置信息是保存在主板上的,所以如果主板壞了,必須把硬盤拿到相同芯片組的主板上,並且正確恢復RAID配置信息之後,才能讀出正確數據來。
  • 僞RAID的性能並不比軟RAID有優勢。

內核配置

三種不同的RAID,在內核配置上也各不相同,具體如下:

硬RAID(hard-RAID)

硬RAID比較簡單。由於所有RAID操作都由RAID控制芯片完成,硬RAID和一塊普通的硬盤沒有任何差別,只要內核能夠跟控制芯片正常通訊即可。所以在內核配置時,只需要在

Device Drivers
  ->SCSI device support
    ->SCSI low-level drivers
目錄中選取所需RAID卡的驅動即可。哪怕在
Device Drivers
  ->Multiple devices driver support (RAID and LVM)
Device Drivers
  ->SCSI device support
    ->RAID Transport Class
下什麼都不選,也完全沒有任何問題。

最後,硬RAID在系統中也表現爲"/dev/sda"這樣的設備,和普通的硬盤完全看不出任何差別。

僞RAID(fake-RAID)

對於fake-RAID而言,芯片組的固件只負責內核加載之前對RAID陣列的管理,而內核加載之後,對RAID的控制就移交給內核和CPU了。

首先,因爲沒有真正的RAID控制芯片,所以不需要"SCSI low-level drivers";
其次,由於fake-RAID是通過內核的Device mapper實現的,所以在內核配置時,需要選中

Device Drivers
  ->Multiple devices driver support (RAID and LVM)
    ->Device mapper support
      ->[*]RAID 1/4/5/6/10 target
此外,內核還必須添加SATA驅動才行。所以還需要選中
Device Drivers
  ->Serial ATA and Parallel ATA drivers
    ->[*]AHCI SATA support
最後,由於是通過 /dev/mapper/ 而不是 /dev/md* 來管理RAID,所以不需要選中
Device Drivers
  ->Multiple devices driver support (RAID and LVM)
    ->RAID support
及其任何子項。

在具體使用上,因爲fake-RAID必須使用dmraid工具啓動之後才能使用,所以如果根文件系統位於fake-RAID上,就必須要通過initramfs的輔助才能掛載。比較麻煩。

軟RAID(soft-RAID)

對於完全由內核來實現的軟RAID來說,在內核配置時,除了顯然必須的SATA/SCSI磁盤驅動之外,只需要額外加上

Device Drivers
  ->Multiple devices driver support (RAID and LVM)
    ->RAID support
中相應的子項即可。並不需要再添加其他選項。

在具體使用上,soft-RAID使用mdadm工具進行創建和管理。相應的設備文件是 /dev/mdN ,這裏的N是[0-225]之間的整數。

soft-RAID的用法也比較靈活,既可以將多個磁盤分區(需要將分區類型設爲"fd")組合成RAID使用,也可以將多個物理磁盤組合成RAID使用。

此外,soft-RAID的另一個優勢在於:soft-RAID並不需要專門的工具來"啓動",內核甚至能夠自動檢測RAID的配置。所以即使根文件系統位於soft-RAID上,也不需要initramfs的輔助(但有可能需要"md="引導參數)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章