Linux基礎:RAID詳細介紹

什麼是RAID


RAID:Redundant Arrays of Inexpensive(Independent) Disks 1988年由加利福尼亞大學伯克利分校(University of CaliforniaBerkeley) 「A Case for Redundant Arrays of Inexpensive Disks」 多個磁盤合成一個「陣列」來提供更好的性能、冗餘,或者二者都提供

RAIDide


提升IO能力
        磁盤並行讀寫
提升耐用性
        磁盤沉餘來實現
級別:多塊磁盤組織在一塊兒的工做方式有所不一樣
RAID實現的方式
        外接式磁盤陣列:經過擴展卡提供適配能力
        內接式RAID:主板集成RAID控制器
        安裝OS前在BIOS裏配置
        軟件RAID:經過OS實現

RAID級別工具


RAID-0:條帶卷,strip 
RAID-1: 鏡像卷,mirror 
RAID-2 
RAID-5 
RAID-6 
RAID-10 
RAID-01

RAID級別詳解性能


RAID-0:
    讀寫性能提高
    可用空間:N*min(s1,s2)
    無容錯能力
    最少磁盤:2,2+
RAID-1:
    讀性能提高,寫性能略有降低
    可用空間:1*min(s1,s2)
    有冗餘能力
    最少磁盤數:2,2n
RAID-5:
    讀,寫性能提高
    可用空間:(N-1)*min(s1,s2)
    有容錯能力:容許最多一塊磁盤
    最少磁盤數:3,3+
RAID-6:
    讀,寫性能提高
    可用空間:(N-2)*min(S1,S2,...)
    有容錯能力:容許最多2塊磁盤損壞
    最少磁盤數:4,4+
RAID-10:
    讀,寫性能提高
    可用空間:N*min(S1,S2,...)/2 
    有容錯能力:每組鏡像最多隻能壞一塊
    最少磁盤數:4,4+
RAID-01:
    多塊磁盤先實現RAID0,在組合成RAID1
JBOD:
    Just a Bunch Of Disks
    功能:將多塊磁盤的空間合併一個大的連續空間使用
RAID7:
    能夠理解爲一個獨立存儲計算機,自身帶有操做系統和管理工具,,能夠獨自運行,理論上性能最高的RAID模式
經常使用級別:
    RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

軟RAID測試


mdadm:爲軟RAID提供管理界面
爲空餘磁盤添加冗餘
結合內核中的md
RAID設備可命名爲/dev/md0、/dev/md一、/dev/md二、/dev/md3等

軟件RAID的實現操作系統


mdadm:模式化的工具
命令的語法格式:mdadm [mode] <raiddevice> [options] <componentdevices>
支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10 
模式:
    建立:-C 
    裝配:-A 
    監控:-F
    管理:-f, -r, -a
<raiddevice>: /dev/md# <component-devices>: 任意塊設備

軟件RAID的實現日誌


-C:建立模式
    -n #: 使用#個塊設備來建立此RAID
    -l #:指明要建立的RAID的級別
    -a {yes|no}:自動建立目標RAID設備的設備文件 -a yes[意思是初始化RAID設備]
    -c CHUNK_SIZE: 指明塊大小,單位k
    -x #: 指明空閒盤的個數  
-D:顯示raid的詳解信息
    mdadm -D /dev/md
管理模式:
    -f: 標記指定磁盤爲損壞
    -a: 添加磁盤 
    -r: 移除磁盤 
觀察md的狀態:cat /proc/mdstat

  例:實現RAID0【性能高,可是沒有容錯性,損壞一個硬盤就不能使用】
第一步:用四個硬盤,分別拿出相應的空間大小,分區時注意格式  t     :dd   if=/dev/sda  of=/dev/sdb  bs=1  count=512
第二步:mdadm -C  /dev/md0 -a yes -l0  -n 4   /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1
第三步:在一個是否生成用命令mdadm -D /dev/md0
第四步:先把UUID存起來 mdadm -Ds /dev/md0  >  /etc/mdadm.conf 
第五步:建立文件系統  mkfs.ext4   /dev/md0     blkid就能夠查看了
第六步:建立一個掛載點就能夠掛載了  mkdir /mnt/raid  [永久掛載/etc/fstab]   

