在 Linux 下使用 RAID（三）：用两块磁盘创建 RAID 1（镜像）
RAID 镜像意味着相同数据的完整克隆（或镜像），分别写入到两个磁盘中。创建 RAID 1 至少需要两个磁盘，而且仅用于读取性能或者可靠性要比数据存储容量更重要的场合。  在 Linux 中设置 RAID 1 创建镜像是为了防止因硬盘故障导致数据丢失。镜像中的每个磁盘包含数据的完整副本。当一个磁盘发生故障时，相同的数据可以从其它正常磁盘中读取。而后，可以从正在运行的计算机中直接更换发生故障的磁盘，无需任何中断。 RAID 1 的特点   镜像具有良好的性能。   磁盘利用率为50％。也就是说，如果我们有两个磁盘每个500GB，总共是1TB，但在镜像
RAID
116.10.196.23
good，迫不及待想看下一篇了。。。
XYJK1002 [Firefox 40.0|Windows 7]
2015-08-26T10:09:53.000
116.228.20.14
http://www.tecmint.com/category/raid/
anzerchen [Chrome 44.0|Windows 7]
2015-08-26T16:21:16.000
49.80.235.222
分享的十分细致，感觉到用心
木一明兮 [Sogou Explorer 2|Windows 8.1]
2015-08-27T09:13:33.000
49.80.235.222
分享的过程十分细致，用心在做
木一明兮 [Sogou Explorer 2|Windows 8.1]
2015-08-27T09:14:08.000
116.231.254.14
非常详细，很不错
来自上海的 Internet Explorer 8.0|Windows 7 用户
2015-08-27T11:59:40.000
115.60.14.73
讲解的很详细，很好！收藏了！！！
不简单 [Chrome 31.0|Windows 7]
2015-08-27T19:13:38.000
143.29.63.132
感谢作者，但超过2T的raid不能使用fdisk，要用parted
来自美国的 Chrome 51.0|Windows 7 用户
2016-07-20T16:56:38.000
180.213.9.100
楼主棒棒的 一变做通 谢楼主
来自天津的 Chrome 61.0|Windows 10 用户
2017-09-24T15:12:21.000
221.6.159.250
感谢！楼主棒棒的
来自江苏镇江的 Chrome 73.0|Mac 10.14 用户
2019-04-30T14:20:08.000
RAID 镜像意味着相同数据的完整克隆（或镜像），分别写入到两个磁盘中。创建 RAID 1 至少需要两个磁盘，而且仅用于读取性能或者可靠性要比数据存储容量更重要的场合。  在 Linux 中设置 RAID 1 创建镜像是为了防止因硬盘故障导致数据丢失。镜像中的每个磁盘包含数据的完整副本。当一个磁盘发生故障时，相同的数据可以从其它正常磁盘中读取。而后，可以从正在运行的计算机中直接更换发生故障的磁盘，无需任何中断。 RAID 1 的特点   镜像具有良好的性能。   磁盘利用率为50％。也就是说，如果我们有两个磁盘每个500GB，总共是1TB，但在镜像
**RAID 镜像**意味着相同数据的完整克隆（或镜像），分别写入到两个磁盘中。创建 RAID 1 至少需要两个磁盘，而且仅用于读取性能或者可靠性要比数据存储容量更重要的场合。


![Create Raid1 in Linux](/data/attachment/album/201508/25/233632xkk7ik6x4vk6575p.jpg)


*在 Linux 中设置 RAID 1*


创建镜像是为了防止因硬盘故障导致数据丢失。镜像中的每个磁盘包含数据的完整副本。当一个磁盘发生故障时，相同的数据可以从其它正常磁盘中读取。而后，可以从正在运行的计算机中直接更换发生故障的磁盘，无需任何中断。


### RAID 1 的特点


* 镜像具有良好的性能。
* 磁盘利用率为50％。也就是说，如果我们有两个磁盘每个500GB，总共是1TB，但在镜像中它只会显示500GB。
* 在镜像如果一个磁盘发生故障不会有数据丢失，因为两个磁盘中的内容相同。
* 读取性能会比写入性能更好。


