본문 바로가기
GCP

GCE(Google Compute Engine)로 Virtualbox VM 가져오기

by misankim 2023. 4. 30.

GCE(Google Compute Engine)로 Virtualbox VM 가져오기
-> 방식은 1) 가상 디스크를 가져오는 방식과 2) 가상 어플라이언스(vm)을 가져오는 방식
-> 가상 디스크를 가져오는 경우 단독 테넌트 노드에서만 실행 가능하기 때문에 일반 노드에서 실행하려면 가상 어플라이언스 가져오기를 수행할 것

Bring Your Own License(사용자 라이선스 사용)
https://cloud.google.com/compute/docs/nodes/bringing-your-own-licenses

Windows VM에서 시작 스크립트 사용
https://cloud.google.com/compute/docs/instances/startup-scripts/windows

커스텀 Windows BYOL 이미지 만들기(daisy)
 https://cloud.google.com/compute/docs/images/creating-custom-windows-byol-images?hl=ko

 

# 로컬에서 windows vm 생성(공통)


## windows client 이미지
-> gcp에서 제공하지 않기 때문에 사용자가 커스텀 이미지를 가져와야하며, BYOL 라이센스로 인증해야함

https://cloud.google.com/compute/docs/images/os-details?hl=ko#windows_client


## windows 10 iso 이미지 다운로드

https://www.microsoft.com/ko-kr/software-download/windows10ISO

## virtualbox vm 생성
-> 가상 디스크 생성 시 vhd 포맷으로 생성
-> 설치 완료 후 os 봉인이 필요하다면 sysprep 커맨드로 봉인

c:\windows\system32\sysprep\sysprep.exe /generalize /shutdown


# 가상 디스크 가져오기
-> 가져온 이미지는 단독 테넌트 노드에서만 실행 가능

https://cloud.google.com/compute/docs/import/importing-virtual-disks

## vm disk 파일(.vhd)을 gcs 로 업로드
-> 가상 디스크 파일의 용량은 약 10 GB

## gcs 의 가상 디스크 파일을 gce 이미지로 가져오기
-> network/subnet 옵션을 지정하지 않으면 default 네트워크를 사용하기 때문에 사용자 지정 네트워크를 사용하는 경우 반드시 network/subnet 옵션 지정
-> 이미지 가져오기 실행 시 cloud build 로 이미지를 가져오기 때문에 cloud build 서비스 어카운트에 Compute 관리자/서비스 계정 사용자 권한 부여 필요

gcloud compute images import windows10-custom --source-file=gs://premisan-test-bucket-222/windows_10.vhd --guest-environment --os=windows-10-x64-byol --network=premisan-test-network --subnet=premisan-test-subnet --no-address --storage-location=asia-northeast3 --project=premisan-test



# 가상 어플라이언스(.ova)에서 gce 인스턴스로 가져오기
-> 가져옴과 동시에 단독 테넌트 노드가 아닌 일반 노드에서 실행됨

## virtualbox 에서 내보내기
-> ova 포맷의 파일로 내보낸 후 gcs 에 업로드

https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/ovf.html

## gce 인스턴스로 가져오기
-> 이미지는 가져와지지 않고 인스턴스만 구동됨

https://cloud.google.com/compute/docs/import/import-ovf-files

gcloud compute instances import windows10-custom --source-uri=gs://premisan-test-bucket-222/windows_10.ova --guest-environment --os=windows-10-x64-byol --network=premisan-test-network --subnet=premisan-test-subnet --zone asia-northeast3-a --no-address --project=premisan-test

windows7 os 의 경우
-> 가져오기 후 시동 복구로 넘어가는 문제, nvme 드라이버 문제로 부팅 불가
gcloud compute instances import windows7-custom --source-uri=gs://premisan-test-bucket123/windows7.ova --guest-environment --os=windows-7-x64-byol --network=premisan-test-network --subnet=premisan-test-subnet --zone asia-northeast3-a --no-address --project=premisan-test




# 가상 어플라이언스(.ova)에서 머신 이미지로 가져오기
-> 가져온 머신 이미지는 단독 테넌트 노드에서만 실행 가능
-> 가져온 머신 이미지는 compute engine -> virtual machines -> machine images 메뉴에서 확인 가능

https://cloud.google.com/compute/docs/machine-images/import-machine-from-virtual-appliance

gcloud compute machine-images import windows10-custom --source-uri=gs://premisan-test-bucket-222/windows_10.ova --guest-environment --os=windows-10-x64-byol --network=premisan-test-network --subnet=premisan-test-subnet --zone asia-northeast3-a --no-address --project=premisan-test

windows7 os 의 경우
-> 가져오기 후 시동 복구로 넘어가는 문제, nvme 드라이버 문제로 부팅 불가
gcloud compute machine-images import windows7-custom --source-uri=gs://premisan-test-bucket123/windows7.ova --guest-environment --os=windows-7-x64-byol --network=premisan-test-network --subnet=premisan-test-subnet --zone asia-northeast3-a --no-address --project=premisan-test