2019年1月12日 星期六

將 Fedora 安裝在「軟體 RAID」的 RAID 硬碟組以保護系統

RAID 是利用增加的硬碟來保護儲存的資料,如果想要整個碟碟都納入保護(即:將 RAID 硬碟組做為「開機硬碟」)。以往多需要買一張「RAID 控制卡」,以安裝 RAID 硬碟組。後來,晶片組漸漸將 RAID 的功能加入,只要在 BIOS 設定好就可以了。
  不過,利用晶片組所提供的 RAID 功能之硬碟組,當更換主機板時,可能會不相容,如此一來想保護硬碟資料的初衷就失敗了。幸好,Linux 支援「Software RAID (軟體 RAID)」的功能,不再受限於主機板及 BIOS (註),再加上 CPU 的運算能力已超過一般用途所需。因此,使用 Linux 的「軟體 RAID」就是一個不錯的選擇。
:使用 Software RAID 在 BIOS 中的硬碟設定,只需設為 SATA 或 AHCI 模式即可,不可設為 RAID

1. 安裝中切換至「終端機」

與一般安裝相同:下載 Fedora 的 ISO 檔,製做開機碟,開始安裝。經過一段時間,當顯示「選擇安裝語言」的畫面時,
同時按【Ctrl】+【Alt】+【F2】三個鍵,切換到另一個「終端機」畫面,
[anaconda root@localhost /]#

2. 建立 RAID 硬碟組

這時可以開始建立一組 RAID 硬碟。不過,最好先確認將用於 RAID 的硬碟編號是否正確,免得用錯硬碟,這裏用 parted /dev/sdX print 顯示「第 X 個硬碟」的資訊。
[anaconda root@localhost /]# parted /dev/sda print
Error: /dev/sda: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
[anaconda root@localhost /]# parted /dev/sdb print
Error: /dev/sdb: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
上例中,確認 /dev/sda 及 /dev/sdb 這兩顆硬碟是要用於 RAID 的硬碟編號。接著就可以下命令建立 RAID 硬碟,因為這個 RAID 碟碟要做為開機硬碟之用,目前只能設定為 RAID 1。
[anaconda root@localhost /]# mdadm --create md127 --level=1 --raid-devices=2 --metadata=1.0 /dev/sda /dev/sdb

mdadm: array /dev/md/md127 started.
其中各參數說明如下:
--create md127建立名稱為 md127 的 RAID 硬碟組,完整名稱為 /dev/md127,以後查詢、修改皆以此名指定之。
--level=1指定為 RAID 1 硬碟組,因為將此 RAID 硬碟組設為『開機』之用,一定要使用 RAID 1。
--raid-devices=2RAID 1 硬碟組至少要兩顆硬碟。
--metadata=1.0RAID 硬碟組中 Superblock 格式的版本,最近的測試中 1.0 的相容度比較好。
/dev/sda /dev/sdb要加入的硬碟之完整名稱。
最後一列,則是顯示 mdadm 成功建立 RAID 硬碟組,且開始運作。

3. 查詢 RAID 硬碟組之資訊

這時可以立即查詢是否建立成功,
[anaconda root@localhost /]# mdadm --detail /dev/md127
/dev/md127:
Version :1.0
Creation Time :Sat Jan 12 09:22:27 2019
Raid Level :raid1
Array Size :20971392 (20.00 GiB 21.47 GB)
Used Dev Size :20971392 (20.00 GiB 21.47 GB)
Raid Devices :2
Total Devices :2
Persistence :Superblock is persistent
Update Time :Sat Jan 12 09:22:27 2019
State :clean, resyncing
Active Devices :2
Working Devices :2
Failed Devices :0
Spare Devices :0
Consistency Policy :resync
Resync Status :3% complete
Name :localhost:md127 (local to host localhost)
UUID :ba2f781c:737529ac:d9dc7be1:0decd912
Events :0
NumberMajorMinorRaidDeviceState
08  00active sync/dev/sda
18161active sync/dev/sdb
上例中,『State : clean, resyncing』表示正在建立鏡像(即:兩個硬碟內容完全相同),而『Resync Status : 3% complete』則是目前的進度。當 RAID 建立完成時,若再查詢則所顯示的訊息就不同了。
[anaconda root@localhost /]# mdadm --detail /dev/md127
/dev/md127:
Version :1.0
Creation Time :Sat Jan 12 09:22:27 2019
Raid Level :raid1
Array Size :20971392 (20.00 GiB 21.47 GB)
Used Dev Size :20971392 (20.00 GiB 21.47 GB)
Raid Devices :2
Total Devices :2
Persistence :Superblock is persistent
Update Time :Sat Jan 12 09:24:13 2019
State :clean
Active Devices :2
Working Devices :2
Failed Devices :0
Spare Devices :0
Consistency Policy :resync
Name :localhost:md127 (local to host localhost)
UUID :ba2f781c:737529ac:d9dc7be1:0decd912
Events :17
NumberMajorMinorRaidDeviceState
08  00active sync/dev/sda
18161active sync/dev/sdb
這時可以看到 RAID 的狀態已經變成 clean,表示正常運作中。

4. 回到原來的安裝畫面,繼續安裝

同時按【Ctrl】+【Alt】+【F6】三個鍵,切換回原來的安裝畫面,選擇『安裝語言』後按【繼續】鈕。
除了『安裝目標位置』這一項有些不同需要另外說明外,其它部份的安裝過程與一般無異。點選【安裝目標位置 (D)】,
雖然已經建立 RAID 硬碟組,但是「Fedora 安裝程式」似乎並未偵測,可能它是在建立 RAID 硬碟組之前就已經偵測硬碟了。沒關係,按一次右下方的【重整 (R)】,就可以再偵測一次硬碟
按【重新掃描磁碟 (R)】確認,「Fedora 安裝程式」即開始偵測硬碟。
掃描完成,需要再按【確定(O)】鈕,進行下一步驟。
這時就可以看到剛才建立的 RAID 硬碟組了,點選『MDRAID set (mirror)』這個 RAID 硬碟組,就如同一般安裝時點選「安裝目標磁碟」一樣。
  接下來的步驟和一般安裝過程相同,就不再贅述。

已測試版本:

  • Fedora: 27  (Superblock format v. 0.9)
  • Fedora: 28, 29  (Superblock format v. 1.0)

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)