내 홈 서버에서 KVM 기반 가상 머신을 실험하고 있습니다. 호스트 시스템은 Ubuntu Server 16.04.1 LTS를 실행하고 있으며 게스트도 마찬가지입니다.
vmbuilder를 사용하여 게스트를 만들 수 있습니다. qcow2 이미지를 출력한 다음 LVM 논리 볼륨의 원시 이미지로 변환하여 성능을 향상시킵니다. 이미지의 전체 크기는 약 900MB로 제 요구에 잘 맞습니다.
그러나 VM을 수동으로 생성하고 Ubuntu 서버 ISO에서 Ubuntu를 설치하면 논리 볼륨을 파일 원시 이미지 대신 블록 원시 장치로 VM 게스트에 노출할 수 있습니다. 테스트 결과, 테스트 방법에 따라 일반적으로 디스크 성능이 상당히 향상되는 것으로 나타났습니다. 하지만 이 VM은 그다지 린(1.8GB 정도 설치)되지 않고 부팅 시간도 훨씬 느립니다(vmbuilder로 생성한 블록 장치 VM은 부팅하는 데 약 5초가 걸렸고, 제가 수동으로 설치한 파일 기반 VM은 약 15초가 걸렸습니다). .
따라서 내 목표는 vmbuilder 설치, 더 적은 수의 패키지, 빠른 부팅 등을 갖춘 가상 머신을 갖추되 원시 파일 기반 이미지 대신 저장을 위해 원시 블록 장치를 사용하도록 하는 것입니다.
질문:
vmbuilder로 생성된 가상 머신은 수동으로 설치한 가상 머신과 어떻게 다릅니까?
과거에 Ubuntu에 Ubuntu JeOS가 있다는 것을 보았고 서버 ISO에서 설치하는 방법에 대한 참조도 보았지만 방법을 모르겠습니다. 이것이 여전히 옵션입니까? 그렇다면 vmbuilder에 의해 설치되었습니까?
vmbuilder와 유사한 시스템을 수동으로 생성하는 방법 또는 qcow2 이미지를 원시 파일 이미지 대신 원시 블록으로 변환하는 방법.
답변1
아직 답변을 받지 못했지만 부분적인 해결책을 찾을 수 있었습니다. 내가 찾은 것은 이것이다.기사, Qcow2 이미지를 원시 파일 이미지가 아닌 원시 블록 장치로 변환하는 방법을 설명합니다.
기본 단계:
- VM을 종료해야 합니다.
다음 명령을 사용하여 qcow2를 원시 이미지 파일로 변환합니다.
qemu-img 변환 [qcow2] [rawimg]
원본 이미지의 크기를 바이트 단위로 가져옵니다.
ls -l [원본]
123456789
LV를 만들고 원본 이미지의 크기와 정확히 일치합니다.
lvcreate -L 123456789b -n [lvname] [vgroup]
LV에 원본 이미지 쓰기:
dd if=[rawimg] of=[경로/대상/lv]
그에 따라 VM의 XML 정의를 변경합니다. 예를 들면 다음과 같습니다.
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/srv/virtual/vm_web/tmp5GWO4q.qcow2'/>
<target dev='hda' bus='virtio'/>
</disk>
도착하다:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source dev='/dev/vgroup/lv_disk'/>
<target dev='vda' bus='virtio'/>
</disk>