linux之RAID應用

一、RAID的基本概念

    RAID即廉價磁盤冗餘陣列(Redundant Array of Inexpensive Disks),多個獨立的物理硬盤按照不同的方式組合起來,形成一個虛擬的硬盤。

二、RAID級別

常用級別:RAID0;RAID1;RAID5

RAID0:RAID0是以條帶的形式將數據均勻分佈在陣列的各個磁盤上.

wKioL1Tz7gDBm54fAAFbNd7OhX8506.jpg

RAID0特性:

wKiom1Tz7Y7AMArxAAHxfys3cwo028.jpg

RAID1:RAID1以鏡像爲冗餘方式,對虛擬磁盤上的數據做多份拷貝,放在成員磁盤上

wKioL1Tz7v6iVfjkAADS-pjdYqM082.jpg

RAID1特性:

wKiom1Tz7jehZAdoAAHzRdAg-Xg232.jpg

RAID5:RAID5採用獨立存取的陣列方式,校驗信息被均勻的分散到陣列的各個磁盤上.

wKiom1Tz7ouTKGT9AAFu1eLJZOg767.jpg

RAID5特性:

wKioL1Tz79HRt2ikAAHWAffJWNw435.jpg

組合不同級別的RAID:

RAID10:RAID10結合RAID1RAID0,先鏡像,再條帶化

wKiom1Tz757S3TJdAAFpBUWuT8E150.jpg

RAID10特性:

wKiom1Tz7-Sy2QHLAAGnVh3QB78771.jpg

RAID50:

wKioL1Tz8T7D2o3bAAFwiCwiDe8735.jpg

RAID50特性:

wKiom1Tz8GrwzNceAAIRBaSvRHE180.jpg

常用RAID級別的比較

wKiom1Tz8X6zf0vOAAM4IykmPqk369.jpg


三、RAID的實現方式和運行狀態


軟件RAID

à功能都依賴於主機CPU完成,沒有第三方的控制處理器和I/O芯片.

硬件RAID

à有專門的RAID控制處理器和I/O處理芯片來處理RAID任務,不需佔用主機CPU資源.

四、軟件RAID的實現方式

    在實現軟件RAID時,我們需要用到mdadm命令。

mdadm:將任何塊設備作成RAID

    mdadm爲模式化命令:

          1、創建模式:-C

          2、管理模式

          3、監控模式:-F

          4、增長模式:-G

          5、裝配模式:-A

  -D|--detail :顯示RAID設備的詳細信息;

         管理模式:

        --add:增加塊設備

        --remove:移除塊設備

-f|--fail|--set-faulty:模擬塊設備損壞

 -S :mdadm -S /dev/md# 停止RIAD

mdadm -D --scan >> /etc/mdadm.conf :把創建好的RAID寫入配置文件,便於以後的裝配。

格式化時,可以使用命令:mke2fs -j --stride=16 -b 4096 /dev/md# 可以提高設備效率,stride=chunkd值/塊大小(即4k)

創建模式:

mdadm -C RAID-name -l RAID級別 -n 設備個數和具體設備 -a 自動爲其創建設備文件 yes|no -c 指定chunk大小 -x 指定空閒盤的個數

具體的實施過程:(以RAID5爲例)

首先準備3個以上塊設備或者分區(必須在不同的硬盤上的不同分區,否則無意義)

這裏只演示基本過程:

創建一個2G的RAID5.

[root@localhost ~]# fdisk /dev/sdb


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): 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         123      987966   fd  Linux raid autodetect

/dev/sdb2             124         246      987997+  fd  Linux raid autodetect

/dev/sdb3             247         369      987997+  fd  Linux raid autodetect

/dev/sdb4             370         492      987997+  fd  Linux raid autodetect


Command (m for help): q


[root@localhost ~]# partprobe /dev/sdb

[root@localhost ~]# cat /proc/partitions 

major minor  #blocks  name


   8     0   20971520 sda

   8     1     305203 sda1

   8     2   19615365 sda2

   8     3    1044225 sda3

   8    16   20971520 sdb

   8    17     987966 sdb1

   8    18     987997 sdb2

   8    19     987997 sdb3

   8    20     987997 sdb4

[root@localhost ~]# 

//需要的四塊分區已準備好(其中一塊是備用的),分別是1G,RAID5的利用率爲(n-1)/n,且調整類型爲fd(Linux raid autodetect)。

步驟開始:

