VM のストレージのトラブルシューティング

完了

Azure には、Standard と Premium という 2 つの主要レベルの Azure Storage が用意されています。どちらも Azure VM のディスク ファイルを格納することができます。 いずれの場合も、ページ BLOB がランダムな読み取りおよび書き込みアクセス用に最適化されているため、Azure VM ディスクはページ BLOB として格納される .vhd ファイルの形式をとります。

使用可能なストレージ レベル

ストレージを選ぶときは、Premium Storage と Standard Storage の違いを考慮します。

  • Premium Storage は、SSD テクノロジで提供されるものと同等の優れたパフォーマンスを提供する。

  • Standard Storage は、一般に "ハード ディスク ドライブ" (HDD) と呼ばれる汎用磁気ディスクと同等のパフォーマンスを提供する。

  • すべての Azure VM サイズで、Standard Storage をサポートしています。 多くの Azure VM サイズでは、Premium Storage もサポートされています。

アンマネージド ディスクとマネージド ディスク

すべての Azure VM ディスクは Azure ストレージ アカウント内に存在します。 Azure ストレージ アカウントは論理上の名前空間であり、その種類ごとに、さまざまなタイプのオブジェクト (BLOB、テーブル、キュー、ファイルなど) をホストできます。 Azure VM をデプロイする際に、オペレーティング システム ディスクと、必要に応じてデータ ディスクをホストするディスクの種類を選択する必要があります。 アンマネージド ディスクまたはマネージド ディスクという種類を使用できます。

非管理対象ディスク

アンマネージド ディスクを使用すると、管理オーバーヘッドが大きくなる可能性があります。 作成するストレージ アカウントの数を決定してから、それらのアカウントを作成し、それらの間で .vhd ディスク ファイルを配布する方法を決定する必要があります。 また、2 つ以上の Azure VM を同じ可用性セットにプロビジョニングするときに、それぞれのストレージ アカウントが同じストレージ スタンプ内に存在しないようにすることにより、回復性プロビジョニングを手動で実装する必要があります。

マネージド ディスク

マネージド ディスクを使用することで、この管理オーバーヘッドを回避できます。 このアプローチでは、Azure プラットフォームによって Azure VM のディスク ファイルの配置が制御され、Azure ストレージ アカウントの管理に関連する複雑さが隠されます。 マネージド ディスクには、次のような利点があります。

  • サブスクリプションあたりのディスク数がはるかに多い

  • 同じ可用性セット内の Azure VM に接続されているディスクに回復性が組み込まれる

  • 可用性ゾーンにデプロイされた Azure VM のサポート

  • ディスクレベルのロールベースのアクセス制御 (RBAC) によるきめ細かなアクセス許可

  • サーバー側および Azure Disk Encryption のサポート

  • Standard と Premium のストレージ層間の変換のサポート

  • 同じリージョン内および同じサブスクリプション内の任意のストレージ アカウントに格納されているカスタム イメージから Azure VM を作成する機能

重要

VM をデプロイするときは、適切なディスクの種類を選んでいることを確認します。 Azure VM のアンマネージド ディスクをマネージド ディスクに変換することはできますが、そのためには、可用性セット内のすべての VM を停止して割り当てを解除する必要があります。 また、マネージド ディスクからアンマネージド ディスクへの変換はサポートされていません。

ストレージに関する一般的な問題

このモジュールで前に説明したパフォーマンスの問題以外に、Azure VM でストレージの問題が発生する場合があります。 発生する可能性がある一般的な問題が多数あります。 具体的な内容は次のとおりです。

  • Windows で暗号化された OS ボリュームを拡張できない

  • ストレージ リソースの削除時のエラー

  • Azure で VM を作成するときに VHD がサポートされない

  • Azure のディスク暗号化に関する問題

暗号化された OS ボリュームの拡張に関するトラブルシューティング

Windows Server でディスクの管理を使っていて、オペレーティング システムのボリュームを拡張しようとすると、ディスクのコンテキスト メニューの [ボリュームの拡張] オプションを使用できないことがあります。

これは Windows Server のセットアップでパーティションの番号付けが正しく構成されていないことが原因で発生します。 通常、オペレーティング システム ボリューム ("ブート" パーティションと呼ばれます) には、パーティション 2 が割り当てられます。 EFI システム パーティションには、パーティション 1 を割り当てる必要があります。

