Proxmox에서 ARM64 VM 만들기

Proxmox를 사용할 때는 필요에 맞는 VM을 만들어 사용하곤 합니다.

Proxmox에서는 기본적으로 x86 VM을 많이 쓰지만, ARM64 ISO를 올려서 VM을 띄워야 할 때가 생기기도 합니다.

이 글에서는 ARM64 VM을 생성하는 방법을 정리해 보겠습니다.

VM 생성에 앞서

Proxmox에서 ARM64 VM을 만드는 건 호스트 CPU가 무엇인지에 따라 의미가 달라집니다.

호스트가 x86_64(인텔/AMD)라면 ARM64 게스트는 QEMU가 CPU 명령어를 번역해 실행하는 방식이라 사실상 에뮬레이션(TCG) 에 가깝고, 성능이 크게 떨어질 수 있음을 인지해야 합니다.

즉, 빠른 성능이 목적이라기보단 ARM64 환경에서의 부팅/설치/동작 확인 용도에 가깝습니다.

만약 ARM 장치에 Proxmox의 ARM 버전 비공식 Port를 사용하고 계신다면, 게스트도 ARM64로 네이티브 가상화(KVM)가 가능해 성능 특성이 달라질 수 있습니다.

이 글은 x86_64 호스트(Proxmox VE)에서 ARM64 게스트를 띄우는 방법을 기준으로 설명합니다.

VM 생성하기

VM 생성

먼저 Proxmox WebUI에 접속합니다.

오른쪽 상단 "새 VM 생성" 을 눌러 VM을 생성합니다.

여기는 원하시는 설정으로 진행해 주세요.

다음으로 OS는 "미디어 사용 안 함" 으로 설정합니다.

OS 유형은 “Linux”, 버전은 6.x - 2.6 Kernel 으로 설정합니다.

BIOS를 OVMF로 설정합니다.

EFI 디스크는 처음부터 생성할 필요 없으니 체크 해제해도 됩니다.

CPU는 기본으로 값이 들어있다면 X 눌러서 체크 해제하고, 사진처럼 기본값(kvm64) 가 나오도록 합니다. (여기에서 CPU 타입을 건드리면 부팅이 안될 수 있기 때문입니다)

코어 수도 원하는 만큼 늘려줍니다.

 

디스크, 메모리는 원하는 용량으로 설정합니다.

VM 설정 조정

생성 후, VM → Hardware 탭에서 기존 CD/DVD 드라이브를 제거합니다.

그리고 새 CD/DVD 드라이브를 추가합니다.

사진처럼 버스/디바이스를 SCSI, 원하는 ISO로 설정합니다.

화면이 정상적으로 안 뜰 수도 있으니 시리얼 포트를 하나 추가해줍니다.

VNC로 화면이 안 보일 경우 시리얼 포트로 설정하면 됩니다.

설정을 완료하면 이런 모습입니다.

옵션에서 부팅 순서를 변경해 방금 추가한 CD/DVD가 맨 위에 오도록 설정합니다.

VM 구성 파일 수정

Proxmox 노드에서 /etc/pve/qemu-server/<VMID>.conf 파일을 엽니다.

저는 VMID를 300으로 설정하고 생성했으므로 nano /etc/pve/qemu-server/300.conf 명령으로 파일을 오픈했습니다.

맨 아래 arch: aarch64 를 추가하고, vmgenid: 를 주석 처리합니다. 만약 cpu: 설정이 있다면 삭제합니다.

편집 후 파일을 저장합니다.

EFI 디스크가 필요하다면

Proxmox WebUI VM 하드웨어 설정에서 EFI 디스크를 추가합니다.

부팅

이제 일반적인 방식으로 VM을 부팅하고 사용할 수 있습니다.

여기서 noVNC 화면이 비어 있으면 Hardware → Display를 아까 추가한 ‘Serial terminal 0’로 변경해서 진행합니다.

OS를 설치하신 뒤 부팅 이미지는 제거해 주세요.

이건 제가 설치한 데비안 aarch64 입니다.

마무리

네이티브로 구동되는 것이 아닌 에뮬레이션이라 많이 느리긴 하지만,

Proxmox 환경에서 ARM64 OS를 실행할 일이 있을 때 유용합니다.

예를 들어

  • ARM64 전용 패키지/바이너리 동작 확인
  • aarch64 컨테이너/루트FS 테스트
  • ARM 환경에서만 재현되는 이슈 디버깅

같은 것 말이죠.

혹시 ARM64 VM을 여러 번 만들어야 한다면, 매번 설정하지 말고 Proxmox의 "템플릿" 기능을 활용해 간단히 여러 VM을 생성할 수도 있겠습니다.

 

글 읽어 주셔서 감사합니다.

 

This article was updated on