Day-06-磁盘划分RAID

本文深入探讨了RAID(独立冗余磁盘阵列)技术,包括RAID 0、RAID 1、RAID 5和RAID 10的原理与特性。通过实例演示如何使用mdadm命令创建RAID 10和RAID 5磁盘阵列,以及在磁盘损坏后的修复过程,强调了RAID技术在数据冗余备份和性能提升上的重要性。
摘要由CSDN通过智能技术生成

➢ RAID(独立冗余磁盘阵列)
➢ LVM(逻辑卷管理器)

RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)技术方案的特性,并通过实际部署 RAID 10、RAID 5+备份盘等方案来更直观地查看 RAID 的强大效果,以便进一步满足生产环境对硬盘设备的 IO 读写速度和数据冗余备份机制的需求。同时,考虑到用户可能会动态调整存储资源,通过LVM(Logical Volume Manager,逻辑卷管理器)的部署、扩容、缩小、快照以及卸载删除的相关知识。

7.1 RAID 独立冗余磁盘阵列
由于硬盘设备需要进行持续、频繁、大量的 IO 操作,相较于其他设备,其损坏几率也大幅增加,导致重要数据丢失的几率也随之增加。因此,RAID 技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
RAID 技术确实具有非常好的数据冗余备份功能,但是它也相应地提高了成本支出。就像原本我们只有一个电话本,但是为了避免遗失,我们将联系人号码信息写成了两份,自然要为此多买一个电话本,这也就相应地提升了成本支出。RAID 技术的设计初衷是减少因为采购硬盘设备带来的费用支出,但是与数据本身的价值相比较,现代企业更看重的则是 RAID 技术所具备的冗余备份机制以及带来的硬盘吞吐量的提升。也就是说,RAID 不仅降低了硬盘设备损坏后丢失数据的几率,还提升了硬盘设备的读写速度。目前已有的 RAID 磁盘阵列的方案至少有十几种, 最常用的有RAID 0、RAID 1、RAID 5 与 RAID 10

RAID分类:
硬RAID,性能较高。他们采用 PCI Express 卡物理地提供有专用的 RAID 控制器。它不会使用主机资源。他们有 NVRAM 用于缓存的读取和写入。缓存用于 RAID 重建时,即使出现电源故障,它会使用后备的电池电源保持缓存
软RAID,性能较低,因为其使用主机的资源。 需要加载 RAID 软件以从软件 RAID 卷中读取数据。在加载RAID 软件前,操作系统需要引导起来才能加载 RAID 软件。在软件 RAID 中无需物理硬件。零成本投资。

7.1.1 RAID 0(读写性能有提升,无冗余能力,空间利用率100%,至少需要两块磁盘)
RAID 0 技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。通俗来说,RAID 0 技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。数据被分别写入到不同的硬盘设备中,即 disk1 和 disk2 硬盘设备会分别保存数据资料,最终实现提升读取、写入速度的效果。

7.1.2 RAID 1(读性能有提升,写性能有所下降,有冗余能力,两块盘空间利用率 50%,三块盘空间利用率只有 33%左右,至少需要两块磁盘)
增加了数据的安全性,把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。同时将数据写入多块磁盘,在一定程度上增加了系统计算功能的负载。

7.1.3 RAID 5(读写性能有提升,冗余能力有,空间利用率(n-1)/n,至少需要3块磁盘)
RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID5 磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;图中 parity 部分存放的就是数据的奇偶校验信息,换句话说,就是 RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。RAID 这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。

7.1.4 RAID 01 条带+镜像存储(读写性能有提升,冗余能力有,空间利用率50%,至少需要4块盘)
Disk1与Disk3组成第一组RAID 0,Disk3与Disk4组成第二组RAID 0,然后这两组再整合成
为一组RAID 1。

7.1.5 RAID 10 镜像+条带存储(读写性能有提升,冗余能力有,空间利用率50%,至少需要4块盘)
RAID 5 技术是因为硬盘设备的成本问题对读写速度和数据的安全性能而有了一定的妥协,而企业更在乎的是数据本身的价值而非硬盘价格,因此生产环境中主要使用RAID 10 技术。
RAID 10 技术是 RAID 1+RAID 0 技术的一个“组合体”。RAID10 技术需要至少 4 块硬盘来组建,其中先分别两两制作成 RAID 1 磁盘阵列,以保证数据的安全性;然后再对两个 RAID 1 磁盘阵列实施 RAID 0 技术,进一步提高硬盘设备的读写速度。坏的不是同一组中的所有硬盘,那么最多可以损坏 50%的硬盘设备而不丢失数据。

