阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何使用Linux程序mdadm创建软件RAID1软阵列

470次阅读
没有评论

共计 6415 个字符,预计需要花费 17 分钟才能阅读完成。

磁盘冗余阵列 (RAID) 是将多个物理磁盘结合成一个逻辑磁盘的技术,该技术可以提高磁盘容错性能,提高磁盘的读写速度。根据数据存储的排列(如:条带存储,镜像存储,奇偶或者他们的组合),定义了几个不同级别的 RAID(RAID-0,RAID-1,RAID-5 等等)。磁盘阵列可以使用软件或者硬件方式实现。现代 Linux 操作系统中,基本的软件 RAID 功能是默认安装的。

本文中,我们将介绍软件方式构建 RAID- 1 阵列(镜像阵列),RAID- 1 将相同的数据写到不同的设备中。虽然可以使用同一个磁盘的两个分区实现 RAID-1,但是如果磁盘坏了的话数据就都丢了,所以没什么意义。实际上,这也是为什么大多数 RAID 级别都使用多个物理磁盘提供冗余。当单盘失效后不影响整个阵列的运行,并且可以在线更换磁盘,最重要的是数据不会丢失。尽管如此,阵列不能取代外部存储的定期备份。

由于 RAID- 1 阵列的大小是阵列中最小磁盘的大小,一般来说应该使用两个大小相同的磁盘来组建 RAID-1。

Linux 下用 mdadm 实现软件 RAID  http://www.linuxidc.com/Linux/2007-12/9489.htm

如何在 Linux 上构建 RAID 10 阵列  http://www.linuxidc.com/Linux/2014-12/110318.htm

Debian 软 RAID 安装笔记 – 使用 mdadm 安装 RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm

常用 RAID 技术介绍以及示例演示(多图) http://www.linuxidc.com/Linux/2013-03/81481.htm

Linux 实现最常用的磁盘阵列 – RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm

RAID0+ 1 和 RAID5 的性能测试结果 http://www.linuxidc.com/Linux/2012-07/65567.htm

Linux 入门教程:磁盘阵列(RAID)http://www.linuxidc.com/Linux/2014-07/104444.htm

安装 mdadm

我们将使用 mdadm(简称多盘管理)工具创建、组装、管理和监控软件 RAID-1。在诸如 Fedora、CentOS、RHEL 或者 Arch Linux 的发行版中,mdadm 是默认安装的。在基于 Debian 的发行版中,可以使用 aptitude 或者 apt-get 安装 mdadm。

Fedora, CentOS 或 RHEL

由于 adadm 是预装的,所以我们只需要开启 RAID 守护服务,并将其配置成开机启动即可:

  1. # systemctl start mdmonitor
  2. # systemctl enable mdmonitor

对于 CentOS/RHEL 6 系统,使用以下命令:

  1. # service mdmonitor start
  2. # chkconfig mdmonitor on

Debian, Ubuntu 或 Linux Mint

在 Debian 或类 Debian 系统中,mdadm 可以使用 aptitude 或者 apt-get 安装:

  1. # aptitude install mdadm

Ubuntu 系统中,会要求配置 Postfix MTA 以发送电子邮件通知。你可以跳过去。

Debian 系统中,安装程序会显示以下解释信息,用来帮助我们去判断是否将根目录安装到 RAID 阵列中。下面的所有操作都有赖于这一步,所以应该仔细阅读他。

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

我们不在根目录使用 RAID-1,所以留空。

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

提示是否开机启动阵列的时候,选择“是”。注意,这里需要往 /etc/fstab 文件中添加一个条目使得系统启动的时候正确挂载阵列。

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

硬盘分区

现在开始准备建立阵列需要的硬盘。这里插入两个 8GB 的 usb 磁盘,使用 dmesg 命令设备显示设备 /dev/sdb 和 /dev/sdc

  1. # dmesg | less

[60.014863] sd 3:0:0:0: [sdb] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB) [75.066466] sd 4:0:0:0: [sdc] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB)

我们使用 fdisk 为每个磁盘建立一个大小为 8G 的主分区。以下步骤是如何在 /dev/sdb 上建立分区,假设次磁盘从未被分区(如果有其他分区的话,可以删掉):

  1. # fdisk /dev/sdb

按 p 键输出现在的分区表:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

(如果有分区的话,可以使用 d 选项删除,w 选项应用更改)。

磁盘上没有分区,所以我们使用命令 [‘n’] 创建一个主分区[‘p’], 分配分区号为[‘1’] 并且指定大小。你可以按回车使用默认值,或者输入一个你想设置的值。如下图:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

用同样的方法为 /dev/sdc 分区。

如果我们有两个不同容量的硬盘,比如 750GB 和 1TB 的话,我们需要在每个磁盘上分出一个 750GB 的主分区,大盘剩下的空间可以用作他用,不加入磁盘阵列。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-02/113506p2.htm

创建 RAID-1 阵列

磁盘分区完成后,我们可以使用以下命令创建 RAID-1 阵列:

  1. # mdadm -Cv /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1

