天天看點

RAID磁盤陣列

   RAID磁盤陣列(Redundant Arrays of Inexpensive Disks,RAID)

RAID包含:RAID 0、RIAD 1、 RIAD 5、 RAID 1+0(也成RAID 10) 隻介紹常見的幾種企業會用得到的

RAID 0:又稱striping(資料分條技術),通過把連接配接的資料通路分散到多個磁盤上來提高存儲性能,這樣資料請求就可以被多個磁盤 并行的執行。可以并行的讀寫,提供最快的速度,單沒有備援的能力,至少要兩個磁盤,當其中的一個磁盤挂掉了,那整個資料就丢失了。可以用在隻追求速度,而不在乎資料安全的系統上面

RAID 1:又稱為Mirroring(鏡像方式),也就是資料的備援,把同樣的資料同時寫在硬碟中,用得到的容量為1/n,速度變慢,安全性提高,至少要兩塊磁盤,當磁盤壞掉一塊之後,可以通過相對應的磁盤來恢複,(但是不能兩個相對應的磁盤同時壞掉)我們也可以把 raid1了解為備份。

RAID 5:不對存儲的資料進行備份,而是把資料和相對應的奇偶校驗資訊存儲到組成RAID5的各個磁盤上,并且奇偶校驗資訊和相對應的資料分别存儲于不同的磁盤上,當RAID5的一個磁盤資料發送損壞後,利用生效的資料和相應的奇偶校驗資訊區回風被損壞的資料,至少要三塊硬碟,隻能壞一塊,磁盤的使用率為(n-1)/n,當RAID5壞掉一塊後,RAID就不能使用了,必須恢複之後 才能使用,RAID 5的讀出速度高,寫入的速度一般,raid5有容錯的方式(不是備援)。

RAID 1+0(10):是RAID 0和RAID1的組合形式,繼承了RAID 0的速度,又有RAID 1的備援,但是浪費的空間比較大,使用的n/2,提供了安全性和速度,至少要用4塊硬碟磁盤數為雙數,存儲資料的時候,是先進行的RAID 1的方式,在進行RAID 0的方式,資料先并行的寫在一組磁盤,然後下一個資料在并行的寫到下一組磁盤中,可以同時壞掉RAID 1的盤。raid1+0首先創  建2個獨立的Raid1,然後将這兩個獨立的Raid1組成一個Raid0。

說明:RAID分為軟RAID和硬體RAID

硬體RAID:

 硬體RAID的實作,看你主機闆,如果主機闆支援RAID那直接省事,不支援RAID,那直接買RAID卡做RAID。

在主機闆設定開啟raid。按照步驟提示建立

軟體RAID:

 是基于系統的軟體工作不穩定,如果系統壞了,RAID整列也就損壞,容易造成資料丢失

下面我們要講的基于LINUX系統的軟體RAID

在LINUX下管理RAID陣列的工具是mdadm工具

mdadm程式是一個獨立的程式,能完成所有的軟RAID管理功能

主要有7 種使用模式:

Create 使用空閑的裝置建立一個新的陣列,每個裝置具有中繼資料塊

Assemble 将原來屬于一個陣列的每個塊裝置組裝為陣列

Build 建立或組裝不需要中繼資料的陣列,每個裝置沒有中繼資料塊

Manage 管理已經存儲陣列中的裝置,比如增加熱備磁盤或者設定某個磁盤失效,然後從陣列中删除這個

磁盤

Misc 報告或者修改陣列中相關裝置的資訊,比如查詢陣列或者裝置的狀态資訊

Grow 改變陣列中每個裝置被使用的容量或陣列中的裝置的數目

Monitor 監控一個或多個陣列,上報指定的事件

由于這個工具太強大,不能一一為大家講解

我們今天主要講建立任意級别的RAID,和如何删除這個RAID

至于管理就隻有您自己下來找資料研究了

往往廉價的東西,用的人都多

RAID分區的ID是fd

建立RAID的流程:

RAID建立----->RAID管理----->RAID的使用----->RAID的維護

