在 Linux 下使用 RAID（二）：使用 mdadm 工具创建软件 RAID 0 （条带化）
RAID 即廉价磁盘冗余阵列，其高可用性和可靠性适用于大规模环境中，相比正常使用，数据更需要被保护。RAID 是一些磁盘的集合，是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为（组的）集合。 创建 RAID 最少应使用2个连接到 RAID 控制器的磁盘组成，来构成逻辑卷，可以根据定义的 RAID 级别将更多的驱动器添加到一个阵列中。不使用物理硬件创建的 RAID 被称为软件 RAID。软件 RAID 也叫做穷人 RAID。  在 Linux 中创建 RAID0 使用 RAID 的主要目的是为了在发生单点故障时保存数据，如果我们使用单个磁盘来存储数据，如果它
RAID
39.178.224.60
我想了解一下，有哪位在生产环境中用 “软RAID” 的？
kashu [Chromium 43.0|Ubuntu]
2015-08-25T17:25:10.000
111.197.254.113
使用软 RAID5 的不少吧。
linux [Chrome 44.0|Mac 10.10]
2015-08-25T20:07:17.000
122.70.41.86
扯犊子，软raid依赖于操作系统，系统一崩溃，直接丢数据
来自北京的 Chrome 31.0|Windows 7 用户
2015-08-26T06:58:25.000
220.163.121.35
以前建 RAID5 时，重启后 /dev/md0 名字就变了，也不知道怎么改回来，后面才知道是 /etc/mdadm.conf 的问题
来自云南昆明的 Chrome 41.0|Windows 7 用户
2015-08-26T11:27:40.000
163.177.138.214
1.数据已分成数据块写入硬盘了，不会丢失。<br />
2.系统崩溃，重新装系统及软raid，可以正常读写。<br />
以上个人观点
来自广东广州的 Firefox 39.0|Windows 7 用户
2015-08-28T01:16:25.000
163.177.138.214
当然系统崩溃时，数据写入时丢失是不避免的，这是软件raid缺点。使用软raid,就是追求低成本。
来自广东广州的 Firefox 39.0|Windows 7 用户
2015-08-28T01:27:14.000
111.192.78.226
系统崩溃时，输出的数据没准都是错误的，硬件 RAID 卡也无法防范这点。只是避免了在 IO 系统将数据送到 RAID 卡后的错误。
linux [Chrome 44.0|Mac 10.10]
2015-08-28T09:01:17.000
117.141.11.110
讨论的这么激烈。。。
XYJK1002 [Chrome 42.0|Windows 7]
2015-10-03T19:13:47.000
103.233.130.178
这年头还搞软raid，让硬件生产商如何生活。
来自北京的 Chrome 43.0|Windows 7 用户
2015-12-02T12:46:59.000
RAID 即廉价磁盘冗余阵列，其高可用性和可靠性适用于大规模环境中，相比正常使用，数据更需要被保护。RAID 是一些磁盘的集合，是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为（组的）集合。 创建 RAID 最少应使用2个连接到 RAID 控制器的磁盘组成，来构成逻辑卷，可以根据定义的 RAID 级别将更多的驱动器添加到一个阵列中。不使用物理硬件创建的 RAID 被称为软件 RAID。软件 RAID 也叫做穷人 RAID。  在 Linux 中创建 RAID0 使用 RAID 的主要目的是为了在发生单点故障时保存数据，如果我们使用单个磁盘来存储数据，如果它
RAID 即廉价磁盘冗余阵列，其高可用性和可靠性适用于大规模环境中，相比正常使用，数据更需要被保护。RAID 是一些磁盘的集合，是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为（组的）集合。


创建 RAID 最少应使用2个连接到 RAID 控制器的磁盘组成，来构成逻辑卷，可以根据定义的 RAID 级别将更多的驱动器添加到一个阵列中。不使用物理硬件创建的 RAID 被称为软件 RAID。软件 RAID 也叫做穷人 RAID。


![Setup RAID0 in Linux](/data/attachment/album/201508/24/222802kx000602thjwxthu.jpg)


*在 Linux 中创建 RAID0*


使用 RAID 的主要目的是为了在发生单点故障时保存数据，如果我们使用单个磁盘来存储数据，如果它损坏了，那么就没有机会取回我们的数据了，为了防止数据丢失我们需要一个容错的方法。所以，我们可以使用多个磁盘组成 RAID 阵列。


