Manakah format gambar yang lebih baik, mentah atau qcow2, untuk digunakan sebagai basis gambar untuk VM lain?

25

Saya menggunakan basis gambar dan berdasarkan itu menciptakan banyak VM. Dan sekarang saya ingin tahu mana yang lebih baik, qcow2 atau mentah untuk digunakan untuk basisimage. Selain itu, dapatkah Anda memberi tahu saya jika ada keuntungan menggunakan hal dasar gambar ini, daripada mengkloning seluruh disk. Kecepatan dapat menjadi salah satu faktor tetapi dalam hal efisiensi apakah ada masalah dalam menggunakan basis gambar dan kemudian membuat VM menggunakan basis gambar itu?

Edit 1:

Saya melakukan beberapa percobaan dan berhasil masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini

Yang pertama adalah ketika basisimage dan overlay adalah qcow2. Kedua Ketika baseimage mentah tetapi overlaynya adalah qcow2 dan dalam kasus ketiga saya memberikan gambar disk mentah individual ke setiap VM. Yang mengejutkan, case terakhir jauh lebih efisien dibandingkan dengan dua lainnya.

Pengaturan eksperimen: 
OS di baseimage: Ubuntu Server 14.04 64 bit.
Host OS: Ubuntu 12.04 64bit
RAM: 8GB
Prosesor: Intel® Core ™ i5-4440 CPU @ 3.10GHz × 4 
Disk: 500 GB 

Pada sumbu x: Jumlah VM yang dibooting secara bersamaan. Mulai dari 1 dan bertambah hingga 15.

Pada sumbu y: Total Waktu untuk mem-boot sejumlah mesin "x".

Dari grafik, tampaknya memberikan gambar disk penuh ke VM jauh lebih efisien daripada 2 metode lainnya.

Edit 2: masukkan deskripsi gambar di sini

Ini untuk kasus ketika kami memberikan gambar mentah individu untuk masing-masing VM. Setelah melakukan cache flushing, ini adalah grafiknya. Ini hampir mirip dengan basisimage mentah + overlay qcow.

Terima kasih.

AB
sumber
1
Saya akan menggunakan gambar dasar mentah dan overlay QED alih-alih qcow2. QED lebih cepat dari qcow2 dan kecil kemungkinannya rusak oleh desain.
Matt
@Matt tolong komentari pertanyaan yang diedit.
AB
Perbedaan kinerja itu menarik. Bisakah Anda mencobanya dengan qed? mungkin menjadi masalah pertikaian / penguncian dalam implementasi qcow2. Saya percaya ini memiliki beberapa masalah yang mengapa mereka menemukan qed.
Matt
1
@Matt Saya memeriksa dengan overlay raw-baseimage-qed dan overlay raw baseimage-qcow2. Tapi qed jauh lebih lambat daripada qcow2 dalam pengaturan ini.
AB

Jawaban:

18

Untuk kasus penggunaan khusus Anda (gambar dasar + overlay qcow2), format RAW harus dipilih:

  1. Ini lebih cepat: karena tidak ada metadata yang terkait, itu secepat mungkin. Di sisi lain, Qcow2 memiliki dua lapisan tipuan yang harus dilintasi sebelum mengenai data aktual
  2. Karena lapisan overlay harus berupa file Qcow2, Anda tidak kehilangan kemampuan snapshot yang selalu berguna (gambar RAW tidak mendukung snapshot sendiri)

Pilihan antara gambar dasar + overlay qcow2 vs beberapa salinan penuh tergantung pada prioritas Anda:

  1. Untuk kinerja absolut, gunakan gambar RAW yang tidak benar. Ini memiliki kelemahan dari tidak mendukung snapshot, dengan di sebagian besar lingkungan adalah harga yang terlalu tinggi untuk dibayar
  2. Untuk fleksibilitas dan efisiensi ruang, gunakan gambar dasar RAW + overlay Qcow2.

Lagi pula, saya menemukan file Qcow2 agak rapuh.