ただし、ブート パーティションにパーティション 1 を割り当てるカスタム イメージに基づいて VM を作成した場合、EFI システム パーティションがないため、後で Azure Disk Encryption を有効にしようとすると、問題が発生する可能性があります。 ディスクの暗号化を有効にするときに、EFI システム パーティションを作成する必要があり、それに間違ったパーティション番号が割り当てられます。

この問題を解決するための概要手順は次のとおりです。

  1. Azure portal で OS ディスクに大きなディスク SKU を割り当てます

  2. システム予約ボリュームを未割り当ての領域に拡張します

  3. 残りの未割り当て領域に、新しいブート ボリュームを作成します

  4. システム予約ボリュームを削除し、Windows ボリュームを拡張します

ストレージ リソースを削除するときのエラーのトラブルシューティング

次のものを削除しようとすると、Azure Resource Manager のデプロイでエラーが発生する場合があります。

  • Azure ストレージ アカウント

  • コンテナー

  • BLOB

エラーには、次のメッセージが含まれる場合があります。

  • ストレージ アカウント 'StorageAccountName' を削除できませんでした。 エラー: ストレージ アカウントのアーティファクトが使用中であるため、このストレージ アカウントを削除できません。

  • # 個のコンテナーのうち # 個を削除できませんでした: vhds: There is currently a lease on the container and no lease ID was specified in the request. (現在コンテナーにはリースが存在しますが、要求にリース ID の指定がありません。)

  • # 個の BLOB (# 個の BLOB のうち) を削除できませんでした:BlobName.vhd:There is currently a lease on the blob and no lease ID was specified in the request. (現在、BLOB にリースがありますが、リクエストでリース ID が指定されていませんでした。)

Azure では次のものを削除できません。

  • 破損を防ぐために VM にアタッチされているディスク

  • ページ BLOB が VM にアタッチされているコンテナーとストレージ アカウント

一覧に示されたいずれかのエラーが発生する場合は、次のガイダンスに従って問題を解決してください。

  1. VM に接続されている BLOB を特定します

  2. OS ディスクが接続されている VM を削除します

  3. 残りの VM からデータ ディスクをすべて切断します

  4. ストレージ アカウント、コンテナー、または BLOB を再び削除してみます。

VHD サポートのトラブルシューティング

VHD をアップロードすることによって Azure VM を作成しようとすると、操作が失敗し、次のメッセージを受け取ることがあります。

New-AzureRmVM : Long running operation failed with status 'Failed'. (実行時間の長い操作が、状態 'Failed' で失敗しました。)

ErrorCode: InvalidVhd

ErrorMessage: The specified cookie value in VHD footer indicates that disk 'diskname' with blob https://xxxxxx.blob.core.windows.net/vhds/samplename.vhd is not a supported VHD. Disk is expected to have cookie value 'conectix'. (ErrorMessage: VHD フッターで指定された Cookie 値は、BLOB https://xxxxxx.blob.core.windows.net/vhds/samplename.vhd を含むディスク 'diskname' がサポートされている VHD ではないことを示します。 ディスクの Cookie 値は 'conectix' である必要があります。)

この問題は、以下の 2 つの原因で発生します。

  • VHD は、破損しているか、サポートされていません。 この状況では、VHD を再構築する必要があります。

  • アップロードしている VHD は、1 MB のアラインメントに準拠していません。 ディスク サイズは 1 MB * N である必要があります。たとえば、ディスクを 102,401 MB にする必要があります。

1 MB のアラインメントの問題を解決するには、Resize-VHD Windows PowerShell コマンドレットを使用します。

  1. Windows Server で HYPER-V の役割をインストールします。

  2. 仮想ディスクを容量固定の VHD に変換する

Azure Disk Encryption の問題のトラブルシューティング

Azure Disk Encryption は Azure プラットフォームに組み込まれている機能であり、Windows および Linux の Azure VM ディスクに存在するファイル システム ボリュームの暗号化を可能にします。 Azure Disk Encryption は、既存のファイル システムベースの暗号化テクノロジを使用します。 Windows の場合、Azure Disk Encryption は BitLocker ドライブ暗号化を使用します。 Azure Disk Encryption で以下を自動的に暗号化できます。

  • オペレーティング システム ディスク

  • データ ディスク

  • 一時ディスク

