Linux高級磁盤管理-RAID管理

在馮諾依曼體系機構中,輸入輸出要存儲的外部磁盤I/O能力實在太低,尤其是企業面對高并發的訪問量,在系統內部需要大量調度磁盤的上的網頁文件資源,這些都會產生大量的I/O,一個磁盤的I/O能力不管如何提升畢竟是有線的,尤其是機械硬盤;同時為了保障業務的連續性,磁盤故障時必須提供冗余能力,面對這樣的實際需求環境,RAID技術產生了,通過組織磁盤陣列方式提供I/O,在內部通過RAID控制器,把多個磁盤的I/O平行組織在一起,當系統需要載入或寫入磁盤上的數據時,也就在RAID控制器的控制下,多個磁盤同時讀同時寫,同時一個數據在控制器下,還可以同時單獨寫入多份,這樣就有了冗余能力,保證了系統業務的連續性,不同的RAID磁盤組織方式,對應不同的實際生產應用需求,根據實際生產應用需求選擇RAID比較合理,實現資源高利用率;

1.RAID:Redundant Arrays of Inexpensive Disks

2.作用:

    (1)提供I/O能力

    (2)提供冗余(數據容錯能力)

3.RAID控制器功能:

    (1)RAID控制器——分割大小(chunk):

     控制器在接受到由CPU控制指令發出寫入磁盤的數據的數據是,在RAID控制器內部把數據劃分多個相同大小的Chunk,每個磁盤寫入一個chunk的數據進行保存,這樣既能提供寫入能力,同時當讀取數據時,RAID控制器也能夠理解還原數據;這就是劃分chunk的原因;

      

   (2)RAID控制器做異或運算–提供校驗碼機制:

     為了提供冗余能力,數據在寫入的同時對chunk做異或運算寫入校驗碼,當有一個磁盤壞損時,讀取數據時可以通過在其他磁盤上的校驗碼做異或運算,推導出原數據,只不過這時的讀取能力差,處于降級模式;

4.RAID級別圖例:

RAID0.png

RAID1.png

RAID5.png

RAID10.png

u=2867059069,1903177332&fm=21&gp=0.jpg

5.RAID總結 

   級別代表多塊磁盤的組織工作方式不同;

RAID級別    讀寫性能提升     冗余     空間利用率     組織最小磁盤數

 0              有           沒有       100%            2

 1              有(讀)       有         1/2             2

 4              有           有         n-1             3

 5              有           有         n-1             3

 6              有           有         n-2             4

 10             有           有         1/2             4

 01             有           有         1/2             4

6.RAID分析:

RAID0

    條帶卷,有一個磁盤壞損,業務立即終止,可以做臨時文件存儲

RAID1

    鏡像卷,只提供讀性能,有冗余,但是空間利用率太低,提供的I/O性能不是很高;

RAID4:

    校驗存儲,利用異或算法,校驗碼在一塊磁盤,校驗盤成為瓶頸,壞損I/O性能降級;

RAID5:

    循環存儲校驗,允許壞損,但是I/O性能降級;

RAID6:

    循環存儲兩份校驗 ,允許壞損2塊,但是整體性能不是很好;

RAID10:

    先做1再做0,數據切割一次,IO性能整體很高,每組鏡像只允許壞一塊;

RAID01:

    先做0再做1,數據切割兩次,每組允許壞損2,但是整體同時只允許一個組有壞損,這種多個組同時壞損一塊的幾率還是比較大的;

JBOD:Just a Bunch of Disks

    作用:將多塊磁盤空間合并為一個大的連續空間使用,為了應對企業單個大文件的訪問存儲;

6.RAID應用實現方式:

    (1)軟件RAID:這種利用軟件功能實現,一般僅供學習使用;

    (2)硬件RAID:需要RAID控制卡,利用的連接設備有可能是光纖交換機;

7.Linux提供軟RAID功能:

mdadm [mode] [options] devices

   -C:創建

     -n # :使用多少個快創建;

     -l # :創建RAID級別;

     -a [yes|no] :自動創建;

     -c Chunk_size :指明chunk大?。?/span>

     -x # :指明空閑磁盤數;

   

   -A:啟動

   -F:監控

   -f:標記壞損;

   -r:移除;

   -a:添加;

   -D:顯示詳細信息;

   -G:添加成員

  

顯示詳細信息

mdadm -D /dev/md0

標記損壞

mdadm /dev/md0 -f /dev/

移除

mdadm /dev/md0 -r /dev/

添加

mdadm /dev/md0 -a /dev/

停止

mdadm -S /dev/md0

啟動

mdadm -A /dev/md0

觀察狀態:

cat /proc/mdstat 

使用watch命令持續觀察

watch -n 1 'cat /proc/mdstat'

