Saya tidak yakin bagaimana mengungkapkan pertanyaan ini (karena itu judulnya jelek), jadi izinkan saya memberikan contoh tentang apa yang saya coba lakukan.
Pada host Xen saya (lama), saya dapat menghadirkan sistem file LVM langsung ke setiap tamu. Sistem file ini sebenarnya dibuat dan diformat pada host, dan diteruskan langsung. Misalnya, untuk salah satu host saya menggunakan partisi tmp dan swap terpisah, saya mendefinisikan penyimpanan seperti ini:
disk = [
'phy: / dev / vg1 / guest1-swap, sda1, w',
'phy: / dev / vg1 / guest1-disk, sda2, w',
'phy: / dev / vg1 / guest1-tmp, sda3 , w ',
]
Jadi, guest1-swap diformat sebagai partisi swap, guest1-disk dan guest1-tmp diformat dengan ext4, dan dari perspektif tamu, mereka hanya melihat mereka sebagai tiga partisi yang diformat di bawah / dev / sda.
(Ini mungkin terdengar seperti banyak pekerjaan, tetapi ada skrip provisi, seperti xen-tools yang luar biasa , yang mengotomatiskan hampir semuanya).
Ini memberikan beberapa kemampuan yang sangat berguna, dua di antaranya saya sangat tertarik mencari tahu untuk KVM:
Pasang sistem file tamu dari OS host . Saya dapat melakukan mount read-only dari setiap sistem file tamu kapan saja, bahkan ketika tamu sedang berjalan. Ini memiliki keuntungan tambahan yaitu memungkinkan saya untuk membuat snapshot LVM dari volume apa pun yang ada saat tamu sedang berjalan. Dengan cara ini, saya dapat mem-backup semua tamu saya secara terpusat, saat berjalan, dari tuan rumah.
Pengubahan ukuran volume online . Karena volume berisi sistem file Linux standar, saya dapat menggunakan kombinasi lvextend dan resize2fs untuk menumbuhkan sistem file tamu saya, lagi ketika sedang online.
Saat ini saya sedang menyiapkan host KVM yang akan menggantikan host Xen. Mirip dengan pengaturan Xen saya meningkatkan LVM untuk menyediakan akses sistem file langsung, tetapi KVM / qemu berperilaku berbeda karena selalu membuat file gambar untuk para tamu, bahkan pada volume LVM. Dari perspektif tamu, ia melihat ini sebagai disk yang tidak dipartisi, dan tergantung pada tamu untuk menerapkan label partisi, lalu membuat partisi dan sistem file.
Dari sudut pandang tamu itu baik-baik saja, tetapi dari perspektif server / manajemen tampaknya jauh lebih fleksibel daripada pengaturan Xen yang saya jelaskan. Saya masih baru di KVM, jadi saya mungkin (semoga) melewatkan sesuatu.
Saya mengalami masalah ini ketika mencoba untuk mengimplementasikan kembali solusi cadangan saya sebelumnya pada host KVM dan perintah mount terhenti ketika saya mencoba untuk me-mount salah satu sistem file tamu. Jadi, mengatasi itu adalah kekhawatiran saya saat ini, tetapi itu juga membuat saya khawatir tentang ukurannya, karena saya yakin masalah itu akan muncul di beberapa titik juga.
Jadi inilah pertanyaanku:
Apakah ada cara agar kvm / qemu menggunakan sistem file volume LVM secara langsung seperti yang saya jelaskan untuk pengaturan Xen saya? Saya menggunakan libvirt untuk manajemen jika itu membuat perbedaan.
Jika tidak, apa yang bisa saya lakukan untuk mendapatkan fungsionalitas pemasangan / pencadangan serupa di bawah KVM? Saya telah melihat diskusi tentang menggunakan libguestfs w / FUSE untuk melakukan ini, tetapi apakah itu benar-benar pilihan terbaik? Saya lebih suka tetap menggunakan mount sistem file asli jika memungkinkan.
Juga jika tidak, apakah mungkin untuk melakukan resize sistem file online di bawah KVM? Saya telah menemukan beberapa diskusi / howtos tentang ini, tetapi jawabannya tampaknya di semua tempat tanpa solusi yang jelas, dan jelas tidak langsung.
Maaf untuk posting lama, hanya ingin memastikan semuanya jelas. Harap beri tahu saya jika saya dapat memberikan info lain yang akan membantu. Menantikan diskusi. :-)
sumber
Jawaban:
virt-*
alat) dapat memberikan akses ke sistem file tamu dengan cara yang lebih bersih daripada apa pun yang Anda remount ke host secara langsung, meskipun keduanya mungkin.resize2fs
akan bekerja di VM seperti halnya pada perangkat keras fisik, satu-satunya masalah adalah tamu mengubah ukuran perubahan. Cobavirt-resize
sebagai alat standar, tetapilvresize
danqemu-img
juga dapat dengan mudah digunakan (meskipun dalam mode offline, membutuhkan tamu memulai kembali biasanya).Saya pikir
lvresize
denganresize2fs
benar-benar akan bekerja tanpa tamu me-restart, tetapi saya belum mencobanyasumber
virsh
tetapi cukup mudahvirt-manager
. Sistem yang lebih serius seperti RHEV / oVirt benar-benar menggunakan LVM setiap saat untuk penyimpanan berbasis FC / iSCSIattach-disk
untuk menghubungkannya secara dinamis, tetapi ini tidak permanen dan saya tidak bisa membuatnya bekerja untuk /. Bisakah Anda menunjukkan dokumentasi apa pun untuk ini, atau memberikan petunjuk khusus? Terima kasih!Saya menggunakan qemu-kvm + libvirt dengan konfigurasi persis yang Anda tanyakan, untuk alasan yang Anda daftarkan, tetapi juga karena saya mendapatkan kinerja yang jauh lebih baik tanpa ruang lingkup lapisan sistem berkas host KVM. Jika Anda menambahkan VG sebagai 'kumpulan penyimpanan' dalam virt-manager, Anda dapat membuat VM seperti itu menggunakan wizard yang mudah digunakan. (Tapi saya hanya menulis XML dengan tangan hari ini menggunakan VM yang ada sebagai templat).
Berikut ini adalah keluaran bersih dari 'virsh dumpxml' untuk salah satu tamu saya:
Pikiran lain (tidak relevan dengan pertanyaan Anda, tetapi mungkin bisa membantu): jika Anda bisa, pastikan Anda menggunakan jaringan 'paravirtualised', blokir, acak, driver jam dll - mereka secara signifikan lebih cepat daripada yang sepenuhnya tervirtualisasi. Ini adalah "model = virtio" hal-hal di atas. Anda harus memuat modul driver ke dalam kernel host seperti virtio_net.
Berikut ini adalah output dari 'virsh pool-dumpxml vg1':
sumber
virsh pool-dumpxml mypool
Saya tidak tahu cara persis mereplikasi perilaku Xen yang Anda gambarkan. Namun, Anda dapat menggunakan
kpartx
untuk mengekspos partisi di dalam LV yang berisi gambar seluruh disk sebagai perangkat blok di host, yang kemudian dapat Anda pasang, dll.sumber
Lihat jawaban saya untuk pertanyaan saya sendiri tentang masalah ini di KVM booting kernel dan partisi yang ada . Singkatnya, mendapatkan virt-install untuk membuat konfigurasi untuk ini cukup mudah, mengingat sedikit modifikasi dari guest / etc / fstab.
sumber