说明:

  • -Cv: 创建一个阵列并打印出详细信息。
  • /dev/md0: 阵列名称。
  • -l1 (l as in “level”): 指定阵列类型为 RAID-1。
  • -n2: 指定我们将两个分区加入到阵列中去,分别为 /dev/sdb1 和 /dev/sdc1

以上命令和下面的等价:

  1. # mdadm –create –verbose /dev/md0 –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1

如果你想在在磁盘失效时添加另外一个磁盘到阵列中,可以指定 ‘–spare-devices=1 /dev/sdd1’ 到以上命令。

输入“y”继续创建阵列,回车:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

可以使用以下命令查看进度:

  1. # cat /proc/mdstat

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

另外一个获取阵列信息的方法是:

  1. # mdadm –query /dev/md0
  2. # mdadm –detail /dev/md0 (或 mdadm -D /dev/md0)

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

‘mdadm -D’ 命令提供的信息中,最重要就是阵列状态类。激活状态说明阵列正在进行读写操作。其他几个状态分别为:完成 (读写完成)、降级(有一块磁盘失效或丢失) 或者恢复中(一张新盘已插入,系统正在写入数据)。这几个状态涵盖了大多数情况。

格式化或加载磁盘阵列

下一步就是格式化阵列了,本例中使用 ext4 格式:

  1. # mkfs.ext4 /dev/md0

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

现在可以加载阵列并验证其正常加载:

  1. # mount /dev/md0 /mnt
  2. # mount

磁盘冗余阵列 (RAID) 是将多个物理磁盘结合成一个逻辑磁盘的技术,该技术可以提高磁盘容错性能,提高磁盘的读写速度。根据数据存储的排列(如:条带存储,镜像存储,奇偶或者他们的组合),定义了几个不同级别的 RAID(RAID-0,RAID-1,RAID-5 等等)。磁盘阵列可以使用软件或者硬件方式实现。现代 Linux 操作系统中,基本的软件 RAID 功能是默认安装的。

本文中,我们将介绍软件方式构建 RAID- 1 阵列(镜像阵列),RAID- 1 将相同的数据写到不同的设备中。虽然可以使用同一个磁盘的两个分区实现 RAID-1,但是如果磁盘坏了的话数据就都丢了,所以没什么意义。实际上,这也是为什么大多数 RAID 级别都使用多个物理磁盘提供冗余。当单盘失效后不影响整个阵列的运行,并且可以在线更换磁盘,最重要的是数据不会丢失。尽管如此,阵列不能取代外部存储的定期备份。

由于 RAID- 1 阵列的大小是阵列中最小磁盘的大小,一般来说应该使用两个大小相同的磁盘来组建 RAID-1。

Linux 下用 mdadm 实现软件 RAID  http://www.linuxidc.com/Linux/2007-12/9489.htm

如何在 Linux 上构建 RAID 10 阵列  http://www.linuxidc.com/Linux/2014-12/110318.htm

Debian 软 RAID 安装笔记 – 使用 mdadm 安装 RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm

常用 RAID 技术介绍以及示例演示(多图) http://www.linuxidc.com/Linux/2013-03/81481.htm

Linux 实现最常用的磁盘阵列 – RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm

RAID0+ 1 和 RAID5 的性能测试结果 http://www.linuxidc.com/Linux/2012-07/65567.htm

Linux 入门教程:磁盘阵列(RAID)http://www.linuxidc.com/Linux/2014-07/104444.htm

安装 mdadm

我们将使用 mdadm(简称多盘管理)工具创建、组装、管理和监控软件 RAID-1。在诸如 Fedora、CentOS、RHEL 或者 Arch Linux 的发行版中,mdadm 是默认安装的。在基于 Debian 的发行版中,可以使用 aptitude 或者 apt-get 安装 mdadm。

Fedora, CentOS 或 RHEL

由于 adadm 是预装的,所以我们只需要开启 RAID 守护服务,并将其配置成开机启动即可:

  1. # systemctl start mdmonitor
  2. # systemctl enable mdmonitor

对于 CentOS/RHEL 6 系统,使用以下命令:

  1. # service mdmonitor start
  2. # chkconfig mdmonitor on

Debian, Ubuntu 或 Linux Mint

在 Debian 或类 Debian 系统中,mdadm 可以使用 aptitude 或者 apt-get 安装:

  1. # aptitude install mdadm

Ubuntu 系统中,会要求配置 Postfix MTA 以发送电子邮件通知。你可以跳过去。

Debian 系统中,安装程序会显示以下解释信息,用来帮助我们去判断是否将根目录安装到 RAID 阵列中。下面的所有操作都有赖于这一步,所以应该仔细阅读他。

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

我们不在根目录使用 RAID-1,所以留空。

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

提示是否开机启动阵列的时候,选择“是”。注意,这里需要往 /etc/fstab 文件中添加一个条目使得系统启动的时候正确挂载阵列。

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

硬盘分区

