ESXi5.0からESXi5.1 update 1にアップデートを行う手順を記載します。
一般的に公開されているアップデートの方法はいくつかありますが、今回は無償版のESXi5xを利用している方を対象とします。
※有償版はアップデートツールがありますしサポートも受けられるため
安全に確実にアップデートできる手順は以下の通りです。
アップデートファイルをダウンロードしESXiのデータストアに配置する
Vmware のサイトでアップデートファイルをダウンロードします。ダウンロードにはVmwareに登録が必要になります。今回ダウンロードしたパッケージはupdate-from-esxi5.1-5.1_update01.zipになります。※2013年6月時点で最新
ダウンロードしたZIPファイルをESXiのデータストアにアップロードします。 Vsphere client を利用してもSCPで転送してもどちらでもOKです。今回は以下の場所に配置することにします。
/vmfs/volumes/local/update/update-from-esxi5.1-5.1_update01.zip
vSphere Clientから SSH と ESXiシェルを有効化
[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][インベントリ] -> [構成] -> [セキュリティプロファイル] -> [プロパティ] で SSH 及び ESXiシェルを[手動で開始及び停止] で実行中にして、[ホストに連動して開始及び停止]とする
セキュリティプロファイルの変更
アップデートパッチを適用するのには、セキュリティプロファイルというものが”サポートされているコミュニティ”でないとアップデートが適用できないため、Vsphere Clientにて[インベントリ] -> [構成] -> [セキュリティプロファイル] でホストイメージプロファイル許容レベルにて”サポートされているコミュニティ”となるよう変更しておきます。
稼働している仮想マシンを全てシャットダウン
ESXiにSSHで接続する
ESXiにSSHで接続し、パッチを転送したフォルダに移動します。
※ESXiにSSHで接続を行う際はチャレンジレスポンス認証でないとログイン出来ません。
現時点の、Build 及び 適用VIB を確認
esxcli system version get esxcli software vib list
ESXiをメンテナンスモードにする。
※メンテナンスモードにしなくてもアップデートファイルを適用できてしまいますが、予期せぬ問題が発生したりするため”必ず”メンテナンスモードにしてからアップデートを実行してください。
GUIで行う場合はホストを右クリックし メンテナンスモードへの切り替えをクリック ESXi上で行う場合は以下のようなコマンドになります。
現在の状態を確認
esxcli system maintenanceMode get
Disableと出ていればメンテナンスモードではないということになります。
メンテナンスモードに切り替え方法
esxcli system maintenanceMode set --enable=true
再度確認コマンドを入力すると今度はEnableとなっているはずです。これでメンテナンスモードになっています。
利用できるPatch Profileを確認
esxcli software sources profile list --depot=/vmfs/volumes/local/update/update-from-esxi5.1-5.1_update01.zip
このように–depot=の後にダウンロードしたZIPファイルをフルパスで指定します。
実行結果
ESXi-5.1.0-20130402001-no-tools VMware, Inc. PartnerSupported
ESXi-5.1.0-20130401001s-no-tools VMware, Inc. PartnerSupported
ESXi-5.1.0-20130402001-standard VMware, Inc. PartnerSupported
ESXi-5.1.0-20130401001s-standard VMware, Inc. PartnerSupported
複数でてきますが、”s” が付いているのはセキュリティイメージなので通常は “s”無しのイメージを選択します。
no-toolsがVMware Toolsを含まないイメージなので、通常はStandardを選択します。
よって今回適用するパッケージはこちらです。
ESXi-5.1.0-20130402001-standard
アップデート
アップデートを行うコマンドに関しては複数あり、それぞれの環境により異なります。
気をつけるべきこと
気をつけなければいけないのはベンダー特有のカスタムイメージをインストールしている場合や、独自にVmwareのイメージをカスタマイズしてドライバーを追加している場合です。
VMware オリジナルのインストール CD に 入っていないデバイスドライバなどをベンダー各社が付け足したものがカスタムイメージですが、通常のアップデート方法を行うとベンダー固有のドライバー等が全てクリアーになりNWにつながらなくなったりストレージを読み込めなくなったりします。
よくみんなやってるアップデートコマンド
esxcli software vib install -d ESXi5xx-xxxxxxxxx.zip
カスタムイメージを導入している場合
esxcli software profile update -d /vmfs/volumes/local/update/update-from-esxi5.1-5.1_update01.zip --profile=ESXi-5.1.0-20130401001s-standard
このように、通常アップデートであればZIPファイルを選択してアップデートしますが、カスタムイメージを利用している場合は、さらに適用するプロファイルを指定することになります。これで、ベンダー特有のドライバーや自分で入れたドライバーなどはそのままキープされた状態でESXiのアップデートが行えます。
※「vib install」というコマンドは、-vオプション と併用して使うもので、デバイスドライバーのような特定のコンポーネント (VIB) を“クリアインストール” するためコマンドです。そのため、ESXi のように “パッチ” と言いながら、実際はハイパーバイザー丸ごと提供されるものに対して「vib install -d」を使うと、ハイパーバイザー全体が VMware オリジナルの状態に “クリアインストール” され、ベンダーがアドオンしたドライバーや自分でいれたドライバーが消失してしまいます。
カスタムNICを適用しているESXIにそのままmZIPを適用してしまった場合のエラーメッセージ
No compatible network adapter found.
Please consult the products’s Hardware Compatibility Guide (HCG) for a list of support adapters.
設定がクリアになってもOKでいろいろいじり倒してまっさらにしたいということであればesxcli software vib install -dでもOKです。
アドオンドライバを保持しつつ、ESXi ホストを更新する正しいコマンドは「esxcli software profile update」
esxcli software profile update -d <フルパス: ESXi5xx-xxxxxxxxx.zip> -p <プロファイル名>
Vmwareの公式KBはこちら
VMware KB 2020972: VMware Security Patching Guidelines for ESXi and ESX
http://kb.vmware.com/kb/2020972
※こちらのコマンドでアップデートすることをVmwareでも推奨しています。
適用後再起動
esxcli system shutdown reboot -r
まとめ
気をつけなければいけないポイントは・・・
・必ずメンテナンスモードにする
・適用するプロファイルを間違えない
・アップデート時のコマンドを間違えない ※カスタムイメージを利用している場合
となります。
[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]