天天看點

Linux系統Mdadm管理指令詳解之一RAID0

一、RAID的簡單介紹

RAID(Redundant Arrays Inexpensive Disks) ,便宜的備援磁盤陣列

RAID級别

0 :(stripe)條帶模式,至少需要兩塊硬碟,每一份資料平均分成多份存儲在多個磁盤中,且都處于一個水準條帶上

    優點:讀寫速度提高

    缺點:無備援能力(也稱容錯能力)

    空間使用率:多個磁盤的總和

1:(mirror)鏡像模式,磁盤數量需要2的倍數,兩個磁盤中存儲的資料完全一緻,當一個盤損壞時,資料依然可以進行讀寫

    優點:讀速度提高,有備援能力   

    缺點:磁盤使用率 隻有50%,寫的速度下降

5:check code校驗碼模式,至少需要三塊硬碟,每一次存儲資料時,采用條帶模式存儲到n-1數量的磁盤中,另外一個磁盤存放的是其他幾個磁盤中的資料以某種加密方式之後得出的加密資料,且每一次存儲,存儲加密資料的磁盤都是不斷變化的,當其中任何一個盤的資料損壞時,都可以通過加密方式和其餘兩塊磁盤的資料來得知另外一個盤的資料,具有較高的備援能力      

    優點:讀寫速度快,有備援能力

    缺點:磁盤使用率為n-1/n,兩個磁盤損壞時,資料将丢失

01:stripe+mirror模式,至少需要4快硬碟,先将兩塊硬碟組成Raid0,然後将兩組Raid0組成Raid1,存儲一份資料時,每一個Raid0的組合都需要存儲以分完整的資料,然後Raid0組合的磁盤再進行條帶化平分存儲

    優點:讀寫速度快,備援能力強

    缺點:磁盤使用率為50%

10:mirror+stripe模式,至少需要4快硬碟,先将兩塊硬碟組成Raid1,然後将兩組Raid1組合成Raid0,存儲一分資料時,每一Raid1的組合存儲的資料都是均分的,然後Raid1組合再用mirror模式存儲

    優點:讀寫速度快,備援能力強

    缺點:磁盤使用率為50%

   相比于Raid01來說,存儲的資料更快一點,

    Raid01存儲時間=存儲一份完整的資料的時間+再存儲一半的資料的時間

    Raid10存儲時間=存儲一半的資料的時間+再存儲一半的資料時間

50:check code+stripe模式,至少需要6快硬碟,先分别組成兩個Raid5組合,然後再組成Raid0,存儲一份資料時,每一個Raid5組合存儲的資料時均分的,然後Raid5組合再将資料以一個磁盤存儲加密資料,另外的磁盤條帶化存儲

    優點:讀寫速度快,備援能力強

    缺點:磁盤使用率為n-2/n

另外一種存儲方式:JBOD

Jbod:(Just a bunch of disks)将多個硬碟組成一個系統,可以随時擴充

  特點:資料簡單的從第一個磁盤開始存儲, 當第一個磁盤的存儲空間用完後, 再依次從後面的磁盤開始存儲資料。存取性能完全等同于對單一磁盤的存取操作。不提供資料安全保障。它隻是簡單的提供一種利用磁盤空間的方法,存儲容量等于組成Jbod的所有磁盤的容量的總和

    性能表現無提升

    備援能力無

    磁盤使用率為100%

二、利用mdadm組建軟RAID

    mdadm:

    特點:可以将任何塊裝置做成RAID,是一個模式化指令

Synopsis:

    mdadm   [MODE]   /dev/md#  [ Options ]... /PATH/TO/DEV

MODE 為模式,預設為管理模式

/dev/md#為快裝置檔案,建立RAID時需要指定一個塊裝置檔案,後面用來挂載,一般都會放在/dev/md#,#代表raid級别

/PATH/TO/DEV:用來指定組建RAID的塊裝置

mdadm模式介紹:

