共用方式為


將 VM 從 Azure 移至 Azure Stack Hub

您可以將虛擬硬碟 (VHD) 從在 Azure 中建立的虛擬機器 (VM) 上傳至您的 Azure Stack Hub 實例。

從 Azure 上準備並下載您的 VHD

在準備 VHD 時,尋找符合您需求的區段。

  • 請依照 使用 PowerShell 準備 VHD,從特製化磁碟建立 Windows VM 一文中的步驟作。
  • 若要部署 VM 擴充功能,請確定 VM 代理程式 .msi 可用。
    如需資訊和步驟,請參閱 Azure 虛擬機器代理程式概觀。 在移動 VM 之前,請確定擴充功能已安裝在 VM 上。 如果 VM 代理程式不存在於 VHD 中,擴充功能部署將會失敗。 您不需要在布建時設定 OS 設定檔,或設定 $vm.OSProfile.AllowExtensionOperations = $true

驗證 VHD(虛擬硬碟)

上傳 VHD 之前,您必須驗證 VHD 是否符合需求。 不符合需求的 VHD 將無法在 Azure Stack Hub 中載入。

  1. 您將使用搭配 Hyper-V 找到的 PowerShell 模組。 啟用 Hyper-V 安裝支援 PowerShell 模組。 您可以使用提升權限的提示開啟 PowerShell 並執行下列 Cmdlet,以檢查您是否有模組:

    Get-Command -Module hyper-v
    

    如果您沒有 Hyper-V 命令,請參閱 ,了解如何使用 Hyper-V 和 Windows PowerShell

  2. 取得您電腦上的 VHD 路徑。 執行下列 cmdlet:

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

    Cmdlet 會傳回 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) VM 的映射。

  4. 如果您的 VHD 與 Azure Stack Hub 不相容,您必須返回來源映像和 Hyper-V、建立符合需求的 VHD,以及上傳。 若要將上傳程式中可能的損毀降到最低,請使用 AzCopy。

如何修復您的 VHD

必須符合下列需求,才能符合 VHD 與 Azure Stack Hub 的相容性。

VHD 是固定類型

識別:使用 get-vhd Cmdlet 來取得 VHD 物件。
修正:您可以將 VHDX 檔案轉換成 VHD、將動態擴充的磁碟轉換成固定大小的磁碟,但無法變更 VM 的產生。 使用 Hyper-V Manager 或 PowerShell 來轉換磁碟。

VHD 的虛擬大小下限至少為 20 MB

識別:使用 get-vhd Cmdlet 來取得 VHD 物件。
修正:使用 Hyper-V Manager 或 PowerShell 調整磁碟大小。

VHD 已對齊

識別:使用 get-vhd Cmdlet 來取得 VHD 物件。
修正:虛擬大小必須是一個 (1) MB 的倍數。

磁碟必須符合 1 MiB 的虛擬大小。 如果您的 VHD 是 1 MiB 的一小部分,您必須將磁碟大小調整為 1 MiB 的倍數。 小於一 MiB 的磁碟會在從上傳的 VHD 建立映像時造成錯誤。 若要驗證大小,您可以使用 PowerShell Get-VHD Cmdlet 來顯示「Size」,在 Azure 中,該數值必須為 1 MiB 的倍數,而「FileSize」則等於「Size」加上 VHD 頁尾的 512 個字節。

使用 Hyper-V Manager 或 PowerShell 來調整磁碟的大小。

VHD Blob 長度

識別:使用 get-vhd Cmdlet 來顯示 Size
修正:VHD Blob 長度 = 虛擬大小 + VHD 頁尾長度 (512)。 Blob 結尾的一個小型頁腳描述 VHD 的屬性。 Size 必須是 Azure 中 1 MiB 的倍數,且 FileSize,這等於 VHD 頁尾的 Size + 512 個字節。

使用 Hyper-V Manager 或 PowerShell 來調整磁碟的大小。

第一代 VM

識別:若要確認虛擬機是否為第 1 代,請使用 cmdlet Get-VM | Format-Table Name, Generation
修正:您必須在 Hypervisor 中重新建立 VM(Hyper-V)。

