VMware / Microsoft 製品はこう使う。

好きなことを好きに描く.

【ESXiホストの動作が不安定になったとき - ATS Heartbeat の無効化を検討してみる - VMware KB 2118921 】

こんにちは。

 

ESXi5.5 Update 2 以降でESXi の動作が不安定であったり、
仮想マシンの動作が不安定になったときには、
いろいろな観点で切り分けを行おうとすると思います。


今回ご紹介するのはVMware KB 2118921 です。

(日本語)ESXi ホストが VMFS3 および VMFS5 データストアから切断される (2118921)
https://kb.vmware.com/kb/2118921

(英語)ESXi host loses connectivity to a VMFS3 and VMFS5 datastore

https://kb.vmware.com/kb/2113956

このKB だけみてもワカラナイこともあると思いますので、少し解説します。


まず、次の内容が単体で稼働するESXi5.5 Update 2 以降のマシン、もしくはクラスタで
発生した場合は、このKB を見てみるといいことがあるかもしれません。

・vCenter Server 配下のクラスタ全体で動作が不安定
・ESXiホストが vSphere vCenter から切断される
・仮想マシンのディスク I/O 操作が不安定、もしくはハングする



これらの事象が発生したとき、正直なところ運用担当者としては ”勘弁してほしい" と
思うでしょう。私だって思います(汗


では、内容に入ろうと思いますが、この事象(VMware KB)が影響を及ぼしている機能は、
ESXi 5.5 Update 2 以降で実装された ATS(Atomic Test and Set) です。

 

ATS(Atomic Test and Set)とは?
まず参考になる資料はこちらです。

https://pubs.vmware.com/vsphere-50/topic/com.vmware.vsphere.storage.doc_50/GUID-DE30AAE3-72ED-43BF-95B3-A2B885A713DB.html


ESXi5.5 Update 2 以降からAtomic Test and Set という機能が実装されました。
これは、従来行っているSCSI Reservation を利用してストレージを利用するのではなく、
Atomic Test and Set(ATS)と呼ばれるアルゴリズムを用いて小さいファイル単位でファイルをロックするため、これによりSCSI  Reservation よってディスクI/O待ちと
なった問題が最小限に抑えられ、処理が向上するようになっています。

ご存知のとおり、VMFSは複数のホストから共有できる優れたファイルシステムですが、ストレージを共有している以上は、整合性を保つ必要があり、
データの一貫性を保つためにVMFSのメタデータ領域に対して排他制御が行われます。


例を挙げると従来行っているSCSI Reservation を利用した場合、
LUN単位でロックし排他制御が行われるため
同じLUNを利用している仮想マシン全てが待たされます。

一方でATSでは、LUN単位ではなくロック対象のセクタのみ排他制御を行いますので、
排他制御の影響を受ける仮想マシンを大幅に減らすことが可能です。
これによりSCSI Reservation の衝突が発生し性能(パフォーマンス)が劣化するという
問題を解消し、効率の良い排他ロック機能を提供するため、
SCSI Resetが発生しづらい状況にもなります。


この機能は、ハードウェア アクセラレーションをサポートするストレージ デバイスを
利用している場合に利用可能です。(ハードウェアオフロードとかいう言い方も)


しかし、この機能により、ESXi カーネルがストレージ システムに発行する ATS コマンドの量が大幅に増え、
ストレージ システムへの負荷が増え、場合によっては、ATS を使用する VMFS へのハートビートが
うまく動作せず失敗し、ESXi カーネルが VMFS データストアへのアクセスを再検証を繰り返す結果になることがあります。
これにより、データストアへの接続が切断されたり、切断されてすぐに接続されるなどの不安定な状況になることがあります。

こういったときは一度ATS heartbeat を無効化してみるといいかと思います。

この部分はVMware KB に記載されている以下のコマンドをESXiにSSH接続して
実行することで無効化が可能です。日本語版も英語版もコマンドに間違いはありませんでした。

esxcli system settings advanced set -i 0 -o /VMFS3/UseATSForHBOnVMFS5

 

実行例を記載します。
まずは、現在の状況を確認し、ATS有効化になっていることを確認。
■画像

f:id:japan-vmware:20161128000621p:plain■テキスト
esxcli system settings advanced list -o /VMFS3/UseATSForHBonVMFS5

Path: /VMFS3/UseATSForHBOnVMFS5
Type: integer
Int Value: 1
Default Int Value: 1
Min Value: 0
Max Value: 1
String Value:
Default String Value:
Valid Characters:
Description: Use ATS for HB on ATS supported VMFS5 volumes

==========

 

ではATS heartbeat を無効化します。

■画像

f:id:japan-vmware:20161128001354p:plain

■テキスト

esxcli system settings advanced set -i 0 -o /VMFS3/UseATSForHBOnVMFS5
esxcli system settings advanced list -o /VMFS3/UseATSForHBonVMFS5
Path: /VMFS3/UseATSForHBOnVMFS5
Type: integer
Int Value: 0
Default Int Value: 1
Min Value: 0
Max Value: 1
String Value:
Default String Value:
Valid Characters:
Description: Use ATS for HB on ATS supported VMFS5 volumes

==========


また、判断材料の1つとしてvmkernel.log を見ることも有効です。
vmkernel.log にこのような記録が多く確認できることがあります。
====================
2016-xx-xxTxx:xx:xxx.xxxZ cpuxx:xxxxx)ScsiDeviceIO: xxxx: Cmd(0x4136c3d842c0) 0x89, CmdSN 0x1088c from world 32797 to dev "naa.xxxxxxxxxxxxxxxxx082xxx" failed H:0x5 D:0x0 P:0x0 Possible sense data: 0xe 0x1d 0x0.
====================

