网站搜索

在 Linux 中设置 RAID 10 或 1+0(嵌套) - 第 6 部分


RAID 10RAID 0RAID 1 的组合,形成RAID 10。要设置 Raid 10,我们至少需要 4 个磁盘。在我们之前的文章中,我们了解了如何使用至少 2 个磁盘设置 RAID 0 和 RAID 1。

在这里,我们将使用 RAID 0 和 RAID 1 来执行至少 4 个驱动器的 Raid 10 设置。假设我们将一些数据保存到使用 RAID 10 创建的逻辑卷中。仅举个例子,如果我们要保存数据“apple”,则该数据将保存在所有 4 个磁盘下这个下面的方法。

使用RAID 0,它将在第一个磁盘中保存为“A”,在第二个磁盘中保存为“p”,然后再次“p”第一个磁盘中为“”,第二个磁盘中为“l”。然后在第一个磁盘中“e”,这样它将继续循环过程来保存数据。由此可知,RAID 0会将一半数据写入第一个磁盘,另一半数据写入第二个磁盘。

RAID 1方法中,相同的数据将写入其他2个磁盘,如下所示。 “A”将写入第一和第二个磁盘,“P”将写入两个磁盘,同样,其他“P”将写入两个磁盘。因此,使用 RAID 1 时,它将写入两个磁盘。这将在循环过程中继续进行。

现在大家都知道 RAID 10 是如何通过结合 RAID 0 和 RAID 1 来工作的。如果我们有 4 个 20 GB 大小的磁盘,总共将是 80 GB,但我们只会获得 40 GB 的存储容量,构建 RAID 10 将损失一半的总容量。

RAID 5 的优点和缺点

  1. 提供更好的性能。
  2. 我们将释放 RAID 10 中的两个磁盘容量。
  3. 读取和写入会非常好,因为它会同时对所有这 4 个磁盘进行写入和读取。
  4. 它可用于需要高 I/O 磁盘写入的数据库解决方案。

要求

在 RAID 10 中,我们至少需要 4 个磁盘,前 2 个磁盘用于 RAID 0,其他 2 个磁盘用于 RAID 1。就像我之前所说,RAID 10 只是 RAID 0 和 1 的组合。如果我们需要扩展 RAID组,我们必须至少增加 4 个磁盘。

我的服务器设置
Operating System :	CentOS 6.5 Final
IP Address	 	:	192.168.0.229
Hostname	 	:	rd10.tecmintlocal.com
Disk 1 [20GB]	 	:	/dev/sdd
Disk 2 [20GB]	 	:	/dev/sdc
Disk 3 [20GB]	 	:	/dev/sdd
Disk 4 [20GB]	 	:	/dev/sde

设置 RAID 10 有两种方法,但这里我将向您展示这两种方法,但我更喜欢您遵循第一种方法,这使得设置 RAID 10 的工作变得更加容易。

方法 1:设置 Raid 10

1. 首先,使用以下命令验证是否已检测到所有添加的 4 个磁盘。

ls -l /dev | grep sd

2. 一旦检测到四个磁盘,就可以在创建新磁盘之前检查驱动器是否已经存在任何 raid。

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

注意:在上面的输出中,您会看到尚未检测到任何超级块,这意味着所有 4 个驱动器中都没有定义 RAID。

第 1 步:RAID 驱动器分区

3. 现在使用“fdisk”工具在所有 4 个磁盘(/dev/sdb、/dev/sdc、/dev/sdd 和 /dev/sde)上创建一个新分区。

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

让我向您展示如何使用 fdisk 对其中一个磁盘 (/dev/sdb) 进行分区,所有其他磁盘的步骤也相同。

fdisk /dev/sdb

请使用以下步骤在 /dev/sdb 驱动器上创建新分区。

  1. 按“n”创建新分区。
  2. 然后选择“P”作为主分区。
  3. 然后选择“1”作为第一个分区。
  4. 接下来按“p”打印创建的分区。
  5. 更改类型,如果我们需要知道每个可用类型,请按“L”。
  6. 在这里,我们选择“fd”,因为我的类型是 RAID。
  7. 接下来按“p”打印定义的分区。
  8. 然后再次使用“p”打印我们所做的更改。
  9. 使用“w”来写入更改。

注意:请使用上述相同的说明在其他磁盘(sdc、sdd sdd sde)上创建分区。

4. 创建所有 4 个分区后,您需要再次使用以下命令检查驱动器中是否存在任何现有的 raid。

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

OR

mdadm --examine /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm --examine /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

