如何在Linux中配置RAID HDD阵列

Got spare hard disk drives that you want to use more efficiently with your Linux computer? RAID can provide a performance boost, or add redundancy, depending on how it’s configured. Let’s take a quick dive into the multi-disk world.

RAID 101

廉价(或独立)磁盘的冗余阵列(RAID)是驱动器的集合,这些驱动器以内聚方式工作,从而为系统带来好处。这些好处可以是性能,冗余或两者兼而有之。您将遇到的常见配置是RAID 0,RAID 1,RAID 5,RAID 6和RAID10。我们在下面总结了它们。

存在其他配置,但是这些是最常见的。

无论您要使用哪种RAID级别, RAID都不是备份解决方案

尽管它可以帮助您快速恢复并运行并提供另一层保护您的数据,它不能代替实际的备份。 RAID是必须具备高可用性的绝佳用例。

RAID 0:非关键存储

RAID 0通过在多个驱动器之间分条数据来工作。 RAID 0至少需要两个驱动器,但是理论上可以随意添加多个驱动器。由于计算机同时在多个驱动器上写入数据,因此可以提高性能。

您还可以使用不同大小的驱动器。但是,您的阵列将被限制为阵列中最小的驱动器。如果您在RAID 0阵列中具有100GB的驱动器和250GB的带区驱动器,则该阵列的总空间将为200GB。每个磁盘有100 GB的存储空间。

RAID 0非常适合非关键存储,因为它们需要更高的读写速度,而单个磁盘无法提供更高的读写速度。 RAID 0不是容错的。

如果阵列中的任何个驱动器出现故障,您将丢失该阵列中的所有数据。已警告您。

RAID 1:镜像您的硬盘

RAID 1是一个简单的镜像。一个驱动器上发生的任何事情都将在另一驱动器上发生。尽管RAID 1不会带来性能优势,但是每个驱动器上都有一个精确的数据副本,这意味着RAID 1具有冗余优势。只要阵列中的一个驱动器处于活动状态,您的数据便会保持完整

阵列的最大大小将等于阵列中最小驱动器的大小。如果RAID 1阵列中有100GB的驱动器和250GB的驱动器,则该阵列的总空间将为100GB。仅需牢记此成本影响。

RAID 5和6:性能和冗余

RAID 5和6将提供性能和冗余。数据与奇偶校验信息一起分布在驱动器上。 RAID 5总共使用一个驱动器的奇偶校验值,而RAID 6使用两个。如果数据不再可用,则使用奇偶校验数据,计算机可以重新计算其他数据块之一的数据。这意味着RAID 5可能会丢失单个驱动器,而RAID 6可能会在任何单个时间点使两个驱动器发生故障。

在存储方面,这意味着RAID 5和6将等于总驱动器大小减去一个。驱动器和两个驱动器。因此,如果您有四个容量为100GB的驱动器,则RAID 5中的阵列大小将为300GB,而RAID 6则为200GB。

RAID 5至少需要三个驱动器,而RAID 6则需要四个驱动器。虽然您可以混合和匹配硬盘驱动器大小,但该阵列会将所有磁盘视为阵列中最小驱动器的大小。不幸的是,如果驱动器发生故障,则阵列仍可运行,您将能够访问所有数据。此时,您将需要换出死驱动器并重建阵列。

在降级状态下,该阵列的运行速度将比平时慢,并且在磁盘阵列出现故障之前使用它并不是一个好主意。

RAID 10:带区卷和镜像

RAID 10基本上是RAID 1 +0。这是这些级别的组合。您将需要成对磁盘才能实现此目的。数据在两个磁盘之间进行条带化,然后将其镜像到另一组磁盘上。您将从RAID 0获得性能优势,并从RAID 1获得冗余。

在Linux中配置RAID

可以在硬件或软件级别上配置所有这些冗余特性。硬件要求使用RAID控制器,通常可在服务器级硬件中找到该RAID控制器。幸运的是,Linux具有RAID的软件版本。原理是相同的,但是请记住,与RAID控制器相比,开销将在CPU上。

