RAID簡介

一,什么是raid?

RAID(Redundant Arrays of Independent Disks)中文叫磁盤陣列。

簡單來講就是把很多的硬盤組織在一起來使用。

       RAID技術分為幾種不同的等級,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、性能和容量的要求。常用的RAID級別有以下幾種:NRAID,JBOD,RAID0,RAID1,RAID10,RAID3,RAID5等。目前經常使用的是RAID5和RAID10。

本文主要介紹常用的RAID0,RAID1,RAID10,RAID4,RAID5


①RAID 0

RAID 0即Data Stripping(數據分條技術)。整個邏輯盤的數據是被分條(stripped)分布在多個物理磁盤上,可以并行讀/寫,提供最快的速度,但沒有冗余能力。我們通過RAID 0可以獲得更大的單個邏輯盤的容量,且通過對多個磁盤的同時讀取獲得更高的存取速度。RAID 0首先考慮的是磁盤的速度和容量,忽略了安全,只要其中一個磁盤出了問題,那么整個陣列的數據都會不保了。

130323110528241.png


優點:對數據的讀寫有很大提升

缺點:不提供冗余能力

至少2塊磁盤


②RAID 1

RAID 1,又稱鏡像方式,也就是數據的冗余。在整個鏡像過程中,只有一半的磁盤容量是有效的(另一半磁盤容量用來存放同樣的數據)。同RAID 0相比,RAID 1首先考慮的是安全性,容量減半、速度不變。

1.png


優點:對數據的讀取性能提升;具有冗余能力,當磁盤中的一塊壞掉后,不會損失任何數據

缺點:對數據的寫入的性能下降,空間的利用率低,僅有1/2

所需磁盤數:至少兩塊


③RAID 10

為了達到既高速又安全,出現了RAID 10(或者叫RAID 0 1),可以把RAID 10簡單地理解成由多個磁盤組成的RAID 0陣列再進行鏡像。


10.png


優點:對數據的讀寫性能都有很大的提升,并且對數據有冗余能力每一個組的任何一個磁盤損壞不會影響數據的損失,并且更換磁盤修復時,不用遍歷整個磁盤

缺點:空間利用率低僅有1/2,同組的磁盤同時損壞時就會造成整個磁盤陣列的數據崩潰

所需磁盤數:至少四個



④RAID 4

在RAID0的基礎思想上引入了校驗碼的概念,也就是拿出一塊磁盤來存放校驗碼,以備磁盤損壞的時候,能通過校驗盤來找回數據。

4.png

優點:采用校驗技術;有一個特定的磁盤作為數據的完全存儲,其他的磁盤采用條帶技術,進行對數據的讀寫性能都有提高并且磁盤利用率高,磁盤損壞一個或者是校驗盤損壞也不會造成數據的流失,可以重新計算為(n-1)/n(n代表磁盤個數)

缺點:校驗碼盤訪問量大的性能很大程度的牽制著整個磁盤陣列的性能校驗碼盤很有可能會成為性能的瓶頸,并且修復損壞磁盤的數據的需要遍歷整個陣列,修復慢,性能損失大

所需磁盤數:至少三個磁盤



⑤RAID5

在RADI4基礎上的進行了改良,讓所有盤都能用來存放校驗碼。

5.png


優點:采用校驗技術;與RAID不同的是每個磁盤都是校驗盤,輪替的當做校驗盤的功能,降低了對單個磁盤的巨大的訪問量,使其讀寫性能在RAID4 的基礎上又了提高;與RAID4相同磁盤的損壞個數只能有一個,校驗盤損壞也不會造成數據的流失,都可以重新計算

缺點: 修復損壞磁盤的數據的需要遍歷整個陣列,修復慢,性能損失大,相對RAID4有很大的改善

需要磁盤數:至少三塊



二,RAID有硬件和軟件實現的方式,下面為大家帶來軟件創建一個可用空間為5G的RAID1設備的步驟:


工具:mdadm模式化工具

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

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

                          模式:

                              創建:-C

                              裝配:-A

                              監控:-F

                              管理:-f, -r,-c

                              <raiddevice>:/dev/md#

                              <component-devices>:任意塊設備

                              -C:創建模式

                                    -n #:使用#個快設備來創建此RAID

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

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

                                    -c CHUNK_SIZE:指明塊大小

                                    -x #:指明空閑盤的個數

                                    -D:顯示raid的詳細信息:mdadm -D /dev/md#

                                  管理模式:

                                    -f:標記制定磁盤為損壞

                                    -a:添加磁盤

                                    -r:移除磁盤

                        觀察md的狀態:

                            cat /proc/mdstat

                        停止md設備:

                            mdadm -S /dev/md#

環境:虛擬機下的CentOS 6.8 64位

