当前位置:首页 > 技术 > 正文内容

Linux软RAID配置与管理指南

访客 技术 2026年5月24日 42

Linux内核的md模块负责管理RAID设备,通过mdadm工具实现对MD设备的控制。

(1) mdadm核心参数说明

-C 创建新阵列
-r 移除设备(需处于非活动状态)
-A 激活阵列
-l 设置RAID级别
-D 显示详细信息
-n 指定成员设备数量
-s 扫描配置文件获取信息
-x 设置备用盘数量
-f 标记设备为故障
-c 自定义块大小(默认512K)
-a 添加设备到阵列
-G 调整阵列配置
-v 显示详细过程
-S 停止阵列并释放资源

(2) 实践操作

实验环境:CentOS 7

RAID类型 使用设备 热备盘
RAID0 sdX,Y -
RAID1 sdA,B sdC
RAID5 sdD,E,F sdG
RAID10 sdH,I,J,K -
  1. 构建RAID0阵列
[root@server ~]# ls /dev/sd*
/dev/sda   /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sdf
[root@server ~]# mdadm -v -C /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
Continue creating array? y
mdadm: array /dev/md0 started.
[root@server ~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=server:0 UUID=...
[root@server ~]# mdadm -Dsv > /etc/mdadm.conf

RAID设备挂载方式与常规磁盘相同:

[root@server ~]# mkfs.xfs /dev/md0
[root@server ~]# mkdir /raid0
[root@server ~]# mount /dev/md0 /raid0/
[root@server ~]# df -h /dev/md0
文件系统        容量  已用  可用 已用% 挂载点
/dev/md0         40G   33M   40G    1% /raid0
  1. 配置RAID1镜像
[root@server ~]# mdadm -v -C /dev/md1 -l 1 -n 2 -x 1 /dev/sd{d,e,f}
mdadm: size set to 20954112K
Continue creating array? y
mdadm: array /dev/md1 started.
[root@server ~]# mdadm -Dsv
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 spares=1 ...
[root@server ~]# mdadm -Dsv > /etc/mdadm.conf

模拟磁盘故障测试:

[root@server ~]# mdadm /dev/md1 -f /dev/sde
mdadm: set /dev/sde faulty in /dev/md1
[root@server ~]# mdadm -D /dev/md1
Rebuild Status : 71% complete
    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       2       8       80        1      spare rebuilding   /dev/sdf
       1       8       64        -      faulty   /dev/sde
  1. 配置RAID5阵列
[root@server ~]# mdadm -v -C /dev/md5 -l 5 -n 3 -x 1 -c32 /dev/sd{g,h,i,j}
mdadm: layout defaults to left-symmetric
mdadm: array /dev/md5 started.
[root@server ~]# mdadm -G /dev/md5 -n 4 -c 32
mdadm: array /dev/md5 started.
[root@server ~]# mdadm -D /dev/md5
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Chunk Size : 32K
Reshape Status : 17% complete
  1. 配置RAID10阵列
[root@server ~]# fdisk /dev/sdk
Command (m for help): n
Partition type: p/e
Selected partition 1, size 1G
Command (m for help): n
Partition type: p/e
Selected partition 2, size 1G
Command (m for help): n
Partition type: p/e
Selected partition 3, size 1G
Command (m for help): n
Partition type: p/e
Selected partition 4, size 1G
Command (m for help): w
The partition table has been altered!
[root@server ~]# mdadm -v -C /dev/md10 -l 10 -n 4 /dev/sdk[1-4]
mdadm: array /dev/md10 started.
  1. RAID清理操作
[root@server ~]# umount /raid0/
[root@server ~]# mdadm -Ss
[root@server ~]# rm -rf /etc/mdadm.conf
[root@server ~]# mdadm --zero-superblock /dev/sdb
[root@server ~]# mdadm --zero-superblock /dev/sdc

相关文章

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

PHPStan 有什么用?怎么用?

PHPStan 是一个 PHP 的静态分析工具,在不运行代码的情况下就能帮你发现潜在问题,比如:传错类型(把 string 传给接受 int 的函数)访问不存在的属性 / 方法null 没处理好永远不会执行到的代码数组 key/值类型不一致返回值不符合声明注释和真实类型不匹配它非常适合:想提升代码质量、减少线上 bug、统一团队风格的人(尤其是中大型项目)。一、PHPStan 有什么用(通俗点说)...

PHP 8.5 新特性

PHP 8.5 是在 2025 年 11 月 20 日发布的一个重要版本,带来不少实用的新语法、库增强和调试/性能改进。下面按类别整理主要新特性: 1. 新语法 & 表达力增强 管道操作符(Pipe Operator |>)允许把上一个表达式的值通过管道传给下一个可调用函数,从左往右串联处理,代码更可读:$result = $input    |> trim...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。