#### 在 RAID 0 中条带是什么


条带是通过将数据在同时分割到多个磁盘上。假设我们有两个磁盘，如果我们将数据保存到该逻辑卷上，它会将数据保存在两个磁盘上。使用 RAID 0 是为了获得更好的性能，但是如果驱动器中一个出现故障，我们将不能得到完整的数据。因此，使用 RAID 0 不是一种好的做法。唯一的解决办法就是安装有 RAID 0 逻辑卷的操作系统来提高重要文件的安全性。


* RAID 0 性能较高。
* 在 RAID 0 上，空间零浪费。
* 零容错（如果硬盘中的任何一个发生故障，无法取回数据）。
* 写和读性能都很好。


#### 要求


创建 RAID 0 允许的最小磁盘数目是2个，但你可以添加更多的磁盘，不过数目应该是2，4，6，8等的偶数。如果你有一个物理 RAID 卡并且有足够的端口，你可以添加更多磁盘。


在这里，我们没有使用硬件 RAID，此设置只需要软件 RAID。如果我们有一个物理硬件 RAID 卡，我们可以从它的功能界面访问它。有些主板默认内建 RAID 功能，还可以使用 Ctrl + I 键访问它的界面。


如果你是刚开始设置 RAID，请阅读我们前面的文章，我们已经介绍了一些关于 RAID 基本的概念。


* [介绍 RAID 的级别和概念](/article-6085-1.html)


**我的服务器设置**



```
操作系统 :  CentOS 6.5 Final
IP 地址    :  192.168.0.225
两块盘    :  20 GB each

```

这是9篇系列教程的第2部分，在这部分，我们将看看如何能够在 Linux 上创建和使用 RAID 0（条带化），以名为 sdb 和 sdc 两个 20GB 的硬盘为例。


### 第1步：更新系统和安装管理 RAID 的 mdadm 软件


1、 在 Linux 上设置 RAID 0 前，我们先更新一下系统，然后安装`mdadm` 包。mdadm 是一个小程序，这将使我们能够在Linux下配置和管理 RAID 设备。



```
# yum clean all && yum update
# yum install mdadm -y

```

![install mdadm in linux](/data/attachment/album/201508/24/222803t18vzbvv8g0bb89m.png)


*安装 mdadm 工具*


### 第2步：确认连接了两个 20GB 的硬盘


2、 在创建 RAID 0 前，请务必确认两个硬盘能被检测到，使用下面的命令确认。



```
# ls -l /dev | grep sd

```

![Check Hard Drives in Linux](/data/attachment/album/201508/24/222803rq0qe0rwe3n22wkw.png)


*检查硬盘*


3、 一旦检测到新的硬盘驱动器，同时检查是否连接的驱动器已经被现有的 RAID 使用，使用下面的`mdadm` 命令来查看。



```
# mdadm --examine /dev/sd[b-c]

```

![Check RAID Devices in Linux](/data/attachment/album/201508/24/222804ulntnhzxylob0b0t.png)


*检查 RAID 设备*


从上面的输出我们可以看到，没有任何 RAID 使用 sdb 和 sdc 这两个驱动器。


### 第3步：创建 RAID 分区


4、 现在用 sdb 和 sdc 创建 RAID 的分区，使用 fdisk 命令来创建。在这里，我将展示如何创建 sdb 驱动器上的分区。



```
# fdisk /dev/sdb

```

请按照以下说明创建分区。


* 按`n` 创建新的分区。
* 然后按`P` 选择主分区。
* 接下来选择分区号为1。
* 只需按两次回车键选择默认值即可。
* 然后，按`P` 来显示创建好的分区。


![Create Partitions in Linux](/data/attachment/album/201508/24/222806zse644qqf46d79y6.png)


*创建分区*


请按照以下说明将分区创建为 Linux 的 RAID 类型。


* 按`L`，列出所有可用的类型。
* 按`t` 去修改分区。
* 键入`fd` 设置为 Linux 的 RAID 类型，然后按回车确认。
* 然后再次使用`p`查看我们所做的更改。
* 使用`w`保存更改。


![Create RAID Partitions](/data/attachment/album/201508/24/222809j0hzhtq1huykhecw.png)


*在 Linux 上创建 RAID 分区*


**注**: 请使用上述步骤同样在 sdc 驱动器上创建分区。


5、 创建分区后，验证这两个驱动器是否正确定义 RAID，使用下面的命令。



