天天看點

Raid 簡介

1、RAID簡介

    redundant Arrays of Inexpensive Disks Independent 

    早期提高硬碟IO,主要通過    提高rpm,

        scsi:達到15000轉

        為多塊硬碟:提供獨立的控制器

        1.提高IO能力

        2.提高其耐用性

    raid實作的方式

        外接式磁盤陣列:通過擴充卡提供适配能力

        内接式raid:主機闆內建raid控制器

            配置在bios的raid控制器上的

        software RAID:軟體方式實作的raid

        //可以先安裝os獨立磁盤,後配置raid

        //或者os安裝在raid上

    提高IO能力:

        磁盤并行讀寫;

        為raid控制器額外添加記憶體,額外供電UPS

    提高耐用性:

        磁盤備援來實作

2、raid級别

    raid-0,條帶卷,strio 

    raid-1,鏡像卷,mirror

    ...

    raid-4 //4,5都是3塊以上,0,1是2塊以上

    raid-5

    raid-6

    raid10

    raid01

    raid0:多塊硬碟平行組織,100%使用,無備份,n塊

        一個資料分成n塊,然後分别存儲

        讀寫性能提升

        可用空間:N*min(disk1,disk2,disk3...) //最小的那塊決定

        沒有冗錯能力

        最少磁盤數:2,2+

<a href="https://s1.51cto.com/wyfs02/M00/9C/A4/wKioL1lz-iThht8yAAApNhZrfno929.png" target="_blank"></a>

    raid1:2n塊磁盤,資料複制為兩份,分别分割為n分,分别存儲

        讀性能提升,寫性能沒有提升/同一個資料存儲兩份

        可用空間:2n/2*min(disk1,disk2...diskn)

        有備援能力

<a href="https://s5.51cto.com/wyfs02/M00/9C/A4/wKioL1lz-kLjqIqZAABEpH7CPUo659.png" target="_blank"></a>

    raid:4:    3塊以上的硬碟組織成raid,存儲資料時,一塊盤存儲校驗碼,其他存儲資料

        校驗碼:異或存儲// 1101 0110 ,1011,

        不允許2塊硬碟以上壞

        假如一塊硬碟壞了以後仍然能夠工作:降級模式,讀取的時候需要換算恢複資料,比較慢,是以應立即添加新的硬碟恢複

        //獨立一塊盤用于做集中校驗盤,壓力較大:缺陷

        //但是可以降級工作,也可以

        //raid可以做熱備,自動頂上去,raid控制器做的

<a href="https://s4.51cto.com/wyfs02/M01/9C/A4/wKioL1lz-sSSw9K_AAEiJYnOZOA669.png" target="_blank"></a>

    raid:5 //輪流做校驗盤

        可用空間:(N-1)*min(disk1,disk2,...)

        有容錯能力,最多1塊磁盤

        最小磁盤數:3

<a href="https://s1.51cto.com/wyfs02/M02/9C/A4/wKiom1lz-lqBi7mFAAEZFrD5VhE928.png" target="_blank"></a>

    RAID-6://兩塊盤做校驗,循環校驗

        可用空間:(N-2)*min(disk1,disk2,...)

        有容錯能力,允許壞兩塊磁盤,

        最少:4塊

<a href="https://s2.51cto.com/wyfs02/M02/9C/A4/wKiom1lz-xXDBQLxAAL88zE821Q741.png" target="_blank"></a>

    raid10:先兩個一組做成raid1,然後做raid0//一對對10

        可用空間:N*min(s1,s2...)/2

        有容錯能力:每組鏡像最多隻能壞一塊

        最少磁盤數:4,4+

    raid01:先做0,再做1//一邊為0,一遍為0,整體為1

    raid10:

            0        0        0        //一個資料分成3份,3個chunk,一個chunk複制兩份,分别存儲

        【】[]   【】[]   【】[]

    raid01://中繼資料先複制成兩份,再分割成chunk

        ——————————    ————————————

        []    []    []    【】【】【】

