
QEMU memiliki beberapa cara untuk menghubungkan perangkat blok ke mesin virtual. Awalnya, ini dilaksanakan dengan cara berikut:
-hda /dev/sda1
Dengan demikian, disk virtual terhubung di masa lalu virtualisasi. Ini dapat digunakan hari ini jika kita hanya ingin menguji beberapa liveCD. Sayangnya, ia memiliki kekurangannya. :
- Saat menghubungkan disk virtual, dimungkinkan untuk hanya menggunakan antarmuka yang dianggap sebagai
/dev/hda
(hda, hdb, hdc, ..) pada mesin virtual; Untuk CD, opsi -cdrom
- Ketika file (atau perangkat) terhubung ke mesin virtual, QEMU hanya menggunakan pengaturan default.
berkendara
Untuk mengatur parameter lain (jenis bus, penggunaan cache, dll.), Opsi -drive
telah ditambahkan ke -drive
. Meskipun pada awalnya digunakan untuk mengatur parameter untuk backend dan frontend , saat ini hanya digunakan untuk mengatur parameter backend , yaitu, parameter yang mempengaruhi koneksi perangkat virtual di dalam mesin virtual
-drive file=/dev/sda1,if=ide,cache=writeback,aio=threads
perangkat
Mengatur semua parameter perangkat blok dengan satu opsi dari waktu ke waktu ternyata tidak masuk akal. Oleh karena itu, opsi dibagi menjadi dua. Parameter backend , yaitu yang digunakan untuk mengonfigurasi lingkungan virtualisasi. Dan frontend , yang memengaruhi bagaimana perangkat terhubung di mesin virtual. Untuk set parameter ini, opsi-alat baru diperkenalkan, yang berisi id id drive yang ditentukan oleh parameter -drive
.
Contoh konfigurasi berikut ini akan menghubungkan drive dengan pengenal ide0-hd0 , dan hasilnya sama dengan menghubungkan drive virtual, seperti yang ditunjukkan dalam pengantar.
-drive file=/dev/sda1,id=ide0-hd0,if=none,cache=writeback,aio=threads \ -device ide-drive,bus=ide.0,drive=ide0-hd0
Memblokir perangkat lokal di mesin virtual