#### 要求


创建 RAID 1 至少要有两个磁盘，你也可以添加更多的磁盘，磁盘数需为2，4，6，8等偶数。要添加更多的磁盘，你的系统必须有 RAID 物理适配器（硬件卡）。


这里，我们使用软件 RAID 不是硬件 RAID，如果你的系统有一个内置的物理硬件 RAID 卡，你可以从它的功能界面或使用 Ctrl + I 键来访问它。


需要阅读: [介绍 RAID 的级别和概念](/article-6085-1.html)


#### 在我的服务器安装



```
操作系统 :  CentOS 6.5 Final
IP 地址    :  192.168.0.226
主机名    :  rd1.tecmintlocal.com
磁盘 1 [20GB]  :  /dev/sdb
磁盘 2 [20GB]  :  /dev/sdc

```

本文将指导你在 Linux 平台上使用 mdadm （用于创建和管理 RAID ）一步步的建立一个软件 RAID 1 （镜像）。同样的做法也适用于如 RedHat，CentOS，Fedora 等 Linux 发行版。


### 第1步：安装所需软件并且检查磁盘


1、 正如我前面所说，在 Linux 中我们需要使用 mdadm 软件来创建和管理 RAID。所以，让我们用 yum 或 apt-get 的软件包管理工具在 Linux 上安装 mdadm 软件包。



```
# yum install mdadm     [在 RedHat 系统]
# apt-get install mdadm     [在 Debain 系统]

```

2、 一旦安装好`mdadm`包，我们需要使用下面的命令来检查磁盘是否已经配置好。



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

```

![Check RAID on Disks](/data/attachment/album/201508/25/233634v7rzt7jj0s0643z4.png)


*检查 RAID 的磁盘*


正如你从上面图片看到的，没有检测到任何超级块，这意味着还没有创建RAID。


### 第2步：为 RAID 创建分区


3、 正如我提到的，我们使用最少的两个分区 /dev/sdb 和 /dev/sdc 来创建 RAID 1。我们首先使用`fdisk`命令来创建这两个分区并更改其类型为 raid。



```
# fdisk /dev/sdb

```

按照下面的说明


* 按 `n` 创建新的分区。
* 然后按 `P` 选择主分区。
* 接下来选择分区号为1。
* 按两次回车键默认将整个容量分配给它。
* 然后，按 `P` 来打印创建好的分区。
* 按 `L`，列出所有可用的类型。
* 按 `t` 修改分区类型。
* 键入 `fd` 设置为 Linux 的 RAID 类型，然后按 Enter 确认。
* 然后再次使用`p`查看我们所做的更改。
* 使用`w`保存更改。


![Create Disk Partitions](/data/attachment/album/201508/25/233638o8sp6snp8y75rnzj.png)


*创建磁盘分区*


在创建“/dev/sdb”分区后，接下来按照同样的方法创建分区 /dev/sdc 。



```
# fdisk /dev/sdc

```

![Create Second Partitions](/data/attachment/album/201508/25/233642l5t2zj2fypmp55t2.png)


*创建第二个分区*


4、 一旦这两个分区创建成功后，使用相同的命令来检查 sdb 和 sdc 分区并确认 RAID 分区的类型如上图所示。



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

```

![Verify Partitions Changes](/data/attachment/album/201508/25/233643zdsbfa3bda3b3gkk.png)


*验证分区变化*


![Check RAID Type](/data/attachment/album/201508/25/233643j3m6kp80k1xveiii.png)


*检查 RAID 类型*


**注意**: 正如你在上图所看到的，在 sdb1 和 sdc1 中没有任何对 RAID 的定义，这就是我们没有检测到超级块的原因。


### 第3步：创建 RAID 1 设备


5、 接下来使用以下命令来创建一个名为 /dev/md0 的“RAID 1”设备并验证它



```
# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[b-c]1
# cat /proc/mdstat

```