また、アンマネージド ディスクとアンマネージド ディスクの両方がサポートされています。 Windows Server VM で Azure Disk Encryption を有効にすると問題が発生する場合は、VM が要件を満たしていることを確認します。 これらについて、次の表で説明します。

要件 詳細
VM サイズ Azure Disk Encryption を Basic (A シリーズ VM) で使用することはできません。 Lsv2 シリーズ VM でも使用できません。
VM の世代 Azure Disk Encryption を第2世代 VM で使用することはできません。
メモリ Azure Disk Encryption を、メモリが 2 GB 未満の VM で使用することはできません。
ネットワーク キー コンテナーに接続するためのトークンを取得するには、この Windows VM が Microsoft Entra エンドポイントである login.microsoftonline.com に接続できる必要があります。 暗号化キーをご利用のキー コンテナーに書き込むには、Windows VM がキー コンテナー エンドポイントに接続できる必要があります。
グループ ポリシー Azure Disk Encryption では、Windows VM に対して BitLocker 外部キー保護機能が使用されます。 ドメイン参加 VM の場合、トラステッド プラットフォーム モジュール (TPM) プロテクターを適用するグループ ポリシー オブジェクト (GPO) 設定をプッシュしないでください。 カスタム GPO を含むドメイン参加済み VM 上の BitLocker ポリシーには、[BitLocker 回復情報のユーザー記憶域を構成する] -> [256 ビットの回復キーを許可する] の設定が含まれている必要があります。 BitLocker のカスタム GPO 設定に互換性がない場合、Azure Disk Encryption は失敗します。 Azure Disk Encryption は、BitLocker が使用する AES-CBC アルゴリズムをドメインレベル GPO がブロックする場合にも失敗します。
暗号化キー ストレージ Azure Disk Encryption には、ディスク暗号化のキーとシークレットを制御および管理するための Key Vault が必要です。 ご利用のキー コンテナーと VM は、同じ Azure リージョンおよびサブスクリプションに存在している必要があります。

ファイアウォールの内側にある Azure Disk Encryption のトラブルシューティング

ディスク暗号化は、Windows Server VM の VM 拡張機能によって管理されます。 ターゲット VM への接続が次のものによって制限されている場合、拡張機能で必要なタスクを実行できない可能性があります。

  • ファイアウォール

  • プロキシの要件

  • ネットワーク セキュリティ グループ (NSG) の設定

VM では拡張機能の状態が利用できませんというメッセージが表示されることがあります。この状況では、次の表にあるガイダンスを使用して問題解決に役立ててください。

Restriction 解決策
NSG 適用されるすべての NSG の設定で、ディスクの暗号化に対して規定されているネットワーク構成の前提条件を、エンドポイントが引き続き満たせるようにする必要があります。
ファイアウォールの内側にある Azure Key Vault Microsoft Entra 資格情報を使用した暗号化を有効にする場合、ターゲット VM は、Microsoft Entra エンドポイントと Key Vault エンドポイントの両方への接続を許可する必要があります。
Azure Instance Metadata Service VM で、Azure Instance Metadata Service エンドポイント (169.254.169.254) と、Azure プラットフォーム リソースとの通信に使用される仮想パブリック IP アドレス (168.63.129.16) に、アクセスできる必要があります。 ローカル HTTP トラフィックをこのアドレスに変更する (たとえば X-Forwarded-For ヘッダーを追加する) プロキシ構成はサポートされません。

暗号化の状態を確認する

Azure portal に、ディスクの暗号化の状態が正確に表示されない場合があります。 たとえば、VM 内で暗号化を解除された後であっても、ディスクが暗号化されているように表示されることがあります。

低レベルのコマンドを使って VM 内から直接ディスクの暗号化を解除すると、この状態エラーが発生することがあります。 一方、さらに高いレベルの Azure Disk Encryption 管理コマンドを使うと、次のようになります。

  • VM 内からディスクの暗号化が解除されます

  • VM に関連付けられている重要なプラットフォーム レベルの暗号化設定と拡張機能の設定が更新されます

注意

これらが一致していない場合、プラットフォームは暗号化の状態を報告したり、VM を適切にプロビジョニングしたりすることができません。