在 linux 中使用 mdadm 管理 raid 裝置 - 第9部分
在本教程中,我們會再介紹此工具提供的功能,這樣當你需要它,就可以派上用場。
在本系列的最後一篇文章中,我們将使用一個簡單的 raid 1(鏡像)陣列,它由兩個 8gb 的磁盤(/dev/sdb 和 /dev/sdc)和一個備用裝置(/dev/sdd)來示範,但在此使用的方法也适用于其他類型的配置。也就是說,放心去用吧,把這個頁面添加到浏覽器的書簽,然後讓我們開始吧。
<a target="_blank"></a>
幸運的是,mdadm 有一個内建的 <code>--help</code> 參數來對每個主要的選項提供說明文檔。
是以,讓我們開始輸入:
<code># mdadm --manage --help</code>
就會使我們看到 <code>mdadm --manage</code> 能夠執行哪些任務:
使用 mdadm 工具來管理 raid
正如我們在上面的圖檔看到,管理一個 raid 陣列可以在任意時間執行以下任務:
(重新)将裝置添加到陣列中
把裝置标記為故障
從陣列中删除故障裝置
使用備用裝置更換故障裝置
先建立部分陣列
停止陣列
标記陣列為 ro(隻讀)或 rw(讀寫)
需要注意的是,如果使用者忽略 <code>--manage</code> 選項,mdadm 預設使用管理模式。請記住這一點,以避免出現最壞的情況。
上圖中的高亮文本顯示了管理 raid 的基本文法:
<code># mdadm --manage raid options devices</code>
讓我們來示範幾個例子。
你通常會添加新裝置來更換故障的裝置,或者使用空閑的分區以便在出現故障時能及時替換:
<code># mdadm --manage /dev/md0 --add /dev/sdd1</code>
添加裝置到 raid 陣列
在從邏輯陣列中删除該裝置前,這是強制性的步驟,然後才能從機器中取出它 - 注意順序(如果弄錯了這些步驟,最終可能會造成實際裝置的損害):
<code># mdadm --manage /dev/md0 --fail /dev/sdb1</code>
恢複和重建 raid 資料
一旦裝置已被手動标記為故障,你就可以安全地從陣列中删除它:
<code># mdadm --manage /dev/md0 --remove /dev/sdb1</code>
到現在為止,我們有一個工作的 raid 1 陣列,它包含了2個活動的裝置:/dev/sdc1 和 /dev/sdd1。現在讓我們試試重新添加 /dev/sdb1 到/dev/md0:
<code># mdadm --manage /dev/md0 --re-add /dev/sdb1</code>
我們會碰到一個錯誤:
<code># mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible</code>
因為陣列中的磁盤已經達到了最大的數量。是以,我們有兩個選擇:a)将 /dev/sdb1 添加為備用的,如例1;或 b)從陣列中删除 /dev/sdd1 然後重新添加 /dev/sdb1。
我們選擇選項 b),先停止陣列然後重新啟動:
<code># mdadm --stop /dev/md0</code>
<code># mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1</code>
如果上面的指令不能成功添加 /dev/sdb1 到陣列中,使用例1中的指令來完成。
mdadm 能檢測到新添加的裝置并将其作為備用裝置,當添加完成後它會開始重建資料,它也被認為是 raid 中的活動裝置:
重建 raid 的狀态
在陣列中使用備用磁盤更換磁盤很簡單:
<code># mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1</code>
更換 raid 裝置
這會導緻 <code>--replace</code> 指定的裝置被标記為故障,而 <code>--with</code>指定的裝置添加到 raid 中來替代它:
檢查 raid 重建狀态
建立陣列後,你必須在它上面建立一個檔案系統并将其挂載到一個目錄下才能使用它。你可能不知道,raid 也可以被設定為 ro,使其隻讀;或者設定為 rw,就可以同時寫入了。
要标記該裝置為 ro,首先需要将其解除安裝:
<code># umount /mnt/raid1</code>
<code># mdadm --manage /dev/md0 --readonly</code>
<code># mount /mnt/raid1</code>
<code># touch /mnt/raid1/test1</code>
在 raid 陣列上設定權限
要配置陣列允許寫入操作需要使用 <code>--readwrite</code> 選項。請注意,在設定 rw 标志前,你需要先解除安裝裝置并停止它:
<code># mdadm --manage /dev/md0 --stop</code>
<code># mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1</code>
<code># mdadm --manage /dev/md0 --readwrite</code>
<code># touch /mnt/raid1/test2</code>
配置 raid 允許讀寫操作
在本系列中,我們已經解釋了如何建立一個在企業環境中使用的軟體 raid 陣列。如果你按照這些文章所提供的例子進行配置,在 linux 中你會充分領會到軟體 raid 的價值。
本文來自雲栖社群合作夥伴“linux中國”,原文釋出日期:2015-10-24