RAID裝置的成員是硬碟的分區,需要先對硬碟格式化,做RAID的效果是用不同的硬碟的分區來做RAID

1、先添加硬碟

我在已有一塊硬碟的基礎上面添加4塊20G的SATA,sdb,sdc,sdd,sde

在對新添加的硬碟進行分區

sdb:sdb1--->10G  sdb2--->10G

sdc:sdc1--->10G  sdc2--->4G  sdc3--->4G   sdc4--->2G

sdd:sdd1--->10G  sdd2--->4G  sdd3--->4G   sdd5--->2G  

sde:sde1--->10G  sde2--->4G  sde3--->4G   sde5--->1G   sde6--->1G

輸入指令 :

fdisk /dev/sdb(對那塊硬碟操作就寫那塊硬碟)

  d   delete a partition     //删除一個分區

  l   list known partition types  //已知的分區類型清單

  m   print this menu          

  n   add a new partition     //添加一個新的分區

  o   create a new empty DOS partition table

  p   print the partition table  //列印分區表

  q   quit without saving changes  //退出但不儲存配置

  s   create a new empty Sun disklabel

  t   change a partition's system id  //改變一個分區的系統辨別

  u   change display/entry units     //改變顯示/條目機關

  v   verify the partition table     //驗證分區表

  w   write table to disk and exit   //儲存

此時作業系統并不知道已經有新的分區了,是以需要探測一下分區的變化

指令partprobe

具體怎麼分區,這裡不再累贅

2、建立raid

RAID 0的建立:空間使用率100%,沒有容錯能力,其中一個磁盤損壞,那麼資料全部丢失,并行的寫到不同的磁盤特點速度快,不安全

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdc4 /dev/sdd5  (把分區中的兩個2G做raid0)

RAID 1的建立:空間使用率50%,容錯能力最強,其中一個磁盤損壞,在另外一個磁盤上有完整的資料

mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdc2 /dev/sdd2

mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1 /dev/sdc3 /dev/sdd3 /dev/sde3(建立帶熱備的raid1)

如果沒有建立帶熱備的raid,當raid的其中一個分區壞掉之後解決的方法:

模拟分區壞掉: mdadm  /dev/md1 -f /dev/sdc2

分區壞掉之後馬上移出去:  mdadm  /dev/md1 -r /dev/sdc2

把新的分區添加到raid中: mdadm /dev/md1 -a /dev/sde2

如果建立熱備的raid,那隻需要把壞掉的分區移出即可,raid1需要兩個分區,熱備也需要一個分區 ,當壞掉一個分區後。熱備分區會立即從spare狀态變為active狀态

RAID 5的建立:空間使用率n-1/n,是保證速度和容錯能力的折中方案,隻允許一個磁盤的資料損壞,超過1個磁盤損壞,資料丢失。

mdadm -C /dev/md5 -a yes -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1

mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1(建立帶熱備的raid5)

RAID 10的建立:

mdadm -C /dev/md0 -l1  -n2 -x1 /dev/sdb1  /dev/sdc1 /dev/sdd1

mdadm -C /dev/md1 -l1  -n2 -x1 /dev/sdb2  /dev/sdc2 /dev/sdd2

mdadm -C /dev/md2 -l1  -n2 -x1 /dev/sdb3  /dev/sdc3 /dev/sdd3

mdadm -C /dev/md3 -l0  -n3 -x1 /dev/md0   /dev/md1  /dev/md2

參數解釋:

-C 代表建立

-l 代表建立的級别

-n 代表活動的分區,也就是你要給這個級别多少個分區

-x 就是熱備份的分區

mdadm的相關指令:mdadm -D /dev/md0  (檢視raid的詳細資訊) -f是删除  -r是移出  -a是添加  -S停用

使軟RAID永久生效

mdadm -D -s >> /etc/mdadm.conf

3、把建立的raid格式化(分區隻有格式化了才能使用)

mkfs -t ext3[ext4]  /dev/md0

4、把raid挂載

mount  /dev/md0  /data/raid0

