TranslateProject/translated/tech/RAID/Part 6 - Setting Up RAID 10 or 1+0 (Nested) in Linux.md

11 KiB
Raw Blame History

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

RAID 10 是结合 RAID 0 和 RAID 1 形成的。要设置 RAID 10我们至少需要4个磁盘。在之前的文章中我们已经看到了如何使用两个磁盘设置 RAID 0 和 RAID 1。

在这里我们将使用最少4个磁盘结合 RAID 0 和 RAID 1 来设置 RAID 10。假设我们已经在逻辑卷保存了一些数据这是 RAID 10 创建的如果我们要保存数据“apple”它将使用以下方法将其保存在4个磁盘中。

Create Raid 10 in Linux

在 Linux 中创建 Raid 10

使用 RAID 0 时它将“A”保存在第一个磁盘“p”保存在第二个磁盘下一个“P”又在第一个磁盘“L”在第二个磁盘。然后“e”又在第一个磁盘像这样它会继续循环此过程将数据保存完整。由此我们知道RAID 0 是将数据的一半保存到第一个磁盘,另一半保存到第二个磁盘。

在 RAID 1 方法中,相同的数据将被写入到两个磁盘中。 “A”将同时被写入到第一和第二个磁盘中“P”也将被同时写入到两个磁盘中下一个“P”也将同时被写入到两个磁盘。因此使用 RAID 1 将同时写入到两个磁盘。它将继续循环此过程。

现在大家来了解 RAID 10 怎样结合 RAID 0 和 RAID 1 来工作。如果我们有4个20 GB 的磁盘,总共为 80 GB但我们将只能得到40 GB 的容量,另一半的容量将用于构建 RAID 10。

RAID 10 的优点和缺点

  • 提供更好的性能。
  • 在 RAID 10 中我们将失去两个磁盘的容量。
  • 读与写的性能将会很好,因为它会同时进行写入和读取。
  • 它能解决数据库的高 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

Verify 4 Added Disks

验证添加的4块磁盘

注意: 在上面的输出中,如果没有检测到 super-block 意味着在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 创建一个新的分区。

  • n 创建新的分区。
  • 然后按 P 选择主分区。
  • 接下来选择分区号为1。
  • 只需按两次回车键选择默认值即可。
  • 然后,按 P 来打印创建好的分区。
  • L列出所有可用的类型。
  • t 去修改分区。
  • 键入 fd 设置为 Linux 的 RAID 类型,然后按 Enter 确认。
  • 然后再次使用p查看我们所做的更改。
  • 使用w保存更改。

Disk sdb Partition

为磁盘 sdb 分区

注意: 请使用上面相同的指令对其他磁盘(sdc, sdd sdd sde)进行分区。

4.创建好4个分区后需要使用下面的命令来检查磁盘是否存在 raid。

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

或者

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

Check All Disks for Raid

检查磁盘

注意: 以上输出显示,新创建的四个分区中没有检测到 super-block这意味着我们可以继续在这些磁盘上创建 RAID 10。

第2步: 创建 RAID 设备 md

5.现在改创建一个md即 /dev/md0设备使用“mdadm” raid 管理工具。在创建设备之前必须确保系统已经安装了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

Create md raid Device

创建 md raid 设备

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

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

8.接下来,使用以下命令来查看 RAID 阵列的详细信息。

# mdadm --detail /dev/md0

Check Raid Array Details

查看 Raid 阵列详细信息

注意: 你在上面看到的结果,该 RAID 的状态是 active 和re-syncing。

第3步创建文件系统

9.使用 ext4 作为md0的文件系统并将它挂载到/mnt/raid10下。在这里我用的是 ext4你可以使用你想要的文件系统类型。

# mkfs.ext4 /dev/md0

Create md Filesystem

创建 md 文件系统

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

Mount md Device

挂载 md 设备

11.要想自动挂载,打开‘/etc/fstab文件并添加下面的条目挂载点根据你环境的不同来添加。使用 wq! 保存并退出。

# vim /etc/fstab

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

AutoMount md Device

挂载 md 设备

12.接下来在重新启动系统前使用mount -a来确认/etc/fstab文件是否有错误。

# mount -av

Check Errors in Fstab

检查 Fstab 中的错误

第四步:保存 RAID 配置

13.默认情况下 RAID 没有配置文件,所以我们需要在上述步骤完成后手动保存它。

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

Save Raid10 Configuration

保存 Raid10 的配置

就这样我们使用方法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

List 4 Devices

列出了 4 设备

2.将4个磁盘使用fdisk命令进行分区。对于如何分区您可以按照 #步骤 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

Examine 4 Disks

检查 4 个磁盘

第1步创建 RAID 1

4.首先使用4块磁盘创建2组 RAID 1一组为sdb1sdc1另一组是sdd1sde1

# 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

Creating Raid 1

创建 Raid 1

Check Details of Raid 1

查看 Raid 1 的详细信息

第2步创建 RAID 0

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

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

Creating Raid 0

创建 Raid 0

第3步保存 RAID 配置

6.我们需要将配置文件保存在‘/etc/mdadm.conf文件中使其每次重新启动后都能加载所有的 raid 设备。

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

在此之后我们需要按照方法1中的#第3步来创建文件系统。

就是这样我们采用的方法2创建完了 RAID 1+0.我们将会失去两个磁盘的空间,但相比其他 RAID ,它的性能将是非常好的。

结论

在这里,我们采用两种方法创建 RAID 10。RAID 10 具有良好的性能和冗余性。希望这篇文章可以帮助你了解 RAID 10嵌套 RAID 的级别)。在后面的文章中我们会看到如何扩展现有的 RAID 阵列以及更多精彩的。


via: http://www.tecmint.com/create-raid-10-in-linux/

作者:Babin Lonston 译者:strugglingyouth 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出