Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 기기

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

이전 기사에서 우리는 KVM 하이퍼바이저를 설치하고 가상 머신을 생성하는 방법에 대해 논의했습니다. 단일 기사에서는 KVM 가상 머신 관리를 자세히 다루지 못했습니다. 오늘은 virsh 명령줄에서 가상 머신을 관리하는 방법을 보여드리겠습니다. :VM 설정을 변경하는 방법, 가상 장치를 추가하는 방법, Linux에서 KVM 가상 머신을 관리하는 데 사용할 명령.

Virsh(가상 셸) 명령을 사용하여 KVM 가상 머신 관리

등록된 KVM 가상 머신을 보는 방법, 시작, 중지 또는 삭제하는 방법을 살펴보겠습니다. Virsh (libvirt API 기반) Linux 콘솔에서 KVM 가상 머신을 관리하는 데 사용할 수 있습니다.

# virsh list – 실행 중인 VM 목록을 보여줍니다.

# virsh list --all – 등록된 모든 가상 머신의 목록을 보여줍니다(종료된 머신 포함)

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

스크린샷에서 볼 수 있듯이 첫 번째 경우에는 종료 VM이 표시되지 않았습니다.

# virsh shutdown <vm name> — 가상 머신 종료

# virsh start <vm name> — 가상 머신 시작

# virsh suspend <vm name> — VM 일시 중단

# virsh resume <vm name> — 일시 중단된 가상 머신 시작

# virsh reboot <vm name> — VM 다시 시작

# virsh destroy <vm name> — 즉각적인 비정상 종료를 시작하고 VM을 중지합니다(게스트 가상 머신이 응답하지 않을 때 이 명령 사용)

# virsh undefine <vm name> — VM 등록 취소 및 스토리지 볼륨 삭제

# virsh vcpuinfo <vm name> — VM의 vCPU에 대한 정보를 보여줍니다.

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

다음은 가상 머신에 대한 다른 정보를 가져오는 몇 가지 다른 명령입니다.

# virsh domid <vm name> — 가상 머신 ID 얻기

# virsh domuuid <vm name> — 가상 머신의 UUID 표시

# virsh dominfo <vm name> — 가상 머신에 대한 정보를 표시합니다.

# virsh domstate <vm name> — VM 상태 보기

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

# virsh dumpxml <vm name> — 가상 머신의 구성 파일을 XML 형식으로 나열

KVM 가상 머신에 메모리와 vCPU를 추가하는 방법

KVM 콘솔에서 두 가지 방법으로 VM에 할당된 CPU 또는 메모리 리소스를 추가하거나 줄일 수 있습니다.

  • virsh 사용
  • VM 구성을 통해 XML 파일

가상 머신이 실행 중이면 종료:

# virsh shutdown test-centos

Domain test-centos is being shutdown

그런 다음 virsh를 사용하여 가상 CPU(vCPU) 수를 6으로 변경합니다.

# virsh setvcpus <vm name> <vcpu_count> --config

예:

# virsh setvcpus test-centos 6 --config

명령을 실행한 후 오류가 나타났습니다.

error: invalid argument: requested vcpus is greater than max allowable vcpus for the persistent domain: 6 > 4

최대 코어 수보다 많은 코어 수를 설정할 수 없습니다. VM vCPU의 최대 허용 수를 늘리려면 다음 명령을 실행하십시오.

# virsh setvcpus test-centos 6 --config --maximum

그런 다음 이전 명령을 실행하고 가상 머신을 시작합니다.

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

VM 설정에서 vCPU의 수를 확인합시다:

# virsh dumpxml test-centos

<domain type='kvm'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>6</vcpu>

같은 방법으로 가상 머신에 RAM을 추가할 수 있습니다.

# virsh setmem <vm_name> <memsize> --config

예:

# virsh setmem test-centos 4G --config

같은 이유로 오류가 발생했습니다:

error: invalid argument: cannot set memory higher than max memory.

최대 메모리 양을 늘리자:

# virsh setmaxmem test-centos 6G --config

그런 다음 VM에 메모리를 추가할 수 있습니다.

변경하기 전에 가상 머신을 종료했다가 다시 시작하십시오.

