Catatan singkat, sebenarnya ada 3 mode, bukan dua untuk driver yang digunakan:
- HVM:kernel dan driver yang tidak dimodifikasi menggunakan perangkat lunak yang ditiru
- PV-HVM:kernel yang tidak dimodifikasi dengan disk paravirtualized (khusus Xen) dan driver jaringan
- PV:kernel dan driver yang dimodifikasi
Untuk tamu Xen/DomU Anda dapat melakukan uname
yang sangat mendasar dan lsmod
dengan grep untuk mencantumkan modul yang digunakan:
uname -a
lsmod | grep xen
Jika uname -a
mencantumkan kernel dengan string "xen" di dalamnya, lalu Anda memiliki kernel yang dimodifikasi dan kemungkinan besar adalah tamu PV, dan Anda akan melihat output dari lsmod
perintah untuk mengkonfirmasinya. Jika Anda memiliki keluaran dari grep di lsmod
tetapi tidak ada tanda kernel yang dimodifikasi maka Anda adalah PV-HVM. Tanpa tanda apa pun, itu adalah HVM langsung.
Catatan:Secara umum Anda dapat melakukan lebih banyak dengan VM yang memiliki alat PV terinstal, sehingga bisa menjadi penunjuk yang cukup jelas, namun Anda dapat memalsukan keberadaan alat PV untuk memungkinkan penangguhan/melanjutkan dll. sehingga Anda tidak dapat mengandalkannya secara umum .
Ada alternatif yang lebih baik untuk menganalisis uname -a
keluaran dari dalam domain tamu. Sebaiknya Anda memeriksa profil VM di hypervisor itu sendiri.
XL
Dengan saat ini XenLight toolstack untuk instalasi Xen mandiri, ini dapat dicapai dengan menjalankan xl list --long
perintah:
# xl list
Name ID Mem VCPUs State Time(s)
My-Virtual-Machine 42 1024 1 -b---- 9001.0
# xl list -l 42
or
# xl list --long My-Virtual-Machine
[
{
"domid": 6,
"config": {
"c_info": {
"name": "My-Virtual-Machine",
"uuid": "12345678-abcd-1234-abcd-12345678abcd",
"type": "pv",
...
},
...
}
}
]
Perhatikan type
item di c_info
bagian — jika sama dengan "pv"
, ini artinya paravirtual.
XM
Dengan yang lebih tua instalasi Xen mandiri menggunakan xm
tradisional tumpukan alat manajemen, semuanya serupa:
# xm list --long My-Virtual-Machine
(domain
(domid 42)
(name My-Virtual-Machine)
(image
(linux
(kernel ...)
...
)
)
...
)
Perhatikan (linux)
di (image)
bagian — sesuai dengan builder
direktif konfigurasi, di mana "linux" berarti "paravirtual" (bukan kernel sebenarnya), sedangkan "hvm" adalah singkatan dari "virtualisasi penuh".
XE
Dengan XenServer atau XCP alat Anda bisa menggunakan xe vm-list params=all
perintah atau sesuatu yang serupa.
virs
Mungkin ada (atau pernah ada) cara untuk mendapatkan informasi ini dari libvirt toolstack, tapi tidak saya ketahui.
Perhatikan bahwa, dimulai dengan Xen 4.5, mode paravirtual pada x86-64 memiliki dua varian:
- paravirtualisasi klasik (PV) yang mengandalkan sistem tamu untuk ditulis ulang dari menggunakan ring 0 menuju ring 1; karena AMD telah membuang ring 1 dan ring 2 di x86-64, Xen harus kembali ke manajemen berbasis perangkat lunak, yang bahkan lebih lambat dari HVM;
- paravirtualisasi berbantuan perangkat keras (PVH), — jangan bingung dengan sepenuhnya tervirtualisasi dengan driver paravirtual (PV-on-HVM), — yang bergantung pada bantuan perangkat keras untuk menangani instruksi istimewa dan tabel halaman memori, tetapi menggunakan teknik PV tradisional untuk yang lainnya, sehingga tidak ada perangkat keras yang ditiru dan kinerja yang hampir asli dicapai seperti dalam keadaan baik lama x86-32 kali.
Untuk memeriksa apakah host berjalan dengan PVH diaktifkan, seseorang dapat menggunakan xl info
(meskipun metode ini tidak lebih baik daripada memeriksa grub.cfg ):
# xl info | grep xen_commandline
xen_commandline : pvh=1 loglvl=all guest_loglvl=all console=com1,vga
^^^^^
Untuk memeriksa apakah tamu tertentu berjalan dalam mode PVH (pvh=1
dalam file konfigurasi), sekali lagi, lihat xl list -l
:
"c_info":{
"name": "My-Virtual-Machine",
"type": "pv",
"pvh": "True",
...
},
Namun, dari perspektif administrasi, PVH tidak boleh berbeda dengan PV.