千家信息网

RAID磁盘阵列的原理与搭建

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。RAID的创建有两种
千家信息网最后更新 2026年11月03日RAID磁盘阵列的原理与搭建

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。

RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡);在企业中用的最多的是:raid1、raid10和raid5。不过随着云的高速发展,供应商一般可以把硬件问题解决掉。

1.1 RAID几种常见的分类

RAID技术经过不断的发展,现在已拥有从RAID0到6七种基本的RAID 级别

RAID 0

数据条带化,无校验

RAID 1

数据镜像,无校验

RAID 2

海明码错误校验及校正

RAID 3

数据条带化读写,校验信息存放于专用硬盘

RAID 4

单次写数据采用单个硬盘,校验信息存放于专用硬盘

RAID 5

数据条带化,校验信息分布式存放

RAID 6

数据条带化,分布式校验并提供两级冗余

另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID1的组合),RAID 50(RAID0与RAID5的组合)等。

注意:不同RAID 级别代表着不同的存储性能、数据安全性和存储成本

RAID01( 0+1)

先做RAID 0,后做RAID 1,同时提供数据条带化和镜像

RAID 10(1+0)

类似于RAID 0+1,区别在于先做RAID 1,后做RAID 0

RAID 50(5+0)

先做RAID 5,后做RAID 0,能有效提高RAID 5的性能

1.2 RAID出现的原因

2.1 RAID-0

条带(strping)

需磁盘数量:2块以上(大小最好相同)

是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可.

特点:

成本低,可以提高整个磁盘的性能和吞吐量。
RAID 0
没有提供冗余或错误修复能力,速度快.

任何一个磁盘的损坏将损坏全部数据;磁盘利用率为100%。


2.2 RAID-1

mirroring(镜像卷)

需要磁盘两块以上 2块 or 3块

原理:是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,(同步)

RAID 1 mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;

磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。如下图



2.3 RAID-5

需要三块或以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将都会损坏。空间利用率: (n-1)/n 2/3 如下图所示

奇偶校验信息的作用:

当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

扩展异或运算:

是用相对简单的异或逻辑运算(相同为0,相异为1)

A值

B值

Xor结果

0

0

0

1

0

1

0

1

1

1

1

0

2.4 RAID10

镜像+条带

RAID10是将镜像和条带进行两级组合的RAID级别,第一级是RAID1镜像对,第二级为RAID 0。RAID10也是一种应用比较广泛的RAID级别。

RAID1+0的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。

先创建raid1,再使用创建的raid1设备创建raid0


2.5 RAID的比较

2.5 RAID的选择


2.6 RAID硬盘失效处理

一般两种处理方法:热备和热插拔

热备:HotSpare

  • 定义:当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性

  • 全局式:备用硬盘为系统中所有的冗余RAID组共享

  • 专用式:备用硬盘为系统中某一组冗余RAID组专用

热插拔:HotSwap

  • 定义:在不影响系统正常运转的情况下,用正常的硬盘物理替换RAID系统中失效硬盘

  • 关键在于热插拔时电子器件的保护机制

如下图所示:是一个全局热备的示例,该热备盘由系统中两个RAID组共享,可自动顶替任何一个RAID中的一个失效硬盘

第3章 RAID卡

RAID卡一般分为硬RAID卡和软RAID卡两种,通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID。通过软件并使用CPU的RAID卡是指使用CPU来完成RAID的常用计算,软件RAID占用CPU资源较高,绝大部分服务器设备是硬件RAID。


3.2 软RAID

管理软raid工具:mdadm

mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令。

常见参数解释:

-C或--creat

建立一个新阵列

-r

移除设备

-A

激活磁盘阵列

-l 或--level=0 1 4 5 6

设定磁盘阵列的级别

D或--detail

-打印阵列设备的详细信息

-n或--raid-devices=

指定阵列成员(分区/磁盘)的数量

-s或--scan

扫描配置文件或/proc/mdstat得到阵列缺失信息

-x或--spare-devicds=

指定阵列中备用盘的数量

-f

将设备状态定为故障

-c或--chunk=

设定阵列的块chunk大小 ,单位为KB

-a或--add

添加设备到阵列

-G或--grow

改变阵型大小或形态

-v --verbose

显示详细信息

-S

停止阵列

Chunk(块): raid存储数据时每个数据段的大小。 4K,64K

3.3 实战:RAID0

环境:添加两个硬盘

环境:添加两个sdb硬盘

添加两个分区:sdb6 sdb7

3.3.1创建raid0

[root@xuegod72 ~]# rpm -qf `whichmdadm`

mdadm-3.3.2-7.el7.x86_64

[root@xuegod72 ~]# mdadm -C -v/dev/md0 -l 0 -n 2 /dev/sdb6 /dev/sdb7

mdadm: chunk size defaults to 512K

mdadm: Defaulting to version 1.2metadata

mdadm: array /dev/md0 started.

3.3.2 查看阵列信息

[root@xuegod72 ~]# mdadm -D

mdadm: No devices given.

[root@xuegod72 ~]# mdadm -Ds

ARRAY /dev/md0 metadata=1.2name=xuegod72:0 UUID=551f2150:ccb1c188:7fcf3cc0:1c9144d3

