apa perbedaan antara / dev / vda dan / dev / sda

16

Saya sedang mempersiapkan sertifikasi dan memiliki CentOS7 (VirtualBox) yang diinstal secara lokal dan contoh lain dalam layanan berbasis cloud.

Pada sistem lokal saya memiliki /dev/sdadan berbasis cloud saya punya /dev/vda.

Sekarang saya bertanya-tanya apa arti perbedaan ini sebenarnya? Apakah ada standar (dokumentasi?) Untuk penamaan perangkat ini, dan apa arti berbagai nama?

Edit:

Saya pikir dokumen ini sangat berguna untuk memahami penamaan: https://www.kernel.org/doc/Documentation/admin-guide/devices.txt

8 block SCSI disk devices (0-15)
      0 = /dev/sda      First SCSI disk whole disk
     16 = /dev/sdb      Second SCSI disk whole disk
     32 = /dev/sdc      Third SCSI disk whole disk
        ...
    240 = /dev/sdp      Sixteenth SCSI disk whole disk

Tetapi saya tidak dapat menemukan beberapa informasi tentang / dev / vda.

Mathias Begert
sumber

Jawaban:

15

Virtualisasi Penuh vs. Paravirtualisasi

/ dev / sda adalah disk pertama yang terdeteksi dari tipe IDE / SATA / SCSI. Dalam hal ini, ditiru (full virtualized) oleh hypervisor.

/ dev / vda adalah driver disk paravirtualizated pertama yang terdeteksi. Ini lebih cepat daripada perangkat sdX yang ditiru jika keduanya dirujuk ke disk yang sama, karena ada lebih sedikit overhead dalam operasinya dibandingkan dengan drive yang ditiru.

Referensi:


Dari http://www.ibm.com/developerworks/library/l-virtio/ :

Virtualisasi penuh vs paravirtualization

Mari kita mulai dengan diskusi singkat tentang dua jenis skema virtualisasi: virtualisasi penuh dan paravirtualization. Dalam virtualisasi penuh, sistem operasi tamu berjalan di atas hypervisor yang berada di atas bare metal. Tamu tidak menyadari bahwa itu sedang divirtualisasi dan tidak memerlukan perubahan untuk bekerja dalam konfigurasi ini. Sebaliknya, dalam paravirtualization, sistem operasi tamu tidak hanya sadar bahwa ia berjalan pada hypervisor tetapi juga memasukkan kode untuk membuat transisi guest-to-hypervisor lebih efisien.

Dalam skema virtualisasi lengkap, hypervisor harus meniru perangkat keras perangkat, yang ditiru pada tingkat terendah percakapan (misalnya, ke driver jaringan). Meskipun emulasi bersih pada abstraksi ini, itu juga yang paling tidak efisien dan sangat rumit. Dalam skema paravirtualization, tamu dan hypervisor dapat bekerja sama untuk membuat persaingan ini efisien. Kelemahan dari pendekatan paravirtualization adalah bahwa sistem operasi sadar bahwa itu sedang divirtualisasi dan memerlukan modifikasi untuk bekerja.

Dari http://www.carfax.org.uk/docs/qemu-virtio :

Apa itu perangkat paravirtual?

Saat menjalankan mesin virtual, lingkungan virtual harus menghadirkan perangkat ke OS tamu - disk dan jaringan menjadi dua utama (plus video, USB, timer, dan lainnya). Secara efektif, ini adalah perangkat keras yang dilihat tamu VM.

Sekarang, jika tamu harus sepenuhnya tidak mengetahui fakta bahwa itu divirtualisasi, ini berarti bahwa tuan rumah harus meniru beberapa jenis perangkat keras nyata. Ini cukup lambat (terutama untuk perangkat jaringan), dan merupakan penyebab utama berkurangnya kinerja di mesin virtual.

Namun, jika Anda ingin membiarkan OS tamu tahu bahwa itu dalam lingkungan virtual, adalah mungkin untuk menghindari overhead meniru banyak perangkat keras nyata, dan menggunakan jalur yang jauh lebih langsung untuk menangani perangkat di dalam VM. Pendekatan ini disebut paravirtualisation. Dalam hal ini, OS tamu memerlukan driver tertentu yang diinstal yang berbicara dengan perangkat paravirtual. Di Linux, antarmuka ini telah distandarisasi, dan disebut sebagai antarmuka "virtio".

Thiago Rider Augusto
sumber
3
Secara khusus, /dev/vd*perangkat menggunakan virtiodriver disk paravirtual.
Michael Hampton
@MichaelHampton Saya telah meningkatkan jawaban saya dengan informasi ini! Terima kasih!
Thiago Rider Augusto
4
Juga, driver virtio-scsi lebih cepat daripada driver virtio-blk, yang membahas drive oleh sd *. Jadi vd * tidak selalu lebih cepat Semua itu menandakan perangkat blok ditangani secara langsung oleh driver paravirtualized, daripada perangkat blok yang ditangani oleh emulasi perangkat keras atau secara tidak langsung oleh pengontrol paravirtualized.
Spooler