RAID
RAID是英文Redundant Array of Independent Disks的縮寫,中文簡稱為獨立冗余磁盤陣列。簡單的說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份技術。組成磁盤陣列的不同方式稱為RAID級別(RAID Levels)。在用戶看起來,組成的磁盤組就像是一個硬盤,用戶可以對它進行分區,格式化等等??傊?,對磁盤陣列的操作與單個硬盤一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬盤高很多,而且可以提供自動數據備份。數據備份的功能是在用戶數據一旦發生損壞后,利用備份信息可以使損壞數據得以恢復,從而保障了用戶數據的安全性
通過把多個磁盤組織在一起作為一個邏輯卷提供磁盤跨越功能;
通過把數據分成多個數據塊(Block)并行寫入/讀出多個磁盤以提高訪問磁盤的速度;
通過鏡像或校驗操作提供容錯能力;
RAID技術分為幾種不同的等級,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、性能和容量的要求。常用的RAID級別有以下幾種:RAID0,RAID1,RAID4 RAID5 RAID6,RAID10,RAID01等。目前經常使用的是RAID5和RAID(1+0)。
RAID-0 :也叫條帶卷,它代表了所有RAID級別中最高的存儲性能。它把數據分塊存儲提高性能,所有也會影響它的冗余能力。
讀寫性能提升
可用空間:N*min(S1,S2,…)
無容錯能力
最少磁盤數:2,2+
RAID-1:也稱鏡像卷,把同一數據分開存儲到2個相同的磁盤里從而提高數據的冗余能力。
讀性能提升、寫略有下降
可用空間:1*nub(S1,S2…)
有容錯能力
最少磁盤數:2,2+
RAID-4: RAID4即帶奇偶校驗碼的獨立磁盤結構,二塊寫入數據,一塊寫入校驗碼,校驗碼磁盤容易損壞,在獨立訪問陣列中,每個磁盤都是獨立運轉的,因此不同的I/O請求可以并行地滿足
RAID-5:和RAID4類似,但它把校驗碼通過運算存儲到各個磁盤上從而提升數據的冗余
讀、寫性能提升
可用空間:(N-1)*min(S1,S2…)
有容錯能力:1塊磁盤
最少磁盤:3,3+
RAID-6:是RAID-5的增強版,通過校驗,讓數據更加冗余安全,但寫入較差
讀、寫性能提升
可用空間:(N-2)*min(S1,S2…)
有容錯能力:2塊磁盤
最少磁盤:4,4+
混合類型
RAID-10: Raid 10是一個Raid 0與Raid1的組合體,它是利用奇偶校驗實現條帶集鏡像,所以它繼承了Raid0的快速和Raid1的安全
讀、寫性能提升
可用空間:N*min(S1,S2,….)/2
有容錯能力:每組鏡像最多只能壞一塊
最少磁盤數:4, 4+
RAID-01:
性能表現:讀、寫提升
冗余能力:有
空間利用率:1/2
至少需要4塊盤
RAID-50:它具有RAID 5和RAID 0的共同特性。它由兩組RAID 5磁盤組成(每組最少3個),每一組都使用了分布式奇偶位,而兩組硬盤再組建成RAID 0,實現跨磁盤抽取數據。
性能表現:讀、寫提升
冗余能力:有
空間利用率:(n-2)/n
至少需要6塊盤
RAID-7 可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立運行,理論上性能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:將多塊磁盤的空間合并以個大的連續空間使用
可用空間:sum(S1,S2,…)
常用級別:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD
RAID實現方式:
硬件實現方式
軟件實現方式
mdadm: 用于建設,管理和監控RAID陣列
語法
mdadm [mode] <raiddevice> [options] <component-devices>
模式:
創建:-C
-a {yes|no}:自動創建目標RAID設備的設備文件
–create或-C –help :查看創建幫助
–chunk= -c #:設置cunk大小
–level= -l #:設置RAID等級
–scan -s #掃描
–spare-devices= -x #:指明空閑盤的個數
–raid-devices= -n #:使用#個塊設備來創建此RAID
顯示: -D
–display或-D –hrlp:獲取顯示幫助
–stop -S
裝配: -A
監控: -F
管理:
-f: 標記指定磁盤為損壞
-a: 添加磁盤
-r: 移除磁盤
做RAID卷時,磁盤分區要分為Linux raid autodetect 用fdisk /dev/[sh]d[a-z] 下 t該為fd分區
[root@Cloud /]#fdisk -l /dev/sdc #查看已經分為Linux raid autodetect分區 Disk /dev/sdc: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x47d02b82 Device Boot Start End Blocks Id System /dev/sdc1 1 654 5253223+ fd Linux raid autodetect #raid分區 /dev/sdc2 655 1308 5253255 fd Linux raid autodetect /dev/sdc3 1309 1962 5253255 fd Linux raid autodetect
創建RAID-5卷
[root@Cloud /]#mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sdc{1,2,3} /dev/sdb1 mdadm: /dev/sdc1 appears to be part of a raid array: level=raid5 devices=3 ctime=Mon Aug 1 22:54:30 2016 mdadm: /dev/sdc2 appears to be part of a raid array: level=raid5 devices=3 ctime=Mon Aug 1 22:54:30 2016 mdadm: /dev/sdc3 appears to be part of a raid array: level=raid5 devices=3 ctime=Mon Aug 1 22:54:30 2016 mdadm: /dev/sdb1 appears to contain an ext2fs file system size=1060256K mtime=Thu Jan 1 08:00:00 1970 mdadm: /dev/sdb1 appears to be part of a raid array: level=raid0 devices=2 ctime=Mon Aug 1 23:26:23 2016 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
顯示創建的RAID卷
[root@Cloud /]#mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Aug 2 00:11:50 2016 Raid Level : raid5 #rai級別 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 #raid存儲設備 Total Devices : 4 #raid全部設備 Persistence : Superblock is persistent Update Time : Tue Aug 2 00:12:35 2016 State : clean, degraded, recovering Active Devices : 2 Working Devices : 4 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K #chunk大小 Rebuild Status : 45% complete Name : Cloud.GO:0 (local to host Cloud.GO) UUID : 39ef8aa5:5b789569:b425534d:a32cc64e Events : 8 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 4 8 35 2 spare rebuilding /dev/sdc3 3 8 17 - spare /dev/sdb1 #備用
模擬損壞磁盤
[root@Cloud /]#mdadm /dev/md0 -f /dev/sdc3 mdadm: set /dev/sdc3 faulty in /dev/md0
查看raid狀態
[root@Cloud /]#cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid0] md0 : active raid5 sdc3[4](F) sdb1[3] sdc2[1] sdc1[0] 10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [======>..............] recovery = 30.8% (1621760/5249024) finish=1.0min speed=57920K/sec unused devices: <none>
[root@Cloud /]#mdadm -D /dev/md0 #查看raid信息 /dev/md0: Version : 1.2 Creation Time : Tue Aug 2 00:11:50 2016 Raid Level : raid5 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Tue Aug 2 00:16:15 2016 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Name : Cloud.GO:0 (local to host Cloud.GO) UUID : 39ef8aa5:5b789569:b425534d:a32cc64e Events : 37 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 3 8 17 2 active sync /dev/sdb1 4 8 35 - faulty /dev/sdc3 #損壞磁盤
移除損壞磁盤
[root@Cloud /]#mdadm /dev/md0 -r /dev/sdc3 mdadm: hot removed /dev/sdc3 from /dev/md0
新增磁盤
[root@Cloud /]#mdadm /dev/md0 -a /dev/sdb2 mdadm: added /dev/sdb2 [root@Cloud /]#mdadm /dev/md0 -a /dev/sdc3 mdadm: added /dev/sdc3
[root@Cloud /]#mdadm -D /dev/md0 #顯示 /dev/md0: Version : 1.2 Creation Time : Tue Aug 2 00:11:50 2016 Raid Level : raid5 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 Total Devices : 5 Persistence : Superblock is persistent Update Time : Tue Aug 2 00:18:31 2016 State : clean Active Devices : 3 Working Devices : 5 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K Name : Cloud.GO:0 (local to host Cloud.GO) UUID : 39ef8aa5:5b789569:b425534d:a32cc64e Events : 40 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 3 8 17 2 active sync /dev/sdb1 4 8 18 - spare /dev/sdb2 #新增的磁盤 5 8 35 - spare /dev/sdc3 #新增的磁盤
生成配置文件: 保存配置。
mdadm –D –s >> /etc/mdadm.conf
radi在掛載的時候盡量使用UUID或lebel掛載,因為raid卷的名字會自動更改!
停止raid服務
[root@Cloud /]#mdadm -S /dev/md0 #停止raid服務 mdadm: stopped /dev/md0 [root@Cloud /]#cat /proc/mdstat #查無raid狀態 Personalities : [raid6] [raid5] [raid4] [raid0] unused devices: <none>
激活raid服務
[root@Cloud /]#cat /proc/mdstat #激活raid服務 Personalities : [raid6] [raid5] [raid4] [raid0] unused devices: <none> [root@Cloud /]#mdadm -A -s /dev/md0 mdadm: /dev/md0 has been started with 3 drives and 1 spare. [root@Cloud /]#cat /proc/mdstat #顯示raid5活躍 Personalities : [raid6] [raid5] [raid4] [raid0] md0 : active raid5 sdc1[0] sdb1[3](S) sdc3[4] sdc2[1] 10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>
徹底刪除raid卷
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc1#刪除成員 [root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc2#刪除成員 [root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc3#刪除成員 [root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdb2#刪除成員 [root@Cloud /MYDATA]#rm -fr /etc/mdadm.conf #刪除配置文件
原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/44370