特殊化 VM をオンプレミスから Azure Stack Hub に移動する

注意事項

この記事では、サポート終了 (EOL) 状態に近い Linux ディストリビューションである CentOS について説明します。 使用を検討し、それに応じて計画してください。 詳細については、 CentOS の終了に関するガイダンスを参照してください。

オンプレミス環境から仮想マシン (VM) イメージを追加できます。 イメージを仮想ハード ディスク (VHD) として作成し、そのイメージを Azure Stack Hub インスタンスのストレージ アカウントにアップロードできます。 その VHD から VM を作成できます。

特殊化ディスク イメージとは、既存の VM の仮想ハードディスク (VHD) のコピーで、元の VM のユーザー アカウント、アプリケーション、その他の状態データが含まれます。 これは通常、VM を Azure Stack Hub に移行するときに使用する形式です。 オンプレミスから Azure Stack Hub に VM を移行する必要がある場合は、特殊化 VHD が適しています。

イメージを移動する方法

VHD を準備するときに、ニーズに合致するセクションを見つけます。

  • Azure にアップロードする Windows VHD または VHDX を準備する」の手順に従い、VHD を正しく準備します。 Azure Stack Hub には VHD を使用する必要があります。

    Note

    Sysprep を使用して VM を一般化しないでください

  • VM にインストールされたゲストの仮想化ツールやエージェント (VMware ツールなど) を削除します。
  • IP アドレスと DNS 設定を DHCP から取得するように VM が構成されていることを確認します。 これにより、サーバーが起動時に仮想ネットワーク内の IP アドレスを確実に取得します。
  • RDP/SSH が有効になっていること、およびファイアウォールで通信が許可されていることを確認します。
  • VM 拡張機能をデプロイするには、VM エージェント .msi が使用可能であることを確認します。 ガイダンスについては、「Azure 仮想マシン エージェントの概要」を参照してください。 VM エージェントが VHD に存在しない場合、拡張機能のデプロイは失敗します。 プロビジョニング中に OS プロファイルを設定したり、$vm.OSProfile.AllowExtensionOperations = $true を設定したりする必要はありません。

VHD を検証する

VHD をアップロードする前に、VHD が要件を満たしていることを確認する必要があります。 要件を満たしていない VHD は Azure Stack Hub に読み込むことができません。

  1. Hyper-V で検出された PowerShell モジュールを使用します。 Hyper-V をアクティブ化すると、サポートする PowerShell モジュールがインストールされます。 そのモジュールがあることを確認するには、管理者特権のプロンプトで PowerShell を開き、次のコマンドレットを実行します。

    Get-Command -Module hyper-v
    

    Hyper-V コマンドを使用できない場合は、「Hyper-V と Windows PowerShell の使用」を参照してください。

  2. マシン上の VHD へのパスを取得します。 次のコマンドレットを実行します。

    get-vhd <path-to-your-VHD>
    

    このコマンドレットは VHD オブジェクトを返し、次のような属性を表示します。

    ComputerName            : YOURMACHINENAME
    Path                    : <path-to-your-VHD>
    VhdFormat               : VHD
    VhdType                 : Fixed
    FileSize                : 68719477248
    Size                    : 68719476736
    MinimumSize             : 32212254720
    LogicalSectorSize       : 512
    PhysicalSectorSize      : 512
    BlockSize               : 0
    ParentPath              :
    DiskIdentifier          : 3C084D21-652A-4C0E-B2D1-63A8E8E64C0C
    FragmentationPercentage : 0
    Alignment               : 1
    Attached                : False
    DiskNumber              :
    IsPMEMCompatible        : False
    AddressAbstractionType  : None
    Number                  :
    
  3. VHD オブジェクトで、Azure Stack Hub の要件が満たされていることを確認します。

    また、Azure Stack Hub は、第 1 世代 (1) の VM からのイメージのみサポートします。

  4. VHD が Azure Stack Hub と互換性がない場合は、ソース イメージと Hyper-V に戻り、要件を満たす VHD を作成し、アップロードする必要があります。 アップロード プロセスでの破損の可能性を最小限に抑えるために、AzCopy を使用します。

VHD を修正する方法

お使いの VHD と Azure Stack Hub と の互換性を確保するために、次の要件を満たす必要があります。

VHD が固定型である

識別:get-vhd コマンドレットを使用して、VHD オブジェクトを取得します。
解決策:VHDX ファイルを VHD に変換し、容量可変ディスクを容量固定ディスクに変換することはできますが、VM の世代を変更することはできません。 Hyper-V マネージャーまたは PowerShell を使用してディスクを変換します。

VHD の最小仮想サイズが 20 MB 以上である

識別:get-vhd コマンドレットを使用して、VHD オブジェクトを取得します。
解決策:Hyper-V マネージャーまたは PowerShell を使用してディスクのサイズを変更します。

VHD がアラインされている

識別:get-vhd コマンドレットを使用して、VHD オブジェクトを取得します。
解決策:仮想サイズは 1 MB の倍数である必要があります。

ディスクの仮想サイズは、1 MiB にアラインする必要があります。 VHD に 1 MiB の端数がある場合は、1 MiB の倍数になるようにディスクのサイズを変更する必要があります。 MiB の端数があるディスクでは、アップロードした VHD からイメージを作成する際にエラーが発生します。 サイズを確認するには、PowerShell の Get-VHD コマンドレットを使用し、"Size" (Azure で 1 MiB の倍数である必要があります) と "FileSize" ("Size" に VHD フッターの 512 バイトを足した値に等しくなります) を表示します。

