LabHub

가상화와 QEMU/KVM · VM 생성과 부팅 · 실습

QEMU 로 VM 띄우기

LabHub 에서 이어서 보기

목표

준비된 디스크 이미지로 QEMU VM 을 실제로 띄우고, 시리얼 로그 · 모니터 소켓 · hostfwd 리슨 소켓 세 가지로 살아 있음을 증명합니다.

왜 중요한가

실무에서는 libvirt 나 클라우드 콘솔을 쓰지만, 문제가 생기면 결국 그 아래의 QEMU 커맨드라인을 읽어야 합니다. -netdev(호스트 쪽 백엔드)와 -device(게스트가 보는 NIC)가 왜 분리돼 있는지, format= 을 왜 명시해야 하는지, hostfwd 리슨 소켓이 게스트 부팅과 무관하게 즉시 열리는 이유가 무엇인지 — 이런 것들은 커맨드라인을 직접 써 봐야 몸에 붙습니다.

이 실습은 가상머신 안에서 돌고, 그 안에서 또 가상머신을 띄웁니다. 중첩 가상화가 켜져 있어서 /dev/kvm 이 있고, QEMU 가 하드웨어 가속을 그대로 씁니다.\n\n예전에는 파드에서 돌아 /dev/kvm 이 없었고, QEMU 가 명령어를 하나씩 번역하는 TCG 소프트웨어 에뮬레이션으로만 돌았습니다. 게스트가 로그인 프롬프트까지 오는 데 몇 분이 걸려서, 실습이 "펌웨어가 떴는가" 까지만 볼 수밖에 없었습니다.\n\n가속기는 있는 것을 골라 쓰세요. -accel kvm-accel tcg 는 수십 배 차이가 납니다. 실무에서도 순서가 같습니다 — 먼저 /dev/kvm 이 있는지 보고, 있으면 그것을 씁니다. 채점기도 이 상자에 무엇이 있는지 보고 그에 맞게 판정합니다.

단계

1. /root/vmboot 디렉터리를 만들고, /opt/vm/ 아래에 제공된 디스크 이미지의 qemu-img info 출력을 /root/vmboot/base-info.txt 로 저장하세요.
2. 그 이미지를 백킹으로 하는 오버레이 /root/vmboot/vm.qcow2 를 만드세요. 원본은 변하면 안 됩니다.
3. /root/vmboot/run.sh 를 작성하세요. 다음 요소가 모두 들어가야 합니다.

참고

단계 8개

  1. 제공된 이미지 확인
  2. 오버레이로 원본 보호
  3. 실행 스크립트 작성
  4. 가속기 확인
  5. 실제로 띄우고 콘솔 로그 남기기
  6. 모니터 소켓에 질의
  7. 포트 포워딩 확인
  8. VM 실행 보고서