다음을 통해 공유


로컬 공유의 이미지를 사용하여 Azure 로컬 VM 이미지 만들기

적용 대상: Azure Local, 버전 23H2

이 문서에서는 로컬 공유의 원본 이미지를 사용하여 Azure Local용 VM(가상 머신) 이미지를 만드는 방법을 설명합니다. Azure Portal 또는 Azure CLI를 사용하여 VM 이미지를 만든 다음, 이러한 VM 이미지를 사용하여 Azure Local에서 Arc VM을 만들 수 있습니다.

필수 조건

시작하기 전에 다음 필수 구성 요소가 완료되었는지 확인합니다.

  • 필수 구성 요소를 검토하고 완료해야 합니다.

  • Azure Local의 로컬 공유에 있는 사용자 지정 이미지의 경우 다음과 같은 추가 필수 구성 요소가 있습니다.

    • 시스템의 로컬 공유에 업로드된 VHD/VHDX가 있어야 합니다.
    • VHDX 이미지는 Gen 2 유형이어야 하며 보안 부팅을 사용하도록 설정해야 합니다.
    • 를 사용하여 sysprep /generalize /shutdown /oobeVHDX 이미지를 준비해야 합니다. 자세한 내용은 Sysprep 명령줄 옵션을 참조 하세요.
    • 이미지는 인스턴스의 모든 컴퓨터에서 사용할 수 있는 클러스터 공유 볼륨에 있어야 합니다. Windows 및 Linux 운영 체제가 모두 지원됩니다.

로컬 공유의 이미지에서 VM 이미지 추가

시스템의 로컬 공유에 있는 이미지에서 시작하는 VM 이미지를 만든 다음, 이 이미지를 사용하여 Azure Local에 VM을 배포합니다.

다음 단계에 따라 Azure CLI를 사용하여 VM 이미지를 만듭니다.

로그인 및 구독 설정

  1. Azure 로컬의 컴퓨터에 연결합니다.

  2. 로그인합니다. 유형:

    az login --use-device-code
    
  3. 구독을 설정합니다.

    az account set --subscription <Subscription ID>
    

일부 매개 변수 설정

  1. 이미지에 대한 구독, 리소스 그룹, 위치, OS 유형을 설정합니다. 매개 변수 < > 를 적절한 값으로 바꿉다.

    $subscription = "<Subscription ID>"
    $resource_group = "<Resource group>"
    $location = "<Location for your Azure Local>"
    $imageName = <VM image name>
    $imageSourcePath = <path to the source image>
    $osType = "<OS of source image>"
    

    다음 표에는 매개 변수가 나와 있습니다.

    매개 변수 설명
    subscription 이 이미지와 연결하는 Azure Local에 대한 구독 그룹입니다.
    resource_group 이 이미지와 연결하는 Azure Local에 대한 리소스 그룹입니다.
    location Azure Local의 위치입니다. 이 예에서는 eastus일 수 있습니다.
    image-path 로컬 공유의 이미지로 시작하여 만든 VM 이미지의 이름입니다.
    참고: Azure는 Windows 키워드를 포함하는 모든 이름을 거부합니다.
    name 시스템의 원본 갤러리 이미지(VHDX에만 해당)의 경로입니다. 예를 들어 C:\OSImages\winos.vhdx입니다. 원본 이미지의 필수 구성 요소를 참조하세요.
    os-type 원본 이미지와 연결된 운영 체제입니다. Windows 또는 Linux일 수 있습니다.

    샘플 출력은 다음과 같습니다.

    PS C:\Users\azcli> $subscription = "<Subscription ID>"
    PS C:\Users\azcli> $resource_group = "mylocalrg"
    PS C:\Users\azcli> $location = "eastus"
    PS C:\Users\azcli> $osType = "Windows"
    PS C:\ClusterStorage\Volume1> $imageName = "mylocal-localimage"
    PS C:\ClusterStorage\Volume1> $imageSourcePath = "C:\ClusterStorage\Volume1\Windows_K8s_17763.2928.220505-1621_202205101158.vhdx"
    

로컬 공유의 이미지에서 VM 이미지 만들기

  1. VM 이미지를 배포할 사용자 지정 위치를 선택합니다. 사용자 지정 위치는 Azure Local의 사용자 지정 위치에 해당해야 합니다. Azure 로컬에 대한 사용자 지정 위치 ID를 가져옵니다. 다음 명령을 실행합니다.

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for system>" --query id -o tsv)
    
  2. Azure 로컬의 로컬 공유에서 지정된 이미지로 시작하는 VM 이미지를 만듭니다.

    az stack-hci-vm image create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --location $location --image-path $ImageSourcePath --name $ImageName --os-type $osType --storage-path-id $storagepathid
    
    

    VM 이미지에 대한 배포 작업이 시작됩니다.

    이 예제에서는 플래그를 사용하여 --storage-path-id 스토리지 경로를 지정하고 워크로드 데이터(VM, VM 이미지, 비 OS 데이터 디스크 포함)가 지정된 스토리지 경로에 배치되도록 했습니다.

    플래그를 지정하지 않으면 워크로드 데이터가 자동으로 고가용성 스토리지 경로에 배치됩니다.

