4.4.13. RAID 邏輯卷冊

由 RHEL 6.3 發行版起,LVM 開始支援 RAID4/5/6 以及新的鏡像實作。最新的鏡像實作與先前的鏡像實作有著以下的不同(記載於 節 4.4.3, “建立鏡像卷冊” 中):
  • 新的鏡像實作之磁區類型為 raid1。先前實作的磁區類型則為 mirror
  • 新的鏡射實作採用了 MD 軟體 RAID,RAID 4/5/6 實作亦然。
  • 鏡像的實作為各個 mirror image 保有了完全冗余的 bitmap 區域,這會增強其錯誤處理的能力。這代表以此磁區類型建立的鏡像沒有 --mirrorlog 或是 --corelog 選項。
  • 新的鏡像實作可處理暫時性的錯誤。
  • 新的鏡射實作支援 snapshot(較高等級的 RAID 實作亦如此)。目前尚不支援針對於磁區類型為 mirror 的鏡像製作 snapshot(儘管可建立)。
  • 鏡像映像檔能暫時性地由陣列中分割,並事後合併回陣列中。
  • 新的 RAID 實作無法偵測到叢集。您無法在叢集卷冊群組中建立 LVM RAID 邏輯卷冊。
欲取得更多有關於 RAID 邏輯卷冊如何處理錯誤的相關資訊,請參閱 節 4.4.13.8, “設定 RAID 錯誤政策”
此部分剩下的內容將詳述下列您可在 LVM RAID 裝置上進行的管理工作:

4.4.13.1. 建立 RAID 邏輯卷冊

若要建立 RAID 邏輯卷冊,您必須使用 lvcreate 指令的 --type 引數來指定 RAID 類型。一般當您透過 lvcreate 指令建立邏輯卷冊時,--type 會是隱藏的。比方說,當您指定 -i stripes 引數時,lvcreate 指令會假定設置 --type stripe 選項。當您指定 -m mirrors 引數時,lvcreate 指令則會假定設置 --type mirror 選項。然而當您建立 RAID 邏輯卷冊時,您必須明確指定您想要的磁區類型。可使用的 RAID 磁區類型詳述於 表格 4.1, “RAID 磁區類型” 中。

表格 4.1. RAID 磁區類型

磁區類型 描述
raid1 RAID1 鏡射
raid4 RAID4 特屬的同位磁碟
raid5 raid5_ls 相同
raid5_la
RAID5 向左對稱。
循環 parity 0 並且資料將延續
raid5_ra
RAID5 向右對稱。
循環 parity N 並且資料將延續
raid5_ls
RAID5 向左對稱。
循環 parity 0 並且資料將重新啟用
raid5_rs
RAID5 向右對稱。
循環 parity N 並且資料將重新啟用
raid6 raid6_zr 相同
raid6_zr
RAID6 零起始
循環 parity zero(左到右)並且資料將重新啟用
raid6_nr
RAID6 N 重新啟用
循環 parity N(左到右)並且資料將重新啟用
raid6_nc
RAID6 N 繼續
循環 parity N(左到右)並且資料將延續
對於大部份使用者來說,指定主要的可用類型之一(raid[1456])應已足夠。欲取得更多有關於 RAID 5/6 所使用之不同演算法則上的相關資訊,請參閱《常用的 RAID 磁碟資料格式規格》的第四章節,位於 http://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf
當您建立 RAID 邏輯卷冊時,LVM 會建立一個 metadata 子卷冊,並且陣列中各資料或同位子卷冊的大小皆為一個扇區。比方說,建立一個雙向的 RAID1 陣列時,會產生兩個 metadata 子卷冊(lv_rmeta_0lv_rmeta_1),以及兩個資料子卷冊(lv_rimage_0lv_rimage_1)。相同的,當建立一個三向的 stripe(加上一個隱藏的同位裝置)RAID4 時,將會產生四個 metadata 子卷冊(lv_rmeta_0lv_rmeta_1lv_rmeta_2 以及 lv_rmeta_3)和四個資料子卷冊(lv_rimage_0lv_rimage_1lv_rimage_2 以及 lv_rimage_3)。
下列指令將會在卷冊群組 my_vg 中,建立一個大小為 1G 的雙向 RAID1 陣列,名為 my_lv
# lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
您可根據您為 -m 引數所指定的值,來建立數個 RAID1 陣列。儘管 -m 引數與先前的鏡像實作中,使用來指定數量的引數相同,在此情況下,您會藉由明確將磁區類型設為 raid1,以置換預設磁區類型 mirror。相同地,您亦可透過熟悉的 -i argument,指定 RAID 4/5/6 邏輯卷冊的 stripe 數量,將預設的磁區類型置換為您想要的 RAID 類型。您亦可透過 -I 引數來指定 stripe 的大小。

注意

您可藉由更改 lvm.conf 檔案中的 mirror_segtype_default,來將預設的鏡像磁區類型設為 raid1
下列指令將會在 my_vg 卷冊群組中建立一個 RAID5 陣列(三個 stripe 加上一個隱藏同位磁碟),名為 my_lv 並且大小為 1G。請注意,您必須如同為 LVM stripe 卷冊一般的指定 stripe 數量;正確的同位磁碟數量將會被自動加入。
# lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
下列指令將會在 my_vg 卷冊群組中,建立一個 RAID6 陣列(三個 stripe 加上兩個隱藏同位磁碟),名為 my_lv 並且大小為 1G。
# lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
在您以 LVM 建立了 RAID 邏輯卷冊後,您可啟用、更改、移除、顯示以及使用卷冊,就像是任何其它 LVM 邏輯卷冊一樣。