Haruskah partisi LVM digunakan dalam gambar mesin virtual?

45

Haruskah LVM digunakan untuk partisi saat membuat gambar VM (mis., Gambar KVM)? Sepertinya itu menambah kompleksitas jika Anda ingin, katakanlah, me-mount gambar qcow2 di host jika gambar memiliki partisi LVM.

Di sisi lain, sepertinya tidak ada keuntungan dari partisi LVM yang signifikan pada gambar VM, karena jauh lebih mudah untuk mengambil VM offline dan mengubah ukuran partisi daripada untuk sistem fisik.

Lorin Hochstein
sumber
Apakah Anda bertanya tentang penggunaan LV sebagai seluruh disk atau sebagai partisi yang pada gilirannya membuat disk dalam VM?
Nils
@Nils Saya berbicara tentang LV sebagai partisi yang membentuk disk. Misalnya, memiliki partisi "/" dan partisi swap sebagai volume logis di dalam grup volume.
Lorin Hochstein
Hanya untuk memperjelas, sepertinya Anda bertanya tentang penggunaan LVM di sisi tamu. Jauh lebih mudah untuk mengelola jika Anda menggunakan LVM di sisi host, melewati satu atau dua disk, dan menggunakannya tanpa mempartisi tamu.
Tobu
LVM overhead berada di kisaran 10e-9 detik.
Emmanuel

Jawaban:

21

"Tergantung."

Jika Anda berada di lingkungan yang Anda kontrol (vmware atau kvm atau apa pun), dan dapat membuat keputusan sendiri tentang kinerja disk QoS, maka saya akan merekomendasikan untuk tidak menggunakan LVM di dalam VM Anda. Itu tidak memberi Anda banyak fleksibilitas yang Anda tidak bisa dapatkan di tingkat hypervisor.

Ingat, hypervisor sudah secara efektif melakukan tugas-tugas ini. Jika Anda ingin dapat mengubah ukuran sistem file secara sewenang-wenang (ide yang bagus), cukup buat disk virtual terpisah untuk setiap sistem file.

Satu hal yang mungkin Anda pikirkan ketika Anda menyusuri jalan ini. Anda bahkan tidak perlu meletakkan partisi pada disk virtual Anda dengan cara ini. Misalnya, Anda dapat membuat disk virtual untuk /home; itu ada /dev/vdcdi dalam vm Anda. Saat membuat sistem file, lakukan saja sesuatu mke2fs -j /dev/vdcalih - alih menentukan partisi.

Ini adalah ide yang bagus, tetapi ... sebagian besar alat (dan admin lain yang datang setelah Anda) akan berharap untuk melihat partisi di setiap disk. Saya akan merekomendasikan hanya meletakkan satu partisi pada disk dan selesai dengan itu. Itu berarti satu langkah lagi ketika mengubah ukuran sistem file. Dan jangan lupa untuk menyelaraskan partisi Anda dengan benar - memulai partisi pertama pada 1MB adalah aturan praktis yang bagus.

Semua yang dikatakan - Melakukan ini semua di tingkat hypervisor berarti bahwa Anda mungkin harus me-reboot VM untuk mengubah ukuran partisi. Menggunakan LVM akan memungkinkan Anda untuk menambahkan-panas disk virtual (anggaplah hypervisor / kombinasi OS Anda memungkinkan ini), dan perluas sistem file tanpa reboot. Ini jelas merupakan nilai tambah.


Sementara itu, jika Anda menggunakan penyedia cloud, itu lebih halus.

Saya tidak tahu banyak tentang Azure, GCP, atau pemain yang lebih kecil, jadi saya tidak bisa membantu di sana.

Dengan AWS Anda dapat mengikuti saran saya di atas dan Anda akan sering baik-baik saja. Anda dapat (sekarang) meningkatkan ukuran volume EBS (disk virtual) dengan cepat, dan mengubah ukuran partisi, dll.

