가상 디스크 가져오기

필요한 소프트웨어 및 구성(경우에 따라 골든 디스크 또는 골든 이미지라고도 함)이 있는 가상 디스크가 온프레미스 환경에 있는 경우 이 가상 디스크를 Compute Engine으로 가져오고 결과 이미지로 새 가상 머신을 만들어 시간을 절약할 수 있습니다. 가져오기 도구에는 VMDK와 VHD를 비롯한 대부분의 가상 디스크 파일 형식이 지원됩니다.

Compute Engine에서 디스크를 내보낼 경우 다시 가져올 필요가 없습니다. 대신, 디스크에서 추가 이미지를 만들 수 있습니다.

여러 가상 머신을 이전하기 위해 자동화된 시스템이 필요한 경우 Compute Engine으로 VM 이전 개요를 참조하세요.

시작하기 전에

  • 이 가이드의 명령줄 예를 사용하려면 우선 다음을 수행해야 합니다.
    1. gcloud 명령줄 도구 최신 버전을 설치하거나 업데이트합니다.
    2. 기본 리전 및 영역을 설정합니다.
  • Cloud Build API를 사용 설정합니다. 이 기능은 Cloud Build 서비스를 사용하여 Compute Engine 이미지를 가져오거나 만듭니다. 이 기능을 사용하려면 Cloud Build API를 사용 설정해야 합니다.

    Cloud Build API 사용 설정

    Compute Engine은 Cloud Build 서비스 계정에서 이미지를 Compute Engine으로 가져올 수 있도록 다음 역할을 부여합니다.

    • roles/iam.serviceAccountTokenCreator
    • roles/compute.admin
    • roles/iam.serviceAccountUser

지원되는 운영체제

Compute Engine에서 부팅할 수 있도록 가상 디스크에서 다음 운영체제 중 하나가 실행되고 있어야 합니다.

  • Linux 운영체제:
    • CentOS 6, CentOS 7
    • Debian 8, Debian 9
    • Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7
    • Ubuntu 14.04 LTS, Ubuntu 16.04 LTS
  • Windows 운영체제
    • Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2012 R2 Core, Windows Server 2016, Windows Server 2016 Core
    • Windows 7 SP1 x64 및 Windows 10 Enterprise x64 (BYOL만 지원)

제한사항

이 기능에는 다음과 같은 제한사항이 있습니다.

  • Linux 가상 디스크에서는 grub를 부트로더로 사용해야 합니다.
  • UEFI 부트로더는 Windows 또는 Linux에서 지원되지 않습니다.
  • Linux 가상 디스크는 Virtio-SCSI 저장소 컨트롤러 기기의 지원을 포함하여 커스텀 OS 이미지와 동일한 요구사항을 충족해야 합니다.
  • Windows 가상 디스크에 설치하면 Carbon Black의 Cb Protection과 같은 애플리케이션 허용 소프트웨어로 인해 가져오기 프로세스가 실패할 수 있습니다. 가져오기 전에 이러한 소프트웨어를 제거해야 할 수도 있습니다.
  • RHEL이 실행되고 있는 가상 디스크를 가져올 경우 가져오기 전에 가상 디스크에 python-boto 패키지가 설치된 경우에만 BYOL(Bring Your Own License)이 지원됩니다.
  • 가상 디스크의 운영체제는 ACPI를 지원해야 합니다.

권한

이미지 가져오기 도구는 몇 단계를 거쳐 가상 디스크 파일을 가져옵니다. 예를 들어 파일을 Google Cloud Storage에 업로드, 필요한 경우 새 버킷 만들기, Compute Engine에 파일 다운로드, 디스크 파일에서 Compute Engine의 이미지 만들기 등이 있습니다. 이 프로세스는 자동으로 수행되므로, 이 기능을 사용하기에 충분히 원활한 환경을 설정하려면 다음 역할이 있어야 합니다.

  • 프로젝트에 대한 roles/storage.admin
  • 프로젝트에 대한 roles/viewer
  • 프로젝트에 대한 roles/resourcemanager.projectIamAdmin

가상 디스크 가져오기

호환성 확인

가상 머신의 디스크 가져오기를 시도하기 전에 가상 머신 내부에서 사전 확인 도구를 다운로드하고 실행합니다. 사전 확인 도구는 가져오기 프로세스 실패나 Compute Engine에서 디스크 오작동의 원인이 되는 호환성 문제가 있는지 검사합니다.

부팅 가능한 가상 디스크 가져오기

