Raid早期叫廉價冗餘磁盤陣列,發展到如今也不廉價了,因此叫獨立磁盤冗餘陣列,他的主要目的是提升讀寫性能和容錯能力,而RAID的主要思想是把多個相對廉價的硬盤接起來,組成一個硬盤陣列,讓操做系統看起來只有一個盤,從而提高磁盤的讀寫性能以及容錯能力.服務器
RAID又分爲軟RAID和硬RAID,軟RAID實際上就是利用軟件模擬出RAID,因此軟RAID對系統的提高不明顯,由於軟RAID的控制基於主機上的cpu,他的讀寫都要通過CPU的控制,而硬RAID基於RAID自己的控制芯片.ide
而他們又分爲RAID0,RAID1,RAID4,RAID5,RAID6,RAID1-0,RAID0-1.性能
RAID0:優化
至少須要兩塊硬盤,他的原理是把計算機本來要儲存的一個文件,以必定的原理分紅兩部分,分別存在兩塊硬盤上,這樣就提高了兩倍的讀寫性能,可是其中一塊磁盤壞了,數據就壞了,因此不利於存放重要的數據,建議使用如出一轍的盤
spa
RAID1:操作系統
至少須要兩塊硬盤,他的原理是把計算機本來要存儲的一個文件,同時存在兩塊硬盤上,每一個硬盤各存一份,這樣寫性能就下降了一半,可是讀性能就提升了一倍,他讀數據的時候從兩塊盤一塊兒讀,但這不是他的主要目的,他的主要目的是容錯,若是其中的一塊盤損壞了,並不影響服務器工做,可是使用率只有50%
3d
RAID4:blog
至少須要3塊盤,計算機把本來要存儲的數據經過必定的計算方式分紅兩部分,分別存在不一樣的兩個磁盤中,第三個磁盤存校驗碼,因此讀寫性能都有提高,容許壞一塊盤,若是損壞一塊數據盤,RAID的控制芯片會根據校驗碼盤和剩餘的一塊數據盤計算出損壞的數據.磁盤利用率爲(n-1)/nget
RAID5:it
在RAID4的基礎上優化而來,至少三塊盤,計算機要存儲數據時經過必定的計算方式分別存在三塊盤中,而三塊盤中又分別存有校驗碼,任何一塊盤損壞了,均可以經過其餘剩餘的兩塊盤計算出損壞盤中的數據,提高了讀寫性能,利用率爲(n-1)/n
RAID6:
與RAID5機制相同,可是至少須要4塊盤,容許一塊盤損壞,利用率爲(n-2)/n
2.Linux上實現軟磁盤陣列
1.建立RAID1級別的磁盤陣列
a.使用fdisk給磁盤分區,這裏分別建立兩個10G大小的虛擬盤:
dd if=/dev/zero of=/dev/sdb bs=510 count=1(這裏是格式化sdb磁盤,因爲筆者以前有用過這個盤,因此先格式化了)
echo -e 'n\np\n1\n \n+10G\nn\np\n2\n \n+10G\nw' | fdisk /dev/sdb
b.格式話完成後,由於咱們是建立RAID陣列,因此磁盤的格式要選擇爲磁盤ID號的fd
c.建立磁盤陣列,這裏是最簡單的RAID1,沒有熱備盤
mdadn -C /dev/md0 -n 2 -l 1 /dev/sdb{1,2}
d.建立完成後查看磁盤陣列
mdadm -D /dev/md0
e.爲該磁盤陣列建立文件系統
mke2fs -t ext4 /dev/md0
f.掛載該文件系統到/mnt/md0,並查看
mount /dev/md0 /mnt/md0
2.磁盤陣列建立完成了,接下來咱們模擬磁盤損壞,看RAID是否有容錯能力
a.複製一些文件到/mnt/md0,並模擬/dev/sdb1磁盤損壞,看損壞一塊磁盤是否影響元數據
b.模擬磁盤/dev/sdb1損壞
mdadm -f /dev/md0 /dev/sdb1
c.在去看看對數據是否有影響
cd /mnt/md0
ls
d.拔出損壞的磁盤,並查看信息
mdadm -r /dev/md0 /dev/sdb1
mdadm -D /dev/md0
e.插回原磁盤,看是否會自動備份數據
mdadm -a /dev/md0 /dev/sdb1
mdadm -D /dev/md0
注:筆者只是有限,有不對的地方或着寫的很差的地方請多多指教.好吧,是我多慮了,也許都沒人看...