Namun, dalam kasus umum, mungkin masuk akal untuk meletakkan semuanya pada volume EBS besar tunggal, dan menggunakan LVM (atau, saya kira, partisi biasa). Amazon memberi Anda batas IOPS pada setiap volume. Secara default, batas ini berskala dengan ukuran volume. misal, untuk gp2volume Anda mendapatkan 3 IOPS per GiB (minimal 100 IOPS). Lihat https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html

Untuk sebagian besar beban kerja, Anda ingin semua IOPS Anda tersedia untuk semua sistem file, tergantung pada kebutuhan saat ini. Jadi masuk akal untuk membuat satu volume EBS besar, dapatkan semua IOPS Anda dalam satu ember, dan partisi / LVM itu.

Contoh:

3 disk dengan filesystem independen / area swap, masing-masing berukuran 100GB. Masing-masing mendapat 300 IOPS. Kinerja dibatasi hingga 300 IOPS di setiap disk.

1 disk, berukuran 300GB. Partisi LVM pada disk masing-masing 100GB. Disk mendapat 900 IOPS. Setiap partisi dapat menggunakan 900 IOPS.

Dan Pritts
sumber
7

Volume logis lebih mudah dibuat dengan cepat, mengubah ukuran, menghapus.
Pertanyaan "to LVM or not" selalu memiliki jawaban yang sama, itu tergantung :)
Masuk akal jika Anda memerlukan fleksibilitas pada level disk, partisi.
Tidak masuk akal jika Anda tidak membutuhkan fleksibilitas yang disediakan oleh LVM atau tidak ingin memanfaatkan fitur LVM lainnya

bsd
sumber
5

Saya sebenarnya suka menggunakan LV karena mereka tidak mudah diakses dari server-virt. Dengan demikian file-file ini tidak mudah dihancurkan / dipindahkan secara kebetulan.

Fitur penting lainnya dari LV:

  • Anda dapat membuat foto
  • Anda dapat menganalisis disk IO berdasarkan LV ( iostat)
  • Mudah untuk mengubah ukuran
  • Dengan menggunakan snapshot, Anda dapat membuat tiruan yang konsisten dari sistem yang sedang berjalan

Untuk mengurangi kompleksitas, saya menggunakan LV sebagai disk (bukan sebagai partisi). Kekurangannya adalah saya hanya dapat dengan mudah mengubah ukuran partisi terakhir dari "disk" - tetapi layout-VM-disk-standar saya memperhitungkannya (sehingga partisi terakhir berisi data aplikasi penting).

Nils
sumber
2

Selain fleksibilitas, gambar VM berbasis LVM memiliki potensi overhead yang lebih sedikit, karena mereka tidak diakses melalui sistem file. Di sisi lain, itu menghilangkan cara mudah memindahkan gambar, seperti yang akan Anda lakukan dengan file. Bukan tidak mungkin, tetapi sedikit lebih rumit

dyasny
sumber
1
Itu jawaban untuk pertanyaan yang berbeda. Pertanyaannya di sini adalah tentang menggunakan LVM di tamu, tidak menggunakan LVM di host (LVs untuk menyimpan disk VM).
Stéphane Chazelas
1
Tidak, pertanyaannya adalah tentang menggunakan LVM UNTUK para tamu, bukan DI para tamu.
HDave
2

Pengalaman saya sendiri ....

Saya ingin menggunakan volume logis (lv) dengan lvm2 untuk sistem file ext4; bukan sebagai disk, atau lebih tepatnya, hanya sebagai disk mentah yang tidak dipartisi untuk fs.

Apa yang saya temukan adalah bahwa startup VM akan dihentikan pada tahap initrd; jika saya berkomentar /etc/fstabentri, mesin akan boot. Meninggalkan /etc/fstabentri yang dikomentari bukanlah solusi yang membuat saya senang. Jadi, saya membuat image disk yang normal (masih volume yang logis), mempartisinya dengan satu partisi menggunakan fdiskdan menciptakan sistem file pada itu. Tidak ada masalah lebih lanjut.

