磁碟陣列簡介

來源:互聯網
上載者:User
磁碟陣列(Redundant Array of independent Disks, RAID)是由美國加州大學柏克萊分校於1987年提出的,其概念是將多個硬碟組成一個邏輯虛擬硬碟。操作上和操作單一的一塊硬碟沒有差別。不過實際上,資料是儲存在不同硬碟上的。
磁碟陣列的好處
整合多個硬碟:能將多個小的硬碟整合為一個大的硬碟。
資料具有較高的安全性:磁碟陣列具有修改錯誤的能力。他將校正碼(parity)放在不同的硬碟上,當資料發生問題,即會用到校正碼來恢複未經處理資料。
提高存取效率:當資料寫入的時候,會切割成多個小塊,同時寫在不同的硬碟中,這樣讀資料的時候,能從不同的物理硬碟中讀取,加快了磁碟的I/O速度。
磁碟陣列的分類
Linux磁碟陣列根據檔案的儲存位置分為七種。
Linear:資料會先放在第一塊硬碟,當此用盤空間使用完是,再依次儲存至第2,3……..個硬碟,當資料或硬碟發生故障,此模式不具有容錯的能力。
RAID-0:當寫入資料時,會將資料切割為非常多小塊,並將這些塊的資料分別儲存到每一塊硬碟上。和Linear方式不同,RAID會把資料平均分配到不同的硬碟。因此不具有容錯能力。
RAID-1:此模式會把資料在每一個硬碟上儲存一份,每一個硬碟的資料都一摸相同。
RAID-2:資料會以bit為單位分割,並分別儲存到各個硬碟中,但儲存時此方式會額外保留若干數量的硬碟。,寫入資料時,磁碟陣列會同步計算儲存到各個硬碟的校正碼,然後有將此校正碼放在保留的硬碟上。當有硬碟損壞時,就可利用此校正碼恢複正確地資料,達到容錯的目的。
RAID-3:一份資料會以位元組byte為單位分割,分別儲存到各個硬碟中。此方式會特別保留一個固定的硬碟儲存同位校正碼。但由於是將同位校正碼儲存在同一個硬碟中,因此該硬碟應該有較快的傳輸速度。否則會影響系統效能。
RAID-4:一份資料會被切割成固定大小的區塊,並且分別儲存到每一個硬碟中。此方式和RAID-3比較,除了分割方式不同以外,其他相同,也具有容錯功能。
RAID-5:一份資料會被分割成固定大小的區塊,並分別儲存到每個硬碟中。雖然此方式和RAID-4相同以區塊為單位分割資料,不同的是,RAID-5並不特別保留固定的一個硬碟來儲存校正碼,而是將校正碼分散儲存在所有硬碟中。因此,此方式不會因為儲存校正碼在一塊硬碟上,而影響系統的效能。
4 Linux支援的磁碟陣列
    目前Linux支援Linear、 RAID-0、RAID-1、RAID-4、RAID-5五種磁碟陣列模式。在五種模式中,RAID-4和RAID-5運行方式相近。接下來將周詳介紹Linear、RAID-1、RAID-5磁碟陣列建立過程。
1、 建立linear磁碟陣列
硬體需求:兩塊或以上的硬碟。
建立linear磁碟陣列:
設定檔案為/etc/raidtab
檔案格式如下:
raiddev /dev/md0              指定磁碟陣列的裝置名稱
raid-level       Linear        指定採用的是Linear模式
nr-raid-disks     2           此磁碟陣列由2個硬碟所組成
chunk-size        32         當資料寫入磁碟陣列時,每個寫入區塊的大小
(單位為KB,且必須為2的次方)。由於在Linear
模式中,寫入資料並不分塊,而是循序寫入到同
一磁碟中。
persistent-superblock  1        設定是否要寫入磁碟的superblock,設定成“1”
表示寫入,設定“0”不寫入。
device            /dev/sda2  按實際的情況,指定第一個硬碟分區的名稱
raid-disk          0         設定上述的分區是次磁碟陣列所使用的第一個
硬碟。編號“0”開始。
device            /dev/sdb1  按實際情況,指定第二塊硬碟分區的名稱。
raid-disk         1          設定上述的分區是此磁碟陣列所使用的第二塊
硬碟。
建立好設定檔案後,執行下面命令,初始化剛剛建立的/dev/md0磁碟陣列。
#mkraid /dev/mdo
#mke2fs ?j /dev/md0 格式化磁碟陣列
#mount ?t ext3 /dev/md0  mnt/md0將md0裝載到/mnt/md0下。
    檢查磁碟陣列狀態記錄檔案,停止和啟動磁碟陣列。
    停止磁碟陣列:首先卸下裝載的磁碟陣列
                  #umount  /dev/md0
                  #raidstop  /dev/md0
    啟動磁碟陣列:
                  #raidstart  /dev/md0
    查看磁碟陣列使用狀態:
                  #more /proc/mdstat
    personalities:[linear]
    read_head 1024 sectors
    md0:active linear sda2(1) sdb(0)
    20483524  blocks 32k  rounding
    unused devices:
    上述狀態是磁碟陣列處於運行狀態時的相關資訊。當磁碟陣列沒有處於啟動狀態的時候,顯示的狀態如下:
    personalities:[linear]
    read_ahead 1024 sectors
unused devices:
  刪除磁碟陣列:首先停止磁碟陣列,然後刪除/etc/raidtab檔案即可。
