目录
RAID技术面向解决方案是什么?
RAID技术的解决方案主要是通过将多个磁盘组合起来,实现数据备份、容错和提高性能。
RAID,即独立磁盘冗余阵列,允许数据在多个硬盘上分割和复制,以提供数据冗余、提高性能和/或增加存储容量。
RAID技术的出现解决了什么?
RAID技术的出现主要是为了解决单个硬盘存储的局限性,如存储容量限制、数据安全性问题以及性能瓶颈。
通过RAID阵列,可以有效地将这些问题分散到多个硬盘上,从而提高整体存储解决方案的可靠性和性能。
RAID的优势包括:
数据冗余和容错性:
通过在不同的硬盘上存储数据的副本或使用奇偶校验信息;
RAID可以在一个或多个硬盘故障时保护数据不丢失,并提高数据恢复的可能性;
提高性能:
通过将数据分散到多个硬盘上并行读写;
RAID可以显著提高数据的吞吐量,特别是在处理大量数据时;
扩大存储容量:
通过将多个硬盘组合成一个逻辑单元,RAID可以提供更大的总存储容量;
灵活性:
RAID阵列可以方便地扩展,只需添加更多的硬盘即可增加存储容量或提高性能;
RAID也存在一些劣势:
成本较高:
实施RAID需要多个硬盘和可能的额外硬件(如RAID控制器),这会增加整体的存储成本;
写入性能可能受影响:
在某些RAID级别(如RAID 5或RAID 6)中,写入操作可能涉及复杂的计算和数据移动,这可能会影响写入性能;
特别是在故障状态下,RAID的重建过程可能会显著降低性能;
管理复杂性:
配置和管理RAID阵列需要一定的专业知识和技能;
错误的配置或管理可能导致数据丢失或阵列失效;
RAID级别解决方案优化对象
级别 | 特点 | 优点 | 缺点 | 优化对象 |
---|---|---|---|---|
RAID 0 | 数据条带化 无数据冗余 | 高性能; 最大化存储容量; 易于配置和维护 | 数据安全性差; 一块硬盘故障将导致整个阵列数据丢失,且数据恢复困难 | 提供了高性能的存储解决方案, 适用于需要大容量和高性能的应用场景。 |
RAID 1 | 数据镜像 完全的数据冗余 | 高数据安全性;数据恢复简单;对于读取操作性能优于单个硬盘 | 存储容量减半; 写入操作性能可能下降 | 确保了数据的安全性, 适用于存储重要数据的应用 |
RAID 3 | 使用专门的校验盘存储校验信息; 数据条带化存储在其余硬盘上 | 读操作性能优异; 适用于数据库和Web服务器等应用 | 写操作性能低于RAID 0; 如果校验盘故障,将影响数据读取性能 | 提供了数据冗余的同时保持了较高的读取性能 |
RAID 5 | 分布式奇偶校验; 数据和校验信息分散存储在多个硬盘上 | 提供了数据冗余; 读取性能优于单个硬盘,且存储容量利用率较高 | 写操作性能可能受到一定影响;因为需要计算校验信息 | 在提供数据冗余的同时,保持了较大的存储容量和较高的读取性能 |
RAID 6 | 双重奇偶校验;可以容忍两块硬盘故障 | 高容错能力; 数据安全性高;支持并行读写操作 | 硬件成本高; 写操作相对较慢 | 提供了极高的数据安全性和容错能力, 适用于企业级服务器和存储系统 |
RAID 01 | 结合了RAID 1和RAID 0的特点; 数据既被镜像又被条带化 | 高性能; 高可靠性; 读取速度得到优化 | 存储效率低; 成本高 | 提供了既高性能又高可靠性的存储解决方案 |
RAID 10 | 多个RAID 0阵列进行镜像 | 高性能; 数据冗余 | 故障容忍性低;存储效率低 | 在保持高性能的同时提供了一定程度的数据冗余。 但需要注意的是,RAID 01的容错能力相对较低,一旦一个RAID 0阵列中的任何一块硬盘出现问题,整个系统都会受到影响 |
一、查看检查mdadm
# all now
[root@localhost ~]# yum clean all && yum makecache && yum repolist
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 526
updates/7/x86_64 CentOS-7 - Updates 5,802
repolist: 16,400
[root@localhost ~]# yum info mdadm
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包
名称 :mdadm
架构 :x86_64
版本 :4.1
发布 :9.el7_9
大小 :439 k
源 :updates/7/x86_64
简介 : The mdadm program controls Linux md devices (software RAID arrays)
网址 :http://www.kernel.org/pub/linux/utils/raid/mdadm/
协议 : GPLv2+
描述 : The mdadm program is used to create, manage, and monitor Linux MD (software
: RAID) devices. As such, it provides similar functionality to the raidtools
: package. However, mdadm is a single program, and it can perform
: almost all functions without a configuration file, though a configuration
: file can be used to help with some common tasks
[root@admin03 ~]# yum install -y mdadm
# 检查madadm是否有安装
[root@localhost ~]# rpm -qa | grep mdadm
mdadm-4.1-9.el7_9.x86_64
二、查看磁盘空间
# 方法一
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 499G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 441.1G 0 lvm /home
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom
# 方法二
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 1.7G 49G 4% /
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/centos-home 441G 33M 441G 1% /home
tmpfs 182M 0 182M 0% /run/user/0
三、磁盘分区
# 所有磁盘都需要格式化
(方法二)
[root@admin03 ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart a 0% 100%
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 21.5GB 21.5GB a
(parted) q
信息: You may need to update /etc/fstab.
(方法二)
[root@admin03 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xdb969711 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): 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.
正在同步磁盘。
# 格式完后再次检查
[root@admin03 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 499G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 441.1G 0 lvm /home
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
sdd 8:48 0 20G 0 disk
└─sdd1 8:49 0 20G 0 part
sde 8:64 0 20G 0 disk
└─sde1 8:65 0 20G 0 part
sr0 11:0 1 4.4G 0 rom
四、创建raid10存储
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
参数 | 含义 |
---|---|
-C | 用于创建新的 RAID 数组 |
-v | 标志用于显示详细信息 |
-a yes | 自动创建设备节点 |
-n 4 | 指定了使用 4 个设备来创建 RAID |
-l 10 | 表示使用 RAID 级别 10(后面跟着的是要加入 RAID 数组的四个分区或磁盘) |
五、格式化RAID
[root@localhost ~]# mkfs -t ext4 /dev/md0
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, 10477056 blocks
523852 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: 完成
六、创建一个挂载点并挂载RAID设备
[root@localhost ~]# mkdir /mnt/raid10
[root@localhost ~]# mount /dev/md0 /mnt/raid10/
[root@localhost ~]# ls /mnt/raid10/
lost+found
七、启动RAID自动挂载
[root@localhost ~]# echo '/dev/md0 /mnt/raid10 ext4 defaults 0 0' | sudo tee -a /etc/fstab
/dev/md0 /mnt/raid10 ext4 defaults 0 0
[root@localhost ~]# tail -2 /etc/fstab
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/md0 /mnt/raid10 ext4 defaults 0 0
八、查看RAID状态
[root@localhost ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Apr 9 18:00:28 2024
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Apr 9 18:14:02 2024
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : c6e2855d:abd60b0f:701dadf9:b6d79405
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde