|   |  | 
        
          | 
			  
			    | 茫茫網海中的冷日 發生過的事,不可能遺忘,只是想不起來而已!
 |  
				|  | 恭喜您是本站第 1746491 
										位訪客!
					 登入  | 註冊 |  |  | 
      
      
        
                      | 
 
 
 
 
 
 | 
                      
	| 發表者 | 討論內容 |  
	| 冷日 (冷日)
 | 發表時間:2009/1/7 6:22 |  
	| 
	Webmaster   
		註冊日: 2008/2/19來自: 發表數: 15773 | 
	[分享]不景氣下的省錢妙招 在linux上玩 Soft RAID這一次我安裝 Mandriva 10,核心是2.6,使用 mdadm這一套softraid 軟體,程序如下(整理於 自身建立過程與網路資料):=====
 安裝
 =====
 先安裝
 ...應該已經夠用!沒有 RAID10 及 GROW MODE# rpm -ivh mdadm-1.12.0-1mdk.i586.rpm也可再升級
 # rpm -Uvh mdadm-2.6-1.i386.rpm==========
 準備磁碟
 ==========
 (顯示所有系統上的硬碟狀況,可以知道哪一些硬碟尚未配置及代號)
 將設備/dev/sdb上的全部磁碟空間劃分給一個主分區,建立/dev/sdb1分區,並修改分區的類型標識為fd(linux raid auto)
 
 建立RAID的使用指令
 ==================================
 清除已經建立的raid記錄資料 重新開始
 ==================================
 
 注意,如果沒有使用--assume-clean系統建立陣列後,會自動重建原有的內容!若要全新來過,一定要加此指令!# mdadm -C /dev/md0 -l5 -n3 /dev/sd{a,b,c}1 --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)
 
 方法二:
 
 
 ========
 格式化:
 ========
 ext2 格式:
 (md後為數字0)# mke2fs -v -b 4096 -R stride=16 /dev/md0(-R stride=n來增加效能,因為chunk-size=block*stride,因此對於RAID 0來說可以增加效能,對於其它RAID不一定能增加效能,例:RAID 1)
 
 ext3格式:
 
 ==========
 掛載並使用
 ==========
 (建立/mnt/md0資料夾)
 
 (掛載/dev/md0至/mnt/md0)# mount /dev/md0 /mnt/md0
 ============
 解除RAID裝置
 ============
 (卸載/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以上的這些資訊可以通過掃描系統的陣列來獲取
 建立好被製檔案後,啟動的語法如下
 (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設定檔)
 
 最後一行加入
 
 /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之說明)
 =========================================
 
 (-x:指定備用的硬碟,當其中一個毀損時會自動備援)# mdadm -Cv --level=1 /dev/md0 -n 2 /dev/hdc8 /dev/hdc9 -x1 /dev/hdc10
 (copy /bin中的資料做測試,-R 可以讓複製過去的資料保有相同的資料權限)# mke2fs -j /dev/md0
# mount /dev/md0 /mnt/md0
# cp -a /bin /mnt/md0
 =======================
 測試/dev/hdc9壞掉與替換
 =======================
 
 (測試/dev/hdc9壞掉時,將/dev/hdc9標記為已損壞的設備)# mdadm /dev/md0 -f /dev/hdc9查閱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
 如果使用的是 linear raid# mdadm --grow /dev/md-linear --add /dev/new-device
 =========================================
 建立RAID 5(建立流程,並參考RAID 0之說明)
 =========================================
 
 (可加入-c128的參數,代表chunk-size為128:可以增加raid的效能,由於是軟體陣列所以是使用系統主記憶體來進行 chunk,這個數值設大一點雖然對磁碟陣列效能有幫助,但卻會耗掉系統資源,建議使用預設值就好了)# mdadm -C -l 5 /dev/md0 -n 3 /dev/hdc{8,9,10} -x 1 /dev/hdc11 |  
	|  |  
|  |  
 討論串
 
 
                     |