GNU/Linux >> Belajar Linux >  >> Linux

Mengapa OpenStack melaporkan tipe Hypervisor sebagai QEMU ketika libvirt_type adalah KVM?

Saya menginstal OpenStack Mitaka dan penasaran untuk memeriksa berbagai fitur di dashboard horizon. Misalnya, Sistem> Hypervisor menu di dasbor menyediakan ringkasan berbagai host komputasi, jenis hypervisor, dan detail penggunaannya – di mana saya terkejut melihat jenis Hypervisor dilaporkan sebagai QEMU dan bukan KVM, meskipun node komputasi dikonfigurasikan untuk menggunakan KVM. Jenis hypervisor yang sama dilaporkan saat menggunakan nova hypervisor-show |grep hypervisor_type perintah juga.

# nova hypervisor-show 1 |grep hypervisor_type| hypervisor_type | QEMU

nova.conf file dikonfigurasi untuk menggunakan  libvirt_type=kvm

[libvirt]libvirt_type=kvmcompute_driver=libvirt.LibvirtDriver

Saya mencari masalah ini di Google dan memahami bahwa perintah klien OpenStack menggunakan tipe koneksi libvirt untuk menentukan tipe hypervisor daripada menggunakan atribut libvirt_type di nova.conf . Berikut laporan mendetail tentang bug ini.

Namun, saya ingin tahu apakah instance dimulai pada hypervisor KVM alih-alih QEMU. Untungnya, ada beberapa cara untuk melakukan ini.

Saya menjalankan semua perintah ini di node komputasi.

Periksa apakah modul KVM dimuat

[compute_node]# lsmod |grep kvmkvm_intel 172032 9kvm 536576 1 kvm_intelirqbypass 16384 7 kvm

Periksa apakah /dev/kvm ada

[compute_node]# ls -l /dev/kvmcrw-rw---- 1 root kvm 10, 232 Jun 14 11:01 /dev/kvm

Periksa apakah /dev/kvm dapat diakses oleh QEMU

[compute_node]# virt-host-validate |grep kvm QEMU:Memeriksa apakah perangkat /dev/kvm ada :PASS QEMU:Memeriksa apakah perangkat /dev/kvm dapat diakses

Output di atas berarti bahwa, QEMU mungkin menggunakan akselerator KVM.

Periksa apakah akselerator KVM digunakan oleh QEMU

[compute_node]# ps -aef|grep kvm

Contoh keluaran:

/usr/bin/qemu-system-x86_64  -name instance-00000021 -S  -machine pc-i440fx-wily,accel=kvm ,usb=off -cpu Nehalem

Pada output di atas, Anda dapat melihat proses qemu-system-x86_64 menggunakan akselerator kvm . Menurut halaman ini, jika node komputasi Anda menjalankan qemu proses dengan akselerator KVM, lalu hypervisornya adalah QEMU dengan KVM.

Periksa libvirt.xml dari sebuah instance

[compute_node]# cd /var/lib/nova/instances/[compute_node]# cd /var/lib/nova/instances/b127f332-c631-4bd0-bde0-e90626d8bc27[compute_node]# jenis grep libvirt .xml
 hvm 

Di libvirt.xml pencarian file untuk type=kvm dan driver=qemu , yang berarti hypervisornya adalah QEMU dengan KVM.

Periksa console.log instance

[compute_node]# cd /var/lib/nova/instances/[compute_node]# cd /var/lib/nova/instances/b127f332-c631-4bd0-bde0-e90626d8bc27
[compute_node]# grep KVM console.log[ 0,000000] Mem-boot kernel paravirtualized di KVM [ 0,000000] KVM setup async PF untuk cpu 0

Buang instance xml untuk memverifikasi jenis hypervisor

Luncurkan virsh seperti yang ditunjukkan di bawah ini:

# virsh

Buat daftar contoh:

virsh # list Id Nama Negara ----------------------------------------- ----------- 4 instance-00000021 menjalankan 5 instance-00000023 menjalankan 6 instance-00000024 berjalan

Salin id salah satu instance – ucapkan ‘instance-00000021’ dan buang xml-nya seperti yang ditunjukkan di bawah ini:

virsh # berhenti

Buang xml instance:

# virsh dumpxml instance-00000021 | grep kvm 
# virsh dumpxml instance-00000021 | grep driver 
# virsh dumpxml instance-00000021 | grep emulator /usr/bin/qemu-system-x86_64

Keluaran di atas mengonfirmasi bahwa QEMU menggunakan akselerator KVM.

Bonus…

Anda juga dapat masuk ke salah satu instance dan melakukan beberapa teknik deteksi virtualisasi untuk mengidentifikasi jenis hypervisor yang mendasarinya seperti yang ditunjukkan di sini .

Kesimpulan

Meskipun dasbor OpenStack dan perintah klien melaporkan tipe hypervisor sebagai QEMU, sebenarnya QEMU dengan akselerator KVM dan bukan hanya QEMU (yang hanya merupakan emulator perangkat lunak). Jadi kesimpulannya adalah, mungkin ada bug di OpenStack yang melaporkan tipe hypervisor sebagai QEMU ketika QEMU dengan KVM diaktifkan atau hanya cara OpenStack melaporkan. Beberapa forum berpendapat bahwa ini adalah bug dalam dokumentasi OpenStack yang gagal untuk menyebutkan dengan jelas jenis hypervisor yang didukung (walaupun saya melihat halaman yang mencantumkan jenis hypervisor yang didukung di OpenStack, tidak ada perbedaan antara QEMU dan KVM).


Linux
  1. Mengapa Windows10 VM lambat di OpenStack?

  2. Mengapa Sudo Mengabaikan Alias?

  3. Mengapa Pelengkapan Otomatis Tidak Berfungsi Saat Mengetik Nama Perintah Setelah `sumber`?

  1. Mengapa `keluar &` Tidak Berfungsi?

  2. Mengapa “/var/log/messages” Melaporkan Paket Mars

  3. Mengapa stdout perlu pembilasan eksplisit saat dialihkan ke file?

  1. Mengapa $LD_LIBRARY_PATH saya tidak disetel saat menggunakan layar dengan bash?

  2. Mengapa `find` di Linux melewatkan hasil yang diharapkan saat `-o` digunakan?

  3. Mengapa dentang menghasilkan teks yang tidak dapat dipahami saat dialihkan?