2018年10月24日水曜日

vCenter6.5のrootアカウントパスワードの失効とvCenter Server Applianceのアップグレード失敗

ここ数年のvCenter Server Appliance(vCSA) 5.5 や 6.0をデプロイすると、初期状態ではrootアカウントのパスワード期限が90日に設定されていました。
90日間越えてしまうとrootアカウントがロックされてしまいVAMI UIやSSHでのログインが不可となります。

この際は以下KBを参照し、LinuxOS側にシングルモードでコンソールログインしてrootアカウントのパスワードを初期化する必要がありました。
vCenter Server Appliance の root アカウントにログインできない (2069041)

vCSA 6.5からは初期状態のrootアカウントのパスワード期限が365日に延長されました。
私も油断していたのですが、検証環境のvCSA6.5が初期状態のままで365日経過してしまいましたが、その時に気づいた今までとの違いをご紹介します。
vCenter 6.5 root ユーザーのパスワードおよびパスワード有効期限の設定の変更

まず、vCSA 6.5の場合、パスワードの期限が切れてもアカウントロックされる事はなく、VAMI UI(https://<vCSA_IP-FQDN>:5480/)や、SSHでのrootログインが可能でした。
この辺りは以前のバージョンに比べるとだいぶ緩くなっています。

ただ、ログイン可能なのですが、VAMIのアカウント管理画面では以下のように、パスワードが過去の時間に切れたことが表示されます。

そして、パスワードの期限が切れている場合はVAMIでのパスワード再設定や、有効期限の無効化の設定は弾かれてしまいます。


先日はこの画面を確認せず、rootアカウントのパスワードが有効なものと思いこんで、vCenterのバージョンアップを実行したところ、以下のようなエラーで失敗しました。


最初はDB容量や空き容量のひっ迫などを疑ったのですが、色々調査するとrootアカウントがおかしいのでは?となり、確認したら有効期限が切れていました。
SSHにもVAMIにもrootでログインできたので気付くのに遅れてしまいました。

vCSA 6.5で有効期限の切れた状態のrootアカウントのパスワード変更は、VAMI UIからは実行できず、SSHかローカルコンソールでvCSAのLinux側にログインしてCLIで passwd
コマンドを投入して再設定します。



再設定後は問題なくvCSAのバージョンアップも成功し、VAMI UIでパスワードの再設定、有効期限の設定変更も可能になりました。


vCSAのバージョンアップ前にはrootアカウントの有効性を確認する事をお勧めします。

2018年10月3日水曜日

vSAN 6.6.x、vSAN 6.7.0環境でResync動作時にVMDKを拡張すると不整合が起きる不具合(KB58715)について

9/18にアナウンスされていたvSAN 6.6.x、vSAN 6.7.0における、
「vSAN Resync動作時にVMDKの拡張作業を行うとデータの不整合が起きる」問題に対応したパッチが提供されました。
最新のvSAN環境でVMDKの拡張したかも?という方はご注意ください。

それぞれESXi 6.5u2 EP7 と、ESXi 6.7 EP9で、以下のKBで詳細は記載されています。

Virtual Machines running on VMware vSAN 6.6 and later report guest data consistency concerns following a disk extend operation (58715)
https://kb.vmware.com/kb/58715

vSAN 6.7 - Express Patch 4 Release:
http://kb.vmware.com/kb/58848
ESXi670-201810001 Build 10176752

vSAN 6.6 - Express Patch 9 Release:
http://kb.vmware.com/kb/58852
ESXi650-201810001 Build 10175896


元々、回避策として以下のオプションの無効化が指示されていましたので、
今回のパッチ適用の前に、オプションは無効化しておいた方が良さそうです。
・VMDK のサイズを増やしたことのない場合は
 /VSAN/ClomEnableInplaceExpansion オプションを無効(0)に設定。

・VMDK のサイズを拡張した、または拡張したか分からない場合は
 /VSAN/ClomEnableInplaceExpansion オプションを無効(0)に設定し、
 今回リリースされたESXi 6.5u2EP9、6.7 EP4を適用する。

KBでは丁寧にクラスタに対して全ホスト一括で設定できる様にPowerCLIの1Line scriptも公開されておりました。
Foreach ($VMHost in (Get-Cluster -Name (Read-Host "Cluster Name") |Get-VMHost)) {Get-AdvancedSetting -Entity $VMHost -Name VSAN.ClomEnableInplaceExpansion | Set-AdvancedSetting -Value '0' -Confirm:$false}

とりあえず、VMDKの拡張を実施していない環境であれば急いでパッチを当てる必要は無さそうですが、リスクを排除するために対象バージョンの修正パッチ以降にバージョンアップするまでは、/VSAN/ClomEnableInplaceExpansion は 0 に変更しておくべきです。

また、vSAN 6.6.1、6.7のどちらも修正パッチ適用後は /VSAN/ClomEnableInplaceExpansion は 1 に戻すことが可能です。
全てのホストの修正パッチ適用後は、以下のようなPowerCLIで一括適用が出来ます。

Foreach ($VMHost in (Get-Cluster -Name (Read-Host "Cluster Name") |Get-VMHost)) {Get-AdvancedSetting -Entity $VMHost -Name VSAN.ClomEnableInplaceExpansion | Set-AdvancedSetting -Value '1' -Confirm:$false}