上傳至記憶體帳戶

您可以使用入口網站上傳 VHD,或使用您在入口網站中建立的容器,使用 AzCopy。

用於生成 SAS URL 和上傳 VHD 的入口網站

  1. 登入 Azure Stack Hub 使用者入口網站。

  2. 選取 [儲存器帳戶],然後選取現有的記憶體帳戶或建立新的記憶體帳戶。

  3. 在您的儲存體帳戶的 [儲存體帳戶] 刀鋒視窗中,選取 [Blobs]。 選取 [容器] 以建立新的容器。

  4. 輸入容器的名稱,然後選取 Blob(僅限 Blob 類型的匿名讀取存取)

  5. 如果您要使用 AzCopy 來上傳映像,而不是入口網站,請建立 SAS 令牌。 在儲存體帳戶中選取 [共用存取簽章],然後選取 [產生 SAS 和連接字串]。 複製並記下 Blob 服務 SAS URL。 使用 AzCopy 上傳 VHD 時,您將使用此 URL。

  6. 選擇您的容器,然後選取 [上傳。 上傳您的 VHD。

AzCopy VHD

使用 Azure 記憶體總管或 AzCopy 減少 VHD 在上傳程式中損毀的機會,而您的上傳速度會更快。 下列步驟在 Windows 10 計算機上使用 AzCopy。 AzCopy 是命令列工具,您可以用來將 Blob 或檔案複製到儲存帳戶中,或從儲存帳戶中複製檔案。

  1. 如果您沒有安裝 AzCopy,請安裝 AzCopy。 您可以在文章 開始使用 AzCopy中找到有關如何下載並開始使用 AzCopy 的指示。 記下您儲存二進位檔的位置。 您可以 將 AzCopy 新增至路徑,以從 PowerShell 命令行使用它。

  2. 開啟 PowerShell 以從命令列介面使用 AzCopy。

  3. 使用 AzCopy 將您的 VHD 上傳至記憶體帳戶中的容器。

    $env: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
    

注意

使用類似將單一檔案上傳至虛擬目錄的語法來上傳 VHD。 新增 --blob-type=PageBlob,以確保 VHD 會以 分頁 Blob上傳,而不是預設 區塊

如需使用 AzCopy 和其他記憶體工具的詳細資訊,請參閱 在 Azure Stack Hub 記憶體中使用資料傳輸工具

建立 VM

自訂映像有兩種形式:特製化一般化

  1. 登入 Azure Stack Hub 使用者入口網站。

    如果您是建立平台磁碟的雲端操作員,請遵循 新增平台映像 中的指示,透過管理員入口網站或管理員端點新增 VHD。

  2. 在使用者入口網站中,選取 所有服務>磁碟>新增

  3. 建立受控磁碟

    1. 請輸入影像 名稱

    2. 選擇您的 訂用帳戶

    3. 建立或新增映像至 資源群組

    4. 選取 位置,即 ASDK 的區域。

    5. 選取 帳戶類型

      • 進階磁碟(SSD) 受到固態硬碟的支援,並提供一致的低延遲效能。 它們提供價格和效能之間的最佳平衡,非常適合 I/O 密集的應用程式和生產工作負載。
      • 標準磁碟 (HDD) 是由磁碟驅動器所支援,而且最好用於不常存取數據的應用程式。 區域備援磁碟是由區域備援記憶體 (ZRS) 所支援,可跨多個區域復寫您的數據,即使單一區域已關閉,仍可供使用。
    6. 選擇 儲存 blob來源類型。 您已從儲存帳戶中的 Blob 建立了磁碟。

    7. 針對 VHD 來源選取:

      1. 記憶體帳戶所在的來源訂用帳戶。
      2. 選取 瀏覽,然後導至您的儲存帳戶、容器和 VHD。 選擇 選擇
      3. 選取符合 VHD 的 OS 類型
    8. 選取一個磁碟 ,其大小 (GiB) 等於或大於您的 VHD 大小。

    9. 選取 建立

  4. 建立磁碟之後,您可以使用磁碟來建立新的 VM。

後續步驟

將 VM 移至 Azure Stack Hub 概觀