RAID( Blob3 )

RAID各級別特性及使用

 

Berkeley在1988年,發表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。之中提出RAID(Redundant Arrays of Inexpensive Disks 廉價磁盤陣列);

將多個IDE或SCSI設備并行組合成一個使用,以提高其“耐用性”及“并行讀寫能力(IOps)”

多個設備組織起來高效,就需要較好的硬件控制器,不同的公司生產出來的控制器,IOps和耐用性不同,所以RAID并不廉價,后更名RAID(Redundant Arrays of Independent Disks 獨立磁盤陣列)

2

RAID特性
(1) 提高耐用性:磁盤自身擁有冗余能力;并非“其內部存儲數據有冗余能力,仍需要備份”;
(2) 并行讀寫能力;IOps(IO能力);
* 為了在提升RAID的IOps,添加內存;
* 衡量硬盤性能:IO能力、平均尋道時間、讀寫速度;

RAID實現方式

硬件RAID:在主板支持RAID的BIOS界面完成配置
內接式RAID: 主板集成RAID控制器;
外接式RAID: 擴展卡、適配器;

軟件RAID:
Linux:驅動:內核中的模塊;md (multi disk);用戶空間中的程序:mdadm (multi disk admin)

RAID級別
在Berkeley論文中,曾提出RAID有5個級別;不同的級別其工作方式所有不同;

常見RAID:RAID-0, RAID-1, RAID-5, RAID-6
混合類型:RAID-01, RAID-10, RAID-50,RAID-7, JBOD

常見RAID:

RAID-0

條帶卷、Strip;

將多個磁盤并行組織在一起;控制器將數據切割成多個chunk,將其扔到不同的磁盤中;每個磁盤承載部分吞吐量;
chunk: 不是磁盤塊;此時沒有在文件系統級別;

多個同類的設備時,出錯性可能性增加;
存儲:非關鍵性數據;

特性:
(1) 讀寫性能提升;出錯可能性隨磁盤增加而增加;
(2) 可用空間;硬盤總數 * 所有硬盤中貢獻最小值;
(3) 沒有冗余能力;
(4) 最少磁盤數:2個及以上;

RAID-1

鏡像卷、mirror;
將多個磁盤并行組織在一起;扔一個chunk至其中一個磁盤中,需要在另一個磁盤中存儲相同的chunk;

存儲空間復用率只有一半;
數據可分散讀,沒有分散寫;

3

特性:
(1) 讀性能提升、寫性能略微下降;
(2) 可用空間:2塊中最小值;
(3) 有冗余能力:1塊;
(4) 磁盤數:2個;

RAID-4
既有RAID-1冗余,又有RAID-0的性能提升;
RAID-4是校驗盤冗余,基于異或運算;是單獨一個盤做校驗;每次讀寫均會使用校驗盤;校驗盤壓力過大,性能瓶頸;

RAID-5
輪流做校驗;左對稱和右對稱;默認是左對稱;
左對稱:第3個盤做較驗盤;
右對稱:第1個盤做較難盤;
一塊磁盤壞了轉換為降級工作模式;

特性:
(1) 讀性能提升;
(2) 可用空間:(所有盤 – 1校驗盤) * 所有中最小值;
(3) 有冗余能力:1塊;塊數越多,浪費空間就越少;10G,10塊只需要浪費1G;2塊就5G;
(4) 磁盤數:3個及以上;

1

RAID-6
輪流做校驗;比RAID-5多一個校驗盤;
并行讀寫;至少2個;

特性:
(1) 讀性能提升;
(2) 可用空間:(所有盤 – 2校驗盤) * 所有中最小值;
(3) 有冗余能力:2塊
(4) 磁盤數:4個及以上;

混合類型:

RAID-10
底層RAID-1,上層RAID-0
每組只能壞一個;
復用率1半;

特性:
(1) 讀性能提升;
(2) 可用空間: (所有磁盤貢獻最小值 * 所有盤)/2
(3) 有冗余能力:每組一塊
(4) 磁盤數:4個及以上;

RAID-01
底層RAID-0,上層RAID-1;
只能同時壞一組;復用率1半;

RAID-50
底層RAID-5,上層RAID-0;
不可靠;最少6個盤;每組只能壞一個;
空間利用率:每組2/3

RAID-7
文件服務器;某公司的私有技術;