이미지 배포를 완료하는 데 몇 분 정도 걸립니다. 이미지를 다운로드하는 데 걸리는 시간은 로컬 공유의 이미지 크기와 다운로드에 사용할 수 있는 네트워크 대역폭에 따라 달라집니다.

샘플 출력은 다음과 같습니다.

PS C:\Users\azcli> $customLocationID=(az customlocation show --resource-group $resource_group --name "myhci-cl" --query id -o tsv)
PS C:\Users\azcli> az stack-hci-vm image create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --location $location --image-path $ImageSourcePath --name $ImageName --os-type $osType --storage-path-id $storagepathid
type="CustomLocation" --location $Location --name $mktplaceImage --os-type $osType --image-path $mktImageSourcePath
Command group 'azurestackhci' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "extendedLocation": {
    "name": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.ExtendedLocation/customLocations/mylocal-cl",
    "type": "CustomLocation"
  },
  "id": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-localimage",
  "location": "eastus",
  "name": "mylocal-localimage",
  "properties": {
    "identifier": null,
    "imagePath": null,
    "osType": "Windows",
    "provisioningState": "Succeeded",
    "status": {
      "downloadStatus": {},
      "progressPercentage": 100,
      "provisioningStatus": {
        "operationId": "82f58893-b252-43db-97a9-258f6f7831d9*43114797B86E6D2B28C4B52B02302C81C889DABDD9D890F993665E223A5947C3",
        "status": "Succeeded"
      }
    },
    "storagepathId": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/storagecontainers/myhci-storagepath",
    "version": {
      "name": null,
      "properties": {
        "storageProfile": {
          "osDiskImage": {}
        }
      }
    }
  },
  "resourceGroup": "myhci-rg",
  "systemData": {
    "createdAt": "2023-11-02T06:15:10.450908+00:00",
    "createdBy": "guspinto@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-02T06:15:56.689323+00:00",
    "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
    "lastModifiedByType": "Application"
  },
  "tags": null,
  "type": "microsoft.azurestackhci/galleryimages"
}

PS C:\Users\azcli>

VM 이미지 나열

관리할 이미지를 선택하려면 VM 이미지 목록을 확인해야 합니다.

다음 단계에 따라 Azure CLI를 사용하여 VM 이미지를 나열합니다.

  1. 관리자로 PowerShell을 실행합니다.

  2. 일부 매개 변수를 설정합니다.

    $subscription = "<Subscription ID associated with your Azure Local>"
    $resource_group = "<Resource group name for your Azure Local>"
    
  3. Azure Local과 연결된 모든 VM 이미지를 나열합니다. 다음 명령을 실행합니다.

    az stack-hci-vm image list --subscription $subscription --resource-group $resource_group
    

    사용된 명령에 따라 Azure Local과 연결된 해당 이미지 집합이 나열됩니다.

    • 구독만 지정하면 이 명령은 구독의 모든 이미지를 나열합니다.
    • 구독과 리소스 그룹을 모두 지정하는 경우 명령은 리소스 그룹의 모든 이미지를 나열합니다.

    이러한 이미지는 다음과 같습니다.

    • 마켓플레이스 이미지의 VM 이미지
    • Azure Storage 계정에 상주하거나 시스템 또는 시스템에 연결된 클라이언트의 로컬 공유에 있는 사용자 지정 이미지입니다.

샘플 출력은 다음과 같습니다.

