이 문서에서는 가상 머신(VM) 인스턴스에서 중첩된 가상화를 사용 설정하고 중첩된 VM을 만들 수 있는지 확인하는 방법을 설명합니다. 다음 방법 중 하나를 사용하여 VM에서 중첩된 가상화를 사용 설정합니다.
권장사항. VM을 만드는 동안
enableNestedVirtualization
필드를true
로 설정하거나 VM을 업데이트하여 새 VM 또는 기존 VM에서 중첩된 가상화를 직접 사용 설정합니다. 이 방법은 커스텀 이미지를 만들거나 특수 라이선스 키를 사용할 필요가 없으므로 권장되는 방법입니다.부팅 디스크를 만들고 특수한 중첩된 가상화 라이선스 키로 커스텀 이미지를 만든 후 커스텀 이미지를 사용하는 VM을 만들어 특수 라이선스 키로 중첩된 가상화를 사용 설정합니다.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
VM_NAME
: 중첩된 가상화가 사용 설정된 새 L1 VM의 이름입니다.ZONE
: 중첩된 가상화가 사용 설정된 새 L1 VM의 영역입니다.PROJECT_ID
: 프로젝트 ID입니다.ZONE
: 중첩된 가상화가 사용 설정된 새 L1 VM의 영역입니다.VM_NAME
: 중첩된 가상화가 사용 설정된 새 L1 VM의 이름입니다.다음
gcloud compute instances export
명령어를 사용하여 VM 속성을 내보냅니다.gcloud compute instances export VM_NAME \ --destination=YAML_FILE_PATH \ --zone=ZONE
다음을 바꿉니다.
VM_NAME
: 속성을 내보낼 VM의 이름입니다.YAML_FILE_PATH
: 내보낸 구성 데이터를 저장할 .yaml 파일의 경로와 파일 이름입니다.ZONE
: VM이 포함된 영역입니다.
FILE_PATH에 저장된 VM 구성 파일에서
enableNestedVirtualization
값을 업데이트합니다. 값이 파일에 없으면 다음을 추가합니다.advancedMachineFeatures: enableNestedVirtualization: true
다음
gcloud compute instances update-from-file
명령어를 사용하여 VM을enableNestedVirtualization
값으로 업데이트합니다.gcloud compute instances update-from-file VM_NAME \ --source=FILE_PATH \ --most-disruptive-allowed-action=RESTART \ --zone=ZONE
다음을 바꿉니다.
VM_NAME
: 업데이트할 VM의 이름입니다.FILE_PATH
: 업데이트된 VM 구성 파일의 경로입니다.ZONE
: 업데이트할 VM이 포함된 영역입니다.
PROJECT_ID
: 프로젝트 IDZONE
: VM이 포함된 영역입니다.VM_NAME
: 속성을 내보낼 VM의 이름입니다.공개 이미지나 커스텀 이미지에서 부팅 디스크를 만듭니다. 다음 예시에서는 이미지 프로젝트에
debian-cloud
를 사용하고 이미지 계열에debian-10
을 사용합니다. 기존 디스크가 있는 VM 인스턴스가 이미 있으면 이 단계를 건너뛸 수 있습니다.gcloud
gcloud compute disks create DISK_NAME \ --zone=ZONE \ --image-project=debian-cloud \ --image-family=debian-10
다음을 바꿉니다.
DISK_NAME
: 새 디스크의 이름입니다.ZONE
: 디스크를 만들 영역입니다.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { ... "name": "DISK_NAME", "sourceImage": "projects/debian-cloud/global/images/family/debian-10", ... }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 ID입니다.ZONE
: 디스크를 만들 영역입니다.DISK_NAME
: 새 디스크의 이름입니다.
중첩된 가상화에 필요한 특수 라이선스 키를 사용하여 커스텀 이미지를 만듭니다.
gcloud
gcloud compute images create IMAGE_NAME \ --source-disk DISK_NAME \ --source-disk-zone ZONE \ --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
다음을 바꿉니다.
IMAGE_NAME
: 새 이미지 이름입니다.DISK_NAME
: 이전에 만든 디스크의 이름입니다.ZONE
: 이미지를 만들 영역입니다.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { ... "licenses": ["projects/vm-options/global/licenses/enable-vmx"], "name": "IMAGE_NAME", "sourceDisk": "zones/ZONE/disks/DISK_NAME", ... }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 ID입니다.IMAGE_NAME
: 새 이미지 이름입니다.ZONE
: 이미지를 만들 영역입니다.DISK_NAME
: 이전에 만든 디스크의 이름입니다.
원하는 경우 특수 라이선스로 이미지를 만든 후 소스 디스크를 삭제합니다.
gcloud
gcloud compute disks delete DISK_NAME --zone=ZONE
다음을 바꿉니다.
DISK_NAME
: 삭제할 디스크의 이름입니다.ZONE
: 삭제할 디스크가 포함된 영역입니다.
REST
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 ID입니다.ZONE
: 삭제할 디스크가 포함된 영역입니다.DISK_NAME
: 삭제할 디스크의 이름입니다.
특수 라이선스로 새 이미지를 사용하는 VM을 만듭니다. 최소 CPU 플랫폼은
"Intel Haswell"
이어야 합니다.gcloud
gcloud compute instances create VM_NAME \ --zone=ZONE \ --min-cpu-platform "Intel Haswell" \ --image IMAGE_NAME
다음을 바꿉니다.
VM_NAME
: VM의 이름입니다.ZONE
: VM을 만들 영역입니다.IMAGE_NAME
: 이전에 만든 이미지의 이름입니다.
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "name": "VM_NAME", "minCpuPlatform": "Intel Haswell", "disks": [ { "initializeParams": { "sourceImage": "IMAGE_NAME" } } ] ... }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트 ID입니다.VM_NAME
: VM의 이름입니다.ZONE
: VM을 만들 영역입니다.IMAGE_NAME
: 이전에 만든 이미지의 이름입니다.
VM 인스턴스에 연결합니다.
gcloud compute ssh VM_NAME
VM_NAME
을 연결할 VM의 이름으로 바꿉니다.중첩된 가상화가 사용 설정되었는지 확인합니다.
0
이외의 응답은 중첩된 가상화가 사용 설정된 것입니다.grep -cw vmx /proc/cpuinfo
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
새 VM에서 중첩된 가상화 직접 사용 설정
다음 절차를 수행하여 VM에서 중첩된 가상화를 직접 사용 설정합니다.
gcloud
다음
gcloud compute instances create
명령어를 사용하여 중첩된 가상화가 사용 설정된 L1 VM을 만듭니다.gcloud compute instances create VM_NAME \ --enable-nested-virtualization \ --zone=ZONE \ --min-cpu-platform="Intel Haswell"
다음을 바꿉니다.
REST
다음
instances.insert
메서드를 사용하여 중첩된 가상화가 사용 설정된 L1 VM을 만듭니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "name": "VM_NAME", ... "minCpuPlatform": "Intel Haswell", "advancedMachineFeatures": { "enableNestedVirtualization": true }, ... }
다음을 바꿉니다.
기존 VM에서 중첩된 가상화 직접 사용 설정
다음 절차를 수행하여 기존 VM에서 중첩된 가상화를 사용 설정합니다.
gcloud
REST
다음
instances.update
메서드를 사용하여enableNestedVirtualization
값을 업데이트합니다.PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { ⋮ "advanced_machine_features": { ⋮ "enableNestedVirtualization": "true" }, ⋮ }
다음을 바꿉니다.
특수 라이선스 키를 사용하여 중첩된 가상화 사용 설정
L1 VM에서 VMX를 사용 설정하는 특수 라이선스 키를 사용해 커스텀 이미지를 만들어 VM에서 중첩된 가상화를 사용 설정할 수 있습니다. 이 라이선스 키에는 추가 요금이 발생하지 않습니다.
중첩된 가상화가 VM에서 사용 설정되었는지 확인
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-09-05(UTC)
-