この Sense data : 0xe 0x1d 0x0  がVMware KBに記載されている以下の内容と一致します。
====================
/var/log/vmkernel.log ファイルに、ATS の不一致を示す次のようなエラー メッセージが記録される。
2015-11-20T22:12:47.194Z cpu13:33467)ScsiDeviceIO: 2645: Cmd(0x439dd0d7c400) 0x89, CmdSN 0x2f3dd6 from world 3937473 to dev "naa.50002ac0049412fa" failed H:0x0 D:0x2 P:0x0 Valid sense data: 0xe 0x1d 0x0. 
====================


Hewlett-Packard Enterprise からはStorage観点でもドキュメントが公開されていました。
+ Array Host Disconnects While Running VMware vSphere 5.5 Update 2 and Later
http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=c05228694

 

もし、障害に困っている方がいらっしゃれば、
お試し頂けると幸いです。

 

私の備忘録として記事を書きましたがどなたかに見てもらえると嬉しいです。

 

オワリ

 

VCSA6.5 - vCenter Server Appliance 6.5 をデプロイして使えるようにする。

こんにちは。

 

vCenter Server Appliance 6.5 がリリースされているので、
使えるようにするまでの流れです。

 

新しくインストールウィザードが刷新されていますし、
OSも異なるLinuxに変わっています。(Photon Linuxというらしい…)

f:id:japan-vmware:20161124205239p:plain

Photon OS™ by VMware®

 

それでは新規インストールの画面です。
VMwareのサイトからISOイメージをダウンロードし、
ISOイメージをESXiと通信可能なPC上でマウントして、インストーラーを実行します。

マウントしたインストーラーがFドライブである場合の例はこちら。
例)"F:\vcsa-ui-installer\win32\installer.exe"

また、インストール方法のreadme.txt がここにあります。
例)"F:\readme-ja.txt"

 

では、「"F:\vcsa-ui-installer\win32\installer.exe"」を実行します。
新規インストールの場合は、「Install」ボタンをクリックします。

f:id:japan-vmware:20161124022841p:plain

 

 「Next」をクリックします。

f:id:japan-vmware:20161124022909p:plain

 「vCenter Server with an Embedded Platform Service Controller」を選択して
「Next」をクリックします。
私が知る限り、あまりPlatform Service Controllerを外部(External)にしている方は少ないように思います。(vSphere6.0のとき)

f:id:japan-vmware:20161124022930p:plain

 

vCSA6.5 をデプロイする先の指定です。今回vCenter Server が既に存在する環境へ
vCSA6.5をデプロイするので、vCenter Server の情報を入力しています。

f:id:japan-vmware:20161124023303p:plain

 

証明証の警告がでますが、気にしません。

f:id:japan-vmware:20161124023319p:plain

 

 デプロイ先を指定します。

f:id:japan-vmware:20161124023356p:plain

 

デプロイ先のESXiを指定します。

f:id:japan-vmware:20161124023458p:plain

 

VCSA6.5 の仮想マシン名と root パスワード入力します。

