軟raid5 試驗(rhel 5)

perfychi發表於2012-08-03
RAID5:至少需要3塊磁碟,是raid0raid1的折中方案,採用奇偶校驗的方式將資料拆分儲存 在不同的磁碟中,並且其資料和對應的校驗資訊儲存在不同的磁碟上,最多允許有一塊磁碟故障,在更換了故障的磁碟後可以使用校驗資訊來恢復丟失的資料。
本實驗中將使用4塊磁碟建立軟RAID5,其中一塊磁碟做備份磁碟。軟RAID,即操作系 統級的RAID
RAID分類
RAID 0 存取速度最快 沒有容錯
RAID 1 完全容錯 成本高,硬碟使用率低.
RAID 3 寫入效能最好 沒有多工功能
RAID 4 具備多工及容錯功能 Parity 磁碟驅動器造成效能瓶頸
RAID 5 具備多工及容錯功能 寫入時有overhead
RAID 0+1 速度快、完全容錯 成本高
1、 創 建以來建立RAID54個 分割槽。
[root@flyer ~]# fdisk /dev/sdb    //創 建sdb磁碟分割槽
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n #按n建立新分割槽
Command action
e extended
p primary partition (1-4) #輸入p 選擇建立主分割槽
p
Partition number (1-4): 1 #輸入 1 建立第一個主分割槽
First cylinder (1-130, default 1): #直接回車,選擇分割槽開始柱面這裡就從 1 開始
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 130):
Using default value 130
Command (m for help): w #然後輸入w寫盤
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@flyer ~]# fdisk /dev/sdc    //創 建sdc磁碟分割槽  步驟與sdb一樣
[root@flyer ~]# fdisk /dev/sdd    //創 建sdd磁碟分割槽
[root@flyer ~]# fdisk /dev/sde    //創 建sde磁碟分割槽
 
2、 查詢總分割槽資訊:

[root@flyer/]# fdisk -l

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         130     1044193+  83  Linux

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         130     1044193+  83  Linux

Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         130     1044193+  83  Linux

 

Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1         130     1044193+  83  Linux

 


3、 建立軟RAID5陣列。
[root@flyer ~]# mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1  
[root@flyer ~]# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1  
簡寫
[root@flyer ~]# mdadm -C /dev/md0 -l 5 –n 3 -x 1 /dev/sd[b-e]1  

-C 建立 後面接建立的RAID塊裝置名稱
-l 5  建立raid 5
-n 3 用於建立raid5磁碟的 數量,即活動磁碟的數量,RAID5最 少為3
-x 1 備用磁碟 的數量
 
4、 配置檔案
 mdadm不採用/etc/mdadm.conf作為主要配置檔案,它可以完全不依賴該檔案 而不會影響陣列的正常工作。
 該配置檔案的主要作用是方便跟蹤軟RAID的配置。對該配置檔案進行配置是有好處的,但不是必須的。
推薦對該檔案進行配置。

格式:
DEVICE 參與陣列的裝置
ARRAY 陣列的描述

 通常可以這樣來建立:
[root@flyer /]# echo DEVICE /dev/sd[b,c,d,e]1 >> /etc/mdadm.conf
[root@flyer /]# mdadm --detail --scan >> /etc/mdadm.conf

 結果如下:
[root@flyer /]# cat /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=8ba81579:e20fb0e8:e040da0e:f0b3fec8
  devices=/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sde1
5、         格 式化建立的RAID陣列並掛載。
[root@flyer /]# mkfs.ext3 /dev/md0   //格 式化檔案系統為ext3
[root@flyer /]# mkdir /mnt/mdadm  //新建預掛載資料夾
[root@flyer /]# mount /dev/md0  /mnt/mdadm    //掛載檔案系統
[root@flyer /]# mdadm --detail /dev/md0     //檢視詳細資訊

/dev/md0:
        Version : 00.90.01
  Creation Time : Fri Aug  3 13:53:34 2007
     Raid Level : raid5
     Array Size : 2088192 (2039.25 MiB 2138.31 MB)
    Device Size : 1044096 (1019.63 MiB 1069.15 MB)
   Raid Devices : 3
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Aug  3 13:54:02 2007
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

    Number   Major   Minor   RaidDevice State
      
 0       8        1        0      active sync   /dev/sdb1
       1       8       17        1      active sync   /dev/sdc1
       2       8       33        2      active sync   /dev/sdd1
       3       8       49       -1      spare   /dev/sde1
           UUID : e62a8ca6:2033f8a1:f333e527:78b0278a

         Events : 0.2
 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1 //注意狀態”active”
       1       8       18        1      active sync   /dev/sdc1
       2       8       19        2      active sync   /dev/sdd1
 
       3       8       20        -      spare   /dev/sde1     //備用分割槽
[root@flyer /]#
 
6、若要開機自動掛載,請加入/etc/fstab中:
/dev/md0                /mnt/mdadm                auto    defaults        0 0
其實這樣開機後是無法自動掛載的,因為在關機時就停止了軟陣列
因為找md系統在讀入fstab之前,如果找不到md,根本不可能寫進fstab裡面的
解決方法:在/ect/rc.local中加入               //在linux啟動的最後階段,系統會執行存於rc.local中的命令。
mdadm -As /dev/md0
mount -a
(注意)
在這裡也是我遇到的最大的問題:
reboot後出現:Mounting local filesystemsmountwrong fs type, bad option, bad superblock on /dev/hda1,or too many mounted file systems[FAILED]  //掛載失敗
或者   停止RAID後 都無法啟動raid
這裡我遇到兩個錯誤:

1、mdadm: no such device: /dev/md0: 

解決方法:需要重新建立軟RAID5陣列

 

2、mdadm: md device /dev/md0 does not appear to be active.

啟動指定的陣列,重新陣列裝配 到系統中(--assemble)::

[root@flyer ~]# mdadm --assemble --scan /dev/md0 //配置檔案錯誤/dev/mdadm.conf

mdadm: Unknown keyword devices

mdadm: no devices found for /dev/md0  

[root@flyer ~]# vi /etc/mdadm.conf     

DEVICE  /dev/sdb1 /dev/sdc1 /dev/sdd1  //應 該是device,這是一個細節,有好多網頁教程裡是都是devices

ARRAY /dev/md0 level=raid5 num-devices=3 UUID=e62a8ca6:2033f8a1:f333e527:78b0278a

 

[root@flyer ~]# mdadm -Av /dev/md0 /dev/sd[b,c,d]1 //指定裝置啟動可 以,沒有問題

mdadm: looking for devices for /dev/md0

mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 0.

mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 1.

mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 2.

mdadm: added /dev/sdc1 to /dev/md0 as 1

mdadm: added /dev/sdd1 to /dev/md0 as 2

mdadm: added /dev/sdb1 to /dev/md0 as 0

mdadm: /dev/md0 has been started with 3 drives.

解決方法:修改/ect/mdadm.conf檔案

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-739785/,如需轉載,請註明出處,否則將追究法律責任。

相關文章