例:實現RAID5【五個硬盤一個空閒,四個真正使用,】
第一步: mdadm -C  /dev/md5 -a yes -l5  -n4  -x1 /dev/sd{b,c,d,e}1  /dev/sd...  
第二步:先把UUID存起來 mdadm -Ds /dev/md5 >  /etc/mdadm.conf 
第三步:建立文件系統  mkfs.ext4   /dev/md5    blkid就能夠查看了
第四步:建立文件系統  mkfs.ext4   /dev/md5    blkid就能夠查看了
第五步:建立一個掛載點就能夠掛載了  mkdir /mnt/raid  [永久掛載/etc/fstab] 

模擬磁盤故障
mdadm /dev/md5  -f  /dev/sde1[模擬sde1硬盤損壞]  [mdadm -D /dev/md5 查看狀況] 

移除磁盤 
mdadm /dev/md5 –r /dev/sde1【移除sde1】mdadm /dev/md5 –a /dev/sde1【添加回來sde1】

損壞後加硬盤:mdadm /dev/md5 -a /dev/sde[添加一塊/dev/sde硬盤]  【若是是硬盤直接加就行,若是是分區須要格式化還要t加......】
若是空間不夠想擴展空間  【mdadm -G  /dev/md5 -n  5 -a /dev/sda3   [-G是添加,-n5表明之前是四個如今加到5個 -a 是把那個加到裏面]】
【df查看的是文件系統因此看不到添加後的內存】【xfs_growfs   /mnt/raid5[xfs文件系統後面跟的是掛載點]】
【resize2fs   /dev/md5  etx4文件系統後面跟的是設備名】

軟RAID配置示例 code


使用mdadm建立並定義RAID設備
mdadm -C  /dev/md0 -a yes -l 5 -n 3 -x 1  /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1
用文件系統對每一個RAID設備進行格式化 
mke2fs -j  /dev/md0
測試RAID設備
使用mdadm檢查RAID設備的情況
mdadm --detail|D /dev/md0
增長新的成員
mdadm –G /dev/md0 –n4  -a /dev/sdf1

軟RAID測試和修復 component


模擬磁盤故障
mdadm /dev/md0  -f  /dev/sda1
移除磁盤 
mdadm /dev/md0 –r /dev/sda1
從軟件RAID磁盤修復磁盤故障
    • 替換出故障的磁盤而後開機
    • 在備用驅動器上重建分區 
    • mdadm /dev/md0  -a  /dev/sda1
mdadm、/proc/mdstat及系統日誌信息

軟RAID管理ip


生成配置文件:mdadm –D –s  >> /etc/mdadm.conf
中止設備:mdadm –S /dev/md0
激活設備:mdadm –A –s /dev/md0 激活 
強制啓動:mdadm –R /dev/md0
刪除raid信息:mdadm --zero-superblock /dev/sdb1 

例: 刪除RAID0
首先先取消掛載 umount /mnt/raid0 
而後在刪除 rm -rf /etc/mdadm.conf[這裏是建立時手工添加的]
而後中止設備  mdadm –S /dev/md0  【mdadm –A –s /dev/md0 就激活不了了,由於刪除了/etc/mdadm.conf 這個文件】
而後是清除超級塊mdadm --zero-superblock /dev/sdb1【或mdadm --zero-superblock /dev/sd{c,e,d}1 一下清空】
而後blkid就看不到文件系統了 ,lsblk看一下還能夠看到分區
在完全的就是用dd 清空了:dd if=/dev/zero of=dev/sdb1,dd if=/dev/zero of=dev/sdc1,dd if=/dev/zero of=dev/sde1,dd if=/dev/zero of=dev/sdd1
能夠用二進制確認一下 :hexdump -c /dev/sde1 
注意:寫入/etc下的文件要刪除
相關文章
相關標籤/搜索