mdadm 是 多磁盘和设备管理 Multiple Disk and Device Administration 的缩写。它是一个命令行工具，可用于管理 Linux 上的软件 RAID 阵列。本文概述了使用它的基础知识。以下 5 个命令是你使用 mdadm 的基础功能：创建 RAID 阵列：mdadm --create /dev/md/test --homehost=any --metadata=1.0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1组合（并启动）RAID 阵列：mdadm --assemble /dev/md/test /dev/sda1 /dev/sdb1停止 RAID 阵列：mdadm --stop /dev/md/test删除 RAID 阵列：mdadm --zero-superblock /dev/sda1 /dev/sdb1检查所有已组合的 RAID 阵列的状态：cat /proc/mdstat功能说明mdadm –create上面的创建命令除了 -create 参数自身和设备名之外，还包括了四个参数：1、–homehost：默认情况下，mdadm 将你的计算机名保存为 RAID 阵列的属性。如果你的计算机名与存储的名称不匹配，则阵列将不会自动组合。此功能在共享硬盘的服务器群集中很有用，因为如果多个服务器同时尝试访问同一驱动器，通常会发生文件系统损坏。名称 any 是保留字段，并禁用 -homehost 限制。2、 –metadata：-mdadm 保留每个 RAID 设备的一小部分空间，以存储有关 RAID 阵列本身的信息。 -metadata 参数指定信息的格式和位置。1.0 表示使用版本 1 格式，并将元数据存储在设备的末尾。3、–level：-level 参数指定数据应如何在底层设备之间分布。级别 1 表示每个设备应包含所有数据的完整副本。此级别也称为磁盘镜像。4、–raid-devices：-raid-devices 参数指定将用于创建 RAID 阵列的设备数。通过将 -level=1（镜像）与 -metadata=1.0 （将元数据存储在设备末尾）结合使用，可以创建一个 RAID1 阵列，如果不通过 mdadm 驱动访问，那么它的底层设备会正常显示。这在灾难恢复的情况下很有用，因为即使新系统不支持 mdadm 阵列，你也可以访问该设备。如果程序需要在 mdadm 可用之前以只读访问底层设备时也很有用。例如，计算机中的 UEFI 固件可能需要在启动 mdadm 之前从 ESP 读取引导加载程序。mdadm –assemble如果成员设备丢失或损坏，上面的组合命令将会失败。要强制 RAID 阵列在其中一个成员丢失时进行组合并启动，请使用以下命令：# mdadm --assemble --run /dev/md/test /dev/sda1其他重要说明避免直接写入底层是 RAID1 的设备。这导致设备不同步，并且 mdadm 不会知道它们不同步。如果你访问了在其他地方被修改了设备的某个 RAID1 阵列，则可能导致文件系统损坏。如果你在其他地方修改 RAID1 设备并需要强制阵列重新同步，请从要覆盖的设备中删除 mdadm 元数据，然后将其重新添加到阵列，如下所示：# mdadm --zero-superblock /dev/sdb1 # mdadm --assemble --run /dev/md/test /dev/sda1 # mdadm /dev/md/test --add /dev/sdb1以上用 sda1 的内容完全覆盖 sdb1 的内容。要指定在计算机启动时自动激活的 RAID 阵列，请创建 /etc/mdadm.conf 配置。有关最新和详细信息，请查看手册页：$ man mdadm $ man mdadm.conf本系列的下一篇文章将展示如何将现有的单磁盘 Linux 系统变为镜像磁盘安装，这意味着即使其中一个硬盘突然停止工作，系统仍将继续运行！via: https://fedoramagazine.org/managing-raid-arrays-with-mdadm/作者：Gregory Bartholomew 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在 Linux 系统上，有大量的文件系统可以使用，那么我们为什么还要尝试一个新的文件系统？它们都工作的很好，不是吗？但是它们并不完全相同，其中的一些文件系统具有非常突出的优点，例如 ZFS。为什么选择 ZFSZFS 非常的优秀。这是一个真正现代的文件系统，内置的功能对于处理大量的数据很有意义。现在，如果您正在考虑将 ZFS 用于您的超高速 NVMe SSD，这可能不是一个最佳选择。 它比别的文件系统要慢，不过，这完全没有问题， 它旨在存储大量的数据并保持安全。ZFS 消除了建立传统 RAID 阵列（LCTT 译注：独立磁盘冗余阵列）的需要。 相反，您可以创建 ZFS 池，甚至可以随时将驱动器添加到这些池中。 ZFS 池的行为操作与 RAID 几乎完全相同，但功能内置于文件系统中。ZFS 也可以替代 LVM （LCTT 译注：逻辑盘卷管理），使您能够动态地进行分区和管理分区，而无需处理底层的细节，也不必担心相关的风险。这也是一个 CoW （LCTT 译注：写时复制）文件系统。 这里不会提及太多的技术性，这意味着 ZFS 可以保护您的数据免受逐渐损坏的影响。 ZFS 会创建文件的校验和，并允许您将这些文件回滚到以前的工作版本。安装 ZFS在 Ubuntu 上安装 ZFS 非常简单，但对于 Ubuntu LTS （LCTT 译注：长时间支持版本）和最新版本来说，这个过程稍有不同。Ubuntu 16.04 LTSsudo apt install zfs Ubuntu 17.04 及以后sudo apt install zfsutils 当你安装好程序后，可以使用 ZFS 提供的工具创建 ZFS 驱动器和分区。创建池在 ZFS 中，池大致相当于 RAID 。 它们很灵活且易于操作。RAID0RAID0 只是把你的硬盘集中到一个池子里面，就像一个巨大的驱动器一样。 它可以提高你的驱动器速度，（LCTT 译注：数据条带化后，并行访问，可以提高文件读取速度）但是如果你的驱动器有损坏，你可能会失丢失数据。要使用 ZFS 实现 RAID0，只需创建一个普通的池。sudo zpool create your-pool /dev/sdc /dev/sdd RAID1（镜像）您可以在 ZFS 中使用 mirror 关键字来实现 RAID1 功能。 RAID1 会创建一个一对一的驱动器副本。 这意味着您的数据一直在备份。 它也提高了性能。 当然，你将一半的存储空间用于了复制。sudo zpool create your-pool mirror /dev/sdc /dev/sdd RAID5/RAIDZ1ZFS 将 RAID5 功能实现为 RAIDZ1。 RAID5 要求驱动器至少是 3 个。并允许您通过将备份奇偶校验数据写入驱动器空间的 1/n（n 是驱动器数），留下的是可用的存储空间。 如果一个驱动器发生故障，阵列仍将保持联机状态，但应尽快更换发生故障的驱动器（LCTT 译注：与原文翻译略有不同，原文是驱动器的数目是三的倍数，根据 wiki， RAID5 至少需要 3 块驱动器，也可以从下面的命令中猜测)。sudo zpool create your-pool raidz1 /dev/sdc /dev/sdd /dev/sde RAID6/RAIDZ2RAID6 与 RAID5 几乎完全相同，但它至少需要四个驱动器。 它将奇偶校验数据加倍，最多允许两个驱动器损坏，而不会导致阵列关闭（LCTT 译注：这里也与原文略有出入，原文是驱动器的数目是四的倍数，根据 wiki ，RAID6 至少需要四个驱动器)。sudo zpool create your-pool raidz2 /dev/sdc /dev/sdd /dev/sde /dev/sdf RAID10（条带化镜像）RAID10 旨在通过数据条带化提高存取速度和数据冗余来成为一个两全其美的解决方案。 你至少需要四个驱动器，但只能使用一半的空间。 您可以通过在同一个池中创建两个镜像来创建 RAID10 中的池（LCTT 译注：这里也与原文略有出入，原文是驱动器的数目是四的倍数，根据 wiki， RAID10 至少需要四个驱动器）。sudo zpool create your-pool mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf 池的操作还有一些管理工具，一旦你创建了你的池，你就必须使用它们来操作。 首先，检查你的池的状态。sudo zpool status 更新当你更新 ZFS 时，你也需要更新你的池。 当您检查它们的状态时，您的池会通知您任何更新。 要更新池，请运行以下命令。sudo zpool upgrade your-pool 你也可以更新全部池。sudo zpool upgrade -a 添加驱动器您也可以随时将驱动器添加到池中。 告诉 zpool 池的名称和驱动器的位置，它会处理好一切。sudo zpool add your-pool /dev/sdx 其它的一些想法ZFS 会在您的池的根文件系统中创建一个目录。 您可以使用 GUI 文件管理器或 CLI 按名称浏览它们。ZFS 非常强大，还有很多其它的东西可以用它来做，但这些都是基础。 这是一个优秀的存储负载文件系统，即使它只是一个用于文件的硬盘驱动器的 RAID 阵列。 ZFS 在 NAS 系统上也非常出色。无论 ZFS 的稳定性和可靠性如何，在您的硬盘上实施新的功能时，最好备份您的数据。via: https://www.maketecheasier.com/use-zfs-filesystem-ubuntu-linux/作者：Nick Congleton 译者：amwps290 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
设置 Linux RAID 1配置 LINUX RAID 1 非常重要，因为它提供了冗余性。RAID 分区拥有高级功能，如冗余和更好的性能。所以让我们来说下如何实现 RAID，以及让我们来看看不同类型的 RAID：RAID 0（条带）：磁盘组合在一起，形成一个更大的驱动器。这以可用性为代价提供了更好的性能。如果 RAID 中的任何一块磁盘出现故障，则整个磁盘集将无法使用。最少需要两块磁盘。RAID 1（镜像）：磁盘从一个复制到另一个，提供了冗余。如果一块磁盘发生故障，则另一块磁盘接管，它有另外一份原始磁盘的数据的完整副本。其缺点是写入时间慢。最少需要两块磁盘。RAID 5（带奇偶校验的条带）：磁盘类似于 RAID 0，并且连接在一起以形成一个大型驱动器。这里的区别是，一块磁盘用于奇偶校验位，这允许在单个磁盘发生故障时可以恢复磁盘。最少需要三块盘。让我们继续进行 Linux RAID 1 配置。安装 Linux RAID 1 的要求：1、系统中应该安装了 mdam，请用下面的命令确认。[root@rhel1 ~]# rpm -qa | grep -i mdadm mdadm-3.2.2-9.el6.x86_64 [root@rhel1 ~]# 2、 系统应该连接了 2 块磁盘。创建两个分区，一个磁盘一个分区（sdc、sdd），每个分区占据整块磁盘。Disk /dev/sdc: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x67cc8cfb Device Boot Start End Blocks Id System /dev/sdc1 1 130 1044193+ 83 Linux Disk /dev/sdd: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0294382b Device Boot Start End Blocks Id System /dev/sdd1 1 130 1044193+ 83 Linux 现在你可以用你已经创建好的两个分区来设置 RAID 1 了。你可以使用 mdadm 命令来创建 RAID 阵列。Syntax: mdadm [options] Options: -a, xx Adds a disk into a current array -C, —create Creates a new RAID array -D, —detail Prints the details of an array -G, —grow Changes the size or shape of an active array -f, xx Fails a disk in the array -l, —level Specifies level (type) of RAID array to create -n, —raid-devices Specifies the devices in the RAID array -q, —quiet Species not to show output -S, —stop Stops an array -v, —verbose Provides verbose output创建 Linux RAID 1 设备：[root@rhel1 ~]# mdadm -Cv /dev/md0 --level=1 -n2 /dev/sdc1 /dev/sdd1 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: size set to 1044181K Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@rhel1 ~]#使用下列命令查看新创建的 RAID 1 设备：[root@rhel1 ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdd1[1] sdc1[0] 1044181 blocks super 1.2 [2/2] [UU] unused devices: <none> [root@rhel1 ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdd1[1] sdc1[0] 1044181 blocks super 1.2 [2/2] [UU] unused devices: <none>使用 mdadm 命令再次确认，RAID 1 已经创建好了。[root@rhel1 ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Wed Dec 7 15:50:06 2016 Raid Level : raid1 Array Size : 1044181 (1019.88 MiB 1069.24 MB) Used Dev Size : 1044181 (1019.88 MiB 1069.24 MB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Dec 7 15:50:12 2016 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : rhel1.lab.com:0 (local to host rhel1.lab.com) UUID : d5c0f82e:4e0753e6:0b28c178:e6f75af4 Events : 17 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 49 1 active sync /dev/sdd1 [root@rhel1 ~]#使用下列命令格式化新创建的 Linux RAID 1 设备：[root@rhel1 ~]# mkfs.ext4 /dev/md0 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65280 inodes, 261045 blocks 13052 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8160 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.挂载 Linux RAID 1 设备：[root@rhel1 ~]# mkdir /RAID1 [root@rhel1 ~]# mount /dev/md0 /RAID1 [root@rhel1 ~]# df -h /RAID1 Filesystem Size Used Avail Use% Mounted on /dev/md0 1004M 18M 936M 2% /RAID1 [root@rhel1 ~]#作者简介：大家好！我是 Manmohan Mirkar。我很高兴见到你们！我在 10 多年前开始使用 Linux，我从来没有想过我会到今天这个地步。我的激情是帮助你们获取 Linux 知识。谢谢阅读！via: http://www.linuxroutes.com/linux-raid-1/作者：Manmohan Mirkar 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
LFCS 系列第六讲：组装分区为RAID设备——创建和管理系统备份
Linux 基金会已经发起了一个全新的 LFCS（ Linux 基金会认证系统管理员 （ Linux Foundation Certified Sysadmin ） ）认证，旨在让来自世界各地的人有机会参加到 LFCS 测试，获得关于有能力在 Linux 系统中执行中级系统管理任务的认证。该认证包括：维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时向上游团队请求支持的决策能力。LFCS 系列第六讲以下视频介绍了 Linux 基金会认证程序。本讲是系列教程中的第六讲，在这一讲里，我们将会解释如何将分区组装为 RAID 设备——创建和管理系统备份。这些都是 LFCS 认证中的必备知识。了解RAID这种被称为独立磁盘冗余阵列（Redundant Array of Independent Disks）(RAID)的技术是将多个硬盘组合成一个单独逻辑单元的存储解决方案，它提供了数据冗余功能并且改善硬盘的读写操作性能。然而，实际的容错和磁盘 I/O 性能硬盘取决于如何将多个硬盘组装成磁盘阵列。根据可用的设备和容错/性能的需求，RAID 被分为不同的级别，你可以参考 RAID 系列文章以获得每个 RAID 级别更详细的解释。在 Linux 下使用 RAID（一）：介绍 RAID 的级别和概念我们选择用于创建、组装、管理、监视软件 RAID 的工具，叫做 mdadm (multiple disk admin 的简写）。---------------- Debian 及衍生版 ---------------- # aptitude update && aptitude install mdadm ---------------- Red Hat 和基于 CentOS 的系统 ---------------- # yum update && yum install mdadm ---------------- openSUSE 上 ---------------- # zypper refresh && zypper install mdadm # 将分区组装成 RAID 设备组装已有分区作为 RAID 设备的过程由以下步骤组成。1. 使用 mdadm 创建阵列如果先前其中一个分区已经格式化，或者作为了另一个 RAID 阵列的一部分，你会被提示以确认创建一个新的阵列。假设你已经采取了必要的预防措施以避免丢失重要数据，那么可以安全地输入 Y 并且按下回车。# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 创建 RAID 阵列2. 检查阵列的创建状态在创建了 RAID 阵列之后，你可以检查使用以下命令检查阵列的状态。# cat /proc/mdstat or # mdadm --detail /dev/md0 [More detailed summary] 检查 RAID 阵列的状态3. 格式化 RAID 设备如本系列第四讲所介绍的，按照你的需求/要求采用某种文件系统格式化你的设备。4. 监控 RAID 阵列服务让监控服务时刻监视你的 RAID 阵列。把# mdadm --detail --scan命令输出结果添加到 /etc/mdadm/mdadm.conf(Debian及其衍生版)或者/etc/mdadm.conf(Cent0S/openSUSE)，如下。# mdadm --detail --scan 监控 RAID 阵列# mdadm --assemble --scan [Assemble the array] 为了确保服务能够开机启动，需要以 root 权限运行以下命令。Debian 及其衍生版Debian 及其衍生版能够通过下面步骤使服务默认开机启动：# update-rc.d mdadm defaults 在 /etc/default/mdadm 文件中添加下面这一行AUTOSTART=true CentOS 和 openSUSE(systemd-based)# systemctl start mdmonitor # systemctl enable mdmonitor CentOS 和 openSUSE(SysVinit-based)# service mdmonitor start # chkconfig mdmonitor on 5. 检查RAID磁盘故障在支持冗余的的 RAID 级别中，在需要时会替换故障的驱动器。当磁盘阵列中的设备出现故障时，仅当存在我们第一次创建阵列时预留的备用设备时，磁盘阵列会将自动启动重建。检查 RAID 故障磁盘否则，我们需要手动将一个额外的物理驱动器插入到我们的系统，并且运行。# mdadm /dev/md0 --add /dev/sdX1 /dev/md0 是出现了问题的阵列，而 /dev/sdx1 是新添加的设备。6. 拆解一个工作阵列如果你需要使用工作阵列的设备创建一个新的阵列，你可能不得不去拆解已有工作阵列——(可选步骤)# mdadm --stop /dev/md0 # Stop the array # mdadm --remove /dev/md0 # Remove the RAID device # mdadm --zero-superblock /dev/sdX1 # Overwrite the existing md superblock with zeroes 7. 设置邮件通知你可以配置一个用于发送通知的有效邮件地址或者系统账号(确保在 mdadm.conf 文件中有下面这一行)。——(可选步骤)MAILADDR root 在这种情况下，来自 RAID 后台监控程序所有的通知将会发送到你的本地 root 账号的邮件箱中。其中一个类似的通知如下。说明：此次通知事件和第5步中的例子相关。此处一个设备被标志为错误，并且一个空闲的设备自动地被 mdadm 加入到阵列。我们用完了所有“健康的”空闲设备，因此我们得到了通知。RAID 监控通知了解 RAID 级别RAID 0阵列总大小是最小分区大小的 n 倍，n 是阵列中独立磁盘的个数(你至少需要两个驱动器/磁盘)。运行下面命令，使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 0 阵列。# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 常见用途：用于支持性能比容错更重要的实时应用程序的设置RAID 1 (又名镜像)阵列总大小等于最小分区大小(你至少需要两个驱动器/磁盘)。运行下面命令，使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 1 阵列。# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 常见用途：操作系统的安装或者重要的子文件夹，例如 /homeRAID 5 (又名奇偶校验码盘)阵列总大小将是最小分区大小的 (n-1) 倍。所减少的大小用于奇偶校验(冗余)计算(你至少需要3个驱动器/磁盘)。说明：你可以指定一个空闲设备 (/dev/sde1) 替换问题出现时的故障部分(分区)。运行下面命令，使用 /dev/sdb1, /dev/sdc1, /dev/sdd1，/dev/sde1 组装一个 RAID 5 阵列，其中 /dev/sde1 作为空闲分区。# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1 常见用途：Web 和文件服务RAID 6 (又名双重奇偶校验码盘)阵列总大小为(ns)-2s，其中n为阵列中独立磁盘的个数，s为最小磁盘大小。说明：你可以指定一个空闲分区(在这个例子为 /dev/sdf1)替换问题出现时的故障部分(分区)。运行下面命令，使用 /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 和 /dev/sdf1 组装 RAID 6 阵列，其中 /dev/sdf1 作为空闲分区。# mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1 常见用途：大容量、高可用性要求的文件服务器和备份服务器。RAID 1+0 (又名镜像条带)因为 RAID 1+0 是 RAID 0 和 RAID 1 的组合，所以阵列总大小是基于两者的公式计算的。首先，计算每一个镜像的大小，然后再计算条带的大小。# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1 常见用途：需要快速 IO 操作的数据库和应用服务器创建和管理系统备份记住， RAID 其所有的价值不是在于备份的替换者！在黑板上写上1000次，如果你需要的话，但无论何时一定要记住它。在我们开始前，我们必须注意的是，没有一个放之四海皆准的针对所有系统备份的解决方案，但这里有一些东西，是你在规划一个备份策略时需要考虑的。你的系统将用于什么？(桌面或者服务器？如果系统是应用于后者，那么最重要的服务是什么？哪个配置是痛点？)你每隔多久备份你的系统？你需要备份的数据是什么(比如文件/文件夹/数据库转储)？你还可以考虑是否需要备份大型文件(比如音频和视频文件)。这些备份将会存储在哪里(物理位置和媒体)？备份你的数据方法1：使用 dd 命令备份整个磁盘。你可以在任意时间点通过创建一个准确的镜像来备份一整个硬盘或者是分区。注意当设备是离线时，这种方法效果最好，也就是说它没有被挂载并且没有任何进程的 I/O 操作访问它。这种备份方法的缺点是镜像将具有和磁盘或分区一样的大小，即使实际数据占用的是一个很小的比例。比如，如果你想要为只使用了10%的20GB的分区创建镜像，那么镜像文件将仍旧是20GB。换句话来讲，它不仅包含了备份的实际数据，而且也包含了整个分区。如果你想完整备份你的设备，那么你可以考虑使用这个方法。从现有的设备创建一个镜像文件# dd if=/dev/sda of=/system_images/sda.img 或者 --------------------- 可选地，你可以压缩镜像文件 ------------------- # dd if=/dev/sda | gzip -c > /system_images/sda.img.gz 从镜像文件恢复备份# dd if=/system_images/sda.img of=/dev/sda 或者 --------------------- 根据你创建镜像文件时的选择(译者注:比如压缩) ---------------- # gzip -dc /system_images/sda.img.gz | dd of=/dev/sda 方法2：使用 tar 命令备份确定的文件/文件夹——已经在本系列第三讲中讲了。如果你想要备份指定的文件/文件夹(配置文件，用户主目录等等)，你可以使用这种方法。方法3：使用 rsync 命令同步文件。rsync 是一种多功能远程（和本地）文件复制工具。如果你想要从网络设备备份或同步文件，rsync 是一种选择。无论是你是正在同步两个本地文件夹还是本地 < — > 挂载在本地文件系统的远程文件夹，其基本语法是一样的。# rsync -av source_directory destination_directory 在这里，-a 递归遍历子目录(如果它们存在的话)，维持符号链接、时间戳、权限以及原本的属主/属组，-v 显示详细过程。rsync 同步文件除此之外，如果你想增加在网络上传输数据的安全性，你可以通过 ssh 协议使用 rsync。通过 ssh 同步本地到远程文件夹# rsync -avzhe ssh backups root@remote_host:/remote_directory/ 这个示例，本地主机上的 backups 文件夹将与远程主机上的 /root/remote\_directory 的内容同步。在这里，-h 选项以易读的格式显示文件的大小，-e 标志用于表示一个 ssh 连接。rsync 同步远程文件通过ssh同步远程到本地文件夹在这种情况下，交换前面示例中的 source 和 destination 文件夹。# rsync -avzhe ssh root@remote_host:/remote_directory/ backups 请注意这些只是 rsync 用法的三个示例而已(你可能遇到的最常见的情形)。对于更多有关 rsync 命令的示例和用法 ，你可以查看下面的文章。在 Linux 下同步文件的10个 rsync命令总结作为一个系统管理员，你需要确保你的系统表现得尽可能好。如果你做好了充分准备，并且如果你的数据完整性能被诸如 RAID 和系统日常备份的存储技术支持，那你将是安全的。如果你有有关完善这篇文章的问题、评论或者进一步的想法，可以在下面畅所欲言。除此之外，请考虑通过你的社交网络简介分享这系列文章。via: http://www.tecmint.com/creating-and-managing-raid-backups-in-linux/作者：Gabriel Cánepa 译者：cpsoture 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
在 Linux 下使用 RAID（九）：如何使用 ‘Mdadm’ 工具管理软件 RAID
无论你以前有没有使用 RAID 阵列的经验，以及是否完成了 此 RAID 系列 的所有教程，一旦你在 Linux 中熟悉了 mdadm --manage 命令的使用，管理软件 RAID 将不是很复杂的任务。在 Linux 中使用 mdadm 管理 RAID 设备 - 第9部分在本教程中，我们会再介绍此工具提供的功能，这样当你需要它，就可以派上用场。RAID 测试方案在本系列的最后一篇文章中，我们将使用一个简单的 RAID 1（镜像）阵列，它由两个 8GB 的磁盘（/dev/sdb 和 /dev/sdc）和一个备用设备（/dev/sdd）来演示，但在此使用的方法也适用于其他类型的配置。也就是说，放心去用吧，把这个页面添加到浏览器的书签，然后让我们开始吧。了解 mdadm 的选项和使用方法幸运的是，mdadm 有一个内建的 --help 参数来对每个主要的选项提供说明文档。因此，让我们开始输入：# mdadm --manage --help 就会使我们看到 mdadm --manage 能够执行哪些任务：使用 mdadm 工具来管理 RAID正如我们在上面的图片看到，管理一个 RAID 阵列可以在任意时间执行以下任务：（重新）将设备添加到阵列中把设备标记为故障从阵列中删除故障设备使用备用设备更换故障设备先创建部分阵列停止阵列标记阵列为 ro（只读）或 rw（读写）使用 mdadm 工具管理 RAID 设备需要注意的是，如果用户忽略 --manage 选项，mdadm 默认使用管理模式。请记住这一点，以避免出现最坏的情况。上图中的高亮文本显示了管理 RAID 的基本语法：# mdadm --manage RAID options devices 让我们来演示几个例子。​例1：为 RAID 阵列添加设备你通常会添加新设备来更换故障的设备，或者使用空闲的分区以便在出现故障时能及时替换：# mdadm --manage /dev/md0 --add /dev/sdd1 添加设备到 Raid 阵列​例2：把一个 RAID 设备标记为故障并从阵列中移除在从逻辑阵列中删除该设备前，这是强制性的步骤，然后才能从机器中取出它 - 注意顺序（如果弄错了这些步骤，最终可能会造成实际设备的损害）：# mdadm --manage /dev/md0 --fail /dev/sdb1 请注意在前面的例子中，知道如何添加备用设备来自动更换出现故障的磁盘。在此之后，恢复和重建 raid 数据 就开始了：恢复和重建 raid 数据一旦设备已被手动标记为故障，你就可以安全地从阵列中删除它：# mdadm --manage /dev/md0 --remove /dev/sdb1 例3：重新添加设备，来替代阵列中已经移除的设备到现在为止，我们有一个工作的 RAID 1 阵列，它包含了2个活动的设备：/dev/sdc1 和 /dev/sdd1。现在让我们试试重新添加 /dev/sdb1 到/dev/md0：# mdadm --manage /dev/md0 --re-add /dev/sdb1 我们会碰到一个错误:# mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible 因为阵列中的磁盘已经达到了最大的数量。因此，我们有两个选择：a）将 /dev/sdb1 添加为备用的，如例1；或 b）从阵列中删除 /dev/sdd1 然后重新添加 /dev/sdb1。我们选择选项 b），先停止阵列然后重新启动：# mdadm --stop /dev/md0 # mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 如果上面的命令不能成功添加 /dev/sdb1 到阵列中，使用例1中的命令来完成。mdadm 能检测到新添加的设备并将其作为备用设备，当添加完成后它会开始重建数据，它也被认为是 RAID 中的活动设备：重建 Raid 的状态例4：使用特定磁盘更换 RAID 设备在阵列中使用备用磁盘更换磁盘很简单：# mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1 更换 Raid 设备这会导致 --replace 指定的设备被标记为故障，而 --with指定的设备添加到 RAID 中来替代它：检查 Raid 重建状态​例5：标记 RAID 阵列为 ro 或 rw创建阵列后，你必须在它上面创建一个文件系统并将其挂载到一个目录下才能使用它。你可能不知道，RAID 也可以被设置为 ro，使其只读；或者设置为 rw，就可以同时写入了。要标记该设备为 ro，首先需要将其卸载：# umount /mnt/raid1 # mdadm --manage /dev/md0 --readonly # mount /mnt/raid1 # touch /mnt/raid1/test1 在 RAID 阵列上设置权限要配置阵列允许写入操作需要使用 --readwrite 选项。请注意，在设置 rw 标志前，你需要先卸载设备并停止它：# umount /mnt/raid1 # mdadm --manage /dev/md0 --stop # mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1 # mdadm --manage /dev/md0 --readwrite # touch /mnt/raid1/test2 配置 Raid 允许读写操作总结在本系列中，我们已经解释了如何建立一个在企业环境中使用的软件 RAID 阵列。如果你按照这些文章所提供的例子进行配置，在 Linux 中你会充分领会到软件 RAID 的价值。如果你碰巧任何问题或有建议，请随时使用下面的方式与我们联系。via: http://www.tecmint.com/manage-software-raid-devices-in-linux-with-mdadm/作者：GABRIEL CÁNEPA 译者：strugglingyouth 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在 Linux 下使用 RAID（八）：当软件 RAID 故障时如何恢复和重建数据
在阅读过 RAID 系列 前面的文章后你已经对 RAID 比较熟悉了。回顾前面几个软件 RAID 的配置，我们对每一个都做了详细的解释，使用哪一个取决与你的具体情况。恢复并重建故障的软件 RAID - 第8部分在本文中，我们将讨论当一个磁盘发生故障时如何重建软件 RAID 阵列并且不会丢失数据。为方便起见，我们仅考虑RAID 1 的配置 - 但其方法和概念适用于所有情况。RAID 测试方案在进一步讨论之前，请确保你已经配置好了 RAID 1 阵列，可以按照本系列第3部分提供的方法：在 Linux 中如何创建 RAID 1（镜像）。在目前的情况下，仅有的变化是：使用不同版本 CentOS（v7），而不是前面文章中的（v6.5）。磁盘容量发生改变， /dev/sdb 和 /dev/sdc（各8GB）。此外，如果 SELinux 设置为 enforcing 模式，你需要将相应的标签添加到挂载 RAID 设备的目录中。否则，当你试图挂载时，你会碰到这样的警告信息：启用 SELinux 时 RAID 挂载错误通过以下命令来解决:# restorecon -R /mnt/raid1 配置 RAID 监控存储设备损坏的原因很多（尽管固态硬盘大大减少了这种情况发生的可能性），但不管是什么原因，可以肯定问题随时可能发生，你需要准备好替换发生故障的部分，并确保数据的可用性和完整性。首先建议是。虽然你可以查看 /proc/mdstat 来检查 RAID 的状态，但有一个更好的和节省时间的方法，使用监控 + 扫描模式运行 mdadm，它将警报通过电子邮件发送到一个预定义的收件人。要这样设置，在 /etc/mdadm.conf 添加以下行：MAILADDR user@<domain or localhost> 我自己的设置如下：MAILADDR gacanepa@localhost 监控 RAID 并使用电子邮件进行报警要让 mdadm 运行在监控 + 扫描模式中，以 root 用户添加以下 crontab 条目：@reboot /sbin/mdadm --monitor --scan --oneshot 默认情况下，mdadm 每隔60秒会检查 RAID 阵列，如果发现问题将发出警报。你可以通过添加 --delay 选项到crontab 条目上面，后面跟上秒数，来修改默认行为（例如，--delay 1800意味着30分钟）。最后，确保你已经安装了一个邮件用户代理（MUA），如mutt 或 mailx。否则，你将不会收到任何警报。在一分钟内，我们就会看到 mdadm 发送的警报。模拟和更换发生故障的 RAID 存储设备为了给 RAID 阵列中的存储设备模拟一个故障，我们将使用 --manage 和 --set-faulty 选项，如下所示：# mdadm --manage --set-faulty /dev/md0 /dev/sdc1 这将导致 /dev/sdc1 被标记为 faulty，我们可以在 /proc/mdstat 看到：在 RAID 存储设备上模拟问题更重要的是，让我们看看是不是收到了同样的警报邮件：RAID 设备故障时发送邮件警报在这种情况下，你需要从软件 RAID 阵列中删除该设备：# mdadm /dev/md0 --remove /dev/sdc1 然后，你可以直接从机器中取出，并将其使用备用设备来取代（/dev/sdd 中类型为 fd 的分区是以前创建的）：# mdadm --manage /dev/md0 --add /dev/sdd1 幸运的是，该系统会使用我们刚才添加的磁盘自动重建阵列。我们可以通过标记 /dev/sdb1 为 faulty 来进行测试，从阵列中取出后，并确认 tecmint.txt 文件仍然在 /mnt/raid1 是可访问的：# mdadm --detail /dev/md0 # mount | grep raid1 # ls -l /mnt/raid1 | grep tecmint # cat /mnt/raid1/tecmint.txt 确认 RAID 重建上面图片清楚的显示，添加 /dev/sdd1 到阵列中来替代 /dev/sdc1，数据的重建是系统自动完成的，不需要干预。虽然要求不是很严格，有一个备用设备是个好主意，这样更换故障的设备就可以在瞬间完成了。要做到这一点，先让我们重新添加 /dev/sdb1 和 /dev/sdc1：# mdadm --manage /dev/md0 --add /dev/sdb1 # mdadm --manage /dev/md0 --add /dev/sdc1 取代故障的 Raid 设备从冗余丢失中恢复数据如前所述，当一个磁盘发生故障时， mdadm 将自动重建数据。但是，如果阵列中的2个磁盘都故障时会发生什么？让我们来模拟这种情况，通过标记 /dev/sdb1 和 /dev/sdd1 为 faulty：# umount /mnt/raid1 # mdadm --manage --set-faulty /dev/md0 /dev/sdb1 # mdadm --stop /dev/md0 # mdadm --manage --set-faulty /dev/md0 /dev/sdd1 此时尝试以同样的方式重新创建阵列就（或使用 --assume-clean 选项）可能会导致数据丢失，因此不到万不得已不要使用。让我们试着从 /dev/sdb1 恢复数据，例如，在一个类似的磁盘分区（/dev/sde1 - 注意，这需要你执行前在/dev/sde 上创建一个 fd 类型的分区）上使用 ddrescue：# ddrescue -r 2 /dev/sdb1 /dev/sde1 恢复 Raid 阵列请注意，到现在为止，我们还没有触及 /dev/sdb 和 /dev/sdd，它们的分区是 RAID 阵列的一部分。现在，让我们使用 /dev/sde1 和 /dev/sdf1 来重建阵列：# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1 请注意，在真实的情况下，你需要使用与原来的阵列中相同的设备名称，即设备失效后替换的磁盘的名称应该是 /dev/sdb1 和 /dev/sdc1。在本文中，我选择了使用额外的设备来重新创建全新的磁盘阵列，是为了避免与原来的故障磁盘混淆。当被问及是否继续写入阵列时，键入 Y，然后按 Enter。阵列被启动，你也可以查看它的进展：# watch -n 1 cat /proc/mdstat 当这个过程完成后，你就应该能够访问 RAID 的数据：确认 Raid 数据总结在本文中，我们回顾了从 RAID 故障和冗余丢失中恢复数据。但是，你要记住，这种技术是一种存储解决方案，不能取代备份。本文中介绍的方法适用于所有 RAID 中，其中的概念我将在本系列的最后一篇（RAID 管理）中涵盖它。如果你对本文有任何疑问，随时给我们以评论的形式说明。我们期待倾听阁下的心声！via: http://www.tecmint.com/recover-data-and-rebuild-failed-software-raid/作者：Gabriel Cánepa 译者：strugglingyouth 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
在 Linux 下使用 RAID（七）：在 RAID 中扩展现有的 RAID 阵列和删除故障的磁盘
每个新手都会对阵列（array）这个词所代表的意思产生疑惑。阵列只是磁盘的一个集合。换句话说，我们可以称阵列为一个集合（set）或一组（group）。就像一组鸡蛋中包含6个一样。同样 RAID 阵列中包含着多个磁盘，可能是2，4，6，8，12，16等，希望你现在知道了什么是阵列。在这里，我们将看到如何扩展现有的阵列或 RAID 组。例如，如果我们在阵列中使用2个磁盘形成一个 raid 1 集合，在某些情况，如果该组中需要更多的空间，就可以使用 mdadm -grow 命令来扩展阵列大小，只需要将一个磁盘加入到现有的阵列中即可。在说完扩展（添加磁盘到现有的阵列中）后，我们将看看如何从阵列中删除故障的磁盘。扩展 RAID 阵列和删除故障的磁盘假设磁盘中的一个有问题了需要删除该磁盘，但我们需要在删除磁盘前添加一个备用磁盘来扩展该镜像，因为我们需要保存我们的数据。当磁盘发生故障时我们需要从阵列中删除它，这是这个主题中我们将要学习到的。扩展 RAID 的特性我们可以增加（扩展）任意 RAID 集合的大小。我们可以在使用新磁盘扩展 RAID 阵列后删除故障的磁盘。我们可以扩展 RAID 阵列而无需停机。要求为了扩展一个RAID阵列，我们需要一个已有的 RAID 组（阵列）。我们需要额外的磁盘来扩展阵列。在这里，我们使用一块磁盘来扩展现有的阵列。在我们了解扩展和恢复阵列前，我们必须了解有关 RAID 级别和设置的基本知识。点击下面的链接了解这些。介绍 RAID 的级别和概念使用 mdadm 工具创建软件 RAID 0 （条带化）我的服务器设置操作系统 : CentOS 6.5 Final IP地址 : 192.168.0.230 主机名 : grow.tecmintlocal.com 2 块现有磁盘 : 1 GB 1 块额外磁盘 : 1 GB 在这里，我们已有一个 RAID ，有2块磁盘，每个大小为1GB，我们现在再增加一个磁盘到我们现有的 RAID 阵列中，其大小为1GB。扩展现有的 RAID 阵列1、 在扩展阵列前，首先使用下面的命令列出现有的 RAID 阵列。# mdadm --detail /dev/md0 检查现有的 RAID 阵列注意: 以上输出显示，已经有了两个磁盘在 RAID 阵列中，级别为 RAID 1。现在我们增加一个磁盘到现有的阵列里。2、 现在让我们添加新的磁盘“sdd”，并使用fdisk命令来创建分区。# fdisk /dev/sdd 请使用以下步骤为 /dev/sdd 创建一个新的分区。按 n 创建新的分区。然后按 P 选择主分区。接下来选择分区号为1。只需按两次回车键选择默认值即可。然后，按 P 来打印创建好的分区。按 L，列出所有可用的类型。按 t 去修改分区。键入 fd 设置为 Linux 的 RAID 类型，然后按回车确认。然后再次使用p查看我们所做的更改。使用w保存更改。为 sdd 创建新的分区3、 一旦新的 sdd 分区创建完成后，你可以使用下面的命令验证它。# ls -l /dev/ | grep sd 确认 sdd 分区4、 接下来，在添加到阵列前先检查磁盘是否有 RAID 分区。# mdadm --examine /dev/sdd1 在 sdd 分区中检查 RAID注意:以上输出显示，该盘有没有发现 super-blocks，意味着我们可以将新的磁盘添加到现有阵列。5、 要添加新的分区 /dev/sdd1 到现有的阵列 md0，请使用以下命令。# mdadm --manage /dev/md0 --add /dev/sdd1 添加磁盘到 RAID 阵列6、 一旦新的磁盘被添加后，在我们的阵列中检查新添加的磁盘。# mdadm --detail /dev/md0 确认将新磁盘添加到 RAID 中注意: 在上面的输出，你可以看到磁盘已经被添加作为备用的。在这里，我们的阵列中已经有了2个磁盘，但我们期待阵列中有3个磁盘，因此我们需要扩展阵列。7、 要扩展阵列，我们需要使用下面的命令。# mdadm --grow --raid-devices=3 /dev/md0 扩展 Raid 阵列现在我们可以看到第三块磁盘(sdd1)已被添加到阵列中，在第三块磁盘被添加后，它将从另外两块磁盘上同步数据。# mdadm --detail /dev/md0 确认 Raid 阵列注意: 对于大容量磁盘会需要几个小时来同步数据。在这里，我们使用的是1GB的虚拟磁盘，所以它非常快在几秒钟内便会完成。从阵列中删除磁盘8、 在数据被从其他两个磁盘同步到新磁盘sdd1后，现在三个磁盘中的数据已经相同了（镜像）。正如我前面所说的，假定一个磁盘出问题了需要被删除。所以，现在假设磁盘sdc1出问题了，需要从现有阵列中删除。在删除磁盘前我们要将其标记为失效，然后我们才可以将其删除。# mdadm --fail /dev/md0 /dev/sdc1 # mdadm --detail /dev/md0 在 RAID 阵列中模拟磁盘故障从上面的输出中，我们清楚地看到，磁盘在下面被标记为 faulty。即使它是 faulty 的，我们仍然可以看到 raid 设备有3个，1个损坏了，状态是 degraded。现在我们要从阵列中删除 faulty 的磁盘，raid 设备将像之前一样继续有2个设备。# mdadm --remove /dev/md0 /dev/sdc1 在 Raid 阵列中删除磁盘9、 一旦故障的磁盘被删除，然后我们只能使用2个磁盘来扩展 raid 阵列了。# mdadm --grow --raid-devices=2 /dev/md0 # mdadm --detail /dev/md0 在 RAID 阵列扩展磁盘从上面的输出中可以看到，我们的阵列中仅有2台设备。如果你需要再次扩展阵列，按照如上所述的同样步骤进行。如果你需要添加一个磁盘作为备用，将其标记为 spare，因此，如果磁盘出现故障时，它会自动顶上去并重建数据。结论在这篇文章中，我们已经看到了如何扩展现有的 RAID 集合，以及如何在重新同步已有磁盘的数据后从一个阵列中删除故障磁盘。所有这些步骤都可以不用停机来完成。在数据同步期间，系统用户，文件和应用程序不会受到任何影响。在接下来的文章我将告诉你如何管理 RAID，敬请关注更新，不要忘了写评论。via: http://www.tecmint.com/grow-raid-array-in-linux/作者：Babin Lonston 译者：strugglingyouth 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
在 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个磁盘。我的服务器设置操作系统 : CentOS 6.5 Final IP 地址 : 192.168.0.229 主机名 : rd10.tecmintlocal.com 磁盘 1 [20GB] : /dev/sdd 磁盘 2 [20GB] : /dev/sdc 磁盘 3 [20GB] : /dev/sdd 磁盘 4 [20GB] : /dev/sde 有两种方法来设置 RAID 10，在这里两种方法我都会演示，但我更喜欢第一种方法，使用它来设置 RAID 10 更简单。方法1：设置 RAID 101、 首先，使用以下命令确认所添加的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块磁盘注意: 在上面的输出中，如果没有检测到 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保存更改。为磁盘 sdb 分区注意: 请使用上面相同的指令对其他磁盘(sdc, sdd sdd sde)进行分区。4、 创建好4个分区后，需要使用下面的命令来检查磁盘是否存在 raid。# mdadm -E /dev/sd[b-e] # mdadm --examine /dev/sdb /dev/sdc /dev/sdd /dev/sde # 或 # mdadm -E /dev/sd[b-e]1 # mdadm --examine /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 # 或 检查磁盘注意: 以上输出显示，新创建的四个分区中没有检测到 super-block，这意味着我们可以继续在这些磁盘上创建 RAID 10。第2步: 创建 RAID 设备 md5、 现在该创建一个md（即 /dev/md0）设备了，使用“mdadm” raid 管理工具。在创建设备之前，必须确保系统已经安装了mdadm工具，如果没有请使用下面的命令来安装。# yum install mdadm [在 RedHat 系统] # apt-get install mdadm [在 Debain 系统] mdadm工具安装完成后，可以使用下面的命令创建一个md raid 设备。# mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 6、 接下来使用cat命令验证新创建的 raid 设备。# cat /proc/mdstat 创建 md RAID 设备7、 接下来，使用下面的命令来检查4个磁盘。下面命令的输出会很长，因为它会显示4个磁盘的所有信息。# mdadm --examine /dev/sd[b-e]1 8、 接下来，使用以下命令来查看 RAID 阵列的详细信息。# mdadm --detail /dev/md0 查看 RAID 阵列详细信息注意: 你在上面看到的结果，该 RAID 的状态是 active 和re-syncing。第3步：创建文件系统9、 使用 ext4 作为md0′的文件系统，并将它挂载到/mnt/raid10`下。在这里，我用的是 ext4，你可以使用你想要的文件系统类型。# mkfs.ext4 /dev/md0 创建 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 挂载 md 设备11、 要想自动挂载，打开/etc/fstab文件并添加下面的条目，挂载点根据你环境的不同来添加。使用 wq! 保存并退出。# vim /etc/fstab /dev/md0 /mnt/raid10 ext4 defaults 0 0 挂载 md 设备12、 接下来，在重新启动系统前使用mount -a来确认/etc/fstab文件是否有错误。# mount -av 检查 Fstab 中的错误第四步：保存 RAID 配置13、 默认情况下 RAID 没有配置文件，所以我们需要在上述步骤完成后手动保存它。# mdadm --detail --scan --verbose >> /etc/mdadm.conf 保存 RAID10 的配置就这样，我们使用方法1创建完了 RAID 10，这种方法是比较容易的。现在，让我们使用方法2来设置 RAID 10。方法2：创建 RAID 101、 在方法2中，我们必须定义2组 RAID 1，然后我们需要使用这些创建好的 RAID 1 的集合来定义一个 RAID 0。在这里，我们将要做的是先创建2个镜像（RAID1），然后创建 RAID0 （条带化）。首先，列出所有的可用于创建 RAID 10 的磁盘。# ls -l /dev | grep sd 列出了 4 个设备2、 将4个磁盘使用fdisk命令进行分区。对于如何分区，您可以按照上面的第1步。# 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 检查 4 个磁盘第1步：创建 RAID 14、 首先，使用4块磁盘创建2组 RAID 1，一组为sdb1′和sdc1′，另一组是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 创建 RAID 1查看 RAID 1 的详细信息第2步：创建 RAID 05、 接下来，使用 md1 和 md2 来创建 RAID 0。# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/md1 /dev/md2 # cat /proc/mdstat 创建 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 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
在 Linux 下使用 RAID（五）：安装 RAID 6（条带化双分布式奇偶校验）
RAID 6 是 RAID 5 的升级版，它有两个分布式奇偶校验，即使两个磁盘发生故障后依然有容错能力。在两个磁盘同时发生故障时，系统的关键任务仍然能运行。它与 RAID 5 相似，但性能更健壮，因为它多用了一个磁盘来进行奇偶校验。在之前的文章中，我们已经在 RAID 5 看了分布式奇偶校验，但在本文中，我们将看到的是 RAID 6 双分布式奇偶校验。不要期望比其他 RAID 有更好的性能，除非你也安装了一个专用的 RAID 控制器。在 RAID 6 中，即使我们失去了2个磁盘，我们仍可以通过更换磁盘，从校验中构建数据，然后取回数据。在 Linux 中安装 RAID 6要建立一个 RAID 6，一组最少需要4个磁盘。RAID 6 甚至在有些组中会有更多磁盘，这样将多个硬盘捆在一起，当读取数据时，它会同时从所有磁盘读取，所以读取速度会更快，当写数据时，因为它要将数据写在条带化的多个磁盘上，所以性能会较差。现在，很多人都在讨论为什么我们需要使用 RAID 6，它的性能和其他 RAID 相比并不太好。提出这个问题首先需要知道的是，如果需要高容错性就选择 RAID 6。在每一个用于数据库的高可用性要求较高的环境中，他们需要 RAID 6 因为数据库是最重要，无论花费多少都需要保护其安全，它在视频流环境中也是非常有用的。RAID 6 的的优点和缺点性能不错。RAID 6 比较昂贵，因为它要求两个独立的磁盘用于奇偶校验功能。将失去两个磁盘的容量来保存奇偶校验信息（双奇偶校验）。即使两个磁盘损坏，数据也不会丢失。我们可以在更换损坏的磁盘后从校验中重建数据。读性能比 RAID 5 更好，因为它从多个磁盘读取，但对于没有专用的 RAID 控制器的设备写性能将非常差。要求要创建一个 RAID 6 最少需要4个磁盘。你也可以添加更多的磁盘，但你必须有专用的 RAID 控制器。使用软件 RAID 我们在 RAID 6 中不会得到更好的性能，所以我们需要一个物理 RAID 控制器。如果你新接触 RAID 设置，我们建议先看完以下 RAID 文章。介绍 RAID 的级别和概念使用 mdadm 工具创建软件 RAID 0 （条带化）用两块磁盘创建 RAID 1（镜像）创建 RAID 5（条带化与分布式奇偶校验）我的服务器设置操作系统 : CentOS 6.5 Final IP 地址 : 192.168.0.228 主机名 : rd6.tecmintlocal.com 磁盘 1 [20GB] : /dev/sdb 磁盘 2 [20GB] : /dev/sdc 磁盘 3 [20GB] : /dev/sdd 磁盘 4 [20GB] : /dev/sde 这是9篇系列教程的第5部分，在这里我们将看到如何在 Linux 系统或者服务器上使用四个 20GB 的磁盘（名为 /dev/sdb、 /dev/sdc、 /dev/sdd 和 /dev/sde）创建和设置软件 RAID 6 （条带化双分布式奇偶校验）。第1步：安装 mdadm 工具，并检查磁盘1、 如果你按照我们最进的两篇 RAID 文章（第2篇和第3篇），我们已经展示了如何安装mdadm工具。如果你直接看的这篇文章，我们先来解释下在 Linux 系统中如何使用mdadm工具来创建和管理 RAID，首先根据你的 Linux 发行版使用以下命令来安装。# yum install mdadm [在 RedHat 系统] # apt-get install mdadm [在 Debain 系统] 2、 安装该工具后，然后来验证所需的四个磁盘，我们将会使用下面的fdisk命令来检查用于创建 RAID 的磁盘。# fdisk -l | grep sd 在 Linux 中检查磁盘3、 在创建 RAID 磁盘前，先检查下我们的磁盘是否创建过 RAID 分区。# mdadm -E /dev/sd[b-e] # mdadm --examine /dev/sdb /dev/sdc /dev/sdd /dev/sde # 或 在磁盘上检查 RAID 分区注意: 在上面的图片中，没有检测到任何 super-block 或者说在四个磁盘上没有 RAID 存在。现在我们开始创建 RAID 6。第2步：为 RAID 6 创建磁盘分区4、 现在在 /dev/sdb, /dev/sdc, /dev/sdd 和 /dev/sde上为 RAID 创建分区，使用下面的 fdisk 命令。在这里，我们将展示如何在 sdb 磁盘创建分区，同样的步骤也适用于其他分区。创建 /dev/sdb 分区# fdisk /dev/sdb 请按照说明进行操作，如下图所示创建分区。按 n创建新的分区。然后按 P 选择主分区。接下来选择分区号为1。只需按两次回车键选择默认值即可。然后，按 P 来打印创建好的分区。按 L，列出所有可用的类型。按 t 去修改分区。键入 fd 设置为 Linux 的 RAID 类型，然后按回车确认。然后再次使用p查看我们所做的更改。使用w保存更改。创建 /dev/sdb 分区创建 /dev/sdc 分区# fdisk /dev/sdc 创建 /dev/sdc 分区创建 /dev/sdd 分区# fdisk /dev/sdd 创建 /dev/sdd 分区创建 /dev/sde 分区# fdisk /dev/sde 创建 /dev/sde 分区5、 创建好分区后，检查磁盘的 super-blocks 是个好的习惯。如果 super-blocks 不存在我们可以按前面的创建一个新的 RAID。# mdadm -E /dev/sd[b-e]1 # mdadm --examine /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 # 或 *在新分区中检查 RAID *第3步：创建 md 设备（RAID）6、 现在可以使用以下命令创建 RAID 设备md0 （即 /dev/md0），并在所有新创建的分区中应用 RAID 级别，然后确认 RAID 设置。# mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 # cat /proc/mdstat 创建 Raid 6 设备7、 你还可以使用 watch 命令来查看当前创建 RAID 的进程，如下图所示。# watch -n1 cat /proc/mdstat 检查 RAID 6 创建过程8、 使用以下命令验证 RAID 设备。# mdadm -E /dev/sd[b-e]1 注意::上述命令将显示四个磁盘的信息，这是相当长的，所以没有截取其完整的输出。9、 接下来，验证 RAID 阵列，以确认重新同步过程已经开始。# mdadm --detail /dev/md0 检查 Raid 6 阵列第4步：在 RAID 设备上创建文件系统10、 使用 ext4 为/dev/md0创建一个文件系统，并将它挂载在 /mnt/raid6 。这里我们使用的是 ext4，但你可以根据你的选择使用任意类型的文件系统。# mkfs.ext4 /dev/md0 在 RAID 6 上创建文件系统11、 将创建的文件系统挂载到 /mnt/raid6，并验证挂载点下的文件，我们可以看到 lost+found 目录。# mkdir /mnt/raid6 # mount /dev/md0 /mnt/raid6/ # ls -l /mnt/raid6/ 12、 在挂载点下创建一些文件，在任意文件中添加一些文字并验证其内容。# touch /mnt/raid6/raid6_test.txt # ls -l /mnt/raid6/ # echo "tecmint raid setups" > /mnt/raid6/raid6_test.txt # cat /mnt/raid6/raid6_test.txt 验证 RAID 内容13、 在 /etc/fstab 中添加以下条目使系统启动时自动挂载设备，操作系统环境不同挂载点可能会有所不同。# vim /etc/fstab /dev/md0 /mnt/raid6 ext4 defaults 0 0 自动挂载 RAID 6 设备14、 接下来，执行mount -a命令来验证 fstab 中的条目是否有错误。# mount -av 验证 RAID 是否自动挂载第5步：保存 RAID 6 的配置15、 请注意，默认情况下 RAID 没有配置文件。我们需要使用以下命令手动保存它，然后检查设备/dev/md0的状态。# mdadm --detail --scan --verbose >> /etc/mdadm.conf # cat /etc/mdadm.conf # mdadm --detail /dev/md0 保存 RAID 6 配置检查 RAID 6 状态第6步：添加备用磁盘16、 现在，已经使用了4个磁盘，并且其中两个作为奇偶校验信息来使用。在某些情况下，如果任意一个磁盘出现故障，我们仍可以得到数据，因为在 RAID 6 使用双奇偶校验。如果第二个磁盘也出现故障，在第三块磁盘损坏前我们可以添加一个​​新的。可以在创建 RAID 集时加入一个备用磁盘，但我在创建 RAID 集合前没有定义备用的磁盘。不过，我们可以在磁盘损坏后或者创建 RAID 集合时添加一块备用磁盘。现在，我们已经创建好了 RAID，下面让我演示如何添加备用磁盘。为了达到演示的目的，我已经热插入了一个新的 HDD 磁盘（即 /dev/sdf），让我们来验证接入的磁盘。# ls -l /dev/ | grep sd 检查新磁盘17、 现在再次确认新连接的磁盘没有配置过 RAID ，使用 mdadm 来检查。# mdadm --examine /dev/sdf 在新磁盘中检查 RAID注意: 像往常一样，我们早前已经为四个磁盘创建了分区，同样，我们使用 fdisk 命令为新插入的磁盘创建新分区。# fdisk /dev/sdf 为 /dev/sdf 创建分区18、 在 /dev/sdf 创建新的分区后，在新分区上确认没有 RAID，然后将备用磁盘添加到 RAID 设备 /dev/md0 中，并验证添加的设备。# mdadm --examine /dev/sdf # mdadm --examine /dev/sdf1 # mdadm --add /dev/md0 /dev/sdf1 # mdadm --detail /dev/md0 在 sdf 分区上验证 Raid*添加 sdf 分区到 RAID *验证 sdf 分区信息第7步：检查 RAID 6 容错19、 现在，让我们检查备用驱动器是否能自动工作，当我们阵列中的任何一个磁盘出现故障时。为了测试，我将一个磁盘手工标记为故障设备。在这里，我们标记 /dev/sdd1 为故障磁盘。# mdadm --manage --fail /dev/md0 /dev/sdd1 检查 RAID 6 容错20、 让我们查看 RAID 的详细信息，并检查备用磁盘是否开始同步。# mdadm --detail /dev/md0 检查 RAID 自动同步哇塞! 这里，我们看到备用磁盘激活了，并开始重建进程。在底部，我们可以看到有故障的磁盘 /dev/sdd1 标记为 faulty。可以使用下面的命令查看进程重建。# cat /proc/mdstat RAID 6 自动同步结论:在这里，我们看到了如何使用四个磁盘设置 RAID 6。这种 RAID 级别是具有高冗余的昂贵设置之一。在接下来的文章中，我们将看到如何建立一个嵌套的 RAID 10 甚至更多。请继续关注。via: http://www.tecmint.com/create-raid-6-in-linux/作者：Babin Lonston 译者：strugglingyouth 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
在 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 的基础知识。介绍 RAID 的级别和概念使用 mdadm 工具创建软件 RAID 0 （条带化）用两块磁盘创建 RAID 1（镜像）我的服务器设置操作系统 : CentOS 6.5 Final IP 地址 : 192.168.0.227 主机名 : rd5.tecmintlocal.com 磁盘 1 [20GB] : /dev/sdb 磁盘 2 [20GB] : /dev/sdc 磁盘 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 发行版。# lsb_release -a # ifconfig | grep inet CentOS 6.5 摘要2、 如果你按照我们的 RAID 系列去配置的，我们假设你已经安装了“mdadm”包，如果没有，根据你的 Linux 发行版使用下面的命令安装。# yum install mdadm [在 RedHat 系统] # apt-get install mdadm [在 Debain 系统] 3、 “mdadm”包安装后，先使用fdisk命令列出我们在系统上增加的三个20GB的硬盘。# fdisk -l | grep sd 安装 mdadm 工具4、 现在该检查这三个磁盘是否存在 RAID 块，使用下面的命令来检查。# mdadm -E /dev/sd[b-d] # mdadm --examine /dev/sdb /dev/sdc /dev/sdd # 或 检查 Raid 磁盘注意: 上面的图片说明，没有检测到任何超级块。所以，这三个磁盘中没有定义 RAID。让我们现在开始创建一个吧！第2步：为磁盘创建 RAID 分区5、 首先，在创建 RAID 前磁盘（/dev/sdb, /dev/sdc 和 /dev/sdd）必须有分区，因此，在进行下一步之前，先使用fdisk命令进行分区。# fdisk /dev/sdb # fdisk /dev/sdc # 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 磁盘分区的方法，或者你可以按照上面的步骤。# fdisk /dev/sdc 创建 sdc 分区创建 /dev/sdd 分区# fdisk /dev/sdd 创建 sdd 分区6、 创建分区后，检查三个磁盘 sdb, sdc, sdd 的变化。# mdadm --examine /dev/sdb /dev/sdc /dev/sdd # mdadm -E /dev/sd[b-c] # 或 检查磁盘变化注意: 在上面的图片中，磁盘的类型是 fd。7、 现在在新创建的分区检查 RAID 块。如果没有检测到超级块，我们就能够继续下一步，在这些磁盘中创建一个新的 RAID 5 配置。*在分区中检查 RAID *第3步：创建 md 设备 md08、 现在使用所有新创建的分区(sdb1, sdc1 和 sdd1)创建一个 RAID 设备“md0”（即 /dev/md0），使用以下命令。# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 # mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1 # 或 9、 创建 RAID 设备后，检查并确认 RAID，从 mdstat 中输出中可以看到包括的设备的 RAID 级别。# cat /proc/mdstat 验证 Raid 设备如果你想监视当前的创建过程，你可以使用watch命令，将 cat /proc/mdstat 传递给它，它会在屏幕上显示且每隔1秒刷新一次。# watch -n1 cat /proc/mdstat 监控 RAID 5 构建过程Raid 5 过程概要10、 创建 RAID 后，使用以下命令验证 RAID 设备# mdadm -E /dev/sd[b-d]1 验证 Raid 级别注意: 因为它显示三个磁盘的信息，上述命令的输出会有点长。11、 接下来，验证 RAID 阵列，假定包含 RAID 的设备正在运行并已经开始了重新同步。# mdadm --detail /dev/md0 验证 RAID 阵列第4步：为 md0 创建文件系统12、 在挂载前为“md0”设备创建 ext4 文件系统。# mkfs.ext4 /dev/md0 创建 md0 文件系统13、 现在，在/mnt下创建目录 raid5，然后挂载文件系统到 /mnt/raid5/ 下，并检查挂载点下的文件，你会看到 lost+found 目录。# mkdir /mnt/raid5 # mount /dev/md0 /mnt/raid5/ # ls -l /mnt/raid5/ 14、 在挂载点 /mnt/raid5 下创建几个文件，并在其中一个文件中添加一些内容然后去验证。# touch /mnt/raid5/raid5_tecmint_{1..5} # ls -l /mnt/raid5/ # echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1 # cat /mnt/raid5/raid5_tecmint_1 # cat /proc/mdstat 挂载 RAID 设备15、 我们需要在 fstab 中添加条目，否则系统重启后将不会显示我们的挂载点。编辑 fstab 文件添加条目，在文件尾追加以下行。挂载点会根据你环境的不同而不同。# vim /etc/fstab /dev/md0 /mnt/raid5 ext4 defaults 0 0 自动挂载 RAID 516、 接下来，运行mount -av命令检查 fstab 条目中是否有错误。# mount -av 检查 Fstab 错误第5步：保存 Raid 5 的配置17、 在前面章节已经说过，默认情况下 RAID 没有配置文件。我们必须手动保存。如果此步中没有跟随不属于 md0 的 RAID 设备，它会是一些其他随机数字。所以，我们必须要在系统重新启动之前保存配置。如果配置保存它在系统重新启动时会被加载到内核中然后 RAID 也将被加载。# mdadm --detail --scan --verbose >> /etc/mdadm.conf 保存 RAID 5 配置注意：保存配置将保持 md0 设备的 RAID 级别稳定不变。第6步：添加备用磁盘18、 备用磁盘有什么用？它是非常有用的，如果我们有一个备用磁盘，当我们阵列中的任何一个磁盘发生故障后，这个备用磁盘会进入激活重建过程，并从其他磁盘上同步数据，这样就有了冗余。更多关于添加备用磁盘和检查 RAID 5 容错的指令，请阅读下面文章中的第6步和第7步。在 RAID 5 中添加备用磁盘结论在这篇文章中，我们已经看到了如何使用三个磁盘配置一个 RAID 5 。在接下来的文章中，我们将看到如何故障排除并且当 RAID 5 中的一个磁盘损坏后如何恢复。via: http://www.tecmint.com/create-raid-5-in-linux/作者：Babin Lonston 译者：strugglingyouth 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出