Create Part 1 - Introduction to RAID, Concepts of RAID and RAID Levels.md

This commit is contained in:
struggling 2015-08-04 10:52:16 +08:00
parent 03f40b38ba
commit 81f06d85c3

View File

@ -0,0 +1,146 @@
RAID的级别和概念的介绍 - 第1部分
================================================================================
RAID是廉价磁盘冗余阵列但现在它被称为独立磁盘冗余阵列。早先一个容量很小的磁盘都是非常昂贵的但是现在我们可以很便宜的买到一个更大的磁盘。Raid 是磁盘的一个集合,被称为逻辑卷。
![RAID in Linux](http://www.tecmint.com/wp-content/uploads/2014/10/RAID.jpg)
在 Linux 中理解 RAID 的设置
RAID包含一组或者一个集合甚至一个阵列。使用一组磁盘结合驱动器组成 RAID 阵列或 RAID 集。一个 RAID 控制器至少使用两个磁盘并且使用一个逻辑卷或者多个驱动器在一个组中。在一个磁盘组的应用中只能使用一个 RAID 级别。使用 RAID 可以提高服务器的性能。不同 RAID 的级别,性能会有所不同。它通过容错和高可用性来保存我们的数据。
这个系列被命名为RAID的构建共包含9个部分包括以下主题。
- 第1部分RAID的级别和概念的介绍
- 第2部分在Linux中如何设置 RAID0条带化
- 第3部分在Linux中如何设置 RAID1镜像化
- 第4部分在Linux中如何设置 RAID5条带化与分布式奇偶校验
- 第5部分在Linux中如何设置 RAID6条带双分布式奇偶校验
- 第6部分在Linux中设置 RAID 10 或1 + 0嵌套
- 第7部分增加现有的 RAID 阵列并删除损坏的磁盘
- 第8部分在 RAID 中恢复(重建)损坏的驱动器
- 第9部分在 Linux 中管理 RAID
这是9系列教程的第1部分在这里我们将介绍 RAID 的概念和 RAID 级别,这是在 Linux 中构建 RAID 需要理解的。
### 软件RAID和硬件RAID ###
软件 RAID 的性能很低,因为其从主机资源消耗。 RAID 软件需要加载可读取数据从软件 RAID 卷中。在加载 RAID 软件前,操作系统需要得到加载 RAID 软件的引导。在软件 RAID 中无需物理硬件。零成本投资。
硬件 RAID 具有很高的性能。他们有专用的 RAID 控制器,采用 PCI Express卡物理内置的。它不会使用主机资源。他们有 NVRAM 缓存读取和写入。当重建时即使出现电源故障,它会使用电池电源备份存储缓存。对于大规模使用需要非常昂贵的投资。
硬件 RAID 卡如下所示:
![Hardware RAID](http://www.tecmint.com/wp-content/uploads/2014/10/Hardware-RAID.jpg)
硬件RAID
#### 精选的 RAID 概念 ####
- 在 RAID 重建中校验方法中丢失的内容来自从校验中保存的信息。 RAID 5RAID 6 基于校验。
- 条带化是随机共享数据到多个磁盘。它不会在单个磁盘中保存完整的数据。如果我们使用3个磁盘则数据将会存在于每个磁盘上。
- 镜像被用于 RAID 1 和 RAID 10。镜像会自动备份数据。在 RAID 1它将保存相同的内容到其他盘上。
- 在我们的服务器上,热备份只是一个备用驱动器,它可以自动更换发生故障的驱动器。在我们的阵列中,如果任何一个驱动器损坏,热备份驱动器会自动重建。
- 块是 RAID 控制器每次读写数据时的最小单位最小4KB。通过定义块大小我们可以增加 I/O 性能。
RAID有不同的级别。在这里我们仅看到在真实环境下的使用最多的 RAID 级别。
- RAID0 = 条带化
- RAID1 = 镜像
- RAID5 = 单个磁盘分布式奇偶校验
- RAID6 = 双盘分布式奇偶校验
- RAID10 = 镜像 + 条带。嵌套RAID
RAID 在大多数 Linux 发行版上使用 mdadm 的包管理。让我们先对每个 RAID 级别认识一下。
#### RAID 0条带化 ####
条带化有很好的性能。在 RAID 0条带化中数据将使用共享的方式被写入到磁盘。一半的内容将是在一个磁盘上另一半内容将被写入到其它磁盘。
假设我们有2个磁盘驱动器例如如果我们将数据“TECMINT”写到逻辑卷中“T”将被保存在第一盘中“E”将保存在第二盘'C'将被保存在第一盘“M”将保存在第二盘它会一直继续此循环过程。
在这种情况下如果驱动器中的任何一个发生故障我们将丢失所有的数据因为一个盘中只有一半的数据不能用于重建。不过当比较写入速度和性能时RAID0 是非常好的。创建 RAID 0条带化至少需要2个磁盘。如果你的数据是非常宝贵的那么不要使用此 RAID 级别。
- 高性能。
- 在 RAID0 上零容量损失。
- 零容错。
- 写和读有很高的性能。
#### RAID1镜像化 ####
镜像也有不错的性能。镜像可以备份我们的数据。假设我们有两组2TB的硬盘驱动器我们总共有4TB但在镜像中驱动器在 RAID 控制器的后面形成一个逻辑驱动器我们只能看到逻辑驱动器有2TB。
当我们保存数据时它将同时写入2TB驱动器中。创建 RAID 1 (镜像化)最少需要两个驱动器。如果发生磁盘故障,我们可以恢复 RAID 通过更换一个新的磁盘。如果在 RAID 1 中任何一个磁盘发生故障,我们可以从另一个磁盘中获取相同的数据,因为其他的磁盘中也有相同的数据。所以是零数据丢失。
- 良好的性能。
- 空间的一半将在总容量丢失。
- 完全容错。
- 重建会更快。
- 写性能将是缓慢的。
- 读将会很好。
- 被操作系统和数据库使用的规模很小。
#### RAID 5分布式奇偶校验 ####
RAID 5 多用于企业的水平。 RAID 5 的工作通过分布式奇偶校验的方法。奇偶校验信息将被用于重建数据。它需要留下的正常驱动器上的信息去重建。驱动器故障时,这会保护我们的数据。
假设我们有4个驱动器如果一个驱动器发生故障而后我们更换发生故障的驱动器后我们可以从奇偶校验中重建数据到更换的驱动器上。奇偶校验信息存储在所有的4个驱动器上如果我们有4个 1TB 的驱动器。奇偶校验信息将被存储在每个驱动器的256G中而其它768GB是用户自己使用的。单个驱动器故障后RAID 5 依旧正常工作如果驱动器损坏个数超过1个会导致数据的丢失。
- 性能卓越
- 读速度将非常好。
- 如果我们不使用硬件 RAID 控制器,写速度是缓慢的。
- 从所有驱动器的奇偶校验信息中重建。
- 完全容错。
- 1个磁盘空间将用于奇偶校验。
- 可以被用在文件服务器Web服务器非常重要的备份中。
#### RAID 6 两个分布式奇偶校验磁盘 ####
RAID 6 和 RAID 5 相似但它有两个分布式奇偶校验。大多用在大量的阵列中。我们最少需要4个驱动器即使有2个驱动器发生故障我们依然可以重建数据同时更换新的驱动器。
它比 RAID 5 非常慢因为它将数据同时写到4个驱动器上。当我们使用硬件 RAID 控制器时速度将被平均。如果我们有6个的1TB驱动器4个驱动器将用于数据保存2个驱动器将用于校验。
- 性能不佳。
- 读的性能很好。
- 如果我们不使用硬件 RAID 控制器写的性能会很差。
- 从2奇偶校验驱动器上重建。
- 完全容错。
- 2个磁盘空间将用于奇偶校验。
- 可用于大型阵列。
- 在备份和视频流中大规模使用。
#### RAID 10镜像+条带 ####
RAID 10 可以被称为1 + 0或0 +1。它将做镜像+条带两个工作。在 RAID 10 中首先做镜像然后做条带。在 RAID 01 上首先做条带然后做镜像。RAID 10 比 01 好。
假设我们有4个驱动器。当我写了一些数据到逻辑卷上它会使用镜像和条带将数据保存到4个驱动器上。
如果我在 RAID 10 上写入数据“TECMINT”数据将使用如下形式保存。首先将“T”同时写入两个磁盘“E”也将同时写入两个磁盘这一步将所有数据都写入。这使数据得到备份。
同时它将使用 RAID 0 方式写入数据遵循将“T”写入第一个盘“E”写入第二个盘。再次将“C”写入第一个盘“M”到第二个盘。
- 良好的读写性能。
- 空间的一半将在总容量丢失。
- 容错。
- 从备份数据中快速重建。
- 它的高性能和高可用性常被用于数据库的存储中。
### 结论 ###
在这篇文章中,我们已经看到了什么是 RAID 和在实际环境大多采用 RAID 的哪个级别。希望你已经学会了上面所写的。对于 RAID 的构建必须了解有关 RAID 的基本知识。以上内容对于你了解 RAID 基本满足。
在接下来的文章中,我将介绍如何设置和使用各种级别创建 RAID增加 RAID 组(阵列)和驱动器故障排除等。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/understanding-raid-setup-in-linux/
作者:[Babin Lonston][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/babinlonston/