f:id:japan-vmware:20161124023527p:plain

 

「Tiny」でデプロイしても、2 vCPUs , メモリ10GB使います。
正直かなりキツイです。

f:id:japan-vmware:20161124023554p:plain

 

vCSA6.5の仮想マシンのネットワーク設定です。

f:id:japan-vmware:20161124024129p:plain

 

デプロイ開始です。

f:id:japan-vmware:20161124024204p:plain

 

だらだらと待ちます。

f:id:japan-vmware:20161124030206p:plain

 

Platform Service Controllerのデプロイが完了しました。

f:id:japan-vmware:20161124030446p:plain

 

続いて、VCSA6.5のセットアップの続きです。

f:id:japan-vmware:20161124030608p:plain

 

デフォルトでは、SSH は無効になっています。(画面上では設定変更してます)
また、NTPServer を設定するようにデフォルトではなっていますが、
ESXiホストと同期するように設定変更することができます。
f:id:japan-vmware:20161124030633p:plain

 

SSOの設定です。
vCenter Server 6.0のときと変わらないパラメータです。

f:id:japan-vmware:20161124030743p:plain

 

次へ進みます。

f:id:japan-vmware:20161124030756p:plain

 

ネットワーク設定を完了させるため、「Finish」をクリック。

f:id:japan-vmware:20161124030903p:plain

 

もう戻れませんよ と脅されます。
「OK」をクリック。

f:id:japan-vmware:20161124031008p:plain

 

デプロイ開始します。

だらだらと待ちます。

f:id:japan-vmware:20161124031035p:plain

 

完了しました。

f:id:japan-vmware:20161124091113p:plain

 

[Close]ボタンを押すと、既定のブラウザからアクセスされます。(親切)

f:id:japan-vmware:20161124092100p:plain

 

vSphere Web Client (Flash)をクリックし、
SSOで設定したアカウント 「Administrator@vSphere.local」でログインしました。

f:id:japan-vmware:20161124092426p:plain

 

 

以上になります。

ここからは以前までのvCenter Server の操作と同じです。

ライセンス適用するなり、ESXiホスト追加するなり、順次操作していくことになります。

 

【補足】

作業時間としては1時間弱というところでした。

あまりコケるポイントも無く、すんなりデプロイから設定まで終えることができました。

 

おわり

【ESXiのバージョンアップはiso をブートさせると楽】ESXi6.0 -> ESXi6.5 も同じでした。

こんにちは。

 

ESXiのバージョンアップをする流れをご紹介します。
手元の環境をESXi6.0からESXi6.5にバージョンアップしてみましたが、
従来の方法とバージョンアップ方法に差異はありませんでした。

 

これから書く内容は、ESXi5.5 から ESXi6.0 へのバージョンアップ時の画面キャプチャになりますが、ESXi6.0からESXi6.5 へのバージョンアップ時も同じ方法なので、参考にして頂ければと思います。

 

また、各サーバーベンダーが提供するesxiのカスタマイズメディアからインストールされた環境であれば、必ず同じサーバベンダーのカスタマイズメディアの新しいものでバージョンアップするようにしてください。

 

稀に、初回のインストール時はサーバベンダーのカスタマイズメディアでインストールしているのに、バージョンアップのときだけvmware標準のメディアでバージョンアップしている環境を見かけます。

 

間違いではないのですが、vmware標準のメディアでバージョンアップしてしまうと、サーバベンダーがカスタマイズメディアに仕込んだdriverやサービス達が、置き去り(古いバージョンのまま)になってしまいます。

可能な限り同じ提供元からのメディアでバージョンアップすることをお勧めします。

 

※修正パッチは例外です。vmwareのサイトにある修正パッチはベンダー依存しないものがほとんどです。状況に応じて確認するようにお願いします。

 

では、手順に入ります。

まず、サーバーにISOメディアをマウントしてブートさせます。

f:id:japan-vmware:20161123203335p:plain

 

Enterキーを押すと、モジュールのロードが始まります。

f:id:japan-vmware:20161123203450p:plain

f:id:japan-vmware:20161123203526p:plain

f:id:japan-vmware:20161123203624p:plain

 

起動が終わると同意画面がでます。

f:id:japan-vmware:20161123203712p:plain

 

どのディスクにインストールするか、もしくは既存のESXiをUpgrade するかを選択します。
今回はUpgradeですので、既にESXiがインストールされているディスクを選びます。