Hyper-V マネージャーまたは PowerShell を使用してディスクのサイズを変更します。

VHD BLOB の長さ

識別:get-vhd コマンドレットを使用して、Size を表示します。
解決策:VHD BLOB の長さ = 仮想サイズ + VHD フッターの長さ (512)。 BLOB 末尾の小さなフッターに、VHD のプロパティが記述されます。 Size は、Azure では 1 MiB の倍数である必要があり、FileSize は、Size に VHD フッターの 512 バイトを足した値に等しくなります。

Hyper-V マネージャーまたは PowerShell を使用してディスクのサイズを変更します。

第 1 世代の VM

識別:お使いの仮想マシンが第 1 世代であるかどうかを確認するには、Get-VM | Format-Table Name, Generation コマンドレットを使用します。
解決策:ハイパーバイザー (Hyper-V) で VM を再作成する必要があります。

ストレージ アカウントにアップロードする

ポータルを使用して、またはポータルで作成したコンテナーを使用して VHD をアップロードすること、AzCopy を使用することができます。

SAS URL を生成して VHD をアップロードするためのポータル

  1. Azure Stack Hub のユーザー ポータルにサインインします。

  2. [ストレージ アカウント] を選択し、既存のストレージ アカウントを選択するか、新しいストレージ アカウントを作成します。

  3. ストレージ アカウントの [ストレージ アカウント] ブレードで [BLOB] を選択します。 [コンテナー] を選択して、新しいコンテナーを作成します。

  4. コンテナーの名前を入力し、 [BLOB (BLOB 専用の匿名読み取りアクセスのみ)] を選択します。

  5. ポータルではなく AzCopy を使用してイメージをアップロードする場合は、SAS トークンを作成します。 ストレージ アカウントで [共有アクセス署名] を選択し、 [SAS と接続文字列を生成する] を選択します。 [Blob service の SAS URL] をコピーしてメモを作成します。 AzCopy を使用して VHD をアップロードするときに、この URL を使用します。

  6. コンテナーを選択し、 [アップロード] を選択します。 VHD をアップロードします。

VHD を AzCopy する

Azure Storage Explorer または AzCopy を使用すると、アップロード プロセスで VHD が破損する可能性が減少し、アップロードが高速になります。 次の手順では、Windows 10 コンピューターで AzCopy を使用します。 AzCopy は、ストレージ アカウント間の BLOB またはファイル コピーに利用できるコマンドライン ユーティリティです。

  1. AzCopy がインストールされていない場合はインストールしてください。 AzCopy をダウンロードして使用開始する手順については、記事「AzCopy を使ってみる」を参照してください。 バイナリを保存する場所をメモします。 AzCopy をパスに追加して、PowerShell コマンド ラインから使用できるようにします。

  2. PowerShell を開いて、シェルから AzCopy を使用します。

  3. AzCopy を使用して、ストレージ アカウントのコンテナーに VHD をアップロードします。

    set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
    azcopy cp "/path/to/file.vhd" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS] --blob-type=PageBlob
    

Note

1 つのファイルを仮想ディレクトリにアップロードする場合と同様の構文を使用して VHD をアップロードします。 --blob-type=PageBlob を追加して、VHD がブロックではなく既定でページ BLOB としてアップロードされるようにします。

AzCopy とその他のストレージ ツールの使用の詳細については、「Azure Stack Hub Storage でのデータ転送ツールの使用」を参照してください。

Azure Stack Hub でディスクを作成する

  1. Azure Stack Hub のユーザー ポータルにサインインします。

    プラットフォーム ディスクを作成するクラウド オペレーターの場合は、プラットフォーム イメージの追加に関するページの手順に従って、管理者ポータルまたは管理者エンドポイントを使用して VHD を追加します。

  2. ユーザー ポータルで、[すべてのサービス]>[ディスク]>[追加] の順に選択します。

  3. [マネージド ディスクの作成] で、以下を行います。

    1. イメージの名前を入力します。

    2. サブスクリプションを選択します。

    3. イメージを作成するか、イメージをリソース グループに追加します。

    4. ASDK の場所 (リージョンとも呼ばれます) を選択します。

    5. [アカウントの種類] を選択します。

      • Premium ディスク (SSD) の実体はソリッドステート ドライブであり、待ち時間の短い一貫したパフォーマンスが得られます。 価格とパフォーマンスのバランスにきわめて優れており、I/O 集中型のアプリケーションや運用環境のワークロードに最適です。
      • Standard ディスク (HDD) の実体は磁気ドライブであり、データへのアクセス頻度が低い用途に適しています。 ゾーン冗長ディスクの実体はゾーン冗長ストレージ (ZRS) です。ZRS では、データが複数のゾーンにレプリケートされ、1 つのゾーンがダウンしても可用性が保たれます。
    6. [ソースの種類][ストレージ BLOB] を選択します。 ストレージ アカウントで BLOB からディスクを作成しました。

    7. VHD ソースの場合、以下を選択します。

      1. ストレージ アカウントが配置されているソース サブスクリプション。
      2. [参照] を選択し、ご使用のストレージ アカウント、コンテナー、VHD の順に移動します。 [選択] を選択します。
      3. VHD に一致する OS の種類を選択します。
    8. VHD のサイズ以上のディスク サイズ (GiB) を選択します。

    9. [作成] を選択します。

  4. ディスクが作成されたら、そのディスクを使用して新しい VM を作成できます。

次のステップ

Azure Stack Hub への VM の移動の概要