KVMを使ったシステムで、ロードアベレージが上がり、Webページが表示され難くなる現象が発生しました。
調べてみると、HDDの読み込み性能が著しく低下しているのが解りました。
アクセスが多ければ低下するのは当然だけど、無い状態にしてもあまり改善されず。
その時、使ったコマンドが下記で、結果は仮想OSが10MB/sec代、ホストOSが30MB/sec弱。
後で幾つかのサーバで計測しましたが、リクエストの少ない環境で、150MB/sec前後、スペックの高いサーバだと200MB/secを超えました。

# hdparm -t /dev/mapper/VolGroup-lv_root

(-t以降のデバイスは環境毎に異なるので、df等で確認してください)

ちなみに半年ぐらい前に構築して、原因不明でKeepalivedがフェールオーバするというのが1度あり、その後は安定稼働、最近、この現象が2回発生しました。
今、思えば、最初のもこれが原因なのかもね。
この障害以外にも運用に問題があり、自分が引き取る事にしたという経緯です。
自分はVMware派でKVMは使った事がなく、かつ構築時の手順書もないという状態なので詳しくは解りませんが。。。

1回目の障害は、1号機に切り替え解消。2回目は、2号機も遅いという状態で打つ手なしと思ったけど、クローンを作って切り替える事で解消出来ました。
但し、1号機のクローンは遅いまま。2号機のクローンは改善。1号機はホストOSの速度も低下していたので、まあそうなるかもね。
KVMでクローンを作成したコマンドが下記。容量にもよりますが、この時は1〜2時間掛かりました。

# virt-clone -o guestos1 -n guestos1-clone -f /var/lib/libvirt/images/guestos1-clone &

KVMか設定が問題だろうと思うが、短期的な解消できる方法に辿り着かなかった為、ゲストOSをそのままVMwareに移す事にしました。
まず試したのが、KVMでqcow2をvmdkに変換し、VMwareへデプロイする。
下記のコマンドは成功するも、VMwareへデプロイが終わりそうな段階で、「Not a supported disk format (spares VMDK version too old)へのアップロードエラー」と出て失敗。

# qemu-img convert -O vmdk /var/lib/libvirt/images/guestos1.qcow2 /tmp/guestos1.vmdk

次に、一旦、VirtualBoxにインポートして、ovfでエクスポート後、VMwareへデプロイ。
今度は「整合性チェックに失敗しました。転送中にファイルが破損した可能性があります。」と出て失敗。

イメージ変換は諦めて、P2Vを試してみる事に。
「VMware vCenter Converter」を下記よりダウンロードして実施。
https://www.vmware.com/jp/products/converter

手順は下記が参考になりました。
http://www.grep.co.jp/modules/event_report/index.php?page=article&storyid=213

CentOSでLVMパーティションを利用している場合、起動時にカーネルパニックを起こすそうなので、基本に変更して、いざ実施するも、7分ぐらい経過した所で「FAILED: fault.HelperVmFailedToObtainIpFault.summary」とエラーが出て失敗。ググってもヒットせず。
自分で作ったCentOSのイメージをVMwareに入れて、それを対象にしても結果は変わらず。
ん〜、P2V面白いと思ったけど、必ずしも上手く行く訳ではなさそう。

という事で、この件は手詰まりに。
何故か5日放置したら、性能が改善してきたので、次回障害時は1号機への切り替えでしのげそう。
とは言え、安心して眠れない状態は自分達にとっても、お客さんにとっても良くないので、VMwareでリプレイスする事にしました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です