[root@localhost ~]# mdadm -C /dev/md2 -l 5 -a yes -n 3 /dev/sdb{1,2,3} -x 1 /dev/sdb4 

mdadm: Unknown keyword /dev/md3:

mdadm: Unknown keyword Preferred

mdadm: Unknown keyword Working

mdadm: /dev/sdb1 appears to be part of a raid array:

    level=raid0 devices=2 ctime=Wed Feb 25 23:54:13 2015

mdadm: /dev/sdb2 appears to be part of a raid array:

    level=raid0 devices=2 ctime=Wed Feb 25 23:54:13 2015

Continue creating array? y

mdadm: array /dev/md2 started.

[root@localhost ~]# mdadm -D /dev/md2

mdadm: Unknown keyword /dev/md3:

mdadm: Unknown keyword Preferred

mdadm: Unknown keyword Working

/dev/md2:

        Version : 0.90

  Creation Time : Sun Mar  1 21:56:37 2015

     Raid Level : raid5

     Array Size : 1975680 (1929.70 MiB 2023.10 MB)

  Used Dev Size : 987840 (964.85 MiB 1011.55 MB)

   Raid Devices : 3

  Total Devices : 4

Preferred Minor : 2

    Persistence : Superblock is persistent


    Update Time : Sun Mar  1 21:56:50 2015

          State : clean

 Active Devices : 3

Working Devices : 4

 Failed Devices : 0

Spare Devices : 1


         Layout : left-symmetric

     Chunk Size : 64K


           UUID : 97957132:c644253c:b9eb8d83:a8bae7d1

         Events : 0.4


    Number   Major   Minor   RaidDevice State

       0       8       17        0      active sync   /dev/sdb1

       1       8       18        1      active sync   /dev/sdb2

       2       8       19        2      active sync   /dev/sdb3


       3       8       20        -      spare   /dev/sdb4

[root@localhost ~]# mke2fs -j /dev/md2  //格式化/dev/md2爲ext3文件系統

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

247296 inodes, 493920 blocks

24696 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=507510784

16 block groups

32768 blocks per group, 32768 fragments per group

15456 inodes per group

Superblock backups stored on blocks: 

32768, 98304, 163840, 229376, 294912


Writing inode tables: done                            

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 37 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@localhost ~]# mount /dev/md2 /mnt/ //掛載

[root@localhost ~]# ls -lh /mnt/  //掛載成功

total 16K

drwx------ 2 root root 16K Mar  1 21:59 lost+found

[root@localhost mnt]# mdadm /dev/md2 -f /dev/sdb1 //模擬損壞/dev/sdb1,剩餘的/dev/sdb4自動補上。

mdadm: Unknown keyword /dev/md3:

mdadm: Unknown keyword Preferred

mdadm: Unknown keyword Working

mdadm: set /dev/sdb1 faulty in /dev/md2

[root@localhost mnt]# mdadm -D /dev/md2

mdadm: Unknown keyword /dev/md3:

mdadm: Unknown keyword Preferred

mdadm: Unknown keyword Working

/dev/md2:

        Version : 0.90

  Creation Time : Sun Mar  1 21:56:37 2015

     Raid Level : raid5

     Array Size : 1975680 (1929.70 MiB 2023.10 MB)

  Used Dev Size : 987840 (964.85 MiB 1011.55 MB)

   Raid Devices : 3

  Total Devices : 4

Preferred Minor : 2

    Persistence : Superblock is persistent


    Update Time : Sun Mar  1 22:06:40 2015

          State : clean, degraded, recovering

 Active Devices : 2

Working Devices : 3

 Failed Devices : 1

  Spare Devices : 1


         Layout : left-symmetric

     Chunk Size : 64K


 Rebuild Status : 31% complete

  UUID : 97957132:c644253c:b9eb8d83:a8bae7d1

         Events : 0.6


    Number   Major   Minor   RaidDevice State

       3       8       20        0      spare rebuilding   /dev/sdb4

       1       8       18        1      active sync   /dev/sdb2

       2       8       19        2      active sync   /dev/sdb3


       4       8       17        -      faulty spare   /dev/sdb1

[root@localhost mnt]# mdadm -D --scan >/etc/mdadm.conf //寫入配置文件

[root@localhost /]# umount /dev/md2

[root@localhost /]# mdadm -S  /dev/md2

mdadm: stopped /dev/md2

[root@localhost /]# mdadm -A  /dev/md2

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

[root@localhost /]# 

教程完成




                

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章