现在开始准备建立阵列需要的硬盘。这里插入两个 8GB 的 usb 磁盘,使用 dmesg 命令设备显示设备 /dev/sdb 和 /dev/sdc

  1. # dmesg | less

[60.014863] sd 3:0:0:0: [sdb] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB) [75.066466] sd 4:0:0:0: [sdc] 15826944 512-byte logical blocks: (8.10 GB/7.54 GiB)

我们使用 fdisk 为每个磁盘建立一个大小为 8G 的主分区。以下步骤是如何在 /dev/sdb 上建立分区,假设次磁盘从未被分区(如果有其他分区的话,可以删掉):

  1. # fdisk /dev/sdb

按 p 键输出现在的分区表:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

(如果有分区的话,可以使用 d 选项删除,w 选项应用更改)。

磁盘上没有分区,所以我们使用命令 [‘n’] 创建一个主分区[‘p’], 分配分区号为[‘1’] 并且指定大小。你可以按回车使用默认值,或者输入一个你想设置的值。如下图:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

用同样的方法为 /dev/sdc 分区。

如果我们有两个不同容量的硬盘,比如 750GB 和 1TB 的话,我们需要在每个磁盘上分出一个 750GB 的主分区,大盘剩下的空间可以用作他用,不加入磁盘阵列。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-02/113506p2.htm

监控磁盘阵列

mdadm 工具内置有磁盘阵列监控功能。当 mdadm 作为守护程序运行的时候(就像我们上文那样),会周期性的检测阵列运行状态,将检测到的信息通过电子邮件或者系统日志报告上来。当然,也可以配置其在发生致命性错误的时候调用紧急命令。

mdadm 默认会记录所有已知分区和阵列的事件,并将他们记录到 /var/log/syslog 中。或者你可以在配置文件中 (debian 系统:/etc/mdadm/mdadm.conf,红帽子系统:/etc/mdadm.conf) 用以下格式指定监控设备或者阵列。如果 mdadm.conf 文件不存在,你可以创建一个。

  1. DEVICE /dev/sd[bcde]1/dev/sd[ab]1
  2.  
  3. ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1
  4. ARRAY /dev/md1 devices=/dev/sdd1,/dev/sde1
  5. …..
  6.  
  7. # optional email address to notify events
  8. MAILADDR your@email.com

编辑完毕 mdadm 配置文件后,重启 mdadm 服务:

Debian 系统,Ubuntu 或者 Linux Mint:

  1. # service mdadm restart

Fedora, CentOS 或 RHEL 7:

  1. # systemctl restart mdmonitor

CentOS 或者 RHEL 6:

  1. # service mdmonitor restart

自动加载阵列

现在我们在 /etc/fstab 中加入条目使得系统启动的时候将阵列挂载到 /mnt 目录下:

  1. # echo “/dev/md0 /mnt ext4 defaults 0 2” << /etc/fstab

为了验证挂载脚本工作正常,我们首先卸载阵列,重启 mdadm,然后重新加载。可以看到 /dev/md0 已经安装我们添加到 /etc/fstab 中的条目加载了:

  1. # umount /mnt
  2. # service mdadm restart (on Debian, Ubuntu or Linux Mint)
  3. or systemctl restart mdmonitor (on Fedora,CentOS/RHEL7)
  4. or service mdmonitor restart (on CentOS/RHEL6)
  5. # mount -a

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

现在我们的阵列已经可以访问了,拷贝文件 /etc/passwd 到 /mnt 中测试一下:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

Debian 系统中,需要在 /etc/default/mdadm 设置 AUTOSTART 变量为 true 才能使 mdadm 守护程序在开机时自动加载阵列:

  1. AUTOSTART=true

模拟磁盘丢失故障

我们将使用以下命令卸载磁盘来模拟磁盘故障。注意,在实际应用中,磁盘如果已经是故障状态了,不需要卸载。

首先,卸载阵列:

  1. # umount /mnt

现在注意每次执行命令后 ‘mdadm -D /dev/md0’ 的输出。

  1. # mdadm /dev/md0 –fail /dev/sdb1 # 标记 /dev/sdb1 为失效
  2. # mdadm –remove /dev/md0 /dev/sdb1 # 从阵列中移走 /dev/sdb1

然后,如果你有个备用盘的话,重新添加一下:

  1. # mdadm /dev/md0 –add /dev/sdb1

数据会被自动添加到备用盘 /dev/sdb1 上:

如何使用 Linux 程序 mdadm 创建软件 RAID1 软阵列

注意以上所述步骤只适合支持磁盘热拔插的系统,在不支持热拔插的系统中,还是得停止阵列并关机后更换备用盘:

  1. # mdadm –stop /dev/md0
  2. # shutdown -h now

最后将新驱动器重新添加到阵列中:

  1. # mdadm /dev/md0 –add /dev/sdb1
  2. # mdadm –assemble /dev/md0 /dev/sdb1 /dev/sdc1

希望本文对你有所帮助。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6415字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7956494
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...