网站搜索

在 Linux 中创建 RAID 5(带分布式奇偶校验的条带化) - 第 4 部分


在 RAID 5 中,数据通过分布式奇偶校验跨多个驱动器进行条带化。分布式奇偶校验的条带化意味着它将奇偶校验信息和条带数据分割到多个磁盘上,从而具有良好的数据冗余。

对于 RAID 级别,它应该至少有三个或更多硬盘。 RAID 5 正在大规模生产环境中使用,它具有成本效益,并提供性能和冗余。

什么是奇偶校验?

奇偶校验是检测数据存储中错误的最简单的常用方法。奇偶校验信息存储在每个磁盘中,假设我们有4个磁盘,4个磁盘中的一个磁盘空间将被分割到所有磁盘上来存储奇偶校验信息。如果任何一个磁盘仍然出现故障,我们可以在更换故障磁盘后通过奇偶校验信息重建来获取数据。

RAID 5 的优点和缺点

  1. 提供更好的性能
  2. 支持冗余和容错。
  3. 支持热备选项。
  4. 使用奇偶校验信息会损失单个磁盘的容量。
  5. 如果单个磁盘发生故障,不会丢失数据。更换故障磁盘后,我们可以通过奇偶校验进行重建。
  6. 适合面向事务的环境,因为读取速度会更快。
  7. 由于奇偶校验开销,写入速度会很慢。
  8. 重建需要很长时间。

要求

创建 Raid 5 至少需要 3 个硬盘,但您可以添加更多磁盘,前提是您拥有具有多端口的专用硬件 raid 控制器。在这里,我们使用软件 RAID 和“mdadm”包来创建 raid。

mdadm是一个允许我们在Linux中配置和管理RAID设备的软件包。默认情况下,没有可用于 RAID 的配置文件,我们必须在创建并配置 RAID 设置后将配置文件保存在名为 mdadm.conf 的单独文件中。

在继续之前,我建议您阅读以下文章以了解 Linux 中 RAID 的基础知识。

  1. Linux 中 RAID 的基本概念 – 第 1 部分
  2. 在 Linux 中创建 RAID 0(条带) – 第 2 部分
  3. 在 Linux 中设置 RAID 1(镜像) – 第 3 部分
我的服务器设置
Operating System :	CentOS 6.5 Final
IP Address	 :	192.168.0.227
Hostname	 :	rd5.tecmintlocal.com
Disk 1 [20GB]	 :	/dev/sdb
Disk 2 [20GB]	 :	/dev/sdc
Disk 3 [20GB]	 :	/dev/sdd

本文是 RAID 系列 9 教程的第 4 部分,在这里我们将使用三个 20GB 磁盘在 Linux 系统或服务器中设置具有分布式奇偶校验的软件 RAID 5命名为 /dev/sdb、/dev/sdc 和 /dev/sdd。

步骤 1:安装 mdadm 并验证驱动器

1. 正如我们之前所说,我们使用 CentOS 6.5 Final 版本进行此 raid 设置,但在任何基于 Linux 的发行版中都可以遵循相同的步骤进行 RAID 设置。

lsb_release -a
ifconfig | grep inet

2. 如果您正在关注我们的 raid 系列,我们假设您已经安装了 'mdadm' 软件包,如果没有,请根据您的 Linux 使用以下命令分发来安装软件包。

yum install mdadm		[on RedHat systems]
apt-get install mdadm 	[on Debain systems]

3. 安装“mdadm”软件包后,让我们列出使用“fdisk”命令添加到系统中的三个 20GB 磁盘。

fdisk -l | grep sd

4. 现在是时候使用以下命令检查连接的三个驱动器上是否存在任何现有 RAID 块。

mdadm -E /dev/sd[b-d]
mdadm --examine /dev/sdb /dev/sdc /dev/sdd

注意:从上图可以看出,还没有检测到超级块。因此,所有三个驱动器中都没有定义 RAID。现在让我们开始创建一个。

步骤 2:为 RAID 磁盘分区

5. 首先,我们必须对磁盘进行分区(/dev/sdb/dev/sdc 和 / dev/sdd),然后再添加到 RAID,因此让我们使用“fdisk”命令定义分区,然后再将其转发到后续步骤。

fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
创建/dev/sdb分区

请按照以下说明在 /dev/sdb 驱动器上创建分区。

  1. 按“n”创建新分区。
  2. 然后选择“P”作为主分区。这里我们选择 Primary,因为还没有定义分区。
  3. 然后选择“1”作为第一个分区。默认情况下,它将是1
  4. 这里对于柱面大小,我们不必选择指定的大小,因为我们需要整个分区用于 RAID,因此只需按两次 Enter 键即可选择默认的完整大小。
  5. 接下来按“p”打印创建的分区。
  6. 更改类型,如果我们需要知道每个可用类型,请按“L”。
  7. 在这里,我们选择“fd”,因为我的类型是 RAID。
  8. 接下来按“p”打印定义的分区。
  9. 然后再次使用“p”打印我们所做的更改。
  10. 使用“w”来写入更改。

注意:我们也必须按照上述步骤为sdcsdd驱动器创建分区。

创建/dev/sdc分区

现在,按照屏幕截图中给出的步骤对 sdcsdd 驱动器进行分区,或者您也可以按照上述步骤进行操作。

fdisk /dev/sdc

创建/dev/sdd分区
fdisk /dev/sdd

6. 创建分区后,检查所有三个驱动器 sdb、sdc 和 sdd 中的更改。

mdadm --examine /dev/sdb /dev/sdc /dev/sdd

or

mdadm -E /dev/sd[b-d]

注意:在上图中。描述类型为 fd,即 RAID。

7. 现在检查新创建的分区中的 RAID 块。如果没有检测到超级块,那么我们可以继续在这些驱动器上创建新的 RAID 5 设置。

步骤3:创建md设备md0

8. 现在创建一个 Raid 设备“md0”(即 /dev/md0),并在所有新创建的分区(sdb1、 sdc1 和 sdd1) 使用以下命令。

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

or

mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1

9. 创建 RAID 设备后,从 mdstat 输出中检查并验证 RAID、包含的设备以及 RAID 级别。

cat /proc/mdstat

如果你想监控当前的构建过程,可以使用'watch'命令,只需将'cat /proc/mdstat'与watch命令一起传递即可每1秒刷新一次屏幕。

watch -n1 cat /proc/mdstat

10. 创建 raid 后,使用以下命令验证 raid 设备。

mdadm -E /dev/sd[b-d]1

注意:上述命令的输出会有点长,因为它打印了所有三个驱动器的信息。

11. 接下来,验证 RAID 阵列,假设我们包含在 RAID 级别中的设备正在运行并开始重新同步。

mdadm --detail /dev/md0

步骤4:为md0创建文件系统

12.在挂载之前使用ext4为“md0”设备创建文件系统。

mkfs.ext4 /dev/md0

13.现在在'/mnt'下创建一个目录,然后将创建的文件系统挂载在/mnt/raid5下并检查挂载点下的文件,您将看到lost+found目录。

mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5/
ls -l /mnt/raid5/

14.在挂载点/mnt/raid5下创建几个文件,并在任一文件中附加一些文本以验证内容。

touch /mnt/raid5/raid5_tecmint_{1..5}
ls -l /mnt/raid5/
echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
cat /mnt/raid5/raid5_tecmint_1
cat /proc/mdstat

15.我们需要在fstab中添加一个条目,否则系统重启后将不会显示我们的挂载点。要添加条目,我们应该编辑 fstab 文件并附加以下行,如下所示。挂载点将根据您的环境而有所不同。

vim /etc/fstab

/dev/md0                /mnt/raid5              ext4    defaults        0 0

16.接下来,运行“mount -av”命令检查fstab条目是否有错误。

mount -av

步骤 5:保存 Raid 5 配置

17. 正如前面要求部分提到的,默认情况下 RAID 没有配置文件。我们必须手动保存它。如果不遵循此步骤,RAID 设备将不会位于 md0 中,而是位于其他随机数中。

因此,我们必须在系统重新启动之前保存配置。如果保存配置,它将在系统重新引导期间加载到内核,并且 RAID 也将被加载。

mdadm --detail --scan --verbose >> /etc/mdadm.conf

注意:保存配置将使 md0 设备中的 RAID 级别保持稳定。

第6步:添加备用驱动器

18.添加备用驱动器有什么用?如果我们有一个备用驱动器,那么它非常有用,如果阵列中的任何一个磁盘发生故障,该备用驱动器将变得活动并重建进程并同步其他磁盘的数据,因此我们可以在这里看到冗余。

有关如何添加备用驱动器和检查 Raid 5 容错能力的更多说明,请阅读以下文章中的#Step 6#Step 7

  1. 将备用驱动器添加到 Raid 5 设置

结论

在本文中,我们了解了如何使用三个磁盘设置 RAID 5。在我即将发表的文章中,我们将了解如何在 RAID 5 中的磁盘发生故障时进行故障排除以及如何更换它进行恢复。