[root@xuegod72 ~]# mdadm -D /dev/md0

/dev/md0:

Version : 1.2

Creation Time : Mon Oct 24 22:12:25 2016

Raid Level : raid0

Array Size : 2095104 (2046.34 MiB 2145.39 MB)

Raid Devices : 2

Total Devices : 2

Persistence : Superblock is persistent

Update Time : Mon Oct 24 22:12:25 2016

State : clean

Active Devices : 2

Working Devices : 2

Failed Devices : 0

Spare Devices : 0

Chunk Size : 512K

Name : xuegod72:0 (local to host xuegod72)

UUID :551f2150:ccb1c188:7fcf3cc0:1c9144d3

Events : 0

Number Major Minor RaidDevice State

0 8 22 0 active sync /dev/sdb6

1 8 23 1 active sync /dev/sdb7

chunk值: 条带大小 它分有很多"块"(Chunk),如果块尺寸(Chunksize)设置过小就一定会增加占用的块数

我们也可以把这个配置信息保存起来

[root@xuegod72 ~]# mdadm -Ds

ARRAY /dev/md0 metadata=1.2name=xuegod72:0 UUID=551f2150:ccb1c188:7fcf3cc0:1c9144d3

[root@xuegod72 ~]# mdadm -Ds >/etc/mdadm.conf

[root@xuegod72 ~]# cat !$

cat /etc/mdadm.conf

ARRAY /dev/md0 metadata=1.2name=xuegod72:0 UUID=551f2150:ccb1c188:7fcf3cc0:1c9144d3

3.3.3 对创建的RAID0创建分区

分区时,我们给它所有空间

[root@xuegod72 ~]# fdisk /dev/md0

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only,until you decide to write them.

Be careful before using the writecommand.

Device does not contain a recognizedpartition table

Building a new DOS disklabel with diskidentifier 0x6c8bd2c5.

Command (m for help): n

Partition type:

p primary (0 primary, 0extended, 4 free)

e extended

Select (default p):

Using default response p

Partition number (1-4, default 1):

First sector (2048-4190207, default2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G}(2048-4190207, default 4190207):

Using default value 4190207

Partition 1 of type Linux and of size 2GiB is set

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partitiontable.

Syncing disks.

[root@xuegod72 ~]# ls /dev/md*

/dev/md0 /dev/md0p1

3.3.4 格式化分区并挂载

[root@xuegod72 ~]# mkfs.xfs /dev/md0p1

meta-data=/dev/md0p1 isize=256 agcount=8, agsize=65408 blks

= sectsz=512 attr=2, projid32bit=1

= crc=0 finobt=0

data = bsize=4096 blocks=523264,imaxpct=25

= sunit=128 swidth=256 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=0

log =internal log bsize=4096 blocks=2560,version=2

= sectsz=512 sunit=8 blks,lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

[root@xuegod72 ~]# mkdir /raid0

[root@xuegod72 ~]# mount /dev/md0p1/raid0/

[root@xuegod72 ~]# df -h|tail -1

/dev/md0p1 2.0G 33M 2.0G 2% /raid0

3.3.5 开机自动挂载

[root@xuegod72 ~]# umount /raid0/

[root@xuegod72 ~]# mount -a

mount: mount point /radi0 does notexist

[root@xuegod72 ~]# vi /etc/fstab

[root@xuegod72 ~]# mount -a

[root@xuegod72 ~]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda3 206234228 3024100 203210128 2% /

devtmpfs 477820 0 477820 0% /dev

tmpfs 492364 84 492280 1% /dev/shm

tmpfs 492364 7152 485212 2% /run

tmpfs 492364 0 492364 0% /sys/fs/cgroup

/dev/sr0 3947824 3947824 0 100% /media

/dev/sda1 303788 130864 172924 44% /boot

tmpfs 98476 16 98460 1% /run/user/42

tmpfs 98476 0 98476 0% /run/user/0

/dev/md0p1 2082816 33056 2049760 2% /raid0

[root@xuegod72 ~]# tail -1 /etc/fstab

UUID="2c398f3c-462f-4106-a51e-7cadd8ef925b"/raid0 xfs defaults 0 0


数据 磁盘 硬盘 阵列 信息 条带 系统 镜像 冗余 大小 级别 设备 两个 同时 硬件 软件 专用 备用 存储 组合 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 湖南永感互联网科技有限公司 河南真二互联网科技有限公司 互联网与科技金融数据 金融科技创新监管互联网金融 喔噻互联网科技 互联网科技论文 互联网科技博客 承德科技产业互联网发展 银川新华互联网科技职业技术培训学校图片 广州恒生互联网科技有限 互联网科技项目计划书材料类 本届互联网博览会上的黑科技 江苏苏星互联网科技有限公司 四川互联网展示科技馆设计 信承诺互联网科技有限公司 艺电能源互联网科技有限公司招聘 互联网的科技体现在哪里 互联网科技创新创业项目 知域互联网科技有限公司官网 互联网新科技 港股互联网科技股 深圳期待互联网科技 恒银科技与互联网金融 广州富喜互联网络科技 杭州披云加互联网科技有限公司 互联网相关科技技术 中国新注册互联网科技 福仕德教育科技互联网 互联网对科技影响
0