필요한 소프트웨어 및 구성이 포함된 가상 디스크가 온프레미스 환경에 있는 경우(골든 디스크 또는 골든 이미지라고도 함) 이러한 가상 디스크를 Distributed Cloud로 가져오고 결과 이미지를 사용하여 가상 머신을 만들어 시간을 절약할 수 있습니다. 가져오기 도구는 RAW 및 QCOW 이미지 형식을 지원합니다.
시작하기 전에
계속하기 전에 다음 사항을 확인하세요.
gdcloud CLI가 다운로드, 설치, 구성되어 있습니다. GDC의 모든 CLI 명령어는 gdcloud 또는 kubectl CLI를 사용하며 운영체제 (OS) 환경이 필요합니다.
Kubernetes 클러스터에 대한 로그인 액세스 권한 로그인의 CLI 단계에 따라 Kubernetes 클러스터에 로그인합니다.
권한 및 액세스 요청
이 페이지에 나열된 작업을 수행하려면 프로젝트 VirtualMachine 관리자 역할이 있어야 합니다. 단계를 따라 VM이 있는 프로젝트의 네임스페이스에 프로젝트 VirtualMachine 관리자 (project-vm-admin) 역할이 있는지 확인합니다.
GDC 콘솔 또는 gdcloud CLI를 사용하는 VM 작업의 경우 프로젝트 IAM 관리자에게 이전 단락에 나열된 역할과 프로젝트 뷰어 (project-viewer) 역할을 할당해 달라고 요청하세요.
가져오기 프로세스에는 가상 디스크 파일을 객체 스토리지에 업로드하는 작업이 포함됩니다.
gdcloud CLI를 사용하는 경우 명령어의 성공 여부와 관계없이 명령어가 완료되면 객체가 정리됩니다. 명령어가 중단되거나 API를 사용하여 이미지 가져오기를 완료한 경우 파일을 수동으로 삭제할 때까지 가상 디스크 파일이 vm-images-bucket라는 객체 스토리지 버킷에 남아 있을 수 있습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eYou can import on-premises virtual disks (RAW and QCOW formats) into Distributed Cloud to create reusable images for virtual machines, which helps save time and effort.\u003c/p\u003e\n"],["\u003cp\u003eImporting virtual disks can be accomplished either by using the \u003ccode\u003egdcloud\u003c/code\u003e CLI, which automatically uploads the file and installs necessary packages, or through the Virtual Machine Manager API after manually uploading the disk to an object storage bucket.\u003c/p\u003e\n"],["\u003cp\u003eBefore importing, you need the \u003ccode\u003egdcloud\u003c/code\u003e or \u003ccode\u003ekubectl\u003c/code\u003e CLI, access to the Kubernetes cluster, and the appropriate permissions, such as the Project VirtualMachine Image Admin role.\u003c/p\u003e\n"],["\u003cp\u003eThe import process, whether using the CLI or API, requires you to specify the image name, source file or bucket details, and the operating system of the disk being imported.\u003c/p\u003e\n"],["\u003cp\u003eIf using the API to import virtual disks, you must manually manage and delete the virtual disk files in the \u003ccode\u003evm-images-bucket\u003c/code\u003e, but the CLI automatically cleans up the object storage upon command completion.\u003c/p\u003e\n"]]],[],null,["# Import virtual disks\n\nIf you have virtual disks in your on-premises environment with software and\nconfigurations that you need, occasionally referred to as *golden disks* or\n*golden images*, you can save time by importing those virtual disks into\nDistributed Cloud and using the resulting image to create virtual\nmachines. The import tool supports RAW and QCOW image formats.\n\nBefore you begin\n----------------\n\nBefore continuing, ensure that you have the following:\n\n- The [gdcloud CLI](/distributed-cloud/hosted/docs/latest/gdch/resources/gdcloud-overview) downloaded, installed, and configured. All CLI commands for GDC use the `gdcloud` or `kubectl` CLI, and require an operating system (OS) environment.\n\n\u003c!-- --\u003e\n\n- Login access to the Kubernetes cluster. Follow the CLI steps in\n [Sign in](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/iam/sign-in#cli)\n to sign in to the Kubernetes cluster.\n\n | **Note:** Record the path to the generated file, `/tmp/admin-kubeconfig-with-user-identity.yaml`. Use the path to replace \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e in these instructions.\n\n### Request permissions and access\n\nTo perform the tasks listed in this page, you must have the Project\nVirtualMachine Admin role. Follow the steps to\n[verify](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/preparation#verify-user-access)\nthat you have the Project VirtualMachine Admin (`project-vm-admin`) role in the namespace\nof the project where the VM resides.\n\nFor VM operations using the GDC console or the gdcloud CLI,\nrequest your Project IAM Admin to assign you the roles listed in the previous\nparagraph and the Project Viewer (`project-viewer`) role.\n\nImport virtual disks\n--------------------\n\nYou can import your virtual disks using either the\ngdcloud CLI or the\n[Virtual Machine Manager API](/distributed-cloud/hosted/docs/latest/gdch/apis/service/virtualmachine/vmm-api-overview).\n\nTo get the permissions you need to import images, ask your Organization IAM\nAdmin to grant you the Project VirtualMachine Image Admin\n(`project-vm-image-admin`) role for your project. \n\n### gdcloud\n\nUse the `gdcloud compute images import` command to create a bootable image.\n\nThe `import` command ensures that the disk has the required packages,\nincluding the guest environment, which is required to configure credentials\nfor connecting to the instance using secure shell (SSH) on Linux and Remote\nDesktop Protocol (RDP) on Windows.\n\nOn Linux, the command also installs packages for network time protocol (NTP)\nand `cloud-init` for the instance to run properly in\nGDC.\n\nYou can import virtual disk files directly from your workstation. The import\ntool automatically uploads the file to an object storage bucket in your\nproject. \n\n gdcloud compute images import \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e \\\n --source-file=\u003cvar translate=\"no\"\u003eSOURCE_FILE\u003c/var\u003e \\\n --os=\u003cvar translate=\"no\"\u003eIMAGE_OS\u003c/var\u003e \\\n --timeout=\u003cvar translate=\"no\"\u003eTIMEOUT\u003c/var\u003e\n\nReplace the following variables:\n\n- \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e: the name of your destination image. The name must be no longer than 35 characters.\n- \u003cvar translate=\"no\"\u003eSOURCE_FILE\u003c/var\u003e: your virtual disk file. This file is a local file on your workstation. You can provide an absolute or relative path.\n- \u003cvar translate=\"no\"\u003eIMAGE_OS\u003c/var\u003e: the OS on the disk to import.\n- \u003cvar translate=\"no\"\u003eTIMEOUT\u003c/var\u003e: the time an import can last before it fails with \"TIMEOUT\". For example, if you specify `2h`, the process fails after 2 hours. The default timeout is `1h`.\n\nThe upload operation can take an extended period of time depending on the size\nof your virtual disk and the speed of your network connection. The import\noperation can take tens of minutes to run depending on the size of the disk.\n\n\u003cbr /\u003e\n\n### API\n\nBefore starting the import process with the API, you need to upload your\nvirtual disk to an object storage bucket named `vm-images-bucket`. To create\nan object storage bucket, see\n[Create storage buckets for projects](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/create-storage-buckets).\n\nTo import a virtual disk through the API, do the following:\n\n1. Create a `VirtualMachineImageImport` object in the Management API server\n to start the image import process:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n apply -n \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e -f - \u003c\u003cEOF\n apiVersion: virtualmachine.gdc.goog/v1\n kind: VirtualMachineImageImport\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eIMAGE_NAME\u003c/span\u003e\u003c/var\u003e\n namespace: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROJECT_ID\u003c/span\u003e\u003c/var\u003e\n spec:\n source:\n objectStorage:\n bucketRef:\n name: vm-images-bucket\n objectName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSOURCE_FILE\u003c/span\u003e\u003c/var\u003e\n imageMetadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eIMAGE_NAME\u003c/span\u003e\u003c/var\u003e\n operatingSystem: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eOPERATING_SYSTEM\u003c/span\u003e\u003c/var\u003e\n minimumDiskSize: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDISK_SIZE\u003c/span\u003e\u003c/var\u003e\n EOF\n\n Replace the following variables:\n\n2. Monitor the progress of the import by querying the status of the\n `VirtualMachineImageImport` object:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eMANAGEMENT_API_SERVER\u003c/var\u003e \\\n get virtualmachineimageimport --namespace \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eIMAGE_NAME\u003c/var\u003e -o jsonpath='{.status}'\n\n### Clean up resources\n\nThe import process involves uploading your virtual disk file to object storage.\nIf you use the gdcloud CLI, the object is cleaned up when the command\nfinishes, whether or not it was successful. If the command is interrupted, or\nthe image import is done with the API, the virtual disk file might remain in\nthe object storage bucket named `vm-images-bucket` until you manually delete\nthe file.\n\nWhat's next\n-----------\n\nCreate a new VM instance that uses your image in the page,\n[Create and start a VM](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/create-a-vm/create-and-start)."]]