2、 建立RAID-1磁碟陣列
RAID-1磁碟陣列儲存方式,是將同一份資料同時寫到每個硬碟中,那一個硬碟所儲存的資料是一模相同的。
硬體需求:要建立RAID-1磁碟陣列,至少需要2塊硬碟,每一塊硬碟最佳大小一致。這是因為每一個硬碟儲存相同的資料,因此有一個硬碟比其他的容量大時,磁碟著烈也無法使用多出來的硬碟空間。
建立磁碟陣列:本例採用2個硬碟的分區 sda1和sdb1建立磁碟陣列。以下是/etc/raidtab內容。
raiddev /dev/md0              指定磁碟陣列的裝置名稱
raid-level       1            指定採用的是RAID-1模式
nr-raid-disks     2           此磁碟陣列由2個硬碟所組成
nr-spare-disks    0           磁碟陣列備用磁碟數目
chunk-size        4         當資料寫入磁碟陣列時,每個寫入區塊的大小
(單位為KB,且必須為2的次方)。由於在Linear
模式中,寫入資料並不分塊,而是循序寫入到同
一磁碟中。
persistent-superblock  1        設定是否要寫入磁碟的superblock,設定成“1”
表示寫入,設定“0”不寫入。
device            /dev/sda1  按實際的情況,指定第一個硬碟分區的名稱
raid-disk          0         設定上述的分區是次磁碟陣列所使用的第一個
硬碟。編號“0”開始。
device            /dev/sdb1  按實際情況,指定第二塊硬碟分區的名稱。
raid-disk         1          設定
建立好設定檔案後,建立檔案系統、啟動、查看運行狀態等方法和Linear相同。
3、 建立RAID-5磁碟陣列
在此介紹RAID-5,是在RAID-0和RAID-1中取一個平衡點,同時具有容錯能力,也不會浪費太多硬碟空間,並有助於提高磁碟的I/O效能。
硬體需求:
由於RAID-5需要儲存同位校正碼,因此要建立此模式的磁碟陣列,至少需要3塊或以上的硬碟。
建立磁碟陣列:本例以sda1、sdb1、sdc1,3個分區組成RAID-5磁碟,下面是設定檔案/etc/raidtab。
raiddev /dev/md0              指定磁碟陣列的裝置名稱
raid-level       5        指定採用的是Linear模式
nr-raid-disks     3          此磁碟陣列由2個硬碟所組成
nr-spare-disks    0          磁碟陣列備用磁碟數目
chunk-size        32         當資料寫入磁碟陣列時,每個寫入區塊的大小
(單位為KB,且必須為2的次方)。由於在Linear
模式中,寫入資料並不分塊,而是循序寫入到同
一磁碟中。
persistent-superblock  1        設定是否要寫入磁碟的superblock,設定成“1”
表示寫入,設定“0”不寫入。
Parity-algorithm   left-symmetric 指定用哪一種演算法計算同位校正碼,可是用的演算法有:left-symmetric,left-asymmetric,right-symmetric,right-asymmetric4種。一般採用left-symmetric有最佳的儲存效率。
device            /dev/sda1  按實際的情況,指定第一個硬碟分區的名稱
raid-disk          0         設定上述的分區是次磁碟陣列所使用的第一個
硬碟。編號“0”開始。
device            /dev/sdb1  按實際情況,指定第二塊硬碟分區的名稱。
raid-disk         1          設定
device            /dev/sdb1  按實際情況,指定第三塊硬碟分區的名稱。
raid-disk          2          設定
修改完畢設定檔案後依次執行建立磁碟陣列、啟動、停止、查看狀態等操作。
在本章,我們只介紹RAID-Linear、RAID-1、RAID-5、最常用的磁碟陣列設定方法。
至於其他種類的磁碟陣列設定方法,和上面講述的設定方法類似,請讀者自行設定。
最後,我們比較一下上面三種磁碟陣列。
磁碟陣列比較:
磁碟空間:Linear模式最節省磁碟空間,磁碟陣列總空間是所有硬碟的和。
          RAID-1(磁碟映像)最浪費磁碟,因為每個硬碟儲存的資料都相同。
          RAID-5將利用一個磁碟來儲存同位校正碼。因此磁碟容量為n-1個
          磁碟的容量。
讀寫效能:Linear模式中,由於資料是依次存到硬碟上,此方式和一塊硬碟運行
          並沒有什麼不同。此模式也不會提高讀寫效率。如果有多個人把資料
          放在不同的硬碟上,並且同時訪問,那麼就能提高磁碟讀寫效率。
          RAID-1由於每個硬碟都儲存相同的資料,需要耗費較多的CPU時間。
          就會影響寫入的數度。讀資料,由於能從不同硬碟讀出資料,因此理論上會有較快的數度。在RAID-5模式中,由於讀寫資料時,是將資料分成區塊,在以區塊為單          位同步儲存到硬碟中,明顯能提高存取速度。理論速率為n-1不過實際不會達到那麼高的傳輸效率。
容錯能力:Linear磁碟陣列沒有所有容錯能力,如果其中一塊硬碟出現故障,那麼整個磁碟陣列的資料都會丟失。RAID-1有非常好的容錯能力,因為每一塊硬碟的資料都是相同的,所以當一塊硬碟發生故障。系統仍然能繼續工作。RAID-5磁碟陣列,當其中一塊硬碟發生故障,此時能藉助其他硬碟計算出正確地資料,只要不是2塊或2塊以上的硬碟同時發生故障,這是同位校正碼也不足以恢複資料了,意味著資料無法挽救了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.