現象:
VMware vSphere 5.1 を使っていると、ESXi ホストに時々この警告が発生します。
デバイスxxxxのパフォーマンスが低下しました。
I/O待ち時間は、平均値である マイクロ秒から マイクロ秒に増加しました。
環境:
- ESXi ホスト:
・iSCSI 用:1ギガビット Ethernet port x2
・ストレージ・アダプタ:ESXiの iSCSI Software Adapter - ストレージ:
・iSCSI 用:1ギガビット Ethernet port x2 - ESXiホスト・ストレージ間:
・1ギガビットEhternetのマルチパス接続
・ジャンボフレーム:未使用
原因:
何らかの原因で、ストレージの I/O に遅延が生じています。
表示例:
Device naa.5000c5000b36354b performance has deteriorated. I/O latency increased from average value of 1832 microseconds to 19403 microsecond
※ 1000 マイクロ秒 = 1 ミリ秒
解決策:
- ESXi ホストやストレージのログの確認し、問題がホストなのかストレージなのかストレージネットワークなのか、切り分けて問題点を絞り込む。
- バックアップやレプリケーションの最中に発生した場合それらの開始時間を変更してみる。
- ストレージの過負荷が原因の場合:
- ディスク I/O の過負荷が原因:
- RAID 構成ストレージの場合、ディスクを追加してスピンドルを増やし I/O を分散させる。
- ライトキャッシュが保護されるストレージシステムであれば、ライトキャッシュを有効にする。
- ストレージコントローラーの過負荷が原因:
- ストレージコントローラーを増設して I/O を分散させる。
- LUN の I/O の過負荷が原因:
- LUN を分けて、I/O を分散させる。
- 仮想マシンの OS 用の LUN とデータ用の LUN を分ける。
- 1 つの LUN に格納する仮想マシンを 10 台未満にする。
- ストレージネットワークの過負荷が原因:
- マルチパス構成にして I/O を分散させる。
- LUN を分けて、ネットワーク経路を分散させる。マルチパス構成でもLUNが一つの場合1つの経路しか使わないため。
- 仮想マシンの OS 用の LUN とデータ用の LUN を分ける。
- ESXi のパスのポリシーを「Fixed(固定)」から「Round Robin(ラウンドロビン)」に変更する。
- より高速なネットワークに変更する。
- 専用のネットワークで構成する。
- HBA を追加しマルチパス構成にする。
- FCの場合は、きちんとゾーニングを行う。
- iSCSIの場合は、ジャンボフレームを利用する。ジャンボフレームは、ESXi ホスト、LAN スイッチ、ストレージの全てで同一サイズに設定する。
- iSCSI イニシエータの詳細設定で DelayedAck を無効にする。(平常時遅くなる可能性あり、要経過観察)
- 1 つの iSCSI ターゲットに複数の LUN を割り当てず、1 LUN のみ割り当てる。
- パケットロスのないFCoEを利用する。
- ディスク I/O の過負荷が原因:
対処:
すぐに実現可能だった、ホストからストレージまでを、MTU:9000バイトのジャンボフレームを設定することで発生頻度が減りました。
参考:
VMware : iSCSI and Jumbo Frames configuration on ESX/ESXi (1007654)
VMware : Storage device performance deteriorated (2007236)
VMware : ESX/ESXi 4.x, ESXi 5.x におけるマルチパスポリシー (2019882)
VMware : ESX/ESXi hosts might experience read or write performance issues with certain storage arrays (1002598)
Cisco : Fibre Channel over Ethernet(FCoE)
Cisco : ファイバ チャネル ゾーン分割の設定
Cisco : VMware スイッチの iSCSI マルチパス設定