CentOS Wiki
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • FrontPage
  • Documentation
  • TipsAndTricks
  • HowTos
  • FAQ
  • Events
  • Contribute
  • RecentChanges

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 6 as of 2010-01-20 02:49:09
  • zh-tw
  • HowTos
  • SoftwareRAIDonCentOS5

如何在 CentOS 5 上設置一個軟件磁碟陣列

這篇文章探討如何於安裝時,在沒有真實磁碟陣列*控制器的系統上建立一個軟件(mdraid)RAID1。這意味著控制器會將原始塊裝置直接暴露給操作系統。這文章亦假設所涉及的裝置是頭兩個 SATA 碟盤 /dev/sda 及 /dev/sdb。若果是頭兩個平衡 ATA 碟盤,請將 /dev/sda 及 /dev/sdb 改為 /dev/hda 及 /dev/hdb(或者 /dev/sdc,如果是第二個主碟盤)。假如是其它裝置,請適切地調整碟盤稱謂。請按你的處境小心修改指令,切勿盲目地遵從下面的步驟。

要正確開機,/boot 必須位於非磁碟陣列,或者位於 RAID1 的分割區。/boot 不能採用 RAID0、RAID5 或其它 RAID 類型,而 RAID0(沒有冗餘的條紋)不建議給重要的分割區使用。只要滿足了 /boot 的限制,主目錄及其它分割區便可以採用 RAID5 或其它類型,然而,這個範例不會涵蓋那些選擇。**

<!> 這篇文章所描述的行動可以損毀現有的檔案系統。請先在一個測試裝置上進行實驗,並建立最新及可靠的備份,然後才正式執行。請勿盲目地剪貼指令,尤其是以 root 身份來執行,除非你清楚瞭解它們的效用。

dd 這個指令及下面所描述的步驟將會毀滅碟盤上的所有資料。如果碟盤上藏有需用的資料,請將它們備份。

1. 第一部份

  1. 停用主機板或 RAID 控制器 BIOS 上的任何模擬的磁碟陣列,令它成為一個正常的控制器 —— 多數是 ATA 或 SATA,也有可能是 SCSI。假如之前採用的是模擬磁碟陣列,你或許須要蓋過分割區列表。切勿載入 RAID 驅動程式。以下指令可以於圖像安裝分割硬盤前在第二個虛擬控制台(Ctrl-Alt-F2)內執行;或者在安裝媒體的修復模式中執行;又或者透過 LiveCD 來執行。裝置內的分區表將會被清除,而碟盤上的所有資料將會被遺失!
    • {{{dd if=/dev/zero of=/dev/sda bs=512 count=64

dd if=/dev/zero of=/dev/sdb bs=512 count=64}}}

  1. 開始以圖像介面安裝 CentOS。你可能需要用 "boot: linux nodmraid" 或在首個安裝選單按 [Tab] 來加入 nodmraid 這個開機指令。
  2. 自訂分割區並移除所有分割區,包括 LVM,來作個新開始
  3. 在 sda 及 sdb 上為 /boot 建立一個 ~100MB 的軟件磁碟陣列分割區
  4. 在 sda 及 sdb 上為 swap 建立一個軟件磁碟陣列分割區。這個分割區的大小視乎記憶體數量及個人喜好。這個範件採用 1GB。這將會是個磁碟陣列式的 swap***
  5. 在 sda 及 sdb 上為 / 建立一個軟件磁碟陣列分割區並用盡所有空間
  6. 點擊 RAID 鍵來建立一個磁碟陣列裝置
  7. 選取那兩個 100MB 的分割區,設定掛載點為 /boot,檔案系統類型為 ext3,磁碟陣列類型為 RAID1(預設裝置名稱是 md0),點擊 OK
  8. 點擊 RAID 鍵來建立一個磁碟陣列裝置
  9. 選取那兩個 1GB 的分割區,設定檔案系統類型為 swap,磁碟陣列類型為 RAID1(預設裝置名稱是 md1),點擊 OK
  10. 點擊 RAID 鍵來建立一個磁碟陣列裝置
  11. 選取那兩個大的分割區,設定掛載點為 /,設定檔案系統類型為 ext3,磁碟陣列類型為 RAID1(預設裝置名稱是 md2),點擊 OK
  12. 你的分割區已經建立好。你的畫面應該看似以下樣子:
    • RAID 裝置

      /dev/md0 ext3 [選取了] 100
      /dev/md1 swap [選取了] 1024
      /dev/md2 ext3 [選取了] [很多 GB]

      硬磁

      /dev/sda
         /dev/sda1 /dev/md0 software RAID [未被選取] 100
         /dev/sda2 /dev/md1 software RAID [未被選取] 1024
         /dev/sda3 /dev/md2 software RAID [未被選取] [很多 GB]
      /dev/sdb
         /dev/sdb1 /dev/md0 software RAID [未被選取] 100
         /dev/sdb2 /dev/md1 software RAID [未被選取] 1024
         /dev/sdb3 /dev/md2 software RAID [未被選取] [很多 GB]
  13. 點擊 Next 進到 GRUB 啟動程式畫面
  14. 預設 GRUB 會安裝到 /dev/sda,點擊 Next
  15. 繼續安裝 CentOS,選取所需的套件
  16. 當 CentOS 安裝完成後,用 root 的指令行進到第二部份。切勿更新 CentOS;切勿做其它事情!

