CentOS 6.4ベースのサーバーがHitachi HNAS 3080ストレージに接続されており、カーネルがファイルシステムを読み取り専用モードで再マウントすることを確認しました。
5月16日07:31:03 GNS3-SRV-CMP-001カーネル:[1259725.675814] EXT3-fs(dm-1):エラー:ファイルシステムを読み取り専用で再マウントしています
これは、いくつかのI/Oエラーおよびデバイスへのすべてのパスがダウンした後に発生しました。
5月16日07:31:03 GNS3-SRV-CMP-001 multipathd:mpatha:残りのアクティブパス:0
私はsarのログを調べており、非常に長い(2秒)待機時間がほとんど見られません。
07:40:00 dev8-0 17.91 112.04 98.03 11.73 0.00 0.20 0.07 0.12
07:40:00 dev8-16 0.23 1.85 0.00 8.00 0.00 3.71 3.71 0.09
07:40:00 dev8-32 91.50 8338.76 5292.93 148.98 8.38 91.60 9.76 89.35
07:40:00 dev252-0 91.27 8336.91 5292.93 149.34 17.79 194.88 9.79 89.38
07:40:00 dev252-1 674.80 8168.16 5292.93 19.95 1473.53 2183.60 1.32 88.98
07:30:00〜07:40:00の期間は、ファイルシステムが読み取り専用でマウントされたときに発生します。ただし、通常の条件下でも、1つの繰り返しの観察は、基礎となるデバイスの待機時間がマルチパスデバイスの待機時間よりもはるかに短いことです。例えば:
00:00:00 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00:10:00 dev8-0 19.27 129.41 78.61 10.80 0.01 0.27 0.16 0.32
00:10:00 dev8-16 0.23 1.80 0.00 8.00 0.00 0.86 0.84 0.02
00:10:00 dev8-32 94.88 10285.16 3363.48 143.86 3.39 35.76 6.83 64.82
00:10:00 dev252-0 94.65 10283.34 3363.48 144.18 3.64 38.47 6.86 64.89
00:10:00 dev252-1 435.06 10087.12 3363.48 30.92 118.42 272.21 1.47 64.12
dev8-0はたまたまローカルディスクですが、dev8-16(/dev/sdb
)とdev8-32(/dev/sdc
)は、dev252-0(/dev/mapper/mpatha
)の基礎となるものです。 dev252-1(/dev/mapper/mpathap1
)は、マルチパスデバイス全体にわたる単一のパーティションです。以下はmultipath -ll
からの出力です。
mpatha (2521501cbffffffffe96773b50ec30020) dm-0 BlueArc,NAS Platform
size=10T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 9:0:0:0 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=active
`- 8:0:0:0 sdb 8:16 active ready running
/dev/mapper/mpathap1
の待機時間が/dev/mapper/mpatha
または/dev/sdb
または/dev/sdc
の待機時間よりもはるかに長いのはなぜですか?
ユーザーthe-wabbitが示唆するように、リクエストのマージが行われています。 avgrq-sz列で、平均リクエストサイズ-大幅な増加を示していることがわかります。
ここで「待機」とは、キューで費やされた時間に、それらのリクエストの処理に費やされた時間を加えたものです。小さなリクエストを「x」と呼び、他のいくつかのリクエスト(yとz、xの後に発行される)とマージすると、xは
これは明らかに、主に実際に問題を示すことなく待機の計算方法が原因で、待機統計に悪影響を及ぼします。
ここで、/ dev/sdb(dev8-16)を見てみましょう。そのパスを使用していないことをご存知ですか?マルチパス設定に2つの優先グループがあり、1つは
status = enabled
そして上に
status = active
あなたはおそらく持っています
path_grouping_policyフェイルオーバー
構成内(これがデフォルトです)。
両方のパスがダウンしている場合にIOエラーを回避したい場合は、次の方法を試してください。
機能「1 queue_if_no_path」
今、本当の問題が残っています、なぜ両方の道が下がるのですか?