<a href="https://s4.51cto.com/wyfs02/M02/9C/A4/wKioL1lz-9DzUIPyAATGKh65L7k409.png" target="_blank"></a>

    raid7:為某公司的私有産品

    JBOD:just a Bunch of Disks

        //将多塊硬碟的空間合并為一個大的連續空間使用

        可用空間:sum(s1,s2...)

        //例如隻有1t的硬碟4個,檔案大小為2T

        //

    常用級别:raid-0,raid-1,raid-5,raid-10,raid-01,JBOD

    實作方式:

        硬體實作方式:

        軟體實作方式:

        Centos6 上的軟體RAID的實作

            結合核心總的md(multi device)

3、軟體方式的raid實作

    mdadm(multi device)模式化工具

    指令的文法格式:mdadm [mode] 裝置名 [options] 成員裝置

        支援的raid級别:LINEAR(JBOD),0,1,4,5,6,10,

        裝置名:/dev/md#,

    模式:

        建立:create        -C

        裝配:Assemble        -A

        監控:Fllow or Monitor -F

        管理:Manage        -f,-r,-a

        Grow:改變裝置的數目,不能改變陣列屬性,一般不用

        Misc:查詢或修改陣列中裝置資訊,一般不用

    -C 建立模式

        -n # :使用多少裝置來建立RAID

        -l # :raid級别

        -a {yse|no} //自動建立raid裝置的裝置檔案

        -c //CHUNK_SIZE 指定塊大小,預設是64M

        -x //指定空閑盤的個數,不支援備援能力的級别,空閑盤是沒有任何意義的

        示例:建立10G空間可用的raid5

                fdisk /dev/sdb  //建立4個5G的分區,調整為linux raid:fd,一個作為備份

                parted -a /dev/sdb

                mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sdb[1,2,3,5]

                cat /proc/mdstat 

                mke2fs -t ext4 /dev/md0

                mount /dev/md0 /mnt    

                mdadm -D /dev/md0  //顯示詳細資訊

                    State : clean, degraded  //degraded:降級使用

                mdadm /dev/md0 -f /dev/sdb2 //模拟損壞

                watch -n 1 'mdadm -D /dev/md0' //每1s檢視一次

                        //會自動重組

                mdadm /dev/md0 -f /dev/sdb1  //再次模拟一塊損壞,會降級使用

                mdadm /dev/md0 -r /dev/sdb{1,2} //移除損壞的盤

                mdadm /dev/md0 -a /dev/sdb{1,2} //再次添加硬碟

                mdadm /dev/md0 -a /dev/sdb6 //新加一塊硬碟,隻會作為空閑盤使用,要想增加raid盤數量,智能使用mdadm grow模式

    管理模式:

        -f 标記指定磁盤為損壞

        -a 添加磁盤

        -r 移除磁盤

        -S 停止裝置

            mdadm -S /dev/md#

    觀察md的狀态

        cat /proc/mdstat

        watch -n 1 'mdadm -D /dev/md0' //動态檢視

        -n 重新整理間隔,機關是秒

練習1:建立一個可用空間為10G的RAID裝置,要求其chunk大小為128k,fs為ext4,開機自動挂載

    (1)建立20G分區,

    (2)格式化

        mke2fs -t ext4 -b 2048 -L ’test' /dev/DEVICE

    (3)fstab

        LABEL='TEST'  /test  ext4 defaults,acl 0 0

    (4)mount 

練習2:建立一個可用空間為10G的RAID0裝置,chunk為256k,fs為ext4,開機自動挂載至/mydata

注意:

    raid的備援,隻能保證裝置的損壞,而導緻的問題有所解決,而不能決定認為損壞的裝置    

注意:JBOD也是一種硬體組合的實作方式,大家有興趣,也可以了解一下

本文轉自MT_IT51CTO部落格,原文連結:http://blog.51cto.com/hmtk520/1950135,如需轉載請自行聯系原作者