Untuk hypervisor KVM produksi saya, saya pada dasarnya menggunakan dua pengaturan berbeda:

  1. di mana kinerjanya # 1 Saya menggunakan volume LVM yang langsung terhubung ke mesin virtual, dan saya menggunakan kemampuan snapshot LVM untuk mengambil cadangan yang konsisten
  2. di mana saya bisa mengorbankan beberapa kinerja untuk meningkatkan fleksibilitas, saya menggunakan satu, LVM Thin Provisioned Volume + XFS + RAW gambar tunggal

Kemungkinan lain adalah menggunakan volume LVM normal + gambar XFS + RAW. Satu-satunya downside adalah bahwa snapshot LVM normal (non-tipis) sangat lambat dan snapshotting volume LVM normal sibuk akan membunuh kinerja (untuk seumur hidup snapshot). Bagaimanapun, jika Anda berencana untuk hanya menggunakan snapshot secara sporadis, ini bisa menjadi taruhan yang lebih sederhana dan lebih aman.

Beberapa referensi:
KVM I / O lambatnya pada RHEL 6
Performa penyimpanan KVM dan prelokasi Qcow2 pada RHEL 6.1 dan Fedora 16
kinerja penyimpanan KVM dan pengaturan cache pada Red Hat Enterprise Linux 6.2
Volume tipis LVM menjelaskan

shodanshok
sumber
Sebagaimana dinyatakan di atas: gambar RAW individual akan lebih cepat karena tidak ada lapisan tipuan. Ingatlah bahwa Anda melepaskan foto (pada level gambar) dan efisiensi ruang. Selain itu, saya mendapat kesan bahwa hasil ketiga Anda condong oleh cache host. Yang pasti, ulangi semua tes Anda dengan mengeluarkan "sinkronisasi; gema 3> / proc / sys / vm / drop_caches" di antara setiap pengujian.
shodanshok
Sebenarnya saya juga berpikiran sama. Tapi kemudian saya berpikir bahwa, dalam kasus penggunaan sebenarnya juga akan mengikuti aliran yang sama.
AB
Tidak juga: Di lingkungan pengujian ini, Anda cukup mem-boot mesin virtual Anda, tanpa menggunakannya. Pada kasus nyata, setelah mem-boot mesin virtual akan digunakan, mencemari cache. Secara umum, yang terbaik adalah benchmark dengan use case yang masuk akal.
shodanshok
Apakah Anda tahu mengapa caching tidak memainkan peran yang banyak dalam grafik 1 dan grafik 2 yaitu Qcow2 gambar-dasar + overlay Qcow2 dan gambar-dasar baku + overlay Qcow2.
AB
6

Harap diperhatikan .... jika Anda menggunakan linux Anda dapat menggunakan rawdan mendapatkan manfaat yang sama qcow2sejauh ukurannya.

... Jika sistem file Anda mendukung lubang (misalnya dalam ext2 atau ext3 di Linux atau NTFS di Windows), maka hanya sektor tertulis yang akan menghemat ruang.

https://docs.fedoraproject.org/en-US/Fedora/18/html/Virtualization_Administration_Guide/sect-Virtualization-Tips_and_tricks-Using_qemu_img.html

format gambar cakram mentah (standar). Ini bisa menjadi format berbasis file tercepat. Jika sistem file Anda mendukung lubang (misalnya dalam ext2 atau ext3 di Linux atau NTFS pada Windows), maka hanya sektor tertulis yang akan menghemat ruang. Gunakan info qemu-img untuk mendapatkan ukuran sebenarnya yang digunakan oleh gambar atau ls-l di Unix / Linux.

d hee
sumber
Poin bagus! Tetapi tampaknya dalam cadangan / penyalinan / kompresi seluruh ukuran file gambar mentah digunakan. File mentah 20GB yang hanya mengalokasikan 4MB pada disk di-zip menjadi 20MB
MrCalvin
Ini benar-benar baru bagi saya. Saya memiliki VM di Proxmox VE dengan disk virtual 30 GB ... dan saya dapat melihat bahwa disk memiliki ukuran dalam sistem file host. Tetapi sistem file host memiliki seluruh penggunaan << 10GB. Nah, itu alasan apa yang saya cari.
cljk