![Create RAID Device](/data/attachment/album/201508/25/233644u8ccscp1v0uotuu1.png)


*创建RAID设备*


6、 接下来使用如下命令来检查 RAID 设备类型和 RAID 阵列



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

```

![Check RAID Device type](/data/attachment/album/201508/25/233648s66qp76qy8qqjx9x.png)


*检查 RAID 设备类型*


![Check RAID Device Array](/data/attachment/album/201508/25/233650tr1n1dgr9kw11eed.png)


*检查 RAID 设备阵列*


从上图中，人们很容易理解，RAID 1 已经创建好了，使用了 /dev/sdb1 和 /dev/sdc1 分区，你也可以看到状态为 resyncing（重新同步中）。


### 第4步：在 RAID 设备上创建文件系统


7、 给 md0 上创建 ext4 文件系统



```
# mkfs.ext4 /dev/md0

```

![Create RAID Device Filesystem](/data/attachment/album/201508/25/233651cuh9wdfud340lgx4.png)


*创建 RAID 设备文件系统*


8、 接下来，挂载新创建的文件系统到“/mnt/raid1”，并创建一些文件，验证在挂载点的数据



```
# mkdir /mnt/raid1
# mount /dev/md0 /mnt/raid1/
# touch /mnt/raid1/tecmint.txt
# echo "tecmint raid setups" > /mnt/raid1/tecmint.txt

```

![Mount Raid Device](/data/attachment/album/201508/25/233654e8811zd8s112758z.png)


*挂载 RAID 设备*


9、为了在系统重新启动自动挂载 RAID 1，需要在 fstab 文件中添加条目。打开`/etc/fstab`文件并添加以下行：



```
/dev/md0                /mnt/raid1              ext4    defaults        0 0

```

![Raid Automount Device](/data/attachment/album/201508/25/233656biaaun89ffnbybed.png)


*自动挂载 Raid 设备*


10、 运行`mount -av`，检查 fstab 中的条目是否有错误



```
# mount -av

```

![Check Errors in fstab](/data/attachment/album/201508/25/233657q5rg2ag1ah8x3xym.png)


*检查 fstab 中的错误*


11、 接下来，使用下面的命令保存 RAID 的配置到文件“mdadm.conf”中。



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

```

![Save Raid Configuration](/data/attachment/album/201508/25/233658kuh9nn3hk08ejdjk.png)


*保存 Raid 的配置*


上述配置文件在系统重启时会读取并加载 RAID 设备。


### 第5步：在磁盘故障后检查数据


12、我们的主要目的是，即使在任何磁盘故障或死机时必须保证数据是可用的。让我们来看看，当任何一个磁盘不可用时会发生什么。



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

```

![Raid Device Verify](/data/attachment/album/201508/25/233702k70s9wjjk9i10prp.png)


*验证 RAID 设备*


在上面的图片中，我们可以看到在 RAID 中有2个设备是可用的，并且 Active Devices 是2。现在让我们看看，当一个磁盘拔出（移除 sdc 磁盘）或损坏后会发生什么。



```
# ls -l /dev | grep sd
# mdadm --detail /dev/md0

```

![Test RAID Devices](/data/attachment/album/201508/25/233706gurve5xd113xu5p3.png)


*测试 RAID 设备*


现在，在上面的图片中你可以看到，一个磁盘不见了。我从虚拟机上删除了一个磁盘。此时让我们来检查我们宝贵的数据。



```
# cd /mnt/raid1/
# cat tecmint.txt

```

![Verify RAID Data](/data/attachment/album/201508/25/233708stgpt5dxz5yahkpm.png)


*验证 RAID 数据*


你可以看到我们的数据仍然可用。由此，我们可以了解 RAID 1（镜像）的优势。在接下来的文章中，我们将看到如何设置一个 RAID 5 条带化分布式奇偶校验。希望这可以帮助你了解 RAID 1（镜像）是如何工作的。




---


via: <http://www.tecmint.com/create-raid1-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/) 荣誉推出

