ubuntu服务器使用mdadm管理软阵列问题

一台ubuntu服务器使用dell md3060e连接了大量磁盘,使用mdadm构建了软阵列raid5。

在使用过程中突然发现系统的load奇高(300多),系统响应变的非常慢,导致各种磁盘读写相关的process都hold了。

  1. 问题定位

使用dmesg查询系统状态可发现有一块硬盘出现错误。

dmesg 命令主要用来显示内核信息。使用 dmesg 可以有效诊断机器硬件故障或者添加硬件出现的问题。另外,使用 dmesg 可以确定服务器安装了哪些硬件。每次系统重启,系统都会检查所有硬件并将信息记录下来。执行/bin/dmesg 命令可以查看该记录,开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

使用mdadm可以查询该磁盘对应阵列的状态。

sudo mdadm --detail /dev/md0

查询其中的状态发现该磁盘虽然已经报错,但在阵列中还显示为正常,这个可能就是问题的原因。

2. 问题解决

因此需要将对应的磁盘标记为faulty,让spare状态的磁盘顶上来,以满足raid5的热备需求。(在resync过程中,系统反应实在是过慢,因此尝试了系统重启,然后再进行的操作)

sudo mdadm /dev/md0 --fail /dev/sdw

然后发现resync过程超慢,感觉也是问题,网上搜索了,发现有解决方案:

sysctl -w dev.raid.speed_limit_min=500000
sysctl -w dev.raid.speed_limit_max=5000000

然后可以通过此命令看速度是否有提升:

cat /proc/mdstat

3. 其他工具

可以使用smrtmontools监测硬盘健康状态。

可以使用badblocks检查磁盘坏道。

可以使用dd来格式化有坏道的磁盘。


已发布

分类

来自

标签:

评论

《“ubuntu服务器使用mdadm管理软阵列问题”》 有 1 条评论

  1. risa 的头像
    risa

    It’s awesome. I’ll keep it up. บาคาร่าออนไลน์

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注