RAID的簡單認識

RAIDRedundantArrays of InexpensiveIndependent Disk):叫獨立磁盤冗餘陣列node

其實現方式有:硬件實現方式和軟件實現方式app

 RAID是分級別(level)的,不一樣的級別表明不一樣的實現方式以及功能的不一樣ide

 RAID-0:通常叫條帶卷,strip;分片進行存儲,每一個硬盤存一部分,沒有備份工具

 RAID-1: 通常叫鏡像卷,mirror;每一個硬盤裏都存一份,有備份性能

 RAID-2spa

 ...component

 RAID-5orm

 RAID-6ip

 RAID10it

 RAID01

RAID-0: 是使用兩塊或兩塊以上的硬盤,以兩塊爲例,是把數據分紅CHUNK(塊),而後每一個硬盤存一部分數據

      特色:讀、寫性能提高;

      可用空間:N*min(S1,S2,...)

      無容錯能力

       最少磁盤數:2, 2+

RAID-1:是使用兩塊或兩塊以上的硬盤,以兩塊爲例,是把數據分別拷貝進每一個硬盤存一份,作備份

     特色:讀性能提高、寫性能略有降低;

        可用空間:1*min(S1,S2,...)

        有冗餘能力

        最少磁盤數:2, 2+

RAID-5:使用3塊或3塊以上的硬盤實現,以3塊爲例,使用兩塊來按條帶卷的形式存儲數據,即每一個硬盤存一部分數據,最後一塊硬盤作校驗盤,若是有一塊硬盤壞了,令兩塊硬盤裏的數據按位異或能夠獲得第三個盤的數據,但校驗盤負荷比較大,會容易壞

        特色:讀、寫性能提高

        可用空間:(N-1)*min(S1,S2,...),有一塊硬盤作校驗盤,其餘作數據盤,

        有容錯能力:能夠在壞1塊磁盤的狀況下正常工做,不過此時工做在降級模下

        最少磁盤數:3, 3+

     RAID-6

使用4塊或4塊以上的硬盤實現,以3塊爲例,使用兩塊來按條帶卷的形式存儲數據,即每一個硬盤存一部分數據,最後兩塊硬盤作校驗盤,若是有一塊硬盤壞了,令兩塊硬盤裏的數據按位異或能夠獲得第三個盤的數據

     特色:讀、寫性能提高

        可用空間:(N-2)*min(S1,S2,...)。有兩塊校驗盤,其餘作數據盤

       有容錯能力:

       最少磁盤數:4, 4+

   混合類型

RAID-10:就是先RAID1而後在RAID0,先兩兩一組,做爲鏡像卷,而後在把全部鏡像卷作RAID0,作成條帶卷

    特色: 讀、寫性能提高

        可用空間:N*min(S1,S2,...)/2

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

       最少磁盤數:4, 4+

    RAID-01:就是先RAID0而後在RAID1;通常不會用

  經常使用的RAID級別有RAID0,RAID1,RAID5,RAID10;通常還會用JBOD:將多塊磁盤的空間合併一個大的連續空間使用;

下面以CentOS6下實現軟件RAID

    mdadm:模式化的工具

    命令的語法格式:mdadm[mode] <raiddevice> [options] <component-devices>

    支持的RAID級別:LINEAR,RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;

        模式:

            建立:-C

            裝配: -A

            監控: -F

            管理:-f, -r, -a

               <raiddevice>:/dev/md#

                <component-devices>: 任意塊設備

            -C:建立模式

                -n#: 使用#個塊設備來建立此RAID

                -l#:指明要建立的RAID的級別;

                -a{yes|no}:自動建立目標RAID設備的設備文件;

             -cCHUNK_SIZE: 指明塊大小;

             -x#: 指明空閒盤的個數;

        D:顯示raid的詳細信息;

           mdadm -D /dev/md#

         管理模式:

            -f:標記指定磁盤爲損壞;

            -a:添加磁盤

            -r:移除磁盤

            例:mdadm/dev/md0 -f /dev/sda6mdadm /dev/md0 -r /dev/sda6

        觀察md的狀態:

            cat/proc/mdstat

         中止md設備:

             mdadm-S /dev/md#

 

