GNU/Linux >> Belajar Linux >  >> Cent OS

RHV – Pemahaman tentang Agen Tamu Qemu

Libvirt menggunakan agen tamu Qemu yang berjalan di dalam VM. Postingan ini akan menguraikan bagaimana agen Qemu bertindak sebagai saluran komunikasi antara host KVM dan tamu.

Protokol Komunikasi

Protokol komunikasi yang digunakan untuk mengambil informasi VM OS atau mengeluarkan perintah ke Guest OS adalah Qemu Machine Protocol (QMP). QMP adalah protokol berbasis JSON.

Misalnya, libvirt menggunakan agen tamu untuk mengambil detail sistem file dari tamu. Untuk memeriksa apakah agen tamu berfungsi:

# virsh qemu-agent-command >vm_name> '{"execute": "guest-info"}'

Misalnya:

# virsh qemu-agent-command TestVM '{"execute": "guest-get-host-name"}' --pretty
Please enter your authentication name: vdsm@ovirt
Please enter your password:
{
"return": {
"host-name": "<VM FQDN>"
}
# virsh qemu-agent-command TestVM '{"execute": "guest-get-osinfo"}' --pretty
Please enter your authentication name: vdsm@ovirt
Please enter your password:
{
"return": {
"name": "Oracle Linux Server",
"kernel-release": "4.14.35-1902.300.11.el7uek.x86_64",
"version": "7.8",
"variant": "Server",
"pretty-name": "Oracle Linux Server 7.8",
"version-id": "7.8",
"variant-id": "server",
"kernel-version": "#2 SMP Tue Mar 17 17:11:47 PDT 2020",
"machine": "x86_64",
"id": "ol"
}
}

Metode komunikasi

Komunikasi antara guest agent dan host terjadi melalui saluran virtio-serial dan isa-serial org.qemu.guest_agen.0.

– Dari VM guest, berikut adalah proses qemu.guest_agent:

# ps auxwww |grep guest
root 811 0.0 0.0 44232 4572 ? Ss Feb22 0:51 /usr/bin/qemu-ga --method=virtio-serial --path=/dev/virtio -ports/org.qemu.guest_agent.0 --blacklist=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek ,guest-file-flush,guest-exec,guest-exec-status -F/etc/qemu-ga/fsfreeze-hook

– Dari host, file soket yang sesuai juga akan dibuat di /var/lib/libvirt/qemu/channels/.org.ovirt.hosted-engine-setup.0:

# file /var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.ovirt.hosted-engine-setup.0
/var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.ovirt.hosted-engine-setup.0: socket
# virsh -r dumpxml TestVM |grep guest_agent
<source mode='bind' path='/var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>

Jika komunikasinya baik-baik saja, soket UNIX memiliki koneksi 'ESTAB':

# ss |grep guest_agent
u_str ESTAB 0 0 /var/lib/libvirt/qemu/channels/56f42910-82d1-4e14-b4a4-646d220567c7.org.qemu.guest_agent.0 82797274 * 82971852
u_str ESTAB 0 0 /var/lib/libvirt/qemu/channels/9c798303-1c30-4965-b447-e1c12588db14.org.qemu.guest_agent.0 82944156 * 82971680

Interval Komunikasi

Secara default, VDSM mensurvei agen tamu QEMU (qemu-ga) setiap 5 menit untuk mengambil informasi. Jika agen tamu QEMU tidak berjalan dan merespons dalam 5 menit, libvirtd akan melaporkan kesalahan seperti “Agen tamu tidak merespons:agen tamu QEMU tidak terhubung”

Lainnya

Subnet QMP yang disebut 'hmp juga tersedia. "qemu-monitor-command" memiliki kemampuan untuk bertukar informasi dalam format 'hmp' dengan opsi -hmp. Untuk memeriksa status port virtio-serial yang terhubung ke ovirt-guest-agent:

# virsh qemu-monitor-command --hmp <Virtual Machine Name Here> 'info qtree'

Misalnya:

# virsh qemu-monitor-command --hmp TestVM 'info qtree'
Please enter your authentication name: vdsm@ovirt
Please enter your password:

dev: virtserialport, id "channel1"
chardev = "charchannel1"
nr = 2 (0x2)
name = "org.qemu.guest_agent.0"
port 2, guest on, host on, throttle off


Cent OS
  1. Windows – Folder Bersama Antara Qemu Windows Guest dan Linux Host?

  2. Memahami file zona DNS

  3. Memahami Penjara chroot

  1. Memahami SELinux Boolean

  2. Memahami Reservasi SCSI Linux

  3. Memahami Penggabungan Langsung di RedHat Virtualization (RHV)

  1. Memahami deamon DM-multipath (multipathd)

  2. Memahami Rantai Volume di RedHat Virtualization (RHV)

  3. RHV – Cara mematikan VM dari AdminPortal