1).建立模式  -C

   常用指令為  mdadm -C  /dev/md# [options]  /PATH/TO/DEV

    對于options,常用的選項如下:

    -l  #    指定RAID的級别

    -n #    指定組建RAID的個數

    -a   {yes|no}    自動為其建立裝置檔案,使用時需要加上yes或者no

    -c  #    指定chunk塊的大小,預設為64k

    -x #    指定空閑盤的個數,當一個盤損壞時,空閑盤會自動補上

          注意:指定RAID的數量和空閑盤數量後,後面的/PATH/TO/DEV的裝置塊數量要比對

example

     mdadm -C /dev/md0 -l 0 -n 2 -a yes /dev/sda{1,2}

    組建一個RAID0,且RAID子產品的塊裝置檔案指定為/dev/md0,且自動為其建立塊裝置檔案

    實作步驟:

   1.首先建立兩個塊裝置檔案

      dd if=/dev/zero of=/tmp/loop10 seek=511 bs=1M count=1

      dd if=/dev/zero of=/tmp/loop11 seek=511 bs=1M count=1

      losetup /dev/loop10 /tmp/loop10

      losetup /dev/loop11 /tmp/loop11

     我們利用dd指令建立兩個檔案,大小都為512M,再利用losetup 指令将兩個檔案建立為回環裝置

  2.将兩個塊裝置檔案組成RAID0

     mdadm -C /dev/md0 -l 0 -n 2 -a yes /dev/loop{10,11}

  3.檢視是否建立成功

    cat /proc/mdstat

Linux系統Mdadm管理指令詳解之一RAID0

 可以看到建立成功,版本為1.2,支援Raid0 到raid10,md0裝置激活成功,模式為raid0,兩個裝置塊分别為loop10和loop11

  4.為Raid裝置塊/devmd0建立檔案系統

Linux系統Mdadm管理指令詳解之一RAID0

  mkfs為建立檔案系統的指令,ext4為檔案系統的類型,-b指定檔案系統中資料塊的大小,-L指定卷标,-m指定預留給超級管理者的容量,按百分比計算,當使用-E stride=#時,用來指定chunk/block的比列,如mkfs.ext4 -E stride=16 -b 4096 /dev/md0

則表示,chunk為16*4096b=64k

從上圖可以看出,建立成功後,條帶stripe的大小為256個資料塊,也就是256*4k=1M,檔案系統總工包含261120個資料塊,總共1G,%3的資料塊用來保留給超級使用者,其中有8個塊組,每一個塊組分别有32768個資料塊,超級資料塊存儲在32768等4個塊中

5.挂載Raid0到/mnt

  mount  /dev/md0 /mnt

 挂載之後就可以進行資料存儲了

2).管理模式

    mdadm 指令預設在管理模式下進行

   其中options選項如下:

    -f |--fail 模拟損壞RAID組合中的塊裝置

          用法:mdadm /dev/md0 -f /dev/loop10

     -r  移除RAID

     -a  加入新盤

         一般用于RAID模式中的某個磁盤損壞後,加入一個新盤用來修複

     -D|--detail  檢視RAID的詳細資訊

          mdadm -D /dev/md0

     -S  /dev/md#  用來停用磁盤陣列

     -A /dev/md# 啟用磁盤陣列

     -D --scan  兩個指令結合:用來掃描磁盤陣列

Linux系統Mdadm管理指令詳解之一RAID0

注意:RAID0無法模拟損壞,因為RAID0模式下損壞一個裝置後,資料會直接丢失

練習:

    停用RAID裝置/dev/md,在啟動

  注意:在停用RAID時必須要先解除安裝該裝置

   1.先檢視RAID目前的狀态,然後解除安裝RAID裝置

Linux系統Mdadm管理指令詳解之一RAID0

可以看出,目前有一個RAID0,我們先解除安裝

umont  /mnt

2.停用RAID

Linux系統Mdadm管理指令詳解之一RAID0

3.啟用RAID

Linux系統Mdadm管理指令詳解之一RAID0

注意在啟用RAID之前,我們需要先将RAID的配置資訊儲存至RAID配置檔案中,/etc/mdadm.conf

儲存方法: mdadm -D --scan > /etc/mdadm.conf

隻有儲存在RAID配置檔案後,才可以使用mdadm -A 啟用RAID

繼續閱讀