1:磁盘阵列:
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
2:分类:
磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。
外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。
利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。
3:RAID级别:
区块,一般chunk可设定为4k~1M之间,不同的raid会根据chunk数量来切割符合大小后并保存到不同的磁盘去.
/dev/md0 一般只有软raid才这么表示`硬raid很可能不显示,设定在raid卡处理
硬raid做的raid0很可能会导致容量过大的500G和100G会产生有400G无法使用.磁盘效能要最大化,磁盘大小尽量相等
raid0 带区,并联,分散存储,性能好/稳定差.
raid1 镜像,并联,数据备份,稳定好/写入性能弱/读取性能好.
raid01 先带区再镜像
raid10 先镜像再带区,容错比01好,强烈建议,并因为不需要像如raid5做数据校验找回,读写性能会更好.
raid4 3个带区,1个校验,性能+一定安全.>=3块硬盘 读写频繁
raid5 至少3个磁盘以上,校验分布在各个磁盘, 丢哪个根据冗余计算可恢复,奇偶校验有性能+ 安全
spare disk 坏的磁盘马上恢复备用硬盘
4:创建RAID5磁盘阵列
操作环境CentOS 7.3(虚拟机)
首先准备多个磁盘,最少3个,这里我们准备4个,第四个作为备份,当有磁盘坏掉后,第四块备份的硬盘会自动顶替坏掉的硬盘修复数据。因为是做实验磁盘大小都分区为2个G。
创建RAID5阵列:
[ root@localhost ~ ]#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,e,f}1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
//-C /dev/md0:因为是软raid所有硬盘名为md0,虚拟机必须这样设置,不然添加不了
// -l 5: 创建阵列为raid5
// -n 3 -x1 :3块主硬盘,-x1:备用硬盘1块
// /dev/sd{b,c,e,f}1: sdb1、sdc1、sde1、sdf 1:4块磁盘
####查看硬盘信息:lsblk
[ root@localhost ~ ]#lsblk
sdb 8:16 0 50G 0 disk
└─sdb1 8:17 0 2G 0 part
sdc 8:32 0 60G 0 disk
└─sdc1 8:33 0 2G 0 part
sdd 8:48 0 80G 0 disk
sde 8:64 0 50G 0 disk
└─sde1 8:65 0 2G 0 part
sdf 8:80 0 50G 0 disk
└─sdf1 8:81 0 2G 0 part
sr0 11:0 1 1024M 0 rom
//带有md0的都是刚刚创建的raid5阵列的磁盘
查看raid5阵列磁盘详细信息:mdadm -D /dev/md0
[ root@localhost ~ ]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Aug 20 11:25:02 2017
Raid Level : raid5
Array Size : 4190208 (4.00 GiB 4.29 GB)
Used Dev Size : 2095104 (2046.00 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Aug 20 11:25:10 2017
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Rebuild Status : 49% complete
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f2998446:399a4adf:1e1b584d:a7ac7c37
Events : 8
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 65 2 spare rebuilding /dev/sde1
3 8 81 - spare /dev/sdf1
格式化raid5,创建文件系统格式并挂载使用
[ root@localhost ~ ]#mke2fs -t ext4 /dev/md0 //格式化成ext4格式
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
262144 inodes, 1047552 blocks
52377 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 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
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
挂载使用:
[ root@localhost ~ ]#mount /dev/md0 /mnt
[ root@localhost ~ ]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/cl-root 52403200 1155216 51247984 3% /
devtmpfs 488984 0 488984 0% /dev
tmpfs 499968 0 499968 0% /dev/shm
tmpfs 499968 6844 493124 2% /run
tmpfs 499968 0 499968 0% /sys/fs/cgroup
/dev/sda1 1038336 141664 896672 14% /boot
/dev/mapper/cl-software 10475520 32944 10442576 1% /software
tmpfs 99996 0 99996 0% /run/user/0
/dev/md0 4058816 16376 3816548 1% /mnt
测试raid5的效果
[ root@localhost /mnt ]#dd if=/dev/zero of=/mnt/f1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 6.91397 s, 155 MB/s
[ root@localhost /mnt ]#dd if=/dev/zero of=/root/1.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 27.5494 s, 39.0 MB/s
//因为是在机械硬盘上,第一条是在raid5阵列测试,第二条是机械硬盘测试,效果一般般
模拟一块硬盘坏掉
[ root@localhost /mnt ]#mdadm /dev/md0 -f /dev/sdb1
// 模拟把sdb1硬盘弄坏
mdadm: set /dev/sdb1 faulty in /dev/md0
[ root@localhost /mnt ]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Aug 20 11:25:02 2017
Raid Level : raid5
Array Size : 4190208 (4.00 GiB 4.29 GB)
Used Dev Size : 2095104 (2046.00 MiB 2145.39 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Aug 20 11:38:33 2017
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Rebuild Status : 6% complete
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f2998446:399a4adf:1e1b584d:a7ac7c37
Events : 21
Number Major Minor RaidDevice State
3 8 81 0 spare rebuilding /dev/sdf1
1 8 33 1 active sync /dev/sdc1
4 8 65 2 active sync /dev/sde1
0 8 17 - faulty /dev/sdb1
// 确实坏了,我们的sdf1自动顶配上去恢复数据去了