PS C:\Users\azcli> az stack-hci-vm image list --subscription "<Subscription ID>" --resource-group "myhci-rg"
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
[
  {
    "extendedLocation": {
      "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl",
      "type": "CustomLocation"
    },
    "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/microsoft.azurestackhci/marketplacegalleryimages/w
inServer2022Az-01",
    "location": "eastus",
    "name": "winServer2022Az-01",
    "properties": {
      "hyperVGeneration": "V2",
      "identifier": {
        "offer": "windowsserver",
        "publisher": "microsoftwindowsserver",
        "sku": "2022-datacenter-azure-edition-core"
      },
      "imagePath": null,
      "osType": "Windows",
      "provisioningState": "Succeeded",
      "status": {
        "downloadStatus": {
          "downloadSizeInMB": 6710
        },
        "progressPercentage": 100,
        "provisioningStatus": {
          "operationId": "19742d69-4a00-4086-8f17-4dc1f7ee6681*E1E9889F0D1840B93150BD74D428EAE483CB67B0904F9A198C161AD471F670ED",
          "status": "Succeeded"
        }
      },
      "storagepathId": null,
      "version": {
        "name": "20348.2031.231006",
        "properties": {
          "storageProfile": {
            "osDiskImage": {
              "sizeInMB": 130050
            }
          }
        }
      }
    },
    "resourceGroup": "mylocal-rg",
    "systemData": {
      "createdAt": "2023-10-30T21:44:53.020512+00:00",
      "createdBy": "guspinto@contoso.com",
      "createdByType": "User",
      "lastModifiedAt": "2023-10-30T22:08:25.495995+00:00",
      "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
      "lastModifiedByType": "Application"
    },
    "tags": {},
    "type": "microsoft.azurestackhci/marketplacegalleryimages"
  }
]
PS C:\Users\azcli>

이 CLI 명령에 대한 자세한 내용은 az stack-hci-vm image list를 참조 하세요.

VM 이미지 속성 보기

이미지를 사용하여 VM을 만들기 전에 VM 이미지의 속성을 볼 수 있습니다. 이미지 속성을 보려면 다음 단계를 수행합니다.

Azure CLI를 사용하여 이미지의 속성을 보려면 다음 단계를 수행합니다.

  1. 관리자로 PowerShell을 실행합니다.

  2. 다음 매개 변수를 설정합니다.

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local resource group>"
    $mktplaceImage = "<Marketplace image name>"
    
  3. ID를 지정하거나 이름 및 리소스 그룹을 지정하는 두 가지 방법으로 이미지 속성을 볼 수 있습니다. Marketplace 이미지 ID를 지정할 때 다음 단계를 수행합니다.

    1. 다음 매개 변수를 설정합니다.

      $mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage"
      
    2. 다음 명령을 실행하여 속성을 봅니다.

      az stack-hci-vm image show --ids $mktplaceImageID

      이 명령에 대한 샘플 출력은 다음과 같습니다.

      PS C:\Users\azcli> az stack-hci-vm image show --ids $mktplaceImageID
      Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
      {
        "extendedLocation": {
          "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/mylocal-cl",
          "type": "CustomLocation"
        },
        "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage",
        "location": "eastus",
        "name": "mylocal-marketplaceimage",
        "properties": {
          "containerName": null,
          "hyperVGeneration": null,
          "identifier": null,
          "imagePath": null,
          "osType": "Windows",
          "provisioningState": "Succeeded",
          "status": null,
          "version": null
        },
        "resourceGroup": "mylocal-rg",
        "systemData": {
          "createdAt": "2022-08-05T20:52:38.579764+00:00",
          "createdBy": "guspinto@microsoft.com",
          "createdByType": "User",
          "lastModifiedAt": "2022-08-05T20:52:38.579764+00:00",
          "lastModifiedBy": "guspinto@microsoft.com",
          "lastModifiedByType": "User"
        },
        "tags": null,
        "type": "microsoft.azurestackhci/galleryimages"
      }
      PS C:\Users\azcli> 
      

VM 이미지 삭제

어떤 이유로 인해 다운로드가 실패하거나 이미지가 더 이상 필요하지 않은 경우 VM 이미지를 삭제할 수 있습니다. 다음 단계에 따라 VM 이미지를 삭제합니다.

  1. 관리자로 PowerShell을 실행합니다.

  2. 다음 매개 변수를 설정합니다.

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local resource group>"
    $mktplaceImage = "<Markeplace image name>"    
    
  3. 기존 VM 이미지를 제거합니다. 다음 명령을 실행합니다.

    az stack-hci-vm image delete --subscription $subscription --resource-group $resource_group --name $mktplaceImage --yes
    

다음 두 가지 방법으로 이미지를 삭제할 수 있습니다.

  • 이름 및 리소스 그룹을 지정합니다.
  • ID를 지정합니다.

이미지를 삭제한 후 이미지가 제거되었는지 확인할 수 있습니다. 다음은 이름과 리소스 그룹을 지정하여 이미지를 삭제한 경우의 샘플 출력입니다.

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "mylocal-rg"
PS C:\Users\azcli> $mktplaceImage = "mymylocal-marketplaceimage"
PS C:\Users\azcli> az stack-hci-vm image delete --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Are you sure you want to perform this operation? (y/n): y
PS C:\Users\azcli> az stack-hci-vm image show --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
ResourceNotFound: The Resource 'Microsoft.AzureStackHCI/marketplacegalleryimages/myhci-marketplaceimage' under resource group 'mylocal-rg' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
PS C:\Users\azcli>

다음 단계