7.1.5 部署磁盘阵列(部署RAID 10)
mdadm 命令用于管理 Linux 系统中的软件 RAID 硬盘阵列,格式为“mdadm [模式]

mdadm命令创建RAID 10,名称为 “/dev/md0”。

[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
第二步:RAID磁盘阵列格式化为 ext4 格式
[root@localhost ~]# mkfs.ext4 /dev/md0
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
2621440 inodes, 10477312 blocks
523865 blocks (5.00%) reserved for the super user
First data block=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: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
第三步:创建挂载点进行挂载
[root@localhost ~]# mkdir /RAID
[root@localhost ~]# mount /dev/md0 /RAID
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/CentOS-root 18G 3.0G 15G 17% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 84K 914M 1% /dev/shm
tmpfs 914M 8.9M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/md0 40G 49M 38G 1% /RAID
第四步:挂载信息查询,并写入配置文件,永久生效
[root@localhost ~]# mdadm D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue May 5 07:43:26 2017
Raid Level : raid10———————————–>RAID类别
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue May 5 07:46:59 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
[root@localhost ~]# echo “/dev/md0 /RAID ext4 defaults 0 0” >> /etc/fstab

7.1.6 损坏磁盘阵列及修复
确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用 mdadm 命令将其移除,然后查看 RAID 磁盘阵列的状态,可以发现状态已经改变。
[root@localhost ~]# mdadm /dev/md0 -f /dev/sdb // -f 模拟/dev/sdb损坏
mdadm: set /dev/sdb faulty in /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri May 8 08:11:00 2017
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri May 8 08:27:18 2017
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name :localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0
Events : 21
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
0 8 16 – faulty /dev/sdb

    企业中,在 RAID 10 级别的磁盘阵列中 RAID 1 磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用 mdadm 命令来予以替换即可,在此期间我们可以在/RAID 目录中正常地创建或删除文件。
虚拟机中模拟硬盘,需要先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。

[root@localhost ~]# umount /RAID
[root@localhost ~]# mdadm /dev/md0 -a /dev/sdb—————>检测设备名称
[root@localhost ~]# mdadm -D /dev/md0———————->查看RAID信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 30 00:08:56 2017
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Jan 30 00:19:53 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : d3491c05:cfc81ca0:32489f04:716a2cf0
Events : 56
Number Major Minor RaidDevice State
4 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
[root@nebulalinux ~]# mount –a

7.1.7 磁盘阵列+备份盘
RAID 10 磁盘阵列中最多允许 50%的硬盘设备发生故障,但是存在这样一种极端情况,即同一 RAID 1 磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。也就是RAID 1 中的两块盘全部损坏,数据则丢失。
RAID备份盘可以预防事故。核心是理念准备一块足够大的硬盘,这块硬盘平时处于闲置状态,一旦 RAID 磁盘阵列中有硬盘出现故障后则会马上自动顶替上去。

创建 RAID 5 磁盘阵列(3块)+备份盘(1块)

参数-n 3 代表创建这个 RAID5 磁盘阵列所需的硬盘数
参数-l 5 代表 RAID 的级别
参数-x 1 则代表有一块备份盘
第一步:mdadm命令创建 RAID 5,和一块备份盘,名称为 “/dev/md0”。
[root@localhost ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@nebulalinux ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri May 8 09:20:35 2017
Raid Level : raid5
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri May 8 09:22:22 2017
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : localhost.com:0 (local to host localhost.com)
UUID : 44b1a152:3f1809d3:1d234916:4ac70481
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
第二步:RAID 5 磁盘阵列格式化为 ext4 格式
[root@localhost ~]# mkfs.ext4 /dev/md0
第三步:RAID 5 磁盘阵列挂载
[root@localhost ~]# mkdir /RAID
[root@localhost ~]# mount /dev/md0 /RAID
第四步:RAID 5 磁盘阵列永久挂载
[root@localhost ~]# echo ” /dev/md /RAID ext4 defaults 0 0” >> /etc/fstab
[root@localhost ~]# mount -a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值