磁盤管理—磁盤陣列(RAID)實例詳解

  • 磁盤陣列(RAID)實例詳解安全

  • raid技術分類服務器

    • 軟raid技術markdown

    • 硬raid技術併發

  • Raid和lvm的區別app

  • 爲何選擇用raid負載均衡

  • RAID詳解分佈式

    • RAID-0ide

    • RAID-1性能

    • RAID-5動畫

    • Raid-10

  • Raid的管理

    • 案例:建立一個raid10+冗餘盤

磁盤陣列(RAID)實例詳解

Raid(磁盤陣列)級別介紹

Raid有」廉價磁盤冗餘陣列」的意思,就是利用多塊廉價的硬盤組成磁盤組,讓數據分部儲存在這些硬盤裏面,從而達到讀取和寫入加速的目的;也能夠用做數據的冗餘,當某塊硬盤損毀後,其餘硬盤能夠經過冗餘數據計算出損壞磁盤的數據,這樣就提升了數據儲存的安全性。能夠提供較普通磁盤更高的速度、安全性,因此服務器在安裝時都會選擇建立RAID。RAID的建立有兩種方式:軟RAID(經過操做系統軟件來實現)和硬RAID(使用硬件陣列卡)。

raid技術分類

常見的raid技術分兩類 
基於硬件raid技術和基於軟件的raid技術

軟raid技術

在Linux下安裝系統的過程當中或者安裝系統後經過自帶的軟件就能實現raid功能,使用軟raid可省去購買硬件raid控制器和附件就能極大地加強磁盤的IO性能和可靠性,因爲是用軟件實現的raid功能,因此它配置靈活,管理方便,同時使用軟件raid,還能夠將幾個物理磁盤合併成一個更大的虛擬設備,從而達到性能改進和數據冗餘的目的

硬raid技術

基於硬件raid解決方案比基於軟件raid技術在使用性能和服務性能上會更勝一籌,具體表如今檢測和修復多位錯誤的能力,錯誤磁盤自動檢測和陣列重建等方面,從安全性能考慮,基於硬件的raid解決方案也是更安全的,所以,在實際的生產場景工做中,基於硬件的raid解決方案應該是咱們的首選,互聯網公司經常使用的生產dell服務器,默認就會支持raid0,1。若是raid5,10就須要買raid卡(或者個別配置自帶有,購買前,看參數)

Raid和lvm的區別

LVM(Logical Volume Manager)是Linux環境下對硬盤分區進行管理的一種機制,能夠實現多塊硬盤空間的動態劃分和調整,跨硬盤儲存文件等功能。經常使用於裝備大量硬盤並隨時須要增長或刪除硬盤的環境,也一樣適於僅有1、兩塊硬盤的環境。(能夠靈活的管理磁盤容量,讓磁盤分區隨意變大變小,便於管理磁盤剩餘的容量)若是過於強調性能和備份,仍是優先選擇硬件raid功能

爲何選擇用raid

磁盤陣列能夠把多個磁盤驅動器經過不一樣的鏈接方式鏈接在一塊兒協同辦公,大大提升了讀寫速度,同時把磁盤系統的可靠性提升到接近無措的境界,使其可靠性極高。 
用raid最直接的好處是:

提升數據安全性 
提高數據讀寫性能 
提供更大的單一邏輯磁盤數據容量存儲

RAID詳解

RAID-0

wKiom1fPzgbyUBxYAACGx21QiXo925.gif

D1

D2

數據1

數據2

數據3

數據4

數據5

數據6

RAID-0 :striping(條帶模式)特色:在讀寫的時候能夠實現併發,因此相對其讀寫性能最好,每一個磁盤都保存了完整數據的一部分,讀取也採用並行方式,磁盤數量越多,讀取和寫入速度越快。由於沒有冗餘,一個硬盤壞掉所有數據丟失。至少兩塊硬盤才能組成Raid0陣列。 
容量:全部硬盤之和。磁盤利用率爲100%。

生產應用場景 
一、負載均衡集羣下面的多個相同RS節點服務器 
二、分佈式文件存儲下面的主節點或CHUNK server 
三、MySQL主從複製的多個slave服務器 
四、對性能要求很高,對冗餘要求很低的相關業務

RAID-1

wKioL1fPzhLwlo9oAACIK7C_D1s516.gif

D1

D2

數據1

數據1

數據2

數據2

數據3

數據3

RAID-1 :mirroring(鏡像卷),至少須要兩塊硬盤,raid大小等於兩個raid分區中最小的容量(最好將分區大小分爲同樣),數據有冗餘,在存儲時同時寫入兩塊硬盤,實現了數據備份; 
磁盤利用率爲50%,即2塊100G的磁盤構成RAID1只能提供100G的可用空間。

RAID-5

wKioL1fPzh2jE_c9AAE5CuEn_bM871.gif

D1

D2

D3

數據1

數據2

校驗和1

校驗和2

數據3

數據4

數據5

校驗和3

數據6

特色:採用奇偶校驗,可靠性強,磁盤校驗和被散列到不一樣的磁盤裏面,增長了讀寫速率。只有當兩塊磁盤同時丟失時,數據纔沒法恢復,至少三塊硬盤而且硬盤大小應該相等才能組成Raid5陣列。