```
# mdadm --examine /dev/sd[b-c]
# mdadm --examine /dev/sd[b-c]1

```

![Verify RAID Partitions](/data/attachment/album/201508/24/222811w6uql6ez699he6c7.png)


*验证 RAID 分区*


### 第4步：创建 RAID md 设备


6、 现在使用以下命令创建 md 设备（即 /dev/md0），并选择 RAID 合适的级别。



```
# mdadm -C /dev/md0 -l raid0 -n 2 /dev/sd[b-c]1
# mdadm --create /dev/md0 --level=stripe --raid-devices=2 /dev/sd[b-c]1

```

* -C – 创建
* -l – 级别
* -n – RAID 设备数


7、 一旦 md 设备已经建立，使用如下命令可以查看 RAID 级别，设备和阵列的使用状态。



```
# cat /proc/mdstat

```

![Verify RAID Level](/data/attachment/album/201508/24/222811wvx8y222xnz2prww.png)


*查看 RAID 级别*



```
# mdadm -E /dev/sd[b-c]1

```

![Verify RAID Device](/data/attachment/album/201508/24/222813n6p4hf6m9jpwpepz.png)


*查看 RAID 设备*



```
# mdadm --detail /dev/md0

```

![Verify RAID Array](/data/attachment/album/201508/24/222815q1llml1slwhbhqrb.png)


*查看 RAID 阵列*


### 第5步：给 RAID 设备创建文件系统


8、 将 RAID 设备 /dev/md0 创建为 ext4 文件系统，并挂载到 /mnt/raid0 下。



```
# mkfs.ext4 /dev/md0

```

![Create ext4 Filesystem in Linux](/data/attachment/album/201508/24/222817tyj74d56fqdpk72e.png)


*创建 ext4 文件系统*


9、 在 RAID 设备上创建好 ext4 文件系统后，现在创建一个挂载点（即 /mnt/raid0），并将设备 /dev/md0 挂载在它下。



```
# mkdir /mnt/raid0
# mount /dev/md0 /mnt/raid0/

```

10、下一步，使用 df 命令验证设备 /dev/md0 是否被挂载在 /mnt/raid0 下。



```
# df -h

```

11、 接下来，在挂载点 /mnt/raid0 下创建一个名为`tecmint.txt` 的文件，为创建的文件添加一些内容，并查看文件和目录的内容。



```
# touch /mnt/raid0/tecmint.txt
# echo "Hi everyone how you doing ?" > /mnt/raid0/tecmint.txt
# cat /mnt/raid0/tecmint.txt
# ls -l /mnt/raid0/

```

![Verify Mount Device](/data/attachment/album/201508/24/222822coztobq68wpzf6qp.png)


*验证挂载的设备*


12、 当你验证挂载点后，就可以将它添加到 /etc/fstab 文件中。



```
# vim /etc/fstab

```

添加以下条目，根据你的安装位置和使用文件系统的不同，自行做修改。



```
/dev/md0                /mnt/raid0              ext4    deaults         0 0

```

![Add Device to Fstab](/data/attachment/album/201508/24/222823tj0od78qedw59o9s.png)


*添加设备到 fstab 文件中*


13、 使用 mount 命令的 `-a` 来检查 fstab 的条目是否有误。



```
# mount -av

```

![Check Errors in Fstab](/data/attachment/album/201508/24/222825n644vx4pfd4x62rr.png)


*检查 fstab 文件是否有误*


### 第6步：保存 RAID 配置


14、 最后，保存 RAID 配置到一个文件中，以供将来使用。我们再次使用带有`-s` (scan) 和`-v` (verbose) 选项的 `mdadm` 命令，如图所示。



```
# mdadm -E -s -v >> /etc/mdadm.conf
# mdadm --detail --scan --verbose >> /etc/mdadm.conf  
# cat /etc/mdadm.conf

```

![Save RAID Configurations](/data/attachment/album/201508/24/222826atiiobykt9jy8yxt.png)


*保存 RAID 配置*


就这样，我们在这里看到，如何通过使用两个硬盘配置具有条带化的 RAID 0 。在接下来的文章中，我们将看到如何设置 RAID 1。




---


via: <http://www.tecmint.com/create-raid0-in-linux/>


作者：[Babin Lonston](http://www.tecmint.com/author/babinlonston/) 译者：[strugglingyouth](https://github.com/strugglingyouth) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](https://linux.cn/) 荣誉推出