f:id:japan-vmware:20161124011512p:plain

 

スキャンが始まります。

f:id:japan-vmware:20161124011733p:plain

 

既存のESXiが見つかれば「ESXi and VMFS Found」の画面が表示されます。
「Upgrade ESXi, preserve VMFS datastore」を選択します。

f:id:japan-vmware:20161124011825p:plain

 

待たされます。

f:id:japan-vmware:20161124012027p:plain

 

古いバージョンのVMFSディスクが接続されている場合は、
警告を出してくれたりします。

f:id:japan-vmware:20161124012142p:plain

 

確認画面が出るので、「F11」キーを押下します。

f:id:japan-vmware:20161124012204p:plain

 

ただただ待ちます。

f:id:japan-vmware:20161124012254p:plain

 

完了しました。

f:id:japan-vmware:20161124012400p:plain

待たされます。

f:id:japan-vmware:20161124012420p:plain

 

この後、再起動が実施され、完了になります。

 

トータルの時間はだいたい30分弱といったところです。

 

バージョンアップが容易なのもESXiの良いところですね。

 

おわり

 

vCenter Server 6.5 - vSphere Client (HTML5) を見る。

こんにちは。

 

vSphere 6.5がリリースされ、vCenter Server 6.5 には、
新しいvSphere Client が機能限定で追加されています。

手元の環境をvCenter Server 6.5 にバージョンアップしたので、
もし参考になれば幸いです。

 

vCenter Serverにブラウザからアクセスします。
「vSphere Web Client(Flash)」は以前のバージョンから存在するものです。
新しく追加された「vSphere Client(HTML5)」をクリックします。
<https://FQDN/>

f:id:japan-vmware:20161121005026p:plain

以前とほとんど変わらないログイン画面です。

f:id:japan-vmware:20161121005317p:plain

 

ログインすると、今ままでみたことの無いデザインの画面になっています。
最近こういうUI流行っていますね。
Microsoft Azure の管理ポータルもこのような感じですし、
HPEの3PARやHPE OneViewなどもこのような画面になってきていますね。
HTML5 なので、Flash を利用していない分、操作していてモッサリした感じは、
すごく解消されているように感じました。画面の配列も直感的で良いと思いました。

f:id:japan-vmware:20161121094636p:plain

 

ESXiホストをクリックしたときの画面です。
サマリタブは、Flash 版と変わらないデザインかなと思います。

f:id:japan-vmware:20161121010143p:plain

 

 

[監視] タブです。

f:id:japan-vmware:20161121010503p:plain

 

 

設定タブ です。
仮想スイッチの部分はすごくよく使うので見てみたところ、
従来のC#版のvSphere Client よりわかりずらい...
あまり優しくないUIになってきていますね。
f:id:japan-vmware:20161121010704p:plain

 

仮想マシンタブはあまり刺激的な変化はありません。

f:id:japan-vmware:20161121010944p:plain

 

データストアタブ です。
データストア名を右クリックするとコンテキストメニューが表示されます。
あまり [ファイルの参照] はいわゆるデータストアブラウザです。

f:id:japan-vmware:20161121011033p:plain

 

データストアブラウザとは言わないようですが、
従来通りの操作感で利用できそうです。

f:id:japan-vmware:20161121011230p:plain

 

 

ネットワークタブです。

f:id:japan-vmware:20161121011358p:plain

 

 

すっかり忘れていましたが、ホーム画面です。

f:id:japan-vmware:20161121011454p:plain

 

C#版vSphere Client に画面のレイアウトを近づける努力をしているように見えます。

ただ、まだ機能限定なので、残念ながら  "ライセンス管理機能がない!"

ということで、vSphere Web Client から操作お願いしますね。

 

 

何かフィードバックすることがあれば、
ブラウザ右上の顔のマークをクリックしてみてください。

f:id:japan-vmware:20161121011738p:plain

感想を送れるみたいですよ。(日本語を理解してくれるか不明ですが)

f:id:japan-vmware:20161121011825p:plain

 

【感想】

操作する上でHTML5版はすごくきびきび動いてくれるので、ストレスフリーでした。
はやく完全版としてリリースされればいいなぁと思います。

ただ、私含め、サポートの方や構築する方からすると、
新しいものになったことで手順書を更新しなければいけなかったり、
顧客への説明もあるでしょうから、なかなか面倒ではありますよね。