我们将仅使用终端窗口,一些驱动器和以下内容,逐步介绍RAID 5配置。一些决心。准备就绪后,打开带有您最喜欢的shell的终端窗口,然后键入:

sudo apt install mdadm

准备驱动器

在我们的示例中,为简单起见,我们将使用三个1GB驱动器(实际上,这些将会更大)。使用以下终端命令检查哪些磁盘已连接到系统:

sudo fdisk -l

从输出中,我们可以看到 sda 作为启动驱动器,而 sdb,sdd sdc 刚刚连接到系统。

现在,我们需要对这些磁盘进行分区。确保备份您表弟的毕业照片,而不要备份这些驱动器,因为这是一个破坏性的过程。在终端中,输入:

sudo fdisk /dev/sdb

然后我们需要使用以下输入进行回答:

  • n:添加新分区
  • 1:将此数字分配给分区
  • t:更改分区类型
  • fd:这是RAID分区类型
  • w:保存更改并退出
  • 对其余两个驱动器执行完全相同的步骤。即 / dev / sdc / dev / sdd 。现在,我们需要将所做的更改告知操作系统:

    sudo partprobe /dev/sdb

    然后执行以下操作:

    sudo partprobe /dev/sdcsudo partprobe /dev/sdd

    设置RAID 5

    让我们快速进行一下现在看分区表。再次运行:

    fdisk -l

    太棒了!我们的驱动器及其分区已准备好进行RAID版本!

    要在RAID 5中对其进行设置,请运行:

    mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

    仔细查看语法:

  • mdadm:我们使用的工具
  • C:这是创建RAID阵列的开关
  • / dev / md0:要将阵列池化的位置
  • 级别:所需的RAID级别
  • raid-device:设备数量及其位置
  • 我们可以通过键入以下内容来查看RAID的详细信息:

    sudo mdadm --detail /dev/md0

    最后一步将是为阵列创建一个文件系统,并将其挂载,以便我们可以实际使用它!要格式化阵列并分配可访问的位置,请键入:

    sudo mkfs.ext4 /dev/md0sudo mkdir /data

    安装阵列

    有两个安装新阵列的选项。第一个是临时的,这将要求在每次启动计算机时都将其安装。或者,您可以永久安装它,以便在每次重新启动时都安装它。要临时挂载,请输入:

    mount /dev/md0 /data/

    如果您希望保留存储,则需要编辑/ etc / fstab文件,并确保添加如下图所示的行:

    sudo nano /etc/fstab

    保存并关闭文件后,刷新安装表:

    sudo mount -a

    然后我们可以通过键入以下内容来查看已安装的设备:

    df -h

    恭喜!您已成功创建RAID阵列,对其进行了格式化并安装了它。现在,您可以像使用其他目录一样使用该目录,并获得好处!

    RAID故障排除

    还记得我们所说的冗余好处吗?好吧,如果驱动器发生故障怎么办?使用mdadm,可以使用 mdadm -r 开关删除发生故障的驱动器。希望您的主板支持驱动器的热交换,并且您可以插入替换驱动器。

    按照上面的 fdisk 命令,您可以设置新驱动器。只需使用 mdadm -a 开关将新驱动器添加到阵列中即可。您的阵列现在将开始重建。因为这是RAID 5,所以所有数据都应该存在,甚至在驱动器不可用时也可以使用。

    是否需要RAID?

    上表列出了RAID的一些可能使用情况可能对您有益。如果您有推动该需求的业务需求,那么可能值得考虑使用硬件RAID控制器或FreeNAS等选件来更好地满足您的需求。

    如果您正在寻找一种经济高效的方式来压缩这种需求一些额外的性能或为家庭提供另一层冗余,mdadm可能是值得的选择。

    您当前是否使用RAID?您多久检查一次硬盘?您是否有数据丢失的恐怖故事?

    标签: Linux RAID