Mount yang relevan di saya /etc/fstabmenggunakan UUID.

Saya berpikir untuk menggunakan file atau filesystem, tetapi memutuskan untuk tidak melakukannya.

Dalam kasus saya, saya menggunakan sistem Debuan Jessie berbasis Devuan

Andrew McGlashan
sumber
1

Saya sebenarnya hanya menggunakan LVM untuk penyimpanan dukungan di tingkat hypervisor, file gambar untuk burung. Saya juga akan merekomendasikan menggunakannya di tingkat tamu juga. Memang benar bahwa Anda tidak akan mendapat manfaat dari menyatukan sumber penyimpanan yang berbeda atau merasa lebih mudah untuk menambah ruang disk total yang tersedia (karena Anda bisa mendapatkannya dengan mudah dengan mengubah ukuran apa yang ditampilkan hypervisor), tetapi kadang-kadang Anda mengalokasikan terlalu banyak untuk satu sistem file . Anda mungkin menyukai cara mudah untuk mengambil 1 pertunjukan dari / opt dan memberikannya ke / var (misalnya). Jika Anda melakukan partisi reguler di dalam VM itu sendiri maka itu membuat aspek pengubahan ukuran menjadi jauh lebih sulit.

Bratchley
sumber
1

Selain jawaban baik lainnya di sini, satu-satunya alasan yang sangat baik untuk menggunakan LVM di dalam VM adalah Anda ingin lingkungan pengujian untuk bereksperimen dan mendapatkan pengalaman praktis praktis dengan LVM.

Anda dapat melalui berbagai HOWTO dan tutorial, mempraktikkan pengambilan administrasi LVM yang umum (dan tidak biasa), mengatur berbagai skenario kegagalan, dan mempelajari cara menanganinya.

yaitu sebagai alat bantu belajar mandiri.

cas
sumber
0

Sunting: Di bawah ini tidak lagi benar. Nilai menggunakan provisi tipis yang disediakan oleh LVM untuk gambar disk VM mungkin situasional;

Apakah Anda menjalankan Development VM di laptop? maka Anda mungkin lebih baik dengan QCow2.

Mengelola pertanian VM yang mungkin dapat menggunakan sejumlah besar penyimpanan di beberapa disk? LVM kemungkinan merupakan cara yang baik untuk mengelola penyimpanan itu.


salah satu alasan untuk tidak menggunakan lvm adalah Anda tidak dapat melakukan terlalu banyak penyimpanan menggunakan lvm. Jika Anda membuat 10 VM dengan penyimpanan 100GB, Anda membutuhkan 1000 GB disk sebenarnya, bahkan jika 9 dari sepuluh VM hanya akan menggunakan 20 GB sistem file mereka. Gambar Disk Jarang atau gambar format qcow2 dapat berarti hanya penyimpanan yang benar-benar digunakan oleh para tamu yang perlu dialokasikan untuk mereka.

Apakah ini benar-benar berguna bagi Anda tergantung pada apa yang Anda butuhkan dari penyimpanan Anda.

SingleNegationElimination
sumber
2
Anda sebenarnya dapat melakukan overcommit penyimpanan menggunakan snapshot lvm. Tapi ada overhead.
derobert
3
dan sebenarnya, versi yang lebih baru dari LVM mendukung "kumpulan tipis", yang terlalu banyak bekerja tanpa ada kekonyolan foto.
derobert
Ini poin yang valid, meskipun salah; fakta bahwa "standar" / on-the-fly cara menggunakan partisi / disk LVM menghasilkan skenario yang diuraikan tentu patut ditunjukkan. Padahal, jawabannya bisa diubah untuk mencerminkan bahwa itu akan menambah kompleksitas bahkan lebih ke jalur pembelajaran .
ILMostro_7