時代の流れなので、あきらめましょう!

 

それでは今回はこのへんで。

従来からの存在するvSphere Client (C#)との決別

こんにちは。

 

vSphere 6.5 がリリースされましたね。
いろんな機能が追加されています。

 

私としてはすごく悲しくなったのは、従来から存在していたvSphere Clientが
なくなったということです。(C#版というみたいですが)

VMwareの公式Blogにかかれていることや私でも試してみましたので、
ご参考に頂ければと思います。

まず、VMware公式Blogの内容を抜粋します。

+ Goodbye vSphere Client for Windows (C#) – Hello HTML5
https://blogs.vmware.com/vsphere/2016/05/goodbye-vsphere-client-for-windows-c-hello-html5.html

Today we have two important announcements.  First, the C# client (AKA Desktop Client/thick client/vSphere Client for Windows) will not be available for the next version of vSphere.  

 

実際にWindows 版 vCenter Server 6.0から vCenter Server 6.5 にバージョンアップしました。

まず、vCenter Server6.5 のIP Addressをブラウザで指定して開きました。
何か増えています。
Flash版vSphere Web Client ←今まで通りのWeb Client(vCenter)
HTML5版 vSphere Client (vSphere Clientという名前ですが
 ブラウザベースのWeb Client です(vCenter))

+vCenter Server 6.5の画面

f:id:japan-vmware:20161119001329p:plain

+vCenter Server 6.0の画面

f:id:japan-vmware:20161119001805p:plain

 

Flash版 vSphere Web Client

これは今まで通りのvSphere Web Clientになります。

f:id:japan-vmware:20161119002028p:plain

ログインしても、vCenter 6.0のときと変わりません。

f:id:japan-vmware:20161119002402p:plain

 

では気になる、HTML5版 vSphere Client を見てみましょう。
VMwareのドキュメントセンターみたいな画面になっています。
まだHTML5 版は未完成品のようなので、従来のvSphere Web Client を使うといいです。

f:id:japan-vmware:20161119002632p:plain

 

この辺で。

ESXi - 仮想マシンのインプレースアップグレードはサポートされていない。

みなさま、こんにちは。

 

今回はVMware製品上の仮想マシンのOSのバージョンアップについてです。

私は仕事柄、ESXiを触り倒すので、ESXi視点で記載します。

 

最近よく、ESXi上で動作している仮想マシンのOSバージョンアップをする際、
インプレースアップグレードするお話をよく聞きます。
そして、サービスパックレベルではなくメジャーバージョンアップをする話も多いです。

 

例えば、Windows Server 2008 R2 -->Windows Server 2012 R2 といった具合に。

 

実はこのバージョンアップですが、VMware製品(今回はESXi)では、
サポートされていないオペレーションになります。

+ VMware support for guest operating system upgrade

https://kb.vmware.com/kb/2018695

 

つまり、ESXi上で稼働するWindows Server 2008 R2は2012R2に
インプレースアップグレードするなということです。

VMware KB 2018695の一部を抜粋します。
VMware does not support the installation of major update releases on an operating system as an upgrade in a virtual machine, 

 

例を挙げると、Windows Server 2008 R2として仮想マシンを作成したとき、
ESXiは2008R2に最適な仮想ハードウェア構成で仮想ハードウェアが作成されます。
SCSIコントローラーの種類などです)
そこに2008R2をインストールします。


そして次に、ゲストOSを2008R2から2012 R2 にアップグレードした場合、
仮想ハードウェアは2008R2 のときに構成されたもののままでありながら、
2012R2となってしまうため、最適な仮想ハードウェア構成に
なっていない可能性が出てきたりするわけです。

 

Windowsだけであれば組み合わせのテストをしてロジックを付け加えるのも
いいかもしれませんが、Linuxやその他OSなども含めると膨大な量になり、
それをVMware社がすべての組み合わせのテストを行うのは現実的ではありません。

安全性も考慮した答えが、Not Support という結論なのだと思います。

マイナーバージョンアップはサポートされているので、安心してください。
VMware supports the installation of minor update releases on an operating system as an upgrade in a virtual machine,

今後、2008R2 -> 2012R2 や2012R2 -> 2016などもあり得ますし、
RHEL5.x-> 6.x などもあるでしょうから、注意したいところですね。

 

以上!