2. 第二部份

這部份會確保 RAID1 /boot 的兩個成員都可以用來開機。請在碟盤失效/更替後重複這個部份。

2.1. 方法一 —— 開機時用 GRUB

在 GRUB 選單輸入 "c" 選項進到 GRUB 的提示行,接著:

  • grub> root (hd1,0)
    grub> setup (hd1)
    grub> root (hd0,0)
    grub> setup (hd0)

按 ESC 鍵返回 GRUB 選單,然後正常開機。進行方法二裡面的 1 及 5-8 步。

2.2. 方法二 —— 在運作中的系統用 GRUB

  1. 確定你是 [:zh-tw/TipsAndTricks/BecomingRoot:root]。

  2. 輸入 "/sbin/grub" 這個指令,按 Enter
  3. 在 GRUB 的指令殼輸入以下指令:
    • grub> device (hd0) /dev/sdb
      grub> device (hd1) /dev/sda
      grub> root (hd0,0)
      grub> setup (hd0)
      grub> root (hd1,0)
      grub> setup (hd1)
      grub> quit
  4. 祝你好運。輸入 "reboot",按 Enter。
  5. 當開機完成後,進行系統更新。
  6. 如果內核或 glibc 更新了,請重新開機。
  7. 如果有新的內核,輸入 "uname -a" 後按 Enter 來檢查你的確在運用最新的內核。
  8. 完成了!


  • 這份指引是根據 [http://www.centos.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=19853&forum=37 CentOS 論壇議題]引述 TimVerhoeven 在 irc.freenode.net 上的 #centos 頻道所提供的資料,吸納了論壇用戶及 [http://lists.centos.org/mailman/listinfo/centos-docs centos-docs] 上的回饋作出多番修飾而寫成的。

  • 以上程序假設一個圖像化的安裝。在文字模式下建立 RAID-1 裝置是可行的,但頗為冗長及苛刻。你首先要在碟盤上建立每個 RAID 成員分割區,並且指定採用單一個碟盤。如果你不為分割區個指定單一的碟盤(例如 sda 或 sdb),Disk Druid 似乎會在建立 RAID 裝置時修改你的配置。在建立 RAID 裝置的過程中,請確定你在每個碟盤上單單選取所需的 RAID 分割區。
  • 同一個方法應該可以應用在位於 RAID1 上的 /,而不須 /boot。這個 [http://www.texsoft.it/index.php?c=hardware&m=hw.storage.grubraid1&l=it Fedora 指南]的連結就採用了這個方法,它應該頗合用。這篇 Fedora 文章亦為了如何用 mdadm 進行修復提供了很好的指引。

  • 本 Wiki 內其它有關 RAID 的文章包括 [:zh-tw/HowTos/CentOS5ConvertToRAID:如何利用修復光碟將一個 CentOS 5 系統轉換成 RAID1] 及 [:zh-tw/HowTos/Install On Partitionable RAID1:如何在一個可分割的軟件 RAID1 上安裝 CentOS 5]。
  • 一般有關軟件磁碟陣列的文章:
    • [http://tldp.org/HOWTO/Software-RAID-HOWTO.html] [http://en.wikipedia.org/wiki/Mdadm]

  • 這頁的英文版由 PhilSchaffner 建立及維護。歡迎其他擁有編輯權限的 Wiki 貢獻者作出更正或添加。其他有意見的讀者可以在我的 Wiki 頁內找到聯絡資料。


  • * 有些控制器聲稱是硬件磁碟陣列,但仿似 winmodem 般須要用驅動程式來運作。這些控制器就是所謂的「模擬 RAID」或「冒牌貨」,它們在 CentOS 上停用 RAID 功能會更佳。這篇[http://www.brandonchecketts.com/archives/disabling-dmraid-fakeraid-on-centos-5 外置文章]頗詳細地探討這些議題。

  • ** 欲得到有關磁碟列件的解釋,請閱讀 [http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks Wikipedia 文章],或在 google 上搜尋其它精彩描述。要得更多針對企業級 Linux 5 的資訊,請參閱部署指南的[http://www.centos.org/docs/5/html/5.2/Deployment_Guide/ch-raid.html 「冗餘磁碟陣列(RAID)」]部份或 CentOS 5 常見問題集內的[http://wiki.centos.org/zh-tw/FAQ/CentOS5#head-d9e6f2383c8c976a90228b4e680814f86e218e4e 「我如何在 CentOS 5 上安裝一個軟件磁碟陣列?」]。

  • *** 另一個捨棄冗餘來換取更佳效能和雙倍調換空間,但沿用相同分割區大小的做法,就是採用兩個非磁碟陣列的分割區。這樣做的效能與 RAID0 相若,但就算一個碟盤壞了仍能捱得住,雖然只會剩下一半的調換空間。
  • 選擇二:把剩餘的空間放在另一個 RAID1,然後在 /dev/md1 上建立一個 LVM 磁區,把 /、swap、甚至 /home 或其它檔案系統以邏輯磁區的型式建立在 LVM 內。請跳過第 1 分段餘下的指引。

Translation of revision 28

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01