| Red Hat Enterprise Linux 4: 安裝手冊 適用於 IBM® S/390® 與 IBM® eServer™ zSeries® 主機架構 | ||
|---|---|---|
| 前頁 | 附錄 F. 給 S/390 與 zSeries 使用者的額外資訊 | 下頁 |
跟 raidtools 套件組中的工具一樣,mdadm 指令可以用來執行所有與管理多裝置組相關的功能。在本節中,我們將告訴您如何利用 mdadm 指令,以:
建立 RAID 裝置
建立多路徑(multipath)裝置
要建立 RAID 裝置,請編輯 /etc/mdadm.conf 檔案,設定適切的 DEVICE 與 ARRAY 值。
DEVICE /dev/sd[abcd]1 ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1 |
在本例中,DEVICE 一行使用的是傳統檔名的 glob 指令(請參閱 glob(7) man page 獲得更多訊息),以定義以下的 SCSI 裝置:
/dev/sda1
/dev/sdb1
/dev/sdc1
/dev/sdd1
而 ARRAY 一行則定義了 DEVICE 行中,組成 RAID 的裝置(/dev/md0)。
在建立或使用任何 RAID 裝置前,/proc/mdstat 檔案顯示目前系統並無任何 RAID 裝置運作中:
Personalities : read_ahead not set Event: 0 unused devices: <none> |
接下來,使用以上設定與 mdadm 指令,以建立 RAID 0 陣列:
mdadm -C /dev/md0 --level=raid0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 \ /dev/sdd1 Continue creating array? yes mdadm: array /dev/md0 started. |
建立完成之後,您就可以隨時查詢該 RAID 裝置,獲得狀態資訊。底下的範例顯示了使用 mdadm --detail /dev/md0 指令的結果:
/dev/md0:
Version : 00.90.00
Creation Time : Mon Mar 1 13:49:10 2004
Raid Level : raid0
Array Size : 15621632 (14.90 GiB 15.100 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Mar 1 13:49:10 2004
State : dirty, no-errors
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 3 active sync /dev/sdd1
UUID : 25c0f2a1:e882dfc0:c0fe135e:6940d932
Events : 0.1 |
除了建立 RAID 陣列外,只要硬體支援,mdadm 指令也可以透過多個 I/O 路徑,連到每個 SCSI LUN (磁碟機)去。即使硬體失效,或是某個路徑的容量過於飽和,多路徑儲存也能繼續提供服務。由於這設定包括多條路徑(每條路徑都以獨立的虛擬控制卡來運作)存取一個共同的 SCSI LUN (磁碟機),所以 Linux 核心會「透過」每條路徑偵測每個磁碟機。換句話說,視為 /dev/sda 的 SCSI LUN (磁碟機)也可以透過 /dev/sdb、/dev/sdc 等等來存取,端看設定而定。
要在 I/O 路徑失效或過度飽和時,單一裝置還是可以提供服務,mdadm 為 ––level 選項提供了額外的參數。這參數 — multipath — 會指向 Linux 核心的 md 層,在一條 I/O 路徑失效時,將 I/O 需求引導到另一條路徑去。
要建立多路徑裝置,請編輯 /etc/mdadm.conf 檔,定義 DEVICE 與 ARRAY 兩行的值,以反映您的硬體設定。
![]() | 注意 |
|---|---|
跟之前 RAID 的範例不同(在 RAID 範例中,每個 /etc/mdadm.conf 中的磁碟都代表不同的實體磁碟機),這檔案中的每個裝置都指向同一台分享磁碟機。 |
這用於建立多路徑裝置的指令跟建立 RAID 裝置的指令類似;不同之處在於將 RAID 等級的參數改為 multipath 參數:
mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 Continue creating array? yes mdadm: array /dev/md0 started. |
由於 mdadm 指令的長度關係,我們把它分成兩行來顯示。
在這例子裡,包括一個 SCSI LUN 的硬體代表四個獨立的 SCSI 裝置,每組裝置都使用不同的路徑存取同一個儲存空間。一旦建立路徑裝置 /dev/md0 之後,所有參照 /dev/md0 的 I/O 都會導向到 /dev/sda1、/dev/sdb1、/dev/sdc1、或 /dev/sdd1 (視目前哪一條路徑在運行中,並且是可用的)。
您可以使用 mdadm --detail /dev/md0 指令,查詢/dev/md0 的細部設定,以確定它的確是多路徑裝置:
/dev/md0:
Version : 00.90.00
Creation Time : Tue Mar 2 10:56:37 2004
Raid Level : multipath
Array Size : 3905408 (3.72 GiB 3.100 GB)
Raid Devices : 1
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Mar 2 10:56:37 2004
State : dirty, no-errors
Active Devices : 1
Working Devices : 4
Failed Devices : 0
Spare Devices : 3
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 17 1 spare /dev/sdb1
2 8 33 2 spare /dev/sdc1
3 8 1 3 spare /dev/sda1
UUID : 4b564608:fa01c716:550bd8ff:735d92dc
Events : 0.1 |
另一個 mdadm 的特點是能從操作設定中,強迫移除裝置(不管是 RAID 陣列或多路徑設定的裝置皆可)。在接下來的例子中,/dev/sda1 已經被標示為發生錯誤,然後將被移除,最後在加回設定中。對多路徑的設定來說,這些動作不會對 I/O 活動產生任何衝擊:
# mdadm /dev/md0 -f /dev/sda1 mdadm: set /dev/sda1 faulty in /dev/md0 # mdadm /dev/md0 -r /dev/sda1 mdadm: hot removed /dev/sda1 # mdadm /dev/md0 -a /dev/sda1 mdadm: hot added /dev/sda1 # |