8.實例:在CentOS6.8上創建RAID5陣列

    (1)添加5塊硬盤作為RAID使用

Linux高級磁盤管理-RAID管理

    (2)默認分區格式化整個磁盤為主分區20G,同時修改分區類型為支持RAID分區類型;

Linux高級磁盤管理-RAID管理

    (3)查看分區完的磁盤是否讀入到內核中,如何沒有使用partx -a device同步;

2016-09-05 15 06 42.png

   (4)使用mdadm命令創建RAID5,三個做RAID5成員,一塊做空閑盤,另一塊后面使用

2016-09-05 15 12 25.png

    (5)查看創建過程狀態;

2016-09-05 15 13 22.png

2016-09-05 15 17 46.png

    (6)等待創建完成,也可以使用cat /proc/mdstat命令查看

2016-09-05 15 15 49.png

    (7)把創建的配置信息導入到/etc/mdadm.conf文件中,方便下次啟動能夠讀取配置信息;

生成配置文件.png

    (8)要想使用RAID必須格式化文件系統,這里使用ext4

2016-09-05 15 19 12.png

    (9)創建掛載目錄并且掛載到/tmp/raid

2016-09-05 15 22 33.png

    (10)復制文件到RAID5分區中

2016-09-05 15 25 58.png

    (11)測試實驗:標記一塊成員硬盤為壞損,

2016-09-05 15 29 55.png

    (12)查看RAID5分區中的文件是否可以查看,測試壞損一塊成員時,在空閑磁盤構建中,數據是否可以繼續訪問

2016-09-05 15 32 01.png

    (13)查看構建空閑磁盤為成員完成

2016-09-05 15 32 56.png

    (14)刪除標記的壞損成員

Linux高級磁盤管理-RAID管理

     (15)添加一個成員進入,這里變成空間盤

2016-09-05 15 37 35.png

    (16)添加一塊成員進入RAID5陣列中,擴大陣列范圍

2016-09-05 15 43 01.png

    (17)再次測試數據是否可用

2016-09-05 15 46 46.png

    (18)實驗完成刪除RAID步驟

2016-09-05 16 48 16.png

  注意:有了RAID企業還有必要備份數據嗎?

這是必須的,不能取代,RAID提供的僅僅是磁盤壞損不影響業務的終止,并不能保證誤操作引發的數據丟失,備份能防止誤操作和意外故障時提供數據恢復。

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

(1)
xiashixiangxiashixiang
上一篇 2016-09-06 08:51
下一篇 2016-09-06 08:51

相關推薦

  • 系統啟動流程相關概念

    前言: 了解系統內核基本知識 內核功能:進程管理、內存管理、網絡協議棧、文件系統、驅動程序、安全功能等  用戶空間:應用程序其中有進程或者線程 運行中的系統可分為兩層:內核空間、用戶空間  內核設計流派:  單內核設計:把每種功能集成于一個程序中;例如:linux 微內核設計:每種功能使用一個單獨的子系統實現;例如:Window…

    Linux干貨 2016-09-19
  • 文本處理工具應用示例

    文本處理工具應用示例 1.列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可 who|awk ‘{print $1}’|sort|uniq -d 2.取出最后登錄到當前系統的用戶的相關信息 who|tail -1|cut -d’ ‘ -f1|id 3.取出當前系統上被用戶當作默認shell的最多的那個shell cat /e…

    Linux干貨 2017-07-16
  • sed vim小練

     1 、刪除/etc/grub2.conf 文件中所有以空白開頭的行行首的空白字符  2 、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空 白字符的行的行首的#和空白字符 3 、在/root/install.log 每一行行首增加# [root@localhost ~]# sed -n&nbsp…

    Linux干貨 2016-08-12
  • 網絡班第27期第二周作業

    1、 Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關的實例演示。 cp命令:copy 文件à>目錄 文件à>文件 目錄->文件(報錯)           目錄->目錄 常用選項:     &nbsp…

    2017-07-31
  • 知乎上推薦的幾款快速上手的UI框架

    1、Flat UI Flat UI是一套精美的扁平風格 UI 工具包,基于 Twitter Bootstrap 實現。地址:designmodo/Flat-UI · GitHub 2、BootMetro 基于 Twitter Bootstrap 框架構建,用于創建 Windows 8 的 Metro 風格的網站,靈感來自于 Metro UI CSS 。地址:…

    2015-03-17
  • gitlab-ce白名單設置杜絕并發數過大引起的封ip故障

    gitlab-ce 7.9安裝手札以及上篇文章的問題解決 鳴謝 感謝ruby大神===》章魚的一路指點,才能撥開迷霧見云天! 章魚大人:     國內Ansible部落原創翻譯之一!     資深運維!     ROR大神!  &…

    Linux干貨 2015-09-06
欧美性久久久久