[가상화] Cloud Image로 KVM에서 VM 생성하기

2025. 5. 19. 01:11·깐돌의 클라우드 도구함
728x90

Cloud Image로 KVM에서 VM 생성하기 - 효율적인 리눅스 VM 배포 방법

KVM에서 새로운 가상 머신(VM)을 생성할 때, 많은 경우 ISO 파일을 통해 OS를 수동 설치합니다. 하지만 이 방식은 비효율적이며, 특히 여러 VM을 반복 생성할 때 매우 번거롭습니다. 이번 글에서는 Cloud Image를 이용해 손쉽게 RHEL/CentOS 기반 KVM VM을 생성하는 방법을 정리해보았습니다.


1. Cloud Image란?

Cloud Image는 클라우드 환경(OpenStack, AWS 등)에서 빠른 인스턴스 생성을 위해 만들어진 사전 설치된 경량 OS 이미지입니다. KVM에서도 이 이미지를 이용하면 ISO 설치 과정을 생략하고 곧바로 VM을 실행할 수 있습니다.

🔗 CentOS 공식 Cloud Image 다운로드
🔗 RHEL Cloud Image (계정 필요)

2. Cloud Image 다운로드

예: CentOS 또는 RHEL 8.4 Cloud Image를 다운로드합니다.


wget https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.4.2105-20210603.0.x86_64.qcow2

RHEL은 Red Hat Customer Portal에서 계정 로그인이 필요하며, `.qcow2` 형식의 KVM용 이미지를 선택합니다.


3. 이미지 정보 확인

다운로드한 이미지의 정보를 확인해봅니다:


qemu-img info rhel-8.4-x86_64-kvm.qcow2

image: rhel-8.4-x86_64-kvm.qcow2
virtual size: 10G
disk size: 694M
file format: qcow2

Cloud Image는 가볍고 기본 설정만 포함된 상태입니다.


4. root 비밀번호 설정 및 cloud-init 제거

Cloud Image는 기본적으로 cloud-init을 통해 초기화를 수행하므로, 직접 접속이 불가능합니다. 이를 해결하기 위해 virt-customize를 사용해 root 비밀번호를 설정하고 cloud-init을 제거합니다.


virt-customize -a rhel-8.4-x86_64-kvm.qcow2 --root-password password:root
virt-customize -a rhel-8.4-x86_64-kvm.qcow2 --uninstall cloud-init

이미지 재사용을 위해 원본 이미지를 복사해서 사용할 것을 권장합니다.


cp -pr rhel-8.4-x86_64-kvm.qcow2 rhel-8.4-root.qcow2

5. qcow2 이미지 리사이징

Cloud Image 기본 사이즈는 10G로, 대부분의 실무 환경에서는 부족합니다. qemu-img resize 명령어를 사용해 50G로 확장합니다.


qemu-img resize rhel-8.4-root.qcow2 50G

virtual size: 50G
disk size: 1.7G
🔗 QEMU 이미지 관리 공식 문서

6. virt-install을 통한 VM 생성

이미지 준비가 완료되면 virt-install 또는 virt-manager를 이용해 VM을 생성합니다.


virt-install \
--name rhel8-test \
--memory 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/rhel-8.4-root.qcow2,format=qcow2 \
--import \
--os-type=linux \
--os-variant=rhel8.4 \
--network bridge=br0 \
--graphics none \
--noautoconsole

이제 VM이 생성되었으며, root:root로 로그인 가능합니다.


7. VM 로그인 및 / 파티션 확장

VM에 접속한 후, df -Th 명령어로 확인하면 여전히 루트 파티션이 10G로 설정되어 있음을 볼 수 있습니다.


df -Th
/dev/vda3  xfs   9.9G   1.8G   8.2G  / 

① growpart로 파티션 확장


growpart /dev/vda 3

② xfs_growfs로 파일시스템 확장


xfs_growfs /dev/vda3

③ 최종 확인


df -Th
/dev/vda3  xfs   50G   2.1G  48G   /

이제 Cloud Image를 기반으로 빠르게 커스터마이징된 KVM VM을 배포할 수 있습니다.


✅ 정리 및 실무 팁

  • ISO 없이 빠르게 VM 생성 가능
  • cloud-init 비활성화 시 로그인이 쉬워짐
  • qcow2 파일 복사 후 사용자별 작업 권장
  • 파티션 및 파일시스템 확장 필수
  • 스크립트를 만들어 대량 배포 자동화 가능

728x90
반응형

'깐돌의 클라우드 도구함' 카테고리의 다른 글

[Linux] createrepo와 reposync를 활용한 오프라인 RPM 저장소 구성 방법  (0) 2025.05.19
[Linux] dnf(yum) – RPM 파일만 다운로드하는 방법 총정리  (0) 2025.05.19
[가상화] qcow2 virt-customize 오류 해결 방법  (0) 2025.05.18
[Linux] 리눅스 패스워드 복잡성 무시(우회) 설정 방법  (0) 2025.05.18
[Linux] journalctl 실전 활용하기  (0) 2025.05.17
'깐돌의 클라우드 도구함' 카테고리의 다른 글
  • [Linux] createrepo와 reposync를 활용한 오프라인 RPM 저장소 구성 방법
  • [Linux] dnf(yum) – RPM 파일만 다운로드하는 방법 총정리
  • [가상화] qcow2 virt-customize 오류 해결 방법
  • [Linux] 리눅스 패스워드 복잡성 무시(우회) 설정 방법
깐돌씨
깐돌씨
하루하루를 기록하는 공간. 일상에서 얻은 영감, 좋아하는 취미, 그리고 클라우드 업무 팁까지 함께 나눕니다.
  • 깐돌씨
    조용한 깐돌이네
    깐돌씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (69) N
      • 깐돌일기 (2) N
      • 취미탐험대 (13) N
      • 깐돌의 클라우드 도구함 (54)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    서버 관리
    컨테이너
    오픈소스
    노원 자연휴양림
    리눅스 서버
    RHEL8
    KVM
    private registry
    kickstart
    리눅스
    Docker
    수락산 자연휴양림 예약
    리눅스 가상화
    rhocp
    rhel
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
깐돌씨
[가상화] Cloud Image로 KVM에서 VM 생성하기
상단으로

티스토리툴바