注意:上面的输出显示在所有四个新创建的分区上没有检测到任何超级块,这意味着我们可以继续在这些分区上创建 RAID 10驱动器。

第 2 步:创建“md”RAID 设备

5. 现在是时候使用“mdadm”raid 管理工具创建“md”(即 /dev/md0)设备了。在创建设备之前,您的系统必须安装“mdadm”工具,如果没有安装,请先安装它。

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

安装“mdadm”工具后,您现在可以使用以下命令创建“md”raid 设备。

mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1

6. 接下来使用“cat”命令验证新创建的 raid 设备。

cat /proc/mdstat

7. 接下来,使用以下命令检查所有 4 个驱动器。以下命令的输出会很长,因为它显示了所有 4 个磁盘的信息。

mdadm --examine /dev/sd[b-e]1

8. 接下来,借助以下命令检查 Raid 阵列的详细信息。

mdadm --detail /dev/md0

注意:您在上面的结果中看到,Raid 的状态为活动并重新同步。

第三步:创建文件系统

9. 使用 ext4 为“md0”创建一个文件系统,并将其挂载到“/mnt/raid10”下。在这里,我使用了 ext4,但如果您愿意,您可以使用任何文件系统类型。

mkfs.ext4 /dev/md0

10. 创建文件系统后,将创建的文件系统挂载到“/mnt/raid10”下,并使用“ls -l”命令列出挂载点的内容。

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

接下来,在挂载点下添加一些文件,并在任一文件中附加一些文本并检查内容。

touch /mnt/raid10/raid10_files.txt
ls -l /mnt/raid10/
echo "raid 10 setup with 4 disks" > /mnt/raid10/raid10_files.txt
cat /mnt/raid10/raid10_files.txt

11. 对于自动挂载,请打开“/etc/fstab”文件并在 fstab 中附加以下条目,挂载点可能会根据您的环境而有所不同。使用 wq! 保存并退出。

vim /etc/fstab

/dev/md0                /mnt/raid10              ext4    defaults        0 0

12. 接下来,在使用“mount -a”命令重新启动系统之前验证“/etc/fstab”文件是否有任何错误。

mount -av

步骤 4:保存 RAID 配置

13.默认情况下RAID没有配置文件,因此我们需要在完成上述所有步骤后手动保存它,以便在系统启动时保留这些设置。

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

就这样,我们使用方法1创建了RAID 10,这种方法比较简单。现在让我们继续使用方法 2 设置 RAID 10。

方法2:创建RAID 10

1.在方法2中,我们必须定义2组RAID 1,然后我们需要使用这些创建的RAID 1组来定义RAID 0。在这里,我们要做的是首先创建 2 个镜像 (RAID1),然后在 RAID0 上进行条带化。

首先,列出所有可用于创建 RAID 10 的磁盘。

ls -l /dev | grep sd

2. 使用“fdisk”命令对所有 4 个磁盘进行分区。对于分区,您可以按照上面的#step 3进行操作。

fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

3. 对所有 4 个磁盘进行分区后,现在检查磁盘中是否存在任何现有的 raid 块。

mdadm --examine /dev/sd[b-e]
mdadm --examine /dev/sd[b-e]1

第 1 步:创建 RAID 1

4. 首先让我使用 4 个磁盘“sdb1”和“sdc1”创建 2 组 RAID 1,使用“sdd1”和“sde1”创建其他组。

mdadm --create /dev/md1 --metadata=1.2 --level=1 --raid-devices=2 /dev/sd[b-c]1
mdadm --create /dev/md2 --metadata=1.2 --level=1 --raid-devices=2 /dev/sd[d-e]1
cat /proc/mdstat

步骤2:创建RAID 0

5. 接下来,使用 md1 和 md2 设备创建 RAID 0。

mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/md1 /dev/md2
cat /proc/mdstat

步骤 3:保存 RAID 配置

6.我们需要将配置保存在“/etc/mdadm.conf”下,以便在每次重新启动时加载所有raid设备。

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

之后,我们需要按照方法1的#step 3创建文件系统。

就是这样!我们使用方法 2 创建了 RAID 1+0。这里我们将释放两个磁盘空间,但与任何其他 raid 设置相比,性能将非常出色。

结论

这里我们使用两种方法创建 RAID 10。 RAID 10 也具有良好的性能和冗余性。希望这可以帮助您了解 RAID 10 Nested Raid 级别。让我们在接下来的文章中了解如何扩展现有的 raid 阵列以及更多内容。