ZFSのscrubが異常に遅い(Extremely slow zpool scrub performance)

cautionThis post might be outdated.

この投稿は6 年前に投稿されたものです。
記載内容が古くなっている可能性があります。

自動修復機能のあるZFSとて、デバイスのエラーがバラバラと出てきたら早めに手を打たないと、データの修復ができなくなることもあり得るので、scrubを実行してみた。
いざ実行してみたら異常に遅かったのだが調べてみたところ、速度を上げるパラメータがあった。

しばらく放置してみて様子を見ると、

「scan is slow, no estimated time」って何!!
1M/sなんてありえない。。

て感じです。

scrub速度を上げるためのパラメータ

色々調べてみたところ、zfs-discuss(ZFS on LinuxプロジェクトのディスカッションML)での情報を発見。

Re: [zfs-discuss] Extremely slow zpool scrub performance — zfs-discuss, Wed, 18 May 2011 18:20:53 -0700
曰く、scrubの速度をあげるには、
・zfs_scrub_delayを1に
・zfs_top_maxinflightを64に
するとよいとのこと。

こんな設定をしている人もいた。
Re: Speed up a scrub — zfs-discuss, 29 Sep 22:01 2011

今回はこの値を拝借して試してみることにした。

ZFS on Linuxでのscrub関連パラメータ変更

と言うことで、/sys/module/zfs/parameters上で設定すればいいらしい。
早速、パラメータを変えてみる。ついでにどんなパラメータがあるか確認してみる。

おぉ、あるある。
既存の設定を調べてみる。

実際にパラメータを変えてみる

前出の設定値を使用してパラメータを変えてみる。
設定する値は、

とする。

再度調べてみる。

おぉ見違えるように早くなりました。(^^

固定化するため、以下の内容で/etc/modprobe.d/zfs.confを作成。

こんな書き込みもあった。
Re: [zfs-discuss] Extremely slow zpool scrub performance

参考URL

Google Groups
zpool scrub speed – zfs-discuss

[OpenIndiana-discuss] slow zfs scrub, fixed after reboot?

The FreeBSD Forums
Severe performance problems with ZFS scrub under some conditions

Richard EllingHow to manage scrub priority or defer scrub?