實作開機挂載

echo "/dev/md0     /data/raid0    ext4    defaults  0 0" >> /etc/fstab

也可以把/dev/md0改成相應的UUID号  /dev/md0 <------> UUID= 26c7f009-f2280f44-69cea438-3125d40a

5、解除安裝raid

先卸掉挂載umount---->在停用raid mdamd -S /dev/md0---->使用超級塊覆寫raid資訊----->mdamd --zero-superblock  /dev/sdb1 /dev/sdc1 /dev/sdd1------>在用fdisk 删除分區

建立:

RAID 0

空間使用率100%,沒有容錯能力,其中一個磁盤損壞,那麼資料全部丢失

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb1 /dev/sdc1

RAID 1(帶熱備盤)

空間使用率50%,容錯能力最強,其中一個磁盤損壞,在另外一個磁盤上有完整的資料

mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1

RAID 5(帶熱備盤)

空間使用率n-1/n,是保證速度和容錯能力的折中方案,隻允許一個磁盤的資料損壞,超過1個磁盤損壞,資料丢失。

mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1

檢視:

mdadm --detail

mdadm -D -s

模拟容錯實驗,以RAID5示例:

破壞一個磁盤

mdadm /dev/md5 -f /dev/sdb1

移除損壞的磁盤

mdadm /dev/md5 -r /dev/sdb1

添加新磁盤

mdadm /dev/md5 -a /dev/sde1

線上添加硬碟或者錄音帶機:

第一步:将新硬碟或者錄音帶機做好實體連接配接;

第二步:在Linux系統中以root使用者運作指令:

echo "scsi add-single-device x y z u" >> /proc/scsi/scsi

其中:

x是硬碟或者錄音帶機所在SCSI控制器号;

y是硬碟或者錄音帶機所在SCSI通道的編号;

z是硬碟或者錄音帶機的SCSI ID号;

u是硬碟或者錄音帶機的lun号預設情況都是0

如果x y z參數不正确,系統是不能識别添加的硬碟和錄音帶機的可以通過 cat /proc/SCSI/SCSI指令來核實是否添加成功。

移除硬碟或者錄音帶機:

第一步:在Linux系統中以root使用者運作指令:

echo “scsi remove-single-device x y z u”> /proc/scsi/scsi

x y z u的定義同上

第三步:實體上斷開硬碟或者錄音帶機連接配接。

建立以個RAID0裝置:

mdadm --create /dev/md0  --level=0  --chunk=32 --raid-devices=3  /dev/sd[i-k]1

建立以個RAID1裝置:

mdadm -C /dev/md0 -l1 -c128 -n2 -x1 /dev/sd[i-k]1

建立以個RAID5裝置:

mdadm -C /dev/md0 -l5  -n5 -x1 /dev/sd[c-g]1    /dev/sdb

建立以個RAID10裝置:

mdadm -C /dev/md0 -l10  -n6 -x1 /dev/sd[b-g]1  /dev/sdh

建立以個RAID1+0裝置:

1.安裝四塊磁盤 分區

rpm -vih mdadm-2.5.4-*

fdisk -l

fdisk /dev/sdb

n

p

t

fd

w

2.做raid5卷

mdadm -Cv /dev/md5 -a yes -n4 l5 /dev/sd[b-e]1

3.做lvm卷

partprobe

pvcreate /dev/md5

vgcreate yan /dev/md5

lvcreate -L 10G -n wei yan

mkfs -ext3 /dev/yan/wei

4.磁盤配額

mkdir /aaa

echo "/dev/yan/wei  /aaa ext3 defaults,usrquota,grpquota 0 0" >> /etc/fstab

mount /dev/yan/wei /aaa

groupadd accp

useradd jerry

useradd -G accp tom

quotacheck -augcv

edquota -u tom

edquota -g accp

quotaon -ugv /aaa

本文轉自 jie783213507 51CTO部落格,原文連結:http://blog.51cto.com/litaotao/1187986,如需轉載請自行聯系原作者

繼續閱讀