例如:建立一個10G可用空間的RAID53塊應用,一塊空閒(這樣能保證壞兩塊盤,也能正常工做)

 

         首先要建立四個5G的分區,而後使用t選項修改三個分區的列表編號爲fd

         而後使用partx  –a /dev/sda把分區加載到內核上,

而後使用cat  /proc/mdstat查看是否有RAID,沒有的話而後建立,若是有名字很差建重複了

         使用mdadm -C/dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda[5,6,7,8]建立,

  [root@localhost~]# mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda[5,6,7,8]

mdadm: /dev/sda5appears to contain an ext2fs file system

      size=5253220K  mtime=Sat Aug 2212:54:38 2015

mdadm: /dev/sda6appears to contain an ext2fs file system

      size=5253220K  mtime=Sat Aug 2212:59:07 2015

mdadm: /dev/sda7appears to contain an ext2fs file system

      size=5253220K  mtime=Thu Jan  1 08:00:00 1970

mdadm: /dev/sda8appears to contain an ext2fs file system

      size=5253220K  mtime=Sat Aug 2220:10:17 2015

Continuecreating array?

Continuecreating array? (y/n) y

mdadm:Defaulting to version 1.2 metadata

mdadm: array/dev/md0 started.

完成後,使用mke2fs -t ext4/dev/md0,對這個建立的md0進行格式化,

[root@localhost~]# mke2fs -t ext4 /dev/md0

mke2fs 1.41.12(17-May-2010)

Filesystemlabel=

OS type: Linux

Block size=4096(log=2)

Fragmentsize=4096 (log=2)

Stride=128blocks, Stripe width=256 blocks

657072 inodes,2624512 blocks

131225 blocks(5.00%) reserved for the super user

First datablock=0

Maximumfilesystem blocks=2688548864

81 block groups

32768 blocks pergroup, 32768 fragments per group

8112 inodes pergroup

Superblockbackups stored on blocks:

         32768, 98304, 163840, 229376, 294912,819200, 884736, 1605632

 

Writing inodetables: done                           

Creating journal(32768 blocks): done

Writingsuperblocks and filesystem accounting information: done

 

This filesystemwill be automatically checked every 30 mounts or

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

建立一個mydata目錄,而後進行掛載mount  /dev/md0 mydata/,使用mount看是否掛載成功,使用 df –lh 查看建立的RAID的信息

[root@localhost~]# mount  /dev/md0 mydata/

[root@localhost~]# mount

/dev/mapper/vg0-rooton / type ext4 (rw)

proc on /proctype proc (rw)

sysfs on /systype sysfs (rw)

devpts on/dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on/dev/shm type tmpfs (rw)

/dev/sda1 on/boot type ext4 (rw)

/dev/mapper/vg0-usron /usr type ext4 (rw)

/dev/mapper/vg0-varon /var type ext4 (rw)

none on/proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/md0 on/root/mydata type ext4 (rw)

 

[root@localhost~]# df -lh

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg0-root   20G 287M   19G   2% /

tmpfs                 935M     0 935M   0% /dev/shm

/dev/sda1             190M   33M 148M  18% /boot

/dev/mapper/vg0-usr   9.8G 1.9G  7.4G  21% /usr

/dev/mapper/vg0-var    20G 195M   19G   2% /var

/dev/md0              9.8G   23M 9.3G   1% /root/mydata

這就算建立成功了,若是要開機自動掛載,須要寫入/etc/fstab中,要先使用

blkid  /etc/md0查到UUID,進行編寫,由於每次開機的設備名可能不一樣

[root@localhost~]# blkid /dev/md0

/dev/md0:UUID="ec8d3b6c-4599-4176-88e0-372cfd5b01c5" TYPE="ext4"

相關文章
相關標籤/搜索