问题

问题

问题

为什么我的初始重新同步这么慢?最初cat /proc/mdstat报告~ 30000K/sec

  • 然后我把 增加到/sys/block/md0/md/stripe_cache_size256这样16384就把速度提高到了~50000K/sec
  • /proc/sys/dev/raid/speed_limit_min1000改为,100000/proc/sys/dev/raid/speed_limit_max200000改为400000,但这没有帮助。

我还能做些什么来加快速度?

  • 这个话题建议用其他任何硬盘替换 Western Digital Green 硬盘。这对我来说不是一个选择。
  • 运行smartctl -t short /dev/sd[bcd]之后并smartctl -l selftest /dev/sd[bcd]没有发现任何错误。
  • 我在这个主题上找到了一些资源(12) 没有具体说明如何(哪些命令)来改变某些设置,也没有很好地解释它们的作用以及它们为什么有帮助。

一些背景

如何设置 raid 阵列

我刚刚在我的 Ubuntu 14.04 服务器上添加了三个 2TB Western Digital SATA(其“绿色”系列)硬盘。它们是/dev/sd[bcd]

我决定在 raid5 阵列中使用它们并按如下方式设置所有内容:
1)在每个磁盘上创建一个分区:
fdisk /dev/sdb( 和sdc也一样sdd

基于这篇博文我选择20483907029128作为每个磁盘上的第一个和最后一个扇区。这些数字可以被 4 整除,因为这些驱动器是 4K 扇区驱动器。

da (Non-FS data)根据该博客文章,fs 类型设置为

这会停止分发自动挂载启动脚本,以搜索标记为“fd”的驱动器上的超级块并尝试以有趣的顺序挂载它们。

由于 raid 阵列对于启动系统来说不是必需的,所以这对我来说是有意义的。

2)使用以下命令创建 raid 阵列mdadm mdadm --create --verbose /dev/md0 --level=5 --chunk=2048 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=0 --force

--chunk=2048选项还受到了同一篇博文,“牢记‘应该可以被 4 整除’的逻辑。”

这些--spare-devices=0 --force选项是我自己创建的,因为如果没有这些选项,mdadm命令将启动初始重新同步过程,但会很快减慢到< 200K/sec,然后退出并显示“可能已失败”的消息/var/mail/root/dev/sdd发生这种情况后, 的输出mdadm --detail /dev/md0将显示/dev/sdd1已移至备用驱动器。
自从添加这些选项以来,重新同步继续运行。它首先减慢到< 100K/sec但随后速度增加到大约30000K/sec并保持在那里。

关于正在运行的重新同步过程

atop揭示了/dev/sdd最慢的

DSK |          sdd  | busy    103% | read     930  | write    304 | KiB/r    512  |              |  KiB/w    512 | MBr/s  46.50 |  MBw/s  15.20 | avq   112.12 |  avio 8.10 ms |
DSK |          sdc  | busy     85% | read     942  | write    384 | KiB/r    508  |              |  KiB/w    410 | MBr/s  46.75 |  MBw/s  15.40 | avq    20.59 |  avio 6.21 ms |
DSK |          sdb  | busy     73% | read     942  | write    387 | KiB/r    508  |              |  KiB/w    411 | MBr/s  46.75 |  MBw/s  15.55 | avq    17.31 |  avio 5.31 ms |

关于 WD Green 硬盘

所有驱动器都是在不同时间购买的(因此我怀疑它们来自不同的生产批次,相隔数月)。
/dev/sdb并且/dev/sdc是最新的,具有 64MB 缓存。/dev/sdd具有 32MB 缓存。

答案1

在发布此问题仅几分钟后,初始重新同步就再次取消了,方法是将我最旧的磁盘移至“备用”位置,甚至在达到 100% 之前。

尽管设备没有发现任何smartclt问题,但事实证明它确实坏了。这是由 确定的badblocks,它显示了数千个损坏的扇区。用新磁盘替换该磁盘解决了我的问题。

相关内容