vMotion がエラー「暗号化キーは必須です」で失敗する
search cancel

vMotion がエラー「暗号化キーは必須です」で失敗する

book

Article ID: 430182

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

免責事項:これは英文の記事「vMotion failing with error "An encryption key is required"」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


この記事では、暗号化された仮想マシンをアンロックするための情報を提供します。

症状:

  • パワーオンされた仮想マシンで vMotion タスクを実行しますと、次のエラーが発生します。
暗号化キーは必須です。必要なキーは、「KMS」にあります。この仮想マシンのロックを解除するには、「#################################################」のキーが必要です。仮想マシンはロックされています。

 

  • vpxd.log で次のようなログを確認できます。
DD-MM-YYYY HH:MM info vpxd[20062] [Originator@6876 sub=Default opID=########-########-####-#####-##:########-##] [VpxLRO] -- ERROR task-3915483
-- vm-1149843 -- vim.VirtualMachine.relocate: vim.fault.EncryptionKeyRequired:
--> Result:
--> (vim.fault.EncryptionKeyRequired) {
-->  faultCause = (vmodl.MethodFault) null,
-->  faultMessage = (vmodl.LocalizableMessage) [
-->    (vmodl.LocalizableMessage) {
-->     key = "msg.hostd.vmState.locked",
-->     arg = <unset>,
-->     message = "The virtual machine is locked."
-->    },
-->    (vmodl.LocalizableMessage) {
-->     key = "msg.hostd.vmState.lockedKeyId",
-->     arg = (vmodl.KeyAnyValue) [
-->       (vmodl.KeyAnyValue) {
-->        key = "1",
-->        value = "##############################################################"
-->       }
-->     ],
-->     message = "A key with identifier '##############################################################' is required to unlock this virtual machine."
-->    },
-->    (vmodl.LocalizableMessage) {
-->     key = "msg.hostd.vmState.lockedProviderId",
-->     arg = (vmodl.KeyAnyValue) [
-->       (vmodl.KeyAnyValue) {
-->        key = "1",
-->        value = "NameOfKMS"
-->       }
-->     ],
-->     message = "The required key is located on 'NameOfKMS'."
-->    }
-->  ],
-->  requiredKey = (vim.encryption.CryptoKeyId) [
-->    (vim.encryption.CryptoKeyId) {
-->     keyId = "##################################################",
-->     providerId = (vim.encryption.KeyProviderId) {
-->       id = "NameOfKMS"
-->     }

ここで "######################################################" は環境キーによって異なります。NameOfKMS は vCenter Server の KMS サーバに与えられた名前です。

  • 移行先ホストの /var/run/log/kmxa.log に次のようなログを確認できます。

 

YYYY-MM-DD HH:MM error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##] Trust Authority Components not configured. 
YYYY-MM-DD HH:MM error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##] Failed to decrypt key ######################################################/NameOfKMS: Error:
YYYY-MM-DD HH:MM error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##]  com.vmware.vapi.std.errors.error
YYYY-MM-DD HH:MM error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##] Messages:
YYYY-MM-DD HH:MM error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##]  com.vmware.esx.trusted_infrastructure.trust_authority_services.not_configured<Incomplete or missing Trust Authority Components configuration.>
YYYY-MM-DD HH:MM error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##] YYYY-MM-DD error kmxa[2098421] [Originator@6876 sub=Libs opID=##########-########-####-####-####-############-##] Failed to resolve key #####################################################/NameOfKMS with Trusted Key Provider.


 

 

Environment

VMware vCenter Server 7.0.x
VMware vSphere ESXi 7.0.x

Cause

仮想マシンは、ESXi でキーが利用できない場合、あるいは vCenter Server が KMS からキーを取得できない場合にロック状態となります。

ESXi でキーが利用できない原因は、ESXi がクラスタから削除され再追加された場合、あるいは ESXi が vCenter Server との接続に問題があり、その結果 KMS 通信の問題を引き起こしている場合が考えられます。

Resolution

vCenter Server を再起動します。


参照- vSphere のセキュリティ



回避策:

注: OBJECT_ID を取得するためには、vCenter Server UI のインベントリで仮想マシンを選択します。VM ID は VirtualMachine:vm- の後に表示されます。

この ID は、下記手順で OBJECT_ID として使用されます。

 

1. 仮想マシンの OBJECT_ID を使用して vCenter Server の MOB を開きます。

https://<VC_SERVER>/mob/?moid=<OBJECT_ID>

この場合、OBJECT_ID は VMID です。


2. CryptoUnlock_Task を検索し、そのオプションをクリックします。


3. 新規ページが開き、「Invoke Method」をクリックします。

上記の手順を実行後、仮想マシンのロックが解除されます。vCenter Server の仮想マシンのタスクに移動して確認が可能です。

Additional Information

影響/リスク:
なし


注: メモリを使用しない状態の vCenter Server 仮想マシンのスナップショットが推奨されます。