在 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 译注:原图有误,已修正)

RAID 10 是先做镜像,再做条带。因此,在 RAID 1 中,相同的数据将被写入到两个磁盘中,“T”将同时被写入到第一和第二个磁盘中。接着的数据被条带化到另外两个磁盘,“E”将被同时写入到第三和第四个磁盘中。它将继续循环此过程,“C”将同时被写入到第一和第二个磁盘,以此类推。

(LCTT 译注:原文中此处描述混淆有误,已经根据实际情况进行修改。)

现在你已经了解 RAID 10 怎样组合 RAID 1 和 RAID 0 来工作的了。如果我们有4个20 GB 的磁盘,总共为 80 GB,但我们将只能得到40 GB 的容量,另一半的容量在构建 RAID 10 中丢失。

RAID 10 的优点和缺点

  • 提供更好的性能。
  • 在 RAID 10 中我们将失去一半的磁盘容量。
  • 读与写的性能都很好,因为它会同时进行写入和读取。
  • 它能解决数据库的高 I/O 磁盘写操作。

要求

在 RAID 10 中,我们至少需要4个磁盘,前2个磁盘为 RAID 1,其他2个磁盘为 RAID 0,就像我之前说的,RAID 10 仅仅是组合了 RAID 0和1。如果我们需要扩展 RAID 组,最少需要添加4个磁盘。

我的服务器设置


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

有两种方法来设置 RAID 10,在这里两种方法我都会演示,但我更喜欢第一种方法,使用它来设置 RAID 10 更简单。

方法1:设置 RAID 10

1、 首先,使用以下命令确认所添加的4块磁盘没有被使用。


  1. # ls -l /dev | grep sd

2、 四个磁盘被检测后,然后来检查磁盘是否存在 RAID 分区。


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

验证添加的4块磁盘

注意: 在上面的输出中,如果没有检测到 super-block 意味着在4块磁盘中没有定义过 RAID。

第1步:为 RAID 分区

3、 现在,使用fdisk,命令为4个磁盘(/dev/sdb, /dev/sdc, /dev/sdd 和 /dev/sde)创建新分区。


  1. # fdisk /dev/sdb
  2. # fdisk /dev/sdc
  3. # fdisk /dev/sdd
  4. # fdisk /dev/sde
为 /dev/sdb 创建分区

我来告诉你如何使用 fdisk 为磁盘(/dev/sdb)进行分区,此步也适用于其他磁盘。


  1. # fdisk /dev/sdb

请使用以下步骤为 /dev/sdb 创建一个新的分区。

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

为磁盘 sdb 分区

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

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


  1. # mdadm -E /dev/sd[b-e]
  2. # mdadm --examine /dev/sdb /dev/sdc /dev/sdd /dev/sde # 或
  3. # mdadm -E /dev/sd[b-e]1
  4. # mdadm --examine /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 # 或

检查磁盘

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

第2步: 创建 RAID 设备 md

5、 现在该创建一个md(即 /dev/md0)设备了,使用“mdadm” raid 管理工具。在创建设备之前,必须确保系统已经安装了mdadm工具,如果没有请使用下面的命令来安装。


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

mdadm工具安装完成后,可以使用下面的命令创建一个md raid 设备。


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

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


  1. # cat /proc/mdstat

创建 md RAID 设备

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


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

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


  1. # mdadm --detail /dev/md0

查看 RAID 阵列详细信息

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

第3步:创建文件系统

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


  1. # mkfs.ext4 /dev/md0

创建 md 文件系统

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


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

接下来,在挂载点下创建一些文件,并在文件中添加些内容,然后检查内容。


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

挂载 md 设备

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


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

挂载 md 设备

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


  1. # mount -av

检查 Fstab 中的错误

第四步:保存 RAID 配置

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


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

保存 RAID10 的配置

就这样,我们使用方法1创建完了 RAID 10,这种方法是比较容易的。现在,让我们使用方法2来设置 RAID 10。

方法2:创建 RAID 10

1、 在方法2中,我们必须定义2组 RAID 1,然后我们需要使用这些创建好的 RAID 1 的集合来定义一个 RAID 0。在这里,我们将要做的是先创建2个镜像(RAID1),然后创建 RAID0 (条带化)。

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


  1. # ls -l /dev | grep sd

列出了 4 个设备

2、 将4个磁盘使用fdisk命令进行分区。对于如何分区,您可以按照上面的第1步。


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

3、 在完成4个磁盘的分区后,现在检查磁盘是否存在 RAID块。


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

检查 4 个磁盘

第1步:创建 RAID 1

