概覽
RAID,獨立磁盤冗余陣列(redundant array of independent disks)。
由加利福尼亞大學伯克利分校(University of California-Berkeley)在1988年提出,是一種多硬盤存儲數據的技術,能大幅度提高數據傳輸效率和容錯能力。
特點
-
將數據分塊存儲在多個磁盤(邏輯上是一個磁盤),讀取數據時從多個磁盤同時獲取,能夠大幅提高數據傳輸效率。
-
通過鏡像或奇偶校驗的方式提高數據的冗余能力。
RAID0
簡介:
RAID 0 不算真正意義上的RAID結構,它沒有數據冗余,沒有數據校驗的能力。實現RAID 0至少需要兩塊以上的硬盤,它將兩塊以上的硬盤合並成一塊邏輯硬盤,數據同時分散存儲在每塊硬盤上。 因為帶寬加倍,所以讀/寫速度加倍, 但RAID 0在提高性能的同時,並沒有提供數據保護功能,只要任何一塊硬盤損壞就會丟失所有數據。適用於追求性能,對數據安全不太敏感的行業。
虛擬機添加硬盤:
-
點擊編輯虛擬機設置
-
點擊添加----->選擇添加硬盤------>點擊下一步
-
選擇磁盤類型為SCSI
4.選擇創建新虛擬磁盤
5.指定磁盤容量這里選擇指定大小和是否立即分配磁盤空間
- 指定磁盤存儲的位置,點擊完成磁盤就添加完成了(需要添加兩塊)
Linux划分磁盤陣列
第一步:fdisk -l
查看未分配的磁盤空間(可以看到/dev/sdc /dev/sdb並未分配)
第二步:創建RAID 0
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sdb /dev/sdc
第三步:格式化文件系統為ext4
[root@localhost ~]# mkfs.ext4 /dev/md0
第四步:創建掛載點,掛載磁盤md0
[root@localhost ~]# mkdir /raid0
[root@localhost ~]# mount /dev/md0 /raid0
[root@localhost ~]# df -h
ok!raid0 創建成功,容量為40G
RAID1
簡介
RAID1是將一個兩塊硬盤所構成RAID磁盤陣列,其容量僅等於一塊硬盤的容量,因為另一塊只是當作數據“鏡像”。RAID 1是最可靠的一種陣列,因為它總是保持一份完整的數據備份。它的性能自然沒有RAID 0那樣好,但其數據讀取還是較單一硬盤來的快,因為數據會從兩塊硬盤中較快的一塊中讀出。RAID 1磁盤陣列的寫入速度通常較慢,因為數據得分別寫入兩塊硬盤中並做比較。RAID 1磁盤陣列一般支持“熱交換”,就是說陣列中硬盤的移除或替換可以在系統運行時進行,無須中斷退出系統。
磁盤陣列的划分
首先虛擬機添加磁盤(略),然后查看未分配的磁盤空間
[root@localhost ~]# fdisk -l
創建RAID1
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 2 -l 1 /dev/sdb /dev/sdc
格式化文件系統掛載
[root@localhost ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
文件系統標簽=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5238528 blocks
261926 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]# mkdir /raid1
[root@localhost ~]# mount /dev/md0 /raid1
[root@localhost ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 13M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 3.9G 14G 23% /
/dev/sda1 1014M 172M 843M 17% /boot
tmpfs 394M 24K 394M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/md0 20G 45M 19G 1% /raid1
RAID5
簡介
數據以塊為單位分布到各個硬盤上。RAID 5不對數據進行備份,而是把數據和與其相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據損壞后,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
原理
例如如下四塊硬盤組成RAID5,向其中寫入1234567891011121314,raid5會將數據分塊存儲到sda、sdb、sdc、sdd中,其中留出一個磁盤存儲校驗數據塊
假如sdb這塊磁盤掛掉了,根據校驗數據塊可以推出,他存儲的數據為2、6、12,校驗數據塊為28。
很明顯,掛掉一塊問題不大,要是同時掛掉兩塊就沒辦法了。當然raid5的校驗肯定不是加減法而是與或運算,這里就不展開說了。
陣列划分
同理,需要添加三塊磁盤,然后查看未分配的磁盤
划分陣列
[root@localhost ~]# mdadm -Cv /dev/md0 -n 3 -l 5 /dev/sdb /dev/sdc /dev/sdd
格式化文件系統、創建掛載,掛載
[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /raid5
[root@localhost ~]# mount /dev/md0 /raid5
[root@localhost ~]# df -h
RAID10
raid10就是raid 1 + raid 0即串聯在一起的鏡像陣列。
配置方法
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /raid10
[root@localhost ~]# mount /dev/md0 /raid10