容量:全部硬盤容量之和減去其中一塊硬盤的容量,被減去的容量被分配到三塊硬盤的不一樣區域用來存放數據校驗信息。

Raid-10

wKiom1fPziaBGbUrAACPaCVUWhw369.gif

D1   

D2

D3

D4

數據1

數據1

數據2

數據2

數據3

數據3

數據4

數據4

Raid10(Raid1+Raid0)是如今比較經常使用的一種磁盤陣列級別,它的容錯好,讀寫數據效率較高,但經費相對也較高。

特色:備份和併發式存取數據,可靠性強。D一、D2組成一個陣列Raid1,其中D1是數據盤,D2是備份盤;D三、D4也組成一個Raid1,其中D3是數據盤,D4是備份盤;在這個基礎上將D一、D2做爲一個總體,將D三、D4也做爲一個總體,這兩個總體之間再組成一個Raid0陣列。這樣不只僅讀取數據會很是快,併發寫入的速度也會隨着磁盤的增多而變快。至少四塊硬盤而且每塊硬盤大小應該相等才能組成Raid10陣列。

容量:全部硬盤容量之和的一半(一半寫數據,一半用來備份數據)。

Raid的管理

主要用到的命令:mdadm; 
參數: 
-C或–creat 創建一個新陣列 -r 移除設備 
-A 激活磁盤陣列 -l 或–level= 設定磁盤陣列的級別 
-D或–detail 打印陣列設備的詳細信息 
-n或–raid-devices= 指定陣列成員(分區/磁盤)的數量 
-s或–scan 掃描配置文件或/proc/mdstat獲得陣列缺失信息 
-x或–spare-devicds= 指定陣列中備用盤的數量 
-f將設備狀態定爲故障 
-c或–chunk= 設定陣列的塊chunk大小 ,單位爲KB 
-a或–add 添加設備到陣列 
-G或–grow 改變陣列大小或形態 
-v –verbose 顯示詳細信息

CentOS7中mdadm默認已安裝,若是沒有安裝,可使用yum在線安裝,以下: 
首先確保已經鏈接到互聯網,搜索一下yum服務器上是否存在mdadm

[root@localhost ~]# yum search mdadm

案例:建立一個raid10+冗餘盤

總共7塊盤,建立一個raid 10 使用4塊盤,熱備2塊,使用中1塊出現故障,熱備頂上,再加一塊熱備,把壞的T下來

一、建立raid陣列

[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 10 -n 4 -x 2 /dev/sd{b,c,d,e,f,g}

二、查看raid陣列信息

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid10]
md0 : active raid10 sdg[5](S) sdf[4](S) sde[3] sdd[2] sdc[1] sdb[0]
     41910272 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
     [=====>...............]  resync = 27.5% (11542784/41910272) finish=2.4min speed=206250K/sec

unused devices: <none>
// 四塊盤在用,兩塊S熱備

三、生成配置文件

[root@localhost ~]# mdadm -D --scan > /etc/mdadm.conf

四、格式化掛載使用

[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/md0 /data/
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   20G  333M   19G   2% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   34M  147M  19% /boot
/dev/mapper/vg0-usr   9.8G  1.9G  7.4G  21% /usr
/dev/mapper/vg0-var    20G  113M   19G   1% /var
/dev/md0               40G   48M   38G   1% /data
//我一塊20G,raid10一半數據,一半備份數據

五、模擬故障一個磁盤

先往data目錄拷貝點文件,看看壞了一塊數據是否丟失

[root@localhost ~]# du -sh /data/
1.4M    /data/
//輸入命令或者直接把硬盤斷開鏈接
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdg[5] sdf[4](S) sde[3] sdd[2] sdc[1] sdb[0](F)
     41910272 blocks super 1.2 512K chunks 2 near-copies [4/3] [_UUU]
     [=>...................]  recovery =  6.6% (1400064/20955136) finish=1.6min speed=200009K/sec

unused devices: <none>
// sdb (F) 故障狀態了,原來sdg的S沒有了,說明,已經頂上去了
[root@localhost ~]# du -sh /data/
1.4M    /data/
//數據沒有丟失

六、把壞的T下去,把新硬盤加上去

硬盤壞了,確定要加新的熱備盤上去,把舊的卸下來

//把故障硬盤卸載下來
[root@localhost ~]# mdadm -r /dev/md0 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
//添加新的硬盤
[root@localhost ~]# mdadm -a /dev/md0 /dev/sdh
mdadm: added /dev/sdh

[root@localhost ~]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdh[6](S) sdg[5] sdf[4](S) sde[3] sdd[2] sdc[1]
     41910272 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
//查看狀態,已經發現新硬盤,舊硬盤已經沒有了      
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md0
   Number   Major   Minor   RaidDevice State
      5       8       96        0      active sync set-A   /dev/sdg
      1       8       32        1      active sync set-B   /dev/sdc
      2       8       48        2      active sync set-A   /dev/sdd
      3       8       64        3      active sync set-B   /dev/sde

      4       8       80        -      spare   /dev/sdf
      6       8      112        -      spare   /dev/sdh
//陣列仍是原來的,沒變

(動畫來自互聯網)

本文出自 「家住海邊喜歡浪」 博客,請務必保留此出處http://zhang789.blog.51cto.com/11045979/1847355

相關文章
相關標籤/搜索