JBOD: Just a Bunch of Disks
可將多塊磁盤的空間合并為一個大的連續空間使用;
可用空間;所有磁盤空間之和;

CentOS 7 軟RAID實現;
內核模塊/驅動:md
用戶空間管理工具:mdadm;程序包: mdadm

mdadm [mode] <raiddevice> [options] <component-devices>
[mode]
創建模式: -C
顯示模式: -D
監控模式: -F
管理模式: -f, -r, -a
<raiddevice>: /dev/md#
[options]
-a {yes|no}:是否自動創建<raiddevice>;
-l #: 創建RAID的級別;
-n #: 使用#個塊設備來創建RAID;不包括空閑盤;
~]# mdadm -C /dev/md0 -a yes -n 3 -l 5 -x 1 /dev/sda{3,5,6}
-x #:指明空閑盤的個數;RAID1, RAID5, RAID10
空閑盤:磁盤壞掉時,某個盤能自動頂替上去;
-c CHUNK_SIZE: 指明塊大?。荒J
<component-devices>:
分區:建議使用不同磁盤不同分區;
硬盤:

創建一個可用空間的10G RAID1設備,要求chunk大小128k, 文件系統ext4,有一個空閑盤,開機可自動掛載至/backup目錄;
注:RAID1是兩個磁盤;可用空間為(所有磁盤貢獻最小值 * 磁盤數)的一半;所有此時應該創建兩個id為fd的10G大小分區;
查看可用磁盤:
~]# fdisk -l /dev/sd[a-z]
進行分區:
~]# fdisk /dev/sdb
Disk /dev/sdb: 128.8 GB, 128849018880 bytes, 251658240 sectors < — CentOS 7以扇區,劃分分區;
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 fd Linux raid autodetect
/dev/sdb2 20973568 41945087 10485760 fd Linux raid autodetect
/dev/sdb3 41945088 62916607 10485760 fd Linux raid autodetect
查看內核是否已經識別新分區:
~]# cat /proc/partitions
重載內核分區表:
~]# partx -a /dev/sdb
~]# partx -a /dev/sdb
創建RAID:
~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128K /dev/sdb{1,2,3}
Continue creating array? y
~]# cat /proc/mdstat
[======>…………..] resync = 34.1% (3578624/10477568)
有冗余能力,需要此步驟,進行逐位對齊;基于異或運算;
查看狀態:
~]# mdadm -D /dev/md0
Raid Level : raid1
Array Size : 10477568 (9.99 GiB 10.73 GB) 可用空間
Used Dev Size : 10477568 (9.99 GiB 10.73 GB) 已用空間
Resync Status : 96% complete < — 此狀態到達100%,完畢后進行高格;
格式化:
~]# mke2fs -t ext4 /dev/md0
獲取文件系統信息:
~]# blkid /dev/md0
/dev/md0: UUID=”c5f8b5c2-8242-4bf0-879e-a3d0fd127bd1″ TYPE=”ext4″
在/etc/fstab文件添加條目:
~]# mkdir -v /backup
~]# vim + /etc/fstab
UUID=”c5f8b5c2-8242-4bf0-879e-a3d0fd127bd1″ /backup ext4 defaults 0 0
測試自動掛載:
~]# mount -a
~]# mount
/dev/md0 on /backup type ext4 (rw,relatime,seclabel,data=ordered)

