RAID称为廉价磁盘冗余阵列。RAID的基本想法是把多个便宜的小磁盘组合在一起。成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。
2、级别介绍
RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,具有很高的数据传输率,但它没有数据冗余,并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。
RAID 1又称镜像盘,把一个磁盘的数据镜像到另一个磁盘上,采用镜像容错来提高可靠性,具有raid中最高的数据冗余能力。存数据时会将数据同时写入镜像盘内,读取数据则只从工作盘读出。发生故障时,系统将从镜像盘读取数据,然后再恢复工作盘正确数据。这种阵列方式可靠性极高,但是其容量会减去一半。广泛用于数据要求极严的应用场合,如商业金融、档案管理等领域。只允许一颗硬盘出故障
RAID 4创建需要三块或更多的磁盘,它在一个驱动器上保存校验信息,并以RAID 0方式将数据写入其他磁盘,因为一块磁盘是为校验信息保留的,所以阵列的大小是(N-1)*S,其中S是阵列中最小的驱动器的大小。就像RAID 1中那样,磁盘大小相等。如果一个驱动器出现故障,那么可以使用校验信息来重建所有数据,如果两个驱动器出现故障,那么所有数据丢失。不经常使用这个级别的原因是校验信息存储在一个驱动器上。每次写入磁盘时,都必须更新这些信息。因此,在大量写入数据时很容易造成校验磁盘的瓶颈,所以目前这个级别的RAID很少使用了。
RAID 5在希望结合大量物理磁盘并且仍然保留一些冗余时,RAID5可能是最有用的RAID魔兽。RAID5 可以用在三块或更多的磁盘上,并使用0块或更多的备用磁盘。就像RAID 4一样,得到的RAID5设备的大小是(N-1)*S。RAID5余RAID4之间最大的区别就是校验信息均匀分布在各个驱动器上,如果其中一块磁盘故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果使用备用磁盘,那么在设备出现故障之后,将立即开始同步数据,如果两块磁盘同时故障,那么所有数据都会丢失。RAID5可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。
RAID 6是在RAID 5的基础上扩展而来的,与RAID 5一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个磁盘上。只是RAID 6中增加一块校验磁盘,用于备份分布在各个磁盘上的校验码,这样RAID 6磁盘阵列就允许两个磁盘同时出现故障,所以RAID 6的磁盘阵列最少需要四块硬盘。
RAID 1+0 N(偶数,N>=4)块两两镜像后,在组合成一个RAID 0。容量为N/2,N/2块盘同时写入,写入速度一般,N块盘同时读取,读取速度较快。性能高,可靠性高。
| RAID 0 | RAID 1 | RAID 4 | RAID 5 | RAID 6 | RAID 1+0 |
优 点 | 读取速度快 | 可靠性高 | 可靠性高 读写速度两倍 | 读写速度两倍 | 读写速度两倍 | 读写速度N倍 N为组数 |
缺 点 | 不冗余 数据恢复难 | 读写速度一般 利用率低 | 1. 坏盘时另外2块需要 重新计算还原坏盘数据 2. 校验码盘压力大成为瓶颈 | 坏盘时另外2块需要 重新计算还原坏盘数据 | “部队中有一半是搞后勤的, 感觉有点浪费” | |
可用容量 | 磁盘容量总和 | 磁盘总容量的一半 | (N-1)*S | (N-1)*S | (N-2)*S | 磁盘总容量的一半 |
故障磁盘 | 坏了就完 | 最多一块 | 最多一块 | 最多一块 | 最多两块 | |
磁盘数量 | 最少一块 | 最少两块 | 最少三块 | 最少三块 | 最少四块 | |
用 途 | SWAP/TMP | 数据备份 安装系统 | 用的很少 | 存放网站数据 | 用的很少 | 用的最多 |
3、阵列卡介绍(raid卡)
阵列卡就是用来实现 RAID 功能的板卡,通常是由 I/O 处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。
不同的 RAID 卡支持的 RAID 功能不同,例如支持 RAID 0、RAID 1、RAID 5、RAID 6、RAID10 等
RAID 卡的接口类型:IDE 接口、SCSI 接口、SATA 接口和 SAS 接口
陈列卡的缓存:
缓存(Cache)是 RAID 卡与外部总线交换数据的场所,RAID 卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。
它是 RAID 卡电路板上的一块存储芯片,与硬盘盘片相比,具有极快的存取速度。
缓存的大小与速度是直接关系到 RAID 卡的实际传输速度的重要因素,大缓存能够大幅度地提高数据命中率从而提高 RAID 卡整体性能。
不同的 RAID 卡出厂时配置的内存容量不同,一般为几兆到数百兆容量不等。
配置软RAID
示例配置软件RAID5
1、添加四块20G的新硬盘
2、将四块硬盘分区,全部大小都分一个区
[root@localhost ~]# fdisk -l | grep "dev"
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x0106a596 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘
。
其余三块盘分区参考 ↑ 如上
3、创建RAID5,名字为md5
[root@localhost ~]# fdisk -l | grep "raid"
/dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect
/dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect
/dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect
/dev/sde1 2048 41943039 20970496 fd Linux raid autodetect
[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 -x1 /dev/sd[bcde]1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20953088K
mdadm: Fail create md5 when using /sys/module/md_mod/parameters/new_array
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
4、格式化挂载到/xuexi目录下并设置自动挂载
[root@localhost ~]# mkfs.ext4 /dev/md5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10476544 blocks
523827 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2157969408
320 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, 7962624
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]# mkdir /xuexi
[root@localhost ~]# mount /dev/md5 /xuexi/
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G 1.1G 16G 7% /
devtmpfs devtmpfs 980M 0 980M 0% /dev
tmpfs tmpfs 992M 0 992M 0% /dev/shm
tmpfs tmpfs 992M 9.5M 982M 1% /run
tmpfs tmpfs 992M 0 992M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 130M 885M 13% /boot
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/md5 ext4 40G 49M 38G 1% /xuexi
[root@localhost ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Jul 31 20:27:54 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=256efa3b-96fa-44da-8eb6-5e03494c4392 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/md5 /xuexi ext4 defaults 0 0
5、手动创建RAID配置文件 /etc/mdadm.conf
[root@localhost ~]# mdadm -D -s > /etc/mdadm.conf
[root@localhost ~]# vi /etc/mdadm.conf
ARRAY /dev/md/5 metadata=1.2 spares=1 name=localhost.localdomain:5 UUID=e573ef10:a14cb44a:cdd9c0d1:87276d28 auto=yes