このドキュメントでは、Compute Engine ゾーンリソースの予約の使用に関する問題の解決方法について説明します。
予約の使用状況トラッキングに関する問題
問題: 予約の使用量を確認して、予約を使用している VM の数は確認できますが、予約を使用している VM を追跡することはできません。
解決策: 特定の予約を対象とする VM を正常に作成できる場合、VM のアフィニティ プロパティ(reservationAffinity
)で指定された予約を VM は使用しています。それ以外の場合は、プロパティが一致しないか、VM のゾーンに使用可能なリソースがないため、VM の作成が失敗します。
予約の使用量の追跡の詳細については、予約の使用量を確認するをご覧ください。
使用可能な VM 数が少ない
問題: 物理的に予約された VM の数(assuredCount
フィールド)が、予約で指定された予約済み VM の数(count
フィールド)と一致しません。つまり、プロジェクトと共有予約を共有するプロジェクトで予約される VM が少なくなります。
この問題は、以下のいずれかの理由で発生する可能性があります。
共有予約のコンシューマ プロジェクトが停止または別の組織に移行されました。この場合、Compute Engine は、コンシューマ プロジェクトが使用している VM の数だけ
assuredCount
フィールドを減らします。予約が作成されたプロジェクトが一時停止されました。この場合、Compute Engine は
assuredCount
フィールドを0
に設定します。ホストエラーが予約に影響しました。
解決策: 予約が作成されたプロジェクトが停止されていない限り、Compute Engine は予約の assuredCount
フィールドと count
フィールドの不一致を 24 時間以内に自動的に解決します。また、この不一致が解決されるまで、Google Cloud では物理的に予約された容量に対してのみ課金されます。
VM が予約を使用しない問題
VM が予約を使用できない場合は、次の 1 つ以上の問題が発生している可能性があります。
このセクションでは、これらの問題の特定方法と解決方法、さらに予約の使用を確認する方法について説明します。
VM プロパティが一致しない
問題: 異なる VM プロパティの予約を VM が使用できない。
予約で VM と一致していないプロパティを特定するには、次の手順で予約と VM のプロパティを確認します。
次に、2 つの出力を比較して、次のプロパティが完全に一致していることを確認します。
project
- 予約が複数のプロジェクトと共有されている場合(予約の
shareType
フィールドがSPECIFIC_PROJECTS
に設定されている場合)は、予約が作成されたプロジェクト(オーナー プロジェクト)または予約が共有されているプロジェクト(コンシューマー プロジェクト)に VM を配置できます。
- 予約が複数のプロジェクトと共有されている場合(予約の
zone
machineType
guestAccelerators.acceleratorType
(存在する場合)guestAccelerators.acceleratorCount
(存在する場合)minCpuPlatform
- VM と予約で、同じ
minCpuPlatform
構成を使用する必要があります。たとえば、VM の作成時にminCpuPlatform
をIntel Broadwell
に設定すると、予約のminCpuPlatform
値がAutomatic
と一致しなくなります。
- VM と予約で、同じ
localSsds.interface
(存在する場合)- 予約と VM には、ローカル SSD ディスクの
localSsds.interface
プロパティに一致するローカル SSD ディスクが同じ数だけ必要になります。
- 予約と VM には、ローカル SSD ディスクの
resourcePolicies
(存在する場合)- 予約でコンパクト プレースメント ポリシーが指定されている場合のみ。
locationHint
(存在する場合)- 予約で
locationHint
フィールドが指定されている場合のみ。locationHint
フィールドは、REST を使用して VM を作成する場合にのみ指定できます。
- 予約で
解決策: 一致しないプロパティを特定したら、次のいずれかを試します。
VM プロパティが予約と一致しない場合は、次のいずれかを行います。
予約のプロパティが VM のプロパティと一致している場合は、予約を削除し、VM のプロパティと一致する新しい予約を作成します。必要であれば、特定の予約を作成することもできます。特定の予約を使用する VM を作成するときに、VM のプロパティが予約のプロパティと一致しないと、エラーが発生します。
VM を更新するか、新しい予約を作成した後、予約の使用を確認して、VM が予約を使用しているかどうか確認します。
予約アフィニティが正しくない
問題: VM の予約アフィニティが正しく構成されていない。VM の予約アフィニティは、VM が使用できる予約を制御します。VM の予約アフィニティを確認する手順は次のとおりです。
解決策: VM の予約でアフィニティが一致しない場合は、次のいずれかを行います。
予約のタイプと一致する予約アフィニティ プロパティを使用して新しい VM を作成します。
VM の
reservationAffinity
プロパティを更新して、VM が一致する予約を消費できるかどうか、また特定の予約を消費できるかどうかを指定します。VM の更新を完了するには、VM を再起動する必要があります。
VM が予約を使用しているかどうかを確認するには、予約の使用を確認するをご覧ください。
予約がすべて使用されている
問題: この予約を使用している VM の数が予約済み VM の合計数と一致します。これは、予約が完全に消費されたことを示します。
解決策: 予約が完全に消費されているかどうかを確認するには、予約の詳細を表示し、予約を消費している VM の数が予約内の VM の合計数と一致することを確認します。
予約がすべて使用されている場合は、次のいずれかをお試しください。
予約内の予約済み VM の数を変更して、予約済み VM の数を増やします。
予約で VM の最大数がすでに予約されている場合は、新しい予約を作成します。
予約を使用している VM の数を減らします。詳細については、VM が意図せずに予約を使用しているをご覧ください。
予約が完全には消費されていないものの、VM が予約を使用していない場合、次の手順で問題のトラブルシューティングを行うことができます。
予約を使用する VM を作成します。VM と予約のプロパティが一致しない場合、VM の作成は失敗します。
共有予約のリソース割り当てを超えた
問題: プロジェクトに使用しようとしているリソースの割り当てが十分でないため、VM が共有予約を使用できません。
解決策: 共有予約には追加の割り当て要件があります。予約済みリソースを使用するためにプロジェクトの割り当てを増やす必要がある場合は、Cloud Quotas のドキュメントで割り当ての増加をリクエストするをご覧ください。
VM を停止または削除した後に VM 数が復元されない
問題: 予約を使用している VM を停止、一時停止、または削除すると、その VM が予約の使用数として計算されなくなる前に、オペレーションを完了する必要があります。以前に使用したリソースは再び使用できるようになります。
解決策: VM の停止、一時停止、削除のオペレーションが完了するまで数分待ちます。次に、停止、一時停止、削除された VM が予約数として計算されなくなったことを確認するには、次のいずれかの方法を使用して、予約で使用されている VM の合計数を確認します。
推奨: 予約をモニタリングし、予約の測定値の変化を確認します。
予約の詳細を表示し、
inUseCount
フィールドの値が減少しているかどうかを確認します。値が減少しなかった場合、停止、一時停止、削除のオペレーションが完了する間に、1 つ以上の VM が予約の使用を開始しました。
VM が意図せずに予約を使用している
問題: 自動的に使用される予約(デフォルト)を作成すると、VM がこれらの予約を意図せずに使用することがあります。
解決策: 1 つ以上の VM が誤って予約を消費しないようにするには、次のいずれかを行います。