[root@totooco6 ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m


這里要用到的磁盤是sdb,sdc,sdd

[root@totooco6 ~]# fdisk -l | grep sd   
Disk /dev/sda: 16.1 GB, 16106127360 bytes
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64        1959    15215616   8e  Linux LVM
Disk /dev/sdb: 5368 MB, 5368709120 bytes
Disk /dev/sdc: 5368 MB, 5368709120 bytes
Disk /dev/sdd: 5368 MB, 5368709120 bytes

用fdisk工具分區,設置分區類型id為fd

[root@totooco6 ~]# fdisk -l | grep sd
Disk /dev/sda: 16.1 GB, 16106127360 bytes
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64        1959    15215616   8e  Linux LVM
Disk /dev/sdb: 5368 MB, 5368709120 bytes
/dev/sdb1               1         652     5237158+  fd  Linux raid autodetect
Disk /dev/sdc: 5368 MB, 5368709120 bytes
/dev/sdc1               1         652     5237158+  fd  Linux raid autodetect
Disk /dev/sdd: 5368 MB, 5368709120 bytes
/dev/sdd1               1         652     5237158+  fd  Linux raid autodetect

 mdadm -C /dev/md1 -n2 -l1 -ayes -x1 /dev/sd[b,c,d]1


[root@totooco6 ~]# mdadm -C /dev/md1 -n2 -l1 -ayes -x1 /dev/sd[b,c,d]1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

查看一下創建進度

[root@totooco6 ~]# cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdd1[2](S) sdc1[1] sdb1[0]
      5233024 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

已經完成,查看詳細信息

[root@totooco6 ~]# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Fri Jun 10 11:06:42 2016
     Raid Level : raid1
     Array Size : 5233024 (4.99 GiB 5.36 GB)
  Used Dev Size : 5233024 (4.99 GiB 5.36 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Fri Jun 10 11:07:08 2016
          State : clean 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1
           Name : totooco6.8:1  (local to host totooco6.8)
           UUID : 8baef42a:f845df94:9addff79:32cef574
         Events : 17
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        -      spare   /dev/sdd1

可以看到,raid1已經創建好,由/dev/sd1   /dev/sdc1  /dev/sdd1組成,其中sdd1是空閑盤。下面創建文件系統:

[root@totooco6 ~]# mkfs.ext4 /dev/md1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1308256 blocks
65412 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

寫入配置文件,不然重啟之后會自動命名md1為md127

[root@totooco6 ~]# mdadm -Ds > /etc/mdadm.conf
[root@totooco6 ~]# cat /etc/mdadm.conf 
ARRAY /dev/md1 metadata=1.2 spares=1 name=totooco6.8:1 UUID=36371dde:0ae4fccc:8383159d:5d1b21fd

掛載相應目錄

[root@totooco6 ~]# mkdir /md1
[root@totooco6 ~]# mount /dev/md1 /md1
[root@totooco6 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_totooco6-lv_root
                       13G  744M   12G   7% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/sda1             477M   28M  425M   7% /boot
/dev/mapper/testvg-testlv
                      2.9G  7.6M  2.7G   1% /users
/dev/md1              4.8G   10M  4.6G   1% /md1

為了讓開機自動掛載,寫入自動掛載文件/etc/fstab

[root@totooco6 ~]# echo /dev/md1 /md1 ext4 defaults 0 0  >> /etc/fstab

好了,文件夾/md1可以正常使用了.


                              注:本文部分資料和圖片來自互聯網


原創文章,作者:Net20_totooco,如若轉載,請注明出處:http://www.www58058.com/18024

(0)
Net20_totoocoNet20_totooco
上一篇 2016-06-22
下一篇 2016-06-22

相關推薦

  • LAMP 編譯安裝基于2.4

    一 安裝前準備 說明:     操作系統:CentOS 6.7 64位     MySQL數據庫版本:mariadb-5.5.48-linux-x86_64.tar.gz     Apache 版本:httpd-2.4.12.tar.bz2…

    Linux干貨 2016-11-21
  • linux文件權限練習(0803)

    1、當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作?     不能cd到該目錄,不能ls -l查看目錄下文件的詳細信息      2、當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作?…

    Linux干貨 2016-08-04
  • 文件查找命令之locate、find簡析

    文件查找命令之locate、find簡析    在工作中經常會在文件系統上查找符合條件的文件,今天學習了文件查找命令,在此簡析locate和find兩個文件查找工具。 一、雜項知識整理 1、find的選項-user的實質是通過UID查找,如果兩個用戶的UID相同,其會顯示兩個用戶的所有符合條件的文件。 2、查找時-name "*…

    Linux干貨 2016-08-15
  • 系統基礎之文件管理工具

    系統基礎之文件管理工具   linux的重要哲學思想之一,一切皆文件.那作為系統管理員,就要求對文件的操作管理特別熟悉.那么下面介紹的一個工具可以幫助到大家,更有效,快捷的完成對文件的處理.下面讓我們來認識以下的工具. 文本工具: 文件內容:   cat: 復制標準輸入到標準輸出     選項:   &nbs…

    Linux干貨 2016-08-07
  • 初識 vi/vim文本編輯器

    我們操作文件,終究離不開編輯文件,對文件內容的編輯,Linux系統下,我們通常使用VI/VIM來編輯文件。VI是每個Linux都會自帶的文本編輯器,VIM是VI的增強版,現在的最新版都已自帶,但是可能有些發行版本沒有自帶,可以使用sudo apt-get install vim命令安裝vim。 可以使用vi或者vim命令直接進入新的文本文件,或者vim 文件…

    Linux干貨 2017-07-29
  • 重要開源協議解析(BSD,Apache,GPL,LGPL) 整理

    現今存在的開源協議很多,而經過Open Source Initiative組織通過批準的開源協議詳見其網站(http://www.opensource.org/licenses/alphabetical)。我們在常見的開源協議如BSD, GPL, LGPL等都是OSI批準的協議。如果要開源自己的代碼,最好也是選擇這些被批準的開源協議。 這里整理了四種最常用的…

    Linux干貨 2016-07-22
欧美性久久久久