본문으로 바로가기

cloud image로 KVM VM으로 사용하기

category Cloud/KVM 2021. 7. 15. 16:31
반응형

KVM에서 VM을 생성할 때 매번 필요한 버전의 DVD iso나 minimal iso 파일로 OS부터 설치했어야했다. 필요 버전의 iso파일이 없으면 다운받고 업로드하고... 

VM 1개를 생성해서 OS까지만 설치해놓고 해당 qcow2파일로 사용해도 되고, 다양한 방식이 존재하지만..경우에 따라서 아래와 같은 방법으로 사용해도 괜찮을 것 같다.

 

 

1. Cloud Image 다운로드

 - RHEL OS는 access.redhat.com에서 다운받아야되고 (계정 필요)

 - CentOS는 https://cloud.centos.org/centos/8/x86_64/images/  에서 받으면 된다.

 

 

2. qcow2 파일 정보 확인

[root@rhosp-tb0-kvm iso-images]#qemu-img info rhel-8.4-x86_64-kvm.qcow2
image: rhel-8.4-x86_64-kvm.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 694M
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16

 

 

3. root 비밀번호 설정 및 cloud-init 삭제

cloud image는 cloud-init을 통해 메타데이터로부터 수신하여 설정하기 때문에, root 패스워드도 없어서 로그인이 불가능하다.
그래서 virt-customize 명령을 통해 cloud image에 root 패스워드를 설정해줘야된다.
그리고 작업된 qcow2 파일을 사용자가 사용하면, 다른 작업 또는 VM에 사용할 qcow2 작업을 해야하니 작업한 qcow2파일은 원본으로 두고 복사해서 사용하면 좀 더 편하다.

[root@rhosp-tb0-kvm iso-images]#virt-customize -a rhel-8.4-x86_64-kvm.qcow2 --root-password password:root

[root@rhosp-tb0-kvm iso-images]#virt-customize -a rhel-8.4-x86_64-kvm.qcow2 --uninstall cloud-init

[root@rhosp-tb0-kvm iso-images]#cp -pr rhel-8.4-x86_64-kvm.qcow2 rhel-8.4-root.qcow2

 

 

4. 디스크 resize

다운로드 받은 qcow 이미지의 기본 size가 10G라서 사용할만큼의 disk 사이즈를 조절한다.

본 예에서는 50G의 디스크를 사용하는 VM을 생성할 거라서 50G로 resize할 것이다.

# 이미지 정보 확인
[root@rhosp-tb0-kvm iso-images]#qemu-img info rhel-8.4-root.qcow2
image: rhel-8.4-root.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 694M
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16
    
    
# resize
[root@rhosp-tb0-kvm iso-images]#qemu-img resize rhel-8.4-root.qcow2 50G
Image resized.


# 이미지 정보 확인
[root@rhosp-tb0-kvm iso-images]#qemu-img info rhel-8.4-root.qcow2
image: rhel-8.4-root.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 1.7G
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16

 

 

5. VM 생성

작업한 qcow2파일을 virt-manager를 통해서 생성한다. virt-install를 통해서 생성해도 된다.

disk image 추가

 

 

작업한 qcow2 선택 및 OS Type 선택 (RHEL 8 Unknown)

 

 

CPU 및 Memory 설정

 

 

VM 이름 및 Network 설정

 

 

VM 생성 완료

 

 

6. 로그인

위에서 작업한 root 계정으로 로그인한다. (PW : root)

root 계정 로그인

 

 

7. / 파티션의 resize 작업

생성한 VM에 접속해서 확인해보면, / 파티션의 디스크가 10G인 것을 확인할 수 있다.

50G로 resize작업을 진행해준다.

(VM 생성시 연결한 브릿지에는 DHCP 할당이 안되서 임시로 IP를 할당한 후 SSH 접속하여 작업하였다.)

[root@localhost ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  875M     0  875M   0% /dev
tmpfs          tmpfs     909M     0  909M   0% /dev/shm
tmpfs          tmpfs     909M   17M  892M   2% /run
tmpfs          tmpfs     909M     0  909M   0% /sys/fs/cgroup
/dev/vda3      xfs       9.9G  1.8G  8.2G  18% /
/dev/vda2      vfat      100M  5.8M   95M   6% /boot/efi
tmpfs          tmpfs     182M     0  182M   0% /run/user/0


# 파티션 확장
[root@localhost ~]# growpart /dev/vda 3
CHANGED: partition=3 start=208896 old: size=20762591 end=20971487 new: size=104648671 end=104857567


# 파티션 최대크기로 증설
[root@localhost ~]# xfs_growfs /dev/vda3
meta-data=/dev/vda3              isize=512    agcount=4, agsize=648831 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2595323, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2595323 to 13081083


# 디스크 사이즈 확인
[root@localhost ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  875M     0  875M   0% /dev
tmpfs          tmpfs     909M     0  909M   0% /dev/shm
tmpfs          tmpfs     909M   17M  892M   2% /run
tmpfs          tmpfs     909M     0  909M   0% /sys/fs/cgroup
/dev/vda3      xfs        50G  2.1G   48G   5% /
/dev/vda2      vfat      100M  5.8M   95M   6% /boot/efi
tmpfs          tmpfs     182M     0  182M   0% /run/user/0

 

728x90