創建一個可用空間的10G RAID10設備,要求其chunk大小256k,文件系統ext4,開機可自動掛載至/mydata目錄;
注:RAID-10可用空間為(所有磁盤貢獻最小值 * 磁盤數)的一半;所有磁盤總空間為20G;RAID-10至少4個設備,每個設備用5G;分為2個組,每組冗余一個所以需要空閑盤2個;總大小30G;總共6個分區;
查看可用磁盤:
~]# fdisk -l /dev/sd[a-z]
進行分區:
~]# fdisk /dev/sdb
/dev/sdb5 62918656 73404415 5242880 fd Linux raid autodetect
/dev/sdb6 73406464 83892223 5242880 fd Linux raid autodetect
/dev/sdb7 83894272 94380031 5242880 fd Linux raid autodetect
/dev/sdb8 94382080 104867839 5242880 fd Linux raid autodetect
/dev/sdb9 104869888 115355647 5242880 fd Linux raid autodetect
/dev/sdb10 115357696 125843455 5242880 fd Linux raid autodetect
查看內核是否已經識別新分區:
~]# cat /proc/partitions
重載內核分區表:
~]# partx -a /dev/sdb
~]# partx -a /dev/sdb
創建RAID:
~]# mdadm -C /dev/md10 -a yes -l 10 -n 4 -x 2 -c 256K /dev/sdb{5,6,7,8,9,10}
~]# cat /proc/mdstat
[=======>………….] resync = 36.4% (3820416/10477568)
查看狀態:
~]# mdadm -D /dev/md10
Raid Level : raid10
Array Size : 10477568 (9.99 GiB 10.73 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Chunk Size : 256K
格式化:
~]# mke2fs -t ext4 /dev/md10
獲取文件系統信息:
~]# blkid /dev/md10
/dev/md10: UUID=”bae12010-b73b-490c-9d15-56d32ff52bb9″ TYPE=”ext4″
在/etc/fstab文件添加條目:
~]# mkdir -v /mydata
~]# vim + /etc/fstab
UUID=”bae12010-b73b-490c-9d15-56d32ff52bb9″ /data ext4 defaults 0 0
測試自動掛載:
~]# mount -a
~]# mount
/dev/md0 on /backup type ext4 (rw,relatime,seclabel,data=ordered)
/dev/md10 on /mydata type ext4 (rw,relatime,seclabel,stripe=128,data=ordered)

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89044

(1)
逆神陽逆神陽
上一篇 2017-11-27
下一篇 2017-11-27

相關推薦

  • 文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

    文件查找(Find和Locate)常用用法及摩根定律趣解(重要) 摩根定律: 非(A 且 B)=(非 A)或(非 B) 非(A 或 B)=(非 A)且(非 B) 這樣看起來不是很好理解下面通過一些列圖片給大家展示; 圖(1)  圖(2)  圖二中的黑色就A且B,A且B的反面三種情況(如圖1)即為(非A)或(非B)。因此…

    Linux干貨 2016-08-21
  • 第十二周作業

      1、描述一次完整的http請求處理過程 簡介?一次完整的HTTP請求過程從TCP三次握手建立連接成功后開始,客戶端按照指定的格式開始向服務端發送HTTP請求,服務端接收請求后,解析HTTP請求,處理完業務邏輯,最后返回一個HTTP的響應給客戶端,HTTP的響應內容同樣有標準的格式。無論是什么客戶端或者是什么服務端,大家只要按照HTTP的協議標準…

    2017-11-12
  • vim編輯器

                在Linux的學習中,無論是編寫腳本還是修改文件內容,我們最經常用的就是vim編輯器.vim編輯器功能十分強大,如今不僅僅只應用在Linux中.今天就來介紹一下vim編輯器的功能 進入和退出vim     進入:   在終端輸入vim 文件名 ,…

    Linux干貨 2017-08-05
  • 文本三劍客grep爵士與手下的血淚奮戰

    文件查看命令: cat, tac,revcat [OPTION]… [FILE]…  -E: 顯示行結束符$ -n: 對顯示出的每一行進行編號 -A:顯示所有控制符 -b: 非空行編號 -s:壓縮連續的空行成一行 文件查看 分頁查看文件內容more: 分頁查看文件more [OPTIONS…] FILE…-d: 顯示翻頁及退出提示less:一頁一頁…

    Linux干貨 2016-08-07
  • 新的旅途

    三月末的北京已經讓人感覺有些炎熱,這是我第一次來北京。對我而言這是我人生的另一個起點,押上了我所有驕傲承載著我的夢想對未來所有的期望。這是一場豪賭,新的旅途,從今天開始。

    2018-03-26
  • 揭開鏈接文件的面紗——從根本上剖析硬鏈接與軟鏈接異同

    在linux的學習過程中,鏈接文件的學習讓不少人頭疼,很多同學往往分不清什么是硬鏈接,什么是軟鏈接,對于兩者的概念和區別常常容易混淆、搞不清楚。今天我們就從原理、從根本上為大家辨析一些兩者之間的區別,相信大家在看完這篇文章之后對鏈接文件會有一個清晰正確的認識。 1、在實現原理上不同 硬鏈接,涉及到文件的底層模式,因此被稱為硬鏈接文件。硬鏈接文件只是一個指針指…

    Linux干貨 2016-10-20
欧美性久久久久