4、 首先,使用4块磁盘创建2组 RAID 1,一组为sdb1′和sdc1′,另一组是sdd1′ 和sde1′。


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

创建 RAID 1

查看 RAID 1 的详细信息

第2步:创建 RAID 0

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


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

创建 RAID 0

第3步:保存 RAID 配置

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


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

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

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

结论

在这里,我们采用两种方法创建 RAID 10。RAID 10 具有良好的性能和冗余性。希望这篇文章可以帮助你了解 RAID 10 嵌套 RAID。

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

时间: 2024-10-26 16:27:38

在 Linux 下使用 RAID(六):设置 RAID 10 或 1 + 0(嵌套)的相关文章

Linux 下如何用 mutt 设置邮件报警

Linux 下如何用 mutt 设置邮件报警 在Linux里,很多人都会使用到邮件报警,而且这方面的软件也众多,常见的像SendMail, sendEmail, Postfix等等,它们的优缺点我就不说了,使用上也各有所爱. 今天我要给大家介绍的mutt,也许大家也不陌生,网上太多关于mutt和sendmail或者跟msmtp合作使用的教程.其实,mutt非常的强大只要你仔细研究一下官方文档. 系统环境:CentOS 6.5 0.在正式安装mutt之前 先检查一下两个安全组件. OPENSSL:

linux下如何将mongrel设置为服务?

问题描述 linux下如何将mongrel设置为服务?貌似mongrel_service只有windows版本的,谢谢 解决方案 gem install mongrel_cluster,在 mongrel_cluster 的 README 最后有说明.== Starting clusters at boot1. Create mongrel_cluster conf directory (/etc/mongrel_cluster).2. Assign ownership to your Capi

Linux下java环境变量设置的完整步骤

Linux下java环境变量设置的完整步骤: 从java.sun.com上下载JDK的安装文件,一般是jdk1.5.0_10_XXXX.bin的格式. 解开生成JDK目录,这里假设JDK安装在/usr/java/jdk1.5.0_10中: 代码: sudo chmod 755 jdk1.5.0_10_XXXX.bin   sudo ./jdk1.5.0_10_XXXX.bin sudo mkdir /usr/java sudo mv jdk1.5.0_10/ /usr/java 代码: sudo

Linux下用mdadm实现软件RAID

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

Linux下安装Redis并设置相关服务_Redis

一.简介 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型. Redis可以将数据复制到任意数量的从服务器. Redis 优势          异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录.          支持丰富的数据类型:Redi

Linux下时区与时间设置方法

首先要说明的是我的系统是fedora,其他系统可能不完全相同. 1,时间保存在硬件实时钟(RTC)中,RTC由主板电池供电,即使关断电源也不会造成时间丢失. 2,系统启动时从RTC获取时间,这个步骤在rc.sysinit中做: a,首先从/etc/sysconfig/clock中获取RTC相关参数UTC/ARC/SRM.UTC为true表示RTC保存的时间是UTC时间,false表示保存的是本地时间.ARC与SRM的含义参考hwclock的manpage,一般false即可: b,根据上面获取的

Linux下如何把服务设置自启动

为了避免每次系统启动度要去手动将服务启动所带来的麻烦,我们需要将服务设置为自启动. 1,首先检查/etc/init.d下是否有所需的服务,没有则加上: # ls -l /etc/init.d/httpd -rwxr-xr-x 1 root root 3200 Nov 12  2008 /etc/init.d/httpd 2,将服务加入自启动列表: # chkconfig --add httpd 3,检查服务在Linux各模式下的状态是否为on/off ,on表示在该模式下自动启动,off反之:

Linux下的文件权限设置修改详解

我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多.我们先介绍几个简单的,例如:用户组.拥有者.各种身份的权限等等. • chgrp:改变文件所属用户组 . • chown:改变文件拥有者. • chmod:改变文件的属性.SUID等特性. 更改所属用户组, chgrp 改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写.这样就很好记

Linux下DNS服务器的设置

环境:要设的DNS机子的 IP  34.0.188.99                                           网关 34.0.188.250                                   子网掩码 255.255.255.0                                   主机名为 linux.zzw.com                                       域名为  zzw.com ======

Linux下SFTP用户权限设置条件及实现命令_Linux

众所周知SFTP账号是基于SSH账号的,所以在默认情况下访问服务器的权限是非常大的,今天的教程就是教大家进行SFTP用户权限设置. 必要条件: 你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成. 如何查看自己服务器上的ssh版本?大家可以尝试以下命令: $ ssh -V 具体实施步骤: 1. 我们需要创建一个用户组,专门用于sftp用户 $ groupadd sftpusers 2. 我们创建一个用户test $ u