概览
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