또한 XML 구성 파일에서 KVM VM의 리소스 양을 변경할 수 있습니다. 온라인으로 편집하거나 VM XML 파일을 백업하고 수정하여 가상 머신에 적용할 수 있습니다.

VM XML 파일을 온라인으로 편집해 보겠습니다.

# virsh edit <vm_name>

vi에서 편집기가 나타나면 삽입을 눌러 원하는 대로 변경합니다. 버튼.

다음 블록을 변경하십시오.

<domain type='kvm'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>6291456</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>6</vcpu>
<os>

예를 들어 2개의 프로세서 코어와 1GB의 메모리를 VM에 할당해 보겠습니다.

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

메모리 크기는 킬로바이트로 표시됩니다.

변경 사항을 파일에 저장하고 VM을 재부팅합니다.

# virsh reboot <vm_name>

XML 파일을 백업하는 경우에도 동일한 작업을 수행할 수 있습니다.

# virsh dumpxml <vm_name> > /root/test.xml
# vi /root/test.xml

원하는 설정을 변경하고 파일을 저장한 다음 가상 머신에 적용합니다.

# virsh shutdown test-centos

Domain test-centos is being shutdown

# virsh define /root/test.xml

Domain test-centos defined from /root/test.xml

# virsh start test-centos

Domain test-centos started
VM 구성 파일을 온라인으로 변경할 때 재부팅 후 할당된 리소스가 재설정되는 경우가 있습니다. 이 경우 가상 머신을 중지한 다음 시작하면 됩니다.

기존 KVM VM에 디스크 추가

기사 중 하나에서 KVM 가상 머신의 디스크 크기를 확장하거나 줄이는 방법을 설명했습니다. 그러나 추가 디스크를 추가하는 방법을 알려주지 않았습니다.

먼저 가상 머신에 대한 새 디스크 파일을 만듭니다.

# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img

qcow2 대신 원하는 디스크 형식을 사용할 수 있습니다. 파일 경로도 지정하십시오. 내 디스크 저장소는 /vz/disk/에 있습니다.

그런 다음 VM에 가상 디스크 장치를 추가할 수 있습니다.

# virsh attach-disk <vm_name> /vz/disk/test.img vdb --type disk --persistent

VM을 종료하고 재부팅한 다음 얻은 결과를 확인합니다.

# virsh shutdown test-centos

Domain test-centos is being shutdown

# virsh start test-centos

Domain test-centos started

# virsh dumpxml test-centos

<domain type='kvm' id='14'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>6</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
<bootmenu enable='yes'/>
</os>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/vz/disk/test.img'/>
<backingStore/>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</disk>

보시다시피 디스크가 추가되었습니다.

KVM 가상 머신에 두 번째 NIC를 추가하는 방법

VM에 다른 네트워크 인터페이스를 추가해 보겠습니다. 먼저 Linux 호스트의 네트워크 인터페이스를 확인하십시오.

# brctl show

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

내 KVM 호스트에 하나의 네트워크 인터페이스가 있는 하나의 가상 머신이 있습니다. br0에 다른 가상 네트워크 인터페이스를 추가하고 싶습니다. 다음 명령을 실행하십시오.

# virsh shutdown test-centos
# virsh attach-interface test-centos --type bridge --source br0 --persistent
# virsh start test-centos

VM에 다른 네트워크 인터페이스가 있는지 확인하십시오.

Virsh를 사용하여 CLI에서 KVM 가상 머신 관리

<interface type='bridge'>
<mac address='52:54:00:7e:c1:9f'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:2f:23:79'/>
<source bridge='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</interface>

또한 XML 파일을 통해 직접 가상 머신의 네트워크 설정을 변경할 수 있습니다.

# virsh edit test-centos

첫 번째 네트워크 인터페이스 뒤에 다음 줄을 추가합니다.

<interface type='bridge'>
<source bridge='br0'/>
</interface>

파일을 저장하고 VM을 시작합니다. KVM은 나머지 구성(MAC 주소 등) 자체를 추가합니다.

이 기사에서는 Linux 서버 콘솔에서 KVM 가상 머신을 관리하는 데 필요한 주요 사항을 다루었습니다. 다음 기사에서는 virt-manager를 통해 가상 머신을 관리하는 방법을 보여줍니다. GUI.