高级磁盘管理01— RAID概述

概述

RIAD(Redundant Arrays of Independent Disks,RAID,磁盘阵列) – 这项技术最早出现在1988年,当时是加利福尼亚大学伯克利分校首次提出并定义了 RAID 技术的概念,最初是为了组合小的廉价磁盘来代替容量大的昂贵磁盘,同时希望磁盘坏掉时不会丢掉对数据的访问,从而诞生了这样一个数据保护技术。将多块硬盘依靠 RAID 技术组合成一个容量更大、性能更好且拥有磁盘冗余备份功能的「超级硬盘」,这就是 RAID 的作用。在性能(读写速度)、冗余(数据备份还原)、容量(空间利用率)、成本等上面去权衡具体要选择什么级别的 RAID,常见的有RAID 0、RAID 1、RAID 5、RAID 10等,企业当中使用较多的是RAID 1、RAID 5、RAID 10。

RAID 通过两种方式来实现:

  1. 软 RAID – 通过操作系统的软件实现,软 RAID 会占用 CPU 的部分资源
  2. 硬 RAID – 使用专有的阵列卡或者 RAID 卡来实现。有些消费级主板也提供板载 RAID,不过性能比不上专有的硬件 RAID

组建 RAID 所需的磁盘,通常情况下最好是同品牌、同容量、同型号的,这样的组建的 RAID 能够把优势发挥到最大。

RAID 级别

RAID 0 (又称条带模式)

写入的数据会分散存储在不同的硬盘上,相对其他 RAID 级别,该级别的读写性能最好,但没有冗余备份功能,即任何一块磁盘损坏,数据将全部丢失。

  • 需要的磁盘数量:至少需要两块硬盘(n≥2)
  • 可用容量:100%
  • 读写性能:高
  • 冗余备份:无
  • 经济成本:低

假如这里每块硬盘容量都是 1T 的,则可用的硬盘容量为 3T 。比如你要写入 3MiB 的数据,则每块硬盘都单独地写入 1MiB。读取数据的时候也是一样的,从三块硬盘中各取 1MiB 的数据,最后完成 3MIB 数据的读取。

RAID 1 (又称镜像模式)

  • 需要的磁盘数量:至少需要两块硬盘(2n,n≥1)
  • 可用容量:50%
  • 读写性能:低
  • 冗余备份:有
  • 经济成本:高

假如这里的硬盘1和硬盘2都是 1T 的,则可用的硬盘容量为 1T 。

RAID 5(又称分布奇偶校验条带)

  • 需要的磁盘数量:至少三块硬盘(n≥3)
  • 可用容量:总磁盘容量的 (s-1)/s
  • 读写性能:中
  • 冗余备份:有
  • 经济成本:中

它的特点是将数据通过奇偶校验信息保存到不同的硬盘设备上,这样的好处是其中任何一块硬盘坏掉后,都能通过算法将数据还原回来。

假设这里每块硬盘都是 1T 容量,则可用硬盘容量为 3T。

使用的算法为 简单异或逻辑运算(即相同为0,相异为1)

Q:什么是简单异或逻辑算法?

即通过算法计算后,相同值算出来的结果为 0 ,不同值算出来的结果为 1 。如下表所示:

A 值 B 值 结果
0 0 0
0 1 1
1 0 1
1 1 0

比如说您当前拥有四块硬盘且组建了 RAID 5,假设某个位置的数据丢失了,可以通过异或逻辑算法知道它的值。

硬盘 A 硬盘 B 硬盘 C 损坏的硬盘 D
0 0 1 1
1 1 0 0
1 1 1 1

RAID 10(镜像加条带)

既有 RAID 1 的数据冗余,又有 RAID 0的读写性能。

  • 需要的磁盘数量:4n(n≥1)
  • 可用容量:50%
  • 读写性能:中
  • 冗余备份:有
  • 经济成本:非常高

将当前硬盘数量的一半组建第一组 RAID 1,另外一半数量的磁盘组建另外一组 RAID 1,将这两组磁盘结合起来再组建一个 RAID 0,也就是RAID 10。

硬 RAID

硬 RAID 主要有以下的参数:

  1. 支持的 RAID 级别
  2. 支持的硬盘接口以及硬盘数量
  3. 传输速度
  4. 有无缓存以及缓存的容量

Windows 与 GNU/Linux 中的软 RAID

Windows 的软 RAID

  • 基本磁盘:接触最多的就是基本磁盘,可以是 MBR 分区表,也可以是 GPT 分区表。仅支持基础分区功能,无法直接实现软 RAID 或容错。在 Windows 中,管理基本磁盘的对象被称为「分区」
  • 动态磁盘:Windows 2000 后引入的概念,简单来说就是操作系统提供的软 RAID。Windows Server 主要有五个动态磁盘的管理对象,分别是简单卷、跨区卷、带区卷、镜像卷、RAID-5 卷。该功能位于「计算机管理」 —> 「存储」 —> 「磁盘管理」 —> 在不同的磁盘上右键单击即可弹出具体的功能。

基本磁盘转换到动态磁盘‌:可无损转换并保留原有数据
动态磁盘转换到基本磁盘‌:需删除所有卷并导致数据丢失

对象名称 说明
简单卷 动态磁盘的最小存储单位,由单个动态磁盘的连续或非连续空间组成,功能类似基本磁盘的分区。仅限在一块磁盘上调整卷的容量大小,不能跨越磁盘
跨区卷 将多块磁盘的未分配空间组合成一个逻辑卷,可以动态调整逻辑卷的分区大小,无冗余机制。在核心功能上类似 GNU/Linux 中的 LVM
带区卷 即软 RAID 0
镜像卷 即软 RAID 1
RAID-5 卷 即软 RAID 5

GNU/Linux 的软 RAID

在 GNU/Linux 中,可以使用 mdadm 工具来管理软 RAID,mdadm 命令的常用选项有:

  • -C – 建立一个新的阵列
  • -A – 激活磁盘阵列
  • -D – 打印阵列的详细信息
  • -a – 添加设备到阵列
  • -v – 显示详细信息
  • -r – 移除设备
  • -l – 设定磁盘陈列的级别
  • -x – 指定阵列中备用盘的数量
  • -c – 设定阵列块的 chunk 大小,单位为 KB

和单硬盘的分区操作后一样,组建软 RAID 之后,需要挂载才能真正的使用,还需要写入到 /etc/fstab 中永久生效。

chunk:RAID 存储数据时每个数据段的大小,可以手工指定。chunk 过大,不能充分发挥 RAID 的优势;chunk 过小,影响 RAID 的整体性能。需要根据实际的情况去选择具体的大小。关于这个单词术语的翻译,由于翻译为中文会出现歧义,因此作者本人保留为 chunk。

Shell > dnf -y install mdadm

Shell > dnf info mdadm
Name         : mdadm
Version      : 4.2
Release      : 16.el8_10
Architecture : x86_64
Size         : 1.1 M
Source       : mdadm-4.2-16.el8_10.src.rpm
Repository   : @System
From repo    : baseos
Summary      : The mdadm program controls Linux md devices (software RAID arrays)
URL          : http://www.kernel.org/pub/linux/utils/raid/mdadm/
License      : GPLv2+
Description  : 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.
Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