Penggunaan perangkat blok fisik untuk mesin virtual tidak tersebar luas saat ini mengingat meluasnya penggunaan disk virtual. Secara teknis, kami dapat menjalankan mesin virtual dengan beberapa sistem berpemilik dari hard drive lama. Namun, dalam hal ini, lebih baik terlebih dahulu membuat disk image (image) menggunakan dd dan mulai sistem dari itu.
Seperti perangkat blok lokal, itu dapat dihubungkan ke mesin virtual ..
- Array RAID lokal - perangkat tipe md
- Master DRBD (RAID1 jaringan) - perangkat tipe drbd
- Partisi disk dibuat dalam grup LVM - perangkat tipe dm
- File biasa yang terhubung melalui loop adalah perangkat loop
Memblokir perangkat dari komputer lain yang diekspor melalui server NBD - perangkat tipe nbd
(Ini juga perlu disebutkan tentang tipe perangkat Ceph rbd dan tipe perangkat ZFS zvol - kira-kira Per)
NBD
Pertimbangkan konsep menghubungkan perangkat blok dari komputer jarak jauh melalui jaringan. Lihat manual terpisah untuk NBD .
QEMU memiliki API NBD terintegrasi, sehingga perangkat blok jarak jauh yang diperluas dengan server NBD dapat langsung terhubung ke mesin virtual melalui QEMU - lihat gambar di sebelah kiri.
Namun, NBD adalah protokol yang cukup sederhana yang tidak menggunakan otentikasi pada server jarak jauh dan tidak mengontrol status koneksi. Protokol NBD mengasumsikan bahwa klien dapat menyambung kembali jika koneksi ke server terganggu, tetapi sayangnya QEMU tidak.
Sebagian, situasi dapat diselesaikan dengan menghubungkan beberapa perangkat NBD dan membuat array RAID virtual di dalamnya. Pendekatan ini memiliki beberapa keunggulan dan satu kelemahan fatal. Jika salah satu perangkat mati, maka tidak ada hal buruk yang akan terjadi. Tetapi jika mereka terbang sekaligus = itu akan buruk. Operasi I / O dalam lingkungan virtual akan jauh lebih cepat, karena permintaan akan dieksekusi secara paralel dengan beberapa mesin fisik (server NBD) sekaligus. Tetapi di sisi lain, itu akan membutuhkan lebih banyak sumber daya dari prosesor virtual dan memori virtual.
Kelemahan utama membangun array RAID dari perangkat NBD di mesin virtual adalah perangkat QEMU, jika perangkat NBD crash, itu akan terhubung kembali hanya setelah restart penuh mesin, sementara reboot internal sistem operasi di dalam mesin virtual tidak akan cukup. Tetapi Anda dapat membuat mesin virtual tanpa disk yang akan secara mandiri mengakses server NBD dan menghubungkan perangkat NBD yang diperlukan. Selain itu, perangkat yang gagal harus ditambahkan kembali ke array dan disinkronisasi ulang, ini dapat dilakukan secara manual atau menggunakan skrip di dalam mesin virtual.
Lebih baik untuk mengakses server NBD menggunakan perangkat mesin virtual NBD. Terutama bagus, dalam hal kinerja I / O, sedang membangun array RAID dari perangkat NBD.
Solusi ini ternyata benar-benar yang paling produktif dari semua yang diuji. Dan mesin virtual mampu melanjutkan operasi tanpa gangguan bahkan jika terjadi terputusnya server NBD (atau kegagalan) dari waktu ke waktu.
Dengan demikian, dimungkinkan untuk mengatur lingkungan virtualisasi produktif yang relatif stabil dan pada saat yang sama pada peralatan yang tidak stabil.
Masalah utama dengan array RAID di atas perangkat NBD adalah Anda harus sangat berhati-hati saat menghubungkan perangkat yang merupakan bagian dari array RAID dari server NBD. Ini adalah proses yang agak rumit dengan probabilitas tinggi kesalahan fatal, yang dapat menyebabkan hilangnya data. Kesalahan ketik kecil sudah cukup. Lihat deskripsi kecelakaan mobil fatal 21 Juli 2012 di halaman Peanuts .
Kerugiannya adalah bahwa perangkat blok dengan mana satu mesin virtual sudah berjalan tidak dapat terhubung di tempat lain jika sistem file tidak memungkinkan - ini mirip dengan iSCSI ( i nternet S mall C omputer S usterm I nterface - versi jaringan SCSI) atau AoE ( A TA o ver E thernet teknologi).
Disk virtual

