GNU/Linux >> Belajar Linux >  >> Linux

Tentukan tamu mana yang berjalan di XEN:tamu HVM atau PV

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.


Linux
  1. Cara Memeriksa Versi Postgres Yang Sedang Berjalan/Diinstal

  2. Shell mana yang saya jalankan?

  3. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  1. Linux – Bagaimana Cara Mengidentifikasi Distro Linux Yang Sedang Berjalan??

  2. Menjalankan Skrip Setiap Kali Kernel Baru Diinstal?

  3. Bagaimana Cara Mendapatkan Tty Di Bash Yang Sedang Berjalan?

  1. Bagaimana saya tahu jika kernel linux saya berjalan di 32bit atau 64bit?

  2. Bagaimana cara mengidentifikasi distro Linux mana yang sedang berjalan?

  3. OS mana yang berjalan di wadah Docker saya?