茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729418 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_057.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2009/1/7 6:22:46
這一次我安裝 Mandriva 10,核心是2.6,使用 mdadm這一套softraid 軟體,程序如下(整理於 自身建立過程與網路資料):
=====
安裝
=====
先安裝
# rpm -ivh mdadm-1.12.0-1mdk.i586.rpm
...應該已經夠用!沒有 RAID10 及 GROW MODE
也可再升級
# rpm -Uvh mdadm-2.6-1.i386.rpm

==========
準備磁碟
==========
# fdisk -l
(顯示所有系統上的硬碟狀況,可以知道哪一些硬碟尚未配置及代號)
# fdisk /dev/sdb
將設備/dev/sdb上的全部磁碟空間劃分給一個主分區,建立/dev/sdb1分區,並修改分區的類型標識為fd(linux raid auto)

建立RAID的使用指令
==================================
清除已經建立的raid記錄資料 重新開始
==================================
# mdadm -C /dev/md0 -l5 -n3 /dev/sd{a,b,c}1 --assume-clean
注意,如果沒有使用--assume-clean系統建立陣列後,會自動重建原有的內容!若要全新來過,一定要加此指令!

============
建立RAID 0:
============
# mdadm -Cv -l 0 /dev/md0 -n 2 /dev/hdc {8,9}

-C是指建立
-v是指察看過程
-l是指建立的屬於level linear、0、1或5
/dec/md0是指在linux中建立的裝置名稱為RAID 0
-n 2是指幾個RAID裝置屬於建立好的RAID 0
/dev/hdc {8,9}是指建立在/dev/hdc8和/dev/hdc9兩個partition上

======================
查閱目前的raid資訊
======================
方法一:
可利用--detail參數來觀看建立好的RAID 0(1、5)的資訊
# mdadm --detail /dev/md0(md1、5)

其中有chunk-size是指寫進一個partition的大小 ,例如RAID 0中把一個file同時寫進兩個或以上partition時,會把file分成多大寫進其中一個partition(系統記錄在/proc/mdstat)

方法二:
mdadm -D /dev/md0


========
格式化:
========
ext2 格式:
# mke2fs -v -b 4096 -R stride=16 /dev/md0
(md後為數字0)
(-R stride=n來增加效能,因為chunk-size=block*stride,因此對於RAID 0來說可以增加效能,對於其它RAID不一定能增加效能,例:RAID 1)

ext3格式:
mkfs -t ext3 /dev/md0


==========
掛載並使用
==========
# mkdir /mnt/md0
(建立/mnt/md0資料夾)
# mount /dev/md0 /mnt/md0
(掛載/dev/md0至/mnt/md0)

============
解除RAID裝置
============
# umount /dev/md0
(卸載/dev/md0)
# mdadm -S /dev/md0
(參數-S會直接解除 /dev/md0上的RAID 0)

================
重新啟用raid裝置
================
方法一:直接指定使用的磁區
# mdadm -A /dev/md0 /dev/sd{c,d,e}1
(啟動先前已經建立的陣列,並指定原來使用的磁區)

方法二:使用配置檔 /etc/mdadm.conf
mdadm的缺省配置檔為/etc/mdadm.conf,它主要是為了方便陣列的日常管理而設置的,對於陣列而言不是必須的,但是為了減少日後管理中不必要的麻煩,還是應該堅持把這一步做完。
在mdadm.conf檔中要包含兩種類型的行:
一種是以DEVICE開頭的行,它指明在陣列中的設備列表;
另一種是以ARRAY開頭的行,它詳細地說明了陣列的名稱、模式、陣列中活動設備的數目以及設備的UUID號。
格式如下:
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=8f128343:715a42df: baece2a8: a5b878e0

以上的這些資訊可以通過掃描系統的陣列來獲取
建立好被製檔案後,啟動的語法如下
# mdadm -As /dev/md0
(s 表示使用配置檔中的設定啟動raid)

======================
如果是做raid1+0 的啟動
======================
# mdadm -As /dev/md0
# mdadm -As /dev/md1
# mdadm -A /dev/md2 /dev/md{0,1}

===================
希望開機時直接啟用 .....前提是必須建立配置檔才可以,不然開機時無法順利啟動raid
===================

=======
方法一:
=======
當不是使用raid1時,或是raid1的硬碟群不很大!至於極限到哪,未測試!
寫入/etc/fstab(開機時會載入的硬體設定檔)
# vi /etc/fstab
(以vi編輯/etc/fstab設定檔)

最後一行加入
/dev/md0 /mnt/md0 ext2 default 0 0


(fstab欄位說明)
第一欄 實際的 device 名稱。
第二欄 對應到的目錄結構(mount point)。
第三欄 該分割區的檔案系統ext、ext2、msdos、iso9660、nfs、swap。
第四欄 在 mount 時的參數。
第五欄 在使用 dump 時是否記錄,不需要則輸入0。
第六欄 決定在開機時執行 fsck 的先後順序。

=======
方法二:
=======
針對raid1硬碟群過大的時,必須加入指令於
/etc/rc.d/rc.sysinit or /etc/rc.d/rc.local

的最後面,讓raid1先隨系統啟動!以免無法順利掛載!
mdadm -As /dev/md0
mount /dev/md0 掛載目錄


=======
方法三:
=======
在/etc/profile.d/
自行增加 **.sh的指令檔 例如 vi mdadm.sh
然後賦予mdadm.sh執行的權限 chmod 755 mdadm.sh
mdadm -As /dev/md0
mount /dev/md0 /dev/md0 掛載目錄


===>以上應該已經可以建立完成一個soft raid,以下是一些補充建立、修復說明

=========================================
建立RAID 1(建立流程,並參考RAID 0之說明)
=========================================
# mdadm -Cv --level=1 /dev/md0 -n 2 /dev/hdc8 /dev/hdc9 -x1 /dev/hdc10
(-x:指定備用的硬碟,當其中一個毀損時會自動備援)
# mke2fs -j /dev/md0
# mount /dev/md0 /mnt/md0
# cp -a /bin /mnt/md0
(copy /bin中的資料做測試,-R 可以讓複製過去的資料保有相同的資料權限)

=======================
測試/dev/hdc9壞掉與替換
=======================
# mdadm /dev/md0 -f /dev/hdc9
(測試/dev/hdc9壞掉時,將/dev/hdc9標記為已損壞的設備)
# mdadm -D /dev/md0
查閱raid目前狀況一

=================
查看當前陣列狀態二..可以看到目前正在自動恢復資料,這是抓其他地方的資料來補充,並不是原來的raid1
=================
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[2] sde1[3] sdc1[1] sdb1[4](F)
75469842 blocks level 5, 128k chunk, algorithm 2 [3/2] [_UU]
[=>...................] recovery = 8.9% (3358407/37734912) finish=1.6min speed=9382K/sec
unused devices:

因為有備份設備,所以當陣列中出現設備損壞時,陣列能夠在短時間內實現重構和
資料的恢復。從當前的狀態可以看出,陣列正在重構,且運行在降級模式,
sdb1[4]的後面已經標上了(F),活動設備數也降為2個。

經過幾分鐘後,再次查看當前陣列狀態。
# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[2] sde1[0] sdc1[1] sdb1[3](F)
75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]
unused devices:

此時陣列重構已經完成,資料恢復完畢,原有的備份設備sde1成為了活動設備。

=============
恢復/dev/hdc9
=============
# mdadm /dev/md0 --remove /dev/hdc9
移除損壞的設備
# mdadm /dev/md0 --add /dev/hdc9
將新設備添加到陣列中
# mdadm --grow /dev/md-linear --add /dev/new-device
如果使用的是 linear raid

=========================================
建立RAID 5(建立流程,並參考RAID 0之說明)
=========================================
# mdadm -C -l 5 /dev/md0 -n 3 /dev/hdc{8,9,10} -x 1 /dev/hdc11
(可加入-c128的參數,代表chunk-size為128:可以增加raid的效能,由於是軟體陣列所以是使用系統主記憶體來進行 chunk,這個數值設大一點雖然對磁碟陣列效能有幫助,但卻會耗掉系統資源,建議使用預設值就好了)
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|