Console

  1. Google Cloud Platform Console에서 가상 디스크 파일을 Cloud Storage에 업로드합니다.
  2. 이미지 만들기 페이지로 이동합니다.
    이미지 만들기 페이지로 이동
  3. 이미지의 이름을 지정합니다.
  4. 소스에서 가상 디스크(VMDK, VHD 등)를 선택합니다.
  5. Cloud Storage 파일의 스토리지 위치로 이동하거나 수동으로 입력합니다.
  6. 가져온 디스크에서 사용할 수 있는 운영체제를 선택합니다. 필요하다면 다음과 같이 변경하세요.

    • 게스트 패키지 설치를 선택합니다. 게스트 환경을 설치하는 것이 좋습니다. 게스트 환경에 대한 자세한 내용은 게스트 환경을 참조하세요.

    • Windows 또는 Red Hat Enterprise Linux(RHEL) 운영체제의 경우 라이선스 옵션도 선택할 수 있습니다. Compute Engine에서 라이선스를 제공하도록 허용하거나 사용자 라이선스를 사용할 수 있습니다. Windows에서 사용자 라이선스를 사용하는 자세한 방법은 사용자 라이선스 사용을 참조하세요.

  7. (선택사항) 이미지의 추가 속성을 지정합니다. 예를 들어 이 이미지를 이미지 계열의 일부로 구성할 수 있습니다.

  8. 만들기를 클릭하여 이미지를 가져옵니다.

gcloud

gcloud compute images import 명령어를 사용하여 부팅 가능한 Compute Engine 이미지를 만듭니다. Compute Engine에서는 대부분의 부팅 디스크 이미지를 부팅할 수 있지만, import 명령어를 실행하면 인스턴스를 시작하고 SSH 또는 RDP를 통해 연결하는 데 필요한 필수 드라이버와 최신 게스트 환경 패키지가 디스크에 포함됩니다.

Cloud Storage 버킷이나 로컬 워크스테이션에서 가상 디스크 파일을 가져올 수 있습니다.

워크스테이션에서 가상 디스크 파일을 가져올 경우 가져오기 도구에서는 파일을 Cloud Storage 버킷으로 자동으로 업로드합니다.

원하는 경우 가져오기 프로세스를 시작하기 전에 직접 가상 디스크 파일을 Cloud Storage로 업로드할 수 있지만, 가져오기 프로세스에 사용될 동일한 프로젝트의 저장소 버킷에 이 파일을 업로드해야 합니다.

gcloud beta compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --os [OS]

각 매개변수는 다음과 같습니다.

  • [IMAGE_NAME]은 목적지 이미지의 이름입니다.
  • [SOURCE_FILE]은 가상 디스크 파일이며, 로컬 파일 또는 Cloud Storage에 저장된 파일일 수 있습니다. 가상 디스크가 로컬 파일인 경우 절대 또는 상대 경로를 제공할 수 있습니다. 가상 디스크 파일이 이미 Cloud Storage에 저장된 경우, 파일은 가져오기 프로세스에 사용된 프로젝트의 스토리지 버킷에 있어야 하며, 파일의 전체 경로를 gs://[BUCKET_NAME]/[OBJECT_NAME] 형식으로 지정해야 합니다.
  • [OS]는 SOURCE_FILE의 운영체제이며, centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012, windows-2012r2, windows-2016 또는 BYOL 라이선스 이미지 중 하나여야 합니다.

    (베타) 사용자 라이선스 사용(BYOL) 지원

    기본적으로 Windows Server와 Red Hat Enterprise Linux(RHEL) 운영체제를 사용하는 가상 디스크는 추가 요금이 발생하는 프리미엄 OS 이미지로 가져오고 구성됩니다.

    • RHEL에서 자체 소프트웨어 구독을 사용하려면 [OS] 필드에 다음 BYOL 값 중 하나를 지정하여 디스크를 BYOL 라이선스 이미지로 가져오면 됩니다.

      • rhel-6-byol
      • rhel-7-byol
    • Windows에 BYOL(bring your own license)을 사용하려면 [OS] 필드에 다음 BYOL 값 중 하나를 지정하여 디스크를 BYOL 라이선스 이미지로 가져오면 됩니다.

      • windows-2008r2-byol
      • windows-2012-byol
      • windows-2012r2-byol
      • windows-2016-byol
      • windows-7-byol
      • windows-10-byol

로컬 파일을 지정하면 가상 디스크의 크기와 네트워크 연결 속도에 따라 업로드 작업에 오랜 시간이 걸릴 수 있습니다. 디스크 크기에 따라 가져오기 작업을 실행하는 데 수십 분이 걸릴 수 있습니다.

명령어 샘플

다음은 gs://your_gcs_bucket에 저장된 your_server.vmdk라는 이름의 debian-9 가상 디스크를 가져오는 예입니다.

gcloud beta compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_server.vmdk \
    --os debian-9

선택적 매개변수

기본적으로 가져온 모든 부팅 디스크 이미지에 게스트 환경 패키지가 추가됩니다. 이 패키지를 사용하지 않으려면 가져오기 명령어에 --no-guest-environment 플래스를 추가하세요.

부팅할 수 없는 가상 디스크 가져오기

Console

  1. Google Cloud Platform Console에서 가상 디스크 파일을 Cloud Storage에 업로드합니다.
  2. 이미지 만들기 페이지로 이동합니다.
    이미지 만들기 페이지로 이동
  3. 이미지의 이름을 지정합니다.
  4. 소스에서 가상 디스크(VMDK, VHD 등)를 선택합니다.
  5. Cloud Storage 파일의 스토리지 위치로 이동하거나 수동으로 입력합니다.
  6. 운영체제에서 운영체제가 없습니다. 데이터만 있습니다.를 선택합니다.
  7. (선택사항) 이미지의 추가 속성을 지정합니다. 예를 들어 이 이미지를 이미지 계열의 일부로 구성할 수 있습니다.
  8. 만들기를 클릭하여 이미지를 가져옵니다.

gcloud

gcloud compute images import 명령어를 사용하여 부팅할 수 없는 Compute Engine 이미지를 만듭니다. 가상 디스크에 부팅 가능한 운영체제가 설치되어 있지 않은 경우에도 --os 플래그 대신 --data-disk 플래그를 사용하여 가져올 수 있습니다. 이렇게 하면 드라이버와 게스트 환경 패키지를 설치하는 단계를 건너뛰므로 Compute Engine에서 이미지가 부팅 가능하게 됩니다.

gcloud compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --data-disk

각 매개변수는 다음과 같습니다.

  • [IMAGE_NAME]은 목적지 이미지의 이름입니다.
  • [SOURCE_FILE]은 가상 디스크 파일이며, 로컬 파일 또는 Cloud Storage에 저장된 파일일 수 있습니다. 가상 디스크가 로컬 파일인 경우 절대 또는 상대 경로를 사용할 수 있습니다. 가상 디스크 파일이 이미 Cloud Storage에 저장된 경우, 파일은 가져오기 프로세스에 사용된 프로젝트의 스토리지 버킷에 있어야 하며, 파일의 전체 경로를 gs://[BUCKET_NAME]/[OBJECT_NAME] 형식으로 지정해야 합니다.

명령어 샘플

다음은 gs://your_gcs_bucket에 저장된 your_disk.vmdk라는 가상 디스크를 가져오는 예입니다.

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_disk.vmdk \
    --data-disk

부팅 가능한 이미지 만들기

부팅 가능한 운영체제가 있지만 필요한 Compute Engine 드라이버 또는 게스트 환경 패키지가 없는 Compute Engine 커스텀 이미지가 있는 경우 이미지 가져오기 도구를 사용하여 이 이미지를 Compute Engine에서 부팅 가능하게 만들 수 있습니다.

가져올 새 디스크를 지정하는 --source-file 플래그를 사용하는 대신 --source-image 플래그를 사용하여 커스텀 이미지를 부팅 가능하도록 만듭니다.

gcloud compute images import [IMAGE_NAME] \
        --source-image [SOURCE_IMAGE] \
        --os [OS]

각 매개변수는 다음과 같습니다.

  • [IMAGE_NAME]은 목적지 이미지의 이름입니다.
  • [SOURCE_IMAGE]는 소스 이미지의 이름입니다.
  • [OS]는 SOURCE_IMAGE의 운영체제이며, centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012, windows-2012r2, windows-2016 또는 BYOL 라이선스 이미지 중 하나여야 합니다.

사용자 라이선스 사용(BYOL) 지원

  • RHEL에서 자체 소프트웨어 구독을 사용하려면 [OS] 필드에 다음 BYOL 값 중 하나를 지정하여 BYOL 라이선스 이미지를 부팅 가능하게 만들면 됩니다.

    • rhel-6-byol
    • rhel-7-byol
  • Windows에 BYOL(bring your own license)을 사용하려면 [OS] 필드에 다음 BYOL 값 중 하나를 지정하여 BYOL 라이선스 이미지를 부팅 가능하게 만들면 됩니다.

    • windows-2008r2-byol
    • windows-2012-byol
    • windows-2012r2-byol
    • windows-2016-byol
    • windows-7-byol
    • windows-10-byol

명령어 샘플

다음은 my-image라는 이름의 Compute Engine 이미지를 my-bootable-image라는 이름의 부팅 가능한 이미지로 변환하는 예입니다. 이 예에서 이미지에 설치된 운영체제는 Ubuntu 16.04입니다.

gcloud compute images import my-bootable-image --source-image=my-image --os=ubuntu-1604

리소스 정리

Cloud Storage에 저장된 파일과 Compute Engine의 이미지에는 요금이 부과됩니다. 가져오기 도구는 Cloud Storage에 가상 디스크 파일을 가져오고 Compute Engine 커스텀 이미지 하나를 만듭니다.

이미지를 올바르게 가져오고 Compute Engine 인스턴스로 올바르게 부팅되었는지 확인한 후 Cloud Storage에서 가상 디스크 파일을 삭제할 수 있습니다. 이 도구는 파일을 Cloud Storage에 업로드할 때 파일의 URI를 인쇄합니다. 이 URI의 형식은 gs://<bucket name>/tmpimage/<image name>입니다.

--data-disk 플래그를 사용하여 이미지를 가져온 다음 --source-image 플래그로 import 도구를 두 번 실행하여 이 이미지를 부팅 가능하게 만든 경우에도 첫 번째 이미지가 계속 존재합니다. 첫 번째 이미지가 필요하지 않은 경우 이미지를 삭제하는 것도 고려해보세요. [IMAGE_NAME][SOURCE_IMAGE] 매개변수 모두에 동일한 이미지 이름을 지정하면 이미지가 자동으로 덮어써지며 더 이상 정리하지 않아도 됩니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서