Rhel5 軟raid5的實驗

landf發表於2011-04-18
RAID5:至少需要3塊磁碟,是raid0和raid1的折中方案,採用奇偶校驗的方式將資料拆分儲存在不同的磁碟中,並且其資料和對應的校驗資訊儲存在不同的磁碟上,最多允許有一塊磁碟故障,在更換了故障的磁碟後可以使用校驗資訊來恢復丟失的資料。
本實驗中將使用4塊磁碟建立軟RAID5,其中一塊磁碟做備份磁碟。軟RAID,即作業系統級的RAID。
1、建立以來建立RAID5的4個分割槽。
[root@vm ~]# fdisk /dev/sdb    //建立4個磁碟分割槽
The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
 
Command (m for help): n   //建立分割槽
Command action
   e   extended
   p   primary partition (1-4)
p                       //選擇主分割槽
Partition number (1-4): 1      //分割槽ID 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): 100
 
......
 
Command (m for help): t              //更改分割槽型別為 “Linux raid autodetect”
Partition number (1-4): 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
 
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
 
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)
 
Command (m for help): t
Partition number (1-4): 4
Hex code (type L to list codes): fd
Changed system type of partition 4 to fd (Linux raid autodetect)
 
Command (m for help): p           //檢視分割槽結構
 
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  fd  Linux raid autodetect
/dev/sdb2             101         200      803250   fd  Linux raid autodetect
/dev/sdb3             201         300      803250   fd  Linux raid autodetect
/dev/sdb4             301         400      803250   fd  Linux raid autodetect
 
Command (m for help): w           //儲存退出
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
[root@vm ~]#
 
2、建立軟RAID5陣列。
[root@vm ~]# mdadm -C /dev/md0 -l 5 –n 3 -x 1 -c 128  /dev/sdb{1,2,3,4}
-C 建立 後面接建立的RAID塊裝置名稱
-l 5  建立raid 5
-n 3 用於建立raid5磁碟的數量,即活動磁碟的數量,RAID5最少為3
-x 5 備用磁碟的數量
-c 128 設定塊大小為128K ,預設為64K。
 
3、格式化建立的RAID陣列並掛載。
[root@vm /]# mkfs.ext3 /dev/md0   //格式化檔案系統為ext3
[root@vm /]# mount /dev/md0  /mnt/    //掛載檔案系統
[root@vm /]# mdadm --detail /dev/md0     //檢視詳細資訊
/dev/md0:
        Version : 0.90
  Creation Time : Fri Jul 30 15:14:09 2010
     Raid Level : raid5
     Array Size : 1606144 (1568.76 MiB 1644.69 MB)
  Used Dev Size : 803072 (784.38 MiB 822.35 MB)
   Raid Devices : 3
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent
 
    Update Time : Fri Jul 30 15:19:14 2010
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
 
         Layout : left-symmetric
     Chunk Size : 128K
 
           UUID : 7035b6e4:31c6f22f:cb44717b:a34273bf
         Events : 0.2
 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1 //注意狀態”active”
       1       8       18        1      active sync   /dev/sdb2
       2       8       19        2      active sync   /dev/sdb3
 
       3       8       20        -      spare   /dev/sdb4     //備用分割槽
[root@vm /]#
 
4、模擬陣列中的某個分割槽失效。
[root@vm /]# mdadm /dev/md0 -f /dev/sdb3 //模擬組成rdia5的sdb3磁碟失效
mdadm: set /dev/sdb3 faulty in /dev/md0
[root@vm /]#
[root@vm /]# mdadm --detail /dev/md0   //再次檢視raid5 資訊
/dev/md0:
        Version : 0.90
  Creation Time : Fri Jul 30 15:14:09 2010
     Raid Level : raid5
     Array Size : 1606144 (1568.76 MiB 1644.69 MB)
  Used Dev Size : 803072 (784.38 MiB 822.35 MB)
   Raid Devices : 3
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent
 
    Update Time : Fri Jul 30 15:27:50 2010
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0
 
         Layout : left-symmetric
     Chunk Size : 128K
 
           UUID : 7035b6e4:31c6f22f:cb44717b:a34273bf
         Events : 0.6
 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       20        2      active sync   /dev/sdb4
 
       3       8       19        -      faulty spare   /dev/sdb3
 
//此時備用磁碟sdb4自動轉為active,sdb3為faulty狀態。
 
5、移除失效的分割槽。
[root@vm /]# mdadm /dev/md0 --remove /dev/sdb3  //移除sdb3
mdadm: hot removed /dev/sdb3
[root@vm /]#
[root@vm /]# mdadm --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Fri Jul 30 15:14:09 2010
     Raid Level : raid5
     Array Size : 1606144 (1568.76 MiB 1644.69 MB)
  Used Dev Size : 803072 (784.38 MiB 822.35 MB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 0
    Persistence : Superblock is persistent
 
    Update Time : Fri Jul 30 15:30:44 2010
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
 
         Layout : left-symmetric
     Chunk Size : 128K
 
           UUID : 7035b6e4:31c6f22f:cb44717b:a34273bf
         Events : 0.8
 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       20        2      active sync   /dev/sdb4
[root@vm /]#
//此時sdb3已經移除了。
 
6、重新新增分割槽。
[root@vm /]# mdadm /dev/md0 -a /dev/sdb3  //“-a”引數新增sdb3
mdadm: added /dev/sdb3
[root@vm /]#
[root@vm /]#
[root@vm /]#
[root@vm /]# mdadm --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Fri Jul 30 15:14:09 2010
     Raid Level : raid5
     Array Size : 1606144 (1568.76 MiB 1644.69 MB)
  Used Dev Size : 803072 (784.38 MiB 822.35 MB)
   Raid Devices : 3
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent
 
    Update Time : Fri Jul 30 15:30:44 2010
          State : clean
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
 
         Layout : left-symmetric
     Chunk Size : 128K
 
           UUID : 7035b6e4:31c6f22f:cb44717b:a34273bf
         Events : 0.8
 
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       20        2      active sync   /dev/sdb4
 
       3       8       19        -      spare   /dev/sdb3
[root@vm /]#
 
7、建立RAID配置檔案。
如果沒有配置檔案,在停止raid後就無法再啟用
[root@mylab ~]# echo DEVICE /dev/sdb{1,2,3,4} > /etc/mdadm.conf
[root@mylab ~]# mdadm -Ds >> /etc/mdadm.conf
[root@mylab ~]# mdadm -D /dev/md0 >> /etc/mdadm.conf
 
8、停用,啟用或移除RAID.
執行此操作之前需要完成第7步的操作。
首先解除安裝陣列,然後停止RAID。命令如下:
[root@vm ~]# umount /dev/md0
[root@vm ~]# mdadm --stop /dev/md0
啟用RAID,命令如下:
[root@vm ~]# mdadm --assemble --scan /dev/md0

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

相關文章