在 Linux 下使用 RAID(四):创建 RAID 5(条带化与分布式奇偶校验)

在 RAID 5 中,数据条带化后存储在分布式奇偶校验的多个磁盘上。分布式奇偶校验的条带化意味着它将奇偶校验信息和条带化数据分布在多个磁盘上,这样会有很好的数据冗余。

在 Linux 中配置 RAID 5

对于此 RAID 级别它至少应该有三个或更多个磁盘。RAID 5 通常被用于大规模生产环境中,以花费更多的成本来提供更好的数据冗余性能。

什么是奇偶校验?

奇偶校验是在数据存储中检测错误最简单的常见方式。奇偶校验信息存储在每个磁盘中,比如说,我们有4个磁盘,其中相当于一个磁盘大小的空间被分割去存储所有磁盘的奇偶校验信息。如果任何一个磁盘出现故障,我们可以通过更换故障磁盘后,从奇偶校验信息重建得到原来的数据。

RAID 5 的优点和缺点

  • 提供更好的性能。
  • 支持冗余和容错。
  • 支持热备份。
  • 将用掉一个磁盘的容量存储奇偶校验信息。
  • 单个磁盘发生故障后不会丢失数据。我们可以更换故障硬盘后从奇偶校验信息中重建数据。
  • 适合于面向事务处理的环境,读操作会更快。
  • 由于奇偶校验占用资源,写操作会慢一些。
  • 重建需要很长的时间。

要求

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

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

在进一步学习之前,我建议你通过下面的文章去了解 Linux 中 RAID 的基础知识。

我的服务器设置


  1. 操作系统 : CentOS 6.5 Final
  2. IP 地址 : 192.168.0.227
  3. 主机名 : rd5.tecmintlocal.com
  4. 磁盘 1 [20GB] : /dev/sdb
  5. 磁盘 2 [20GB] : /dev/sdc
  6. 磁盘 3 [20GB] : /dev/sdd

这是9篇系列教程的第4部分,在这里我们要在 Linux 系统或服务器上使用三个20GB(名为/dev/sdb, /dev/sdc 和 /dev/sdd)的磁盘建立带有分布式奇偶校验的软件 RAID 5。

第1步:安装 mdadm 并检验磁盘

1、 正如我们前面所说,我们使用 CentOS 6.5 Final 版本来创建 RAID 设置,但同样的做法也适用于其他 Linux 发行版。


  1. # lsb_release -a
  2. # ifconfig | grep inet

CentOS 6.5 摘要

2、 如果你按照我们的 RAID 系列去配置的,我们假设你已经安装了“mdadm”包,如果没有,根据你的 Linux 发行版使用下面的命令安装。


  1. # yum install mdadm [在 RedHat 系统]
  2. # apt-get install mdadm [在 Debain 系统]

3、 “mdadm”包安装后,先使用fdisk命令列出我们在系统上增加的三个20GB的硬盘。


  1. # fdisk -l | grep sd

安装 mdadm 工具

4、 现在该检查这三个磁盘是否存在 RAID 块,使用下面的命令来检查。


  1. # mdadm -E /dev/sd[b-d]
  2. # mdadm --examine /dev/sdb /dev/sdc /dev/sdd # 或

检查 Raid 磁盘

注意: 上面的图片说明,没有检测到任何超级块。所以,这三个磁盘中没有定义 RAID。让我们现在开始创建一个吧!

第2步:为磁盘创建 RAID 分区

5、 首先,在创建 RAID 前磁盘(/dev/sdb, /dev/sdc 和 /dev/sdd)必须有分区,因此,在进行下一步之前,先使用fdisk命令进行分区。


  1. # fdisk /dev/sdb
  2. # fdisk /dev/sdc
  3. # fdisk /dev/sdd

创建 /dev/sdb 分区

请按照下面的说明在 /dev/sdb 硬盘上创建分区。

  • 按 n 创建新的分区。
  • 然后按 P 选择主分区。选择主分区是因为还没有定义过分区。
  • 接下来选择分区号为1。默认就是1。
  • 这里是选择柱面大小,我们没必要选择指定的大小,因为我们需要为 RAID 使用整个分区,所以只需按两次 Enter 键默认将整个容量分配给它。
  • 然后,按 P 来打印创建好的分区。
  • 改变分区类型,按 L可以列出所有可用的类型。
  • 按 t 修改分区类型。
  • 这里使用fd设置为 RAID 的类型。
  • 然后再次使用p查看我们所做的更改。
  • 使用w保存更改。

创建 sdb 分区

注意: 我们仍要按照上面的步骤来创建 sdc 和 sdd 的分区。

创建 /dev/sdc 分区

现在,通过下面的截图给出创建 sdc 和 sdd 磁盘分区的方法,或者你可以按照上面的步骤。


  1. # fdisk /dev/sdc

创建 sdc 分区

创建 /dev/sdd 分区


  1. # fdisk /dev/sdd

创建 sdd 分区

6、 创建分区后,检查三个磁盘 sdb, sdc, sdd 的变化。


  1. # mdadm --examine /dev/sdb /dev/sdc /dev/sdd
  2. # mdadm -E /dev/sd[b-c] # 或

检查磁盘变化

注意: 在上面的图片中,磁盘的类型是 fd。

7、 现在在新创建的分区检查 RAID 块。如果没有检测到超级块,我们就能够继续下一步,在这些磁盘中创建一个新的 RAID 5 配置。

Check Raid on Partition

*在分区中检查 RAID *

第3步:创建 md 设备 md0

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


  1. # mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
  2. # mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1 # 或

9、 创建 RAID 设备后,检查并确认 RAID,从 mdstat 中输出中可以看到包括的设备的 RAID 级别。


  1. # cat /proc/mdstat

验证 Raid 设备

如果你想监视当前的创建过程,你可以使用watch命令,将 cat /proc/mdstat 传递给它,它会在屏幕上显示且每隔1秒刷新一次。


  1. # watch -n1 cat /proc/mdstat

监控 RAID 5 构建过程

Raid 5 过程概要

10、 创建 RAID 后,使用以下命令验证 RAID 设备


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

验证 Raid 级别

注意: 因为它显示三个磁盘的信息,上述命令的输出会有点长。

11、 接下来,验证 RAID 阵列,假定包含 RAID 的设备正在运行并已经开始了重新同步。


  1. # mdadm --detail /dev/md0

验证 RAID 阵列

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

12、 在挂载前为“md0”设备创建 ext4 文件系统。


  1. # mkfs.ext4 /dev/md0

创建 md0 文件系统

13、 现在,在/mnt下创建目录 raid5,然后挂载文件系统到 /mnt/raid5/ 下,并检查挂载点下的文件,你会看到 lost+found 目录。


  1. # mkdir /mnt/raid5
  2. # mount /dev/md0 /mnt/raid5/
  3. # ls -l /mnt/raid5/

14、 在挂载点 /mnt/raid5 下创建几个文件,并在其中一个文件中添加一些内容然后去验证。


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

挂载 RAID 设备

15、 我们需要在 fstab 中添加条目,否则系统重启后将不会显示我们的挂载点。编辑 fstab 文件添加条目,在文件尾追加以下行。挂载点会根据你环境的不同而不同。


  1. # vim /etc/fstab
  2. /dev/md0 /mnt/raid5 ext4 defaults 0 0

自动挂载 RAID 5

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


  1. # mount -av

检查 Fstab 错误

第5步:保存 Raid 5 的配置

17、 在前面章节已经说过,默认情况下 RAID 没有配置文件。我们必须手动保存。如果此步中没有跟随不属于 md0 的 RAID 设备,它会是一些其他随机数字。

所以,我们必须要在系统重新启动之前保存配置。如果配置保存它在系统重新启动时会被加载到内核中然后 RAID 也将被加载。


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

保存 RAID 5 配置

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

第6步:添加备用磁盘

18、 备用磁盘有什么用?它是非常有用的,如果我们有一个备用磁盘,当我们阵列中的任何一个磁盘发生故障后,这个备用磁盘会进入激活重建过程,并从其他磁盘上同步数据,这样就有了冗余。

更多关于添加备用磁盘和检查 RAID 5 容错的指令,请阅读下面文章中的第6步和第7步。

结论

在这篇文章中,我们已经看到了如何使用三个磁盘配置一个 RAID 5 。在接下来的文章中,我们将看到如何故障排除并且当 RAID 5 中的一个磁盘损坏后如何恢复。

本文来自合作伙伴“Linux中国”,原文发布日期:2015-08-27

时间: 2024-08-03 00:55:52

在 Linux 下使用 RAID(四):创建 RAID 5(条带化与分布式奇偶校验)的相关文章

在 Linux 下使用 RAID(五):安装 RAID 6(条带化双分布式奇偶校验)

RAID 6 是 RAID 5 的升级版,它有两个分布式奇偶校验,即使两个磁盘发生故障后依然有容错能力.在两个磁盘同时发生故障时,系统的关键任务仍然能运行.它与 RAID 5 相似,但性能更健壮,因为它多用了一个磁盘来进行奇偶校验. 在之前的文章中,我们已经在 RAID 5 看了分布式奇偶校验,但在本文中,我们将看到的是 RAID 6 双分布式奇偶校验.不要期望比其他 RAID 有更好的性能,除非你也安装了一个专用的 RAID 控制器.在 RAID 6 中,即使我们失去了2个磁盘,我们仍可以通过

Linux下用mdadm实现软件RAID

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://navyaijm.blog.51cto.com/4647068/977105   一:简要介绍数据在现今企业中占有重要的地位,数据存储的安全性有而是人们使用计算机要注意的重要问题之一.通常情况下人们在服务器端采用各种冗余磁盘阵列RAID技术来保护数据,中高档的服务器一般都提供了昂贵的硬件RAID控制器,但是很多中小企业没有足够的经费承受这笔开销.我们有没有方法可以通过软件来实现

如何在Linux下使用Gitblit工具创建Git仓库服务

嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性,并且支持分布式.非线性工作流.它最初由Linus Torvalds在2005年为Linux内核设计和开发,使用GPLv2证书,并从此成为软件开发中使用最广泛的版本控制系统. Gitblit是完全开源的软件,它基于纯粹的Java堆栈,被设计以在Git仓库速度和效率方面胜任从小型到极大型的项目.它很容

在 Linux 下使用 RAID(一):介绍 RAID 的级别和概念

RAID 的意思是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),但现在它被称为独立磁盘冗余阵列(Redundant Array of Independent Drives).早先一个容量很小的磁盘都是非常昂贵的,但是现在我们可以很便宜的买到一个更大的磁盘.Raid 是一系列放在一起,成为一个逻辑卷的磁盘集合. 在 Linux 中理解 RAID 设置 RAID 包含一组或者一个集合甚至一个阵列.使用一组磁盘结合驱动器组成 RAID 阵列或 RAID

在 Linux 下使用 RAID(六):设置 RAID 10 或 1 + 0(嵌套)

RAID 10 是组合 RAID 1 和 RAID 0 形成的.要设置 RAID 10,我们至少需要4个磁盘.在之前的文章中,我们已经看到了如何使用最少两个磁盘设置 RAID 1 和 RAID 0. 在这里,我们将使用最少4个磁盘组合 RAID 1 和 RAID 0 来设置 RAID 10.假设我们已经在用 RAID 10 创建的逻辑卷保存了一些数据.比如我们要保存数据 "TECMINT",它将使用以下方法将其保存在4个磁盘中. 在 Linux 中创建 Raid 10(LCTT 译注:

[收藏整理]linux下测试磁盘性能

参考:http://blog.sina.com.cn/s/blog_63ac8a6c0100g21d.html 1.DD 底层测试:从linux安装盘启动,鼠标和键盘启动后按Ctrl+Alt+F1,进入Sh模式 dd读测试 time dd if=/dev/sd* of=/dev/null bs=64k count=64k dd写测试 time dd if=/dev/zero of=/dev/sd* bs=64K count=64k 注:1)参数为bs=64K count=64k时,测试文件大小为

Linux下samba的安装与配置

背景          在window7下面虚拟了一个CentOS6.3,为了学习命令行就没有装图形包,所以我的CentOS是黑屏的那种,呵呵,当然了,VMWare提供 的增强功能我就不能用了(或许能吧,我不知道怎么设置?),正好,就借这个机会逼着自己把samba学习一下,说"逼"一点也不夸张,我从昨天下午6点到 现在8点了都没合眼,当然不睡觉还有其他的原因.下面是我这一夜的成果,写出来给大家看下.一.简介    Samba,是在Unix上实现SMB(Server Message Bl

在 Linux 下使用 RAID(三):用两块磁盘创建 RAID 1(镜像)

RAID 镜像意味着相同数据的完整克隆(或镜像),分别写入到两个磁盘中.创建 RAID 1 至少需要两个磁盘,而且仅用于读取性能或者可靠性要比数据存储容量更重要的场合. 在 Linux 中设置 RAID 1 创建镜像是为了防止因硬盘故障导致数据丢失.镜像中的每个磁盘包含数据的完整副本.当一个磁盘发生故障时,相同的数据可以从其它正常磁盘中读取.而后,可以从正在运行的计算机中直接更换发生故障的磁盘,无需任何中断. RAID 1 的特点 镜像具有良好的性能. 磁盘利用率为50%.也就是说,如果我们有两

在 Linux 下使用 RAID(八):当软件 RAID 故障时如何恢复和重建数据

在阅读过 RAID 系列 前面的文章后你已经对 RAID 比较熟悉了.回顾前面几个软件 RAID 的配置,我们对每一个都做了详细的解释,使用哪一个取决与你的具体情况. 恢复并重建故障的软件 RAID - 第8部分 在本文中,我们将讨论当一个磁盘发生故障时如何重建软件 RAID 阵列并且不会丢失数据.为方便起见,我们仅考虑RAID 1 的配置 - 但其方法和概念适用于所有情况. RAID 测试方案 在进一步讨论之前,请确保你已经配置好了 RAID 1 阵列,可以按照本系列第3部分提供的方法:在 L