QEMU dapat terhubung tidak hanya memblokir perangkat ke mesin virtual, tetapi juga, menggunakan berbagai api, file biasa juga dapat terhubung, yang akan terlihat seperti perangkat blok di dalam mesin.
Qemu dapat bekerja dengan disk virtual berbagai format. Untuk disk virtual yang disajikan dalam bentuk file biasa, ada utilitas standar qemu-img yang dapat digunakan untuk mengonversi sehingga menentukan format yang digunakan dan parameternya.
Mengambil informasi disk virtual yang disimpan sebagai file biasa. Dengan cara yang sama, Anda bisa mendapatkan informasi tentang disk virtual yang disimpan di GlusterFS:
root@stroj~# qemu-img info /path_to_file/soubor.img
Namun, untuk mendapatkan informasi tentang disk virtual menggunakan GlusterFS API, Anda perlu menggunakan parameter yang sama yang digunakan untuk menghubungkan disk virtual ke mesin virtual. Jadi Anda dapat mengidentifikasi disk internal pada mesin tempat klien GlusterFS diinstal dan digunakan:
root@stroj~# qemu-img info gluster+tcp://192.168.0.2/volume_name/soubor.img
Disk virtual VDI hanya dapat diidentifikasi melalui API Sheepdog:
root@stroj~# qemu-img info sheepdog:192.168.0.2:8000:vdi_name
Untuk disk virtual yang diekspor dari server NBD, perlu untuk memastikan bahwa server yang benar dan port yang benar ditentukan, karena NBD tidak menggunakan mekanisme identifikasi atau otentikasi lain yang akan menghilangkan kebingungan dengan disk virtual lain (versi baru penggunaan server nbd-server hanya satu port dan mengidentifikasi perangkat dengan nama - kira-kira) :
root@stroj~# qemu-img info nbd:192.168.0.2:8000
192.168.0.2
Alamat IP host dari mana perangkat virtual terhubung. Jika ini adalah host yang sama dengan info qemu-img sedang berjalan, localhost dapat digunakan sebagai ganti alamat IP
8000
Nomor port tempat daemon atau server mendengarkan. Secara default, Sheepdog menggunakan port 7000, tetapi juga dapat dijalankan pada port yang berbeda untuk menghindari konflik dengan aplikasi lain. Server NBD dapat mendengarkan pada port yang berbeda jika lebih dari satu perangkat diekspor.
mentah
secara umum, itu hanya satu set data yang direkam dalam format yang sama seperti pada perangkat blok konvensional. File 5G akan menempati seluruh tempat ini, terlepas dari apakah itu berisi data yang berguna atau hanya ruang kosong. (yang tidak berlaku untuk file jarang - kira-kira)
qcow
Ini berbeda dari format mentah karena dapat bertambah, karena tumbuh secara bertahap - ini nyaman untuk sistem file yang tidak mendukung file jarang, misalnya FAT32. Format ini juga memungkinkan Anda untuk membuat salinan inkremental yang terpisah dari disk basis tunggal. Menggunakan "templat" seperti itu menghemat waktu dan ruang disk. Selain itu, mendukung enkripsi AES dan kompresi zlib. Kerugiannya adalah, tidak seperti disk mentah, file seperti itu tidak dapat dipasang pada mesin secara langsung di mana ia berada. Untungnya, ada utilitas qemu-nbd yang dapat mengekspor file ini sebagai perangkat blok jaringan dan kemudian menghubungkannya ke perangkat NBD.
qcow2
adalah versi terbaru dari format qcow. Perbedaan utamanya adalah mendukung snapshot. Kalau tidak, mereka tidak berbeda secara mendasar. Dimungkinkan juga untuk memenuhi qcow2, yang secara internal didefinisikan sebagai QCOW versi 3, setelah itu dimasukkan dalam format qcow2 sejak lama. Sebenarnya, ini adalah qcow2 yang dimodifikasi dengan parameter lazy_refcounts, yang digunakan untuk snapshot. Karena perbedaannya hanya satu bit, qemu-img dari versi 1.7 memiliki opsi "ubah" untuk mengubahnya. Versi sebelumnya dari qemu-img tidak. Jika Anda ingin mengubah versi format, perlu untuk mengubah disk virtual ke file baru, selama konversi, parameter compat diinstal dengan parameter compat, yang diperlukan untuk mengurangi "1.1" menjadi 0.10 ". Kehadiran opsi "perubahan" nyaman karena tidak perlu menimpa data karena perubahan kecil seperti itu.
qemu-img create -f qcow2 -o compat=1.1 test.qcow2 8G
http://blog.wikichoon.com/2014/12/virt-manager-10-creates-qcow2-images.html
qed
Ini adalah format COW tambahan dari disk virtual yang menciptakan beban paling sedikit pada host. Itu tidak mendukung kompresi apa pun dan menggunakan dua tabel paralel untuk mengatasi blok data (cluster). Sayangnya, tidak ada satu pun pengembang yang tertarik pada pengembangannya untuk waktu yang lama, sehingga penggunaannya membawa beberapa masalah yang akan disebutkan.
vdi
format disk virtual yang digunakan oleh sistem virtualisasi Oracle Virtualbox.
vmdk
format disk virtual yang digunakan oleh produk VMware. Ini juga merupakan format yang memungkinkan file tumbuh secara bertahap. Namun, ia memiliki keuntungan besar dibandingkan format qcow2 dan qed, yang juga dapat digunakan dengan solusi diskless atau dengan sistem file jaringan. Ini memungkinkan Anda untuk memiliki file disk virtual dibagi menjadi beberapa file kecil dengan ukuran 2 GB. Ini tetap dari waktu ketika sistem file tidak dapat membuat file lebih besar dari 2 GB. Keuntungannya adalah jika disk virtual seperti itu direplikasi melalui jaringan, lebih sedikit data yang ditransfer, dan sinkronisasi jauh lebih cepat (misalnya, dalam kasus GlusterFS). Dalam hal solusi diskless, ini juga digunakan untuk hanya menyimpan file kecil dengan perbedaan untuk setiap snapshot
vhdx
format disk virtual yang digunakan oleh sistem virtualisasi Microsoft Hyper-V
vpc
format disk virtual yang digunakan oleh sistem virtualisasi Microsoft VirtualPC.
| Meningkat menti berakar Yaitu
| Sandi novasi
| Com pres ini
| Preal lokasi
| Shabl oniz bangsa
| Prop musang
| Bagian gambar
| Di dalam snapshot kamu
| Verifikasi Setuju nosti
| Catatan
|
---|
mentah | tidak | tidak | tidak | iya | tidak | tidak | tidak | tidak | tidak | Dapat dipasang melalui loop
|
file | iya | tidak | tidak | opsi secara pribadi | tidak | tidak | tidak | tidak | tidak | Untuk Btrfs, Anda harus menonaktifkan copy-on-write
|
qcow | iya | iya | iya | tidak | iya | iya | tidak | tidak | tidak | |
qcow2 | iya | iya | iya | opsi secara pribadi | iya | iya | tidak | iya | iya | |
qed | iya | tidak | tidak | tidak | iya | tidak | tidak | tidak | tidak | |
vmdk | iya | tidak | tidak | opsi secara pribadi | iya | ya ? | iya | tidak | tidak | |
vdi | iya | tidak | tidak | opsi statis (statis) | tidak | tidak | tidak | tidak | iya | |
vhdx | iya | tidak | tidak | opsi diperbaiki (diperbaiki) | tidak | iya 1 | tidak | tidak | tidak | |
vpc | iya | tidak | tidak | opsi diperbaiki (diperbaiki) | tidak | tidak | tidak | tidak | tidak | |
- ↑ Mungkin untuk digunakan hanya pada gambar yang sudah diinstal sebelumnya (diperbaiki)
API digunakan
Selain format file, qemu-img juga berfungsi dengan "format" yang disediakan menggunakan API di mana perangkat blok ini dapat diakses dari jarak jauh.
nfs
file disk virtual yang terhubung ke QEMU melalui protokol NFS
iscsi
komunikasi dengan perangkat blok adalah melalui iSCSI. Satu perangkat tidak dapat digunakan secara bersamaan pada lebih dari satu klien.
nbd
Akses melalui NBD bisa sangat cepat. Ini karena protokolnya sangat sederhana. Ini adalah keuntungan, tetapi pada saat yang sama merupakan kerugian. Ini bisa nyaman ketika beberapa klien dapat terhubung ke server NBD yang sama jika mereka menggunakan koneksi lokal melalui server xnbd. Namun, karena nbd tidak memiliki mekanisme keamanan atau otentikasi, situasi dapat dengan mudah muncul ketika klien secara tidak sengaja terhubung ke perangkat yang salah, yang pada waktu tertentu mungkin sudah digunakan dan merusaknya.
ssh
koneksi ke server jarak jauh dilakukan melalui sshfs
kemilau
menggunakan API sistem file GlusterFS untuk mengakses file disk virtual. Jika file tersebut merupakan bagian dari volume yang direplikasi atau didistribusikan, itu akan mendistribusikan data yang disimpan antara node lain. Ini memungkinkannya, jika terjadi kegagalan, tersedia di node lain.
anjing gembala
juga merupakan sistem file terdistribusi yang didukung replikasi. Tidak seperti GlusterFS, disk virtual melalui API tersedia bukan sebagai file, tetapi sebagai perangkat blok. Ini bermanfaat dalam hal kinerja, tetapi tidak menguntungkan jika kita perlu melampaui lingkungan Sheepdog.
paralel
Drive virtual pada penyimpanan yang terhubung jaringan
Keuntungan dari perangkat blok yang terletak di luar sistem virtualisasi adalah bahwa mereka kemudian kebal terhadap kegagalan mesin virtual.
Dalam hal ini, ketersediaan tinggi dan volume yang cukup untuk penyimpanan jarak jauh juga disediakan.
Menggunakan NFS

Anjing gembala

GlusterFS

Mesin virtual tanpa blok
Tanpa perangkat blok, sistem operasi yang dapat boot melalui NFS atau dengan sistem file host yang dilemparkan menggunakan Plan9 dapat bekerja.