導入事例

導入事例

導入事例6 Xen 完全仮想化ドメインにおけるI/O高負荷時の事象

障害内容

Xenの完全仮想化ドメイン (HVMドメイン) において、高いディスク負荷をかけると、当該ドメインに関し、

  • I/Oの終了時に長時間にわたって応答がなくなる
  • 時計が遅れ、かつその遅れが仮想CPUによって異なる

システム

  • ホスト側: Red Hat Enterprise Linux 5 update 2、Xen-3.1.2-92.el5
  • ゲスト側: Red Hat Enterprise Linux 5 update 2

解析内容

再現試験を行うとともに、Xenハイパバイザ、Xen完全仮想化のI/Oエミュレーションを担うqemu-dm、ゲストLinuxカーネルの各ソースコードを分析の上、発生している事象を解明し、回避策を提示した。

解析結果

  1. I/O高負荷時の応答
    • Xen HVM仮想化においてI/Oエミュレーションを行うqemu-dmは、時間のかかるwrite処理を別スレッドで行うなどの工夫が 行われていたが、flush処理はなぜかメインループの中で行っていた。
    • したがって、高負荷のかかった後flush処理が行われると、 長時間にわたってqemu-dmがflush処理にかかりきりになり、キーボードやNICのエミュレーションも行われない状態となった。
  2. I/O高負荷時の時計のずれ
    • 上記のqemu-dmによるflush処理の間、当該完全仮想化ドメインの仮想CPUのうち、I/Oを発行した仮想CPUは、割り込みを禁止 したまま完了を待つ。
    • Linuxにおいては、時計はタイマ割り込みごとに更新される値に、CPUのタイムスタンプカウンタ (TSC) の値による補正をかけているが、Xenは割り込みを禁止している仮想CPUの仮想TSCの値を更新しないため、補正地の誤差が累積してしまう。
  3. 対処方法
    • qemu-dmのキャッシュを無効にすることにより、flush処理を細切れに行うことにより、長期間にわたる無応答を回避し、 また、CPUごとの誤差を極力小さくする。さらに、NTPなどによる時刻補正を行う。

その他のサービス導入事例

障害解析・サポートサービス VA Quest特定条件でメールが送信できない

障害解析・サポートサービス VA Questping監視に失敗することがある

コンサルティングサービスext3とシンプロビジョニング

ページトップ