Apakah LVM memerlukan tabel partisi?

18

Tampaknya saya bisa berhasil membuat file pvc di atas perangkat blok mentah, tanpa pernah mengambil langkah membuat tabel partisi. Saya kemudian dapat membuat grup volume, volume logis, dan akhirnya filesystem, mount, dan uji melalui dd.

Tampaknya berhasil, tetapi saya perlu pemeriksaan kewarasan. Apakah ini ide yang buruk?

Bagaimana cara membuat tabel partisi GPT atau MBR di atas perangkat blok mentah?

Bagaimana cara saya menggunakan parted untuk memperlihatkan tabel partisi seperti apa yang digunakan? Saya sudah mencoba melakukan:

berpisah, pilih / dev / sdb, cetak dan saya dapatkan:

Kesalahan: / dev / sdb: label disk tidak dikenal

Namun drive saat ini sedang digunakan dan saya bisa membaca dan menulis untuk itu. Apakah itu output yang diharapkan ketika melakukan LVM di atas perangkat blok baku tanpa tabel partisi? Adakah pikiran?

Terima kasih!

celana kucing
sumber

Jawaban:

29

Bahkan jika LVM sendiri tidak peduli tentang memiliki partisi nyata, satu alasan untuk membuatnya adalah untuk memberi tahu program partisi bahwa ada "sesuatu di sana." Skenario mimpi buruk adalah sysadmin baru yang mendiagnosis masalah boot pada server, menjalankan program partisi, melihat disk yang tidak dipartisi, dan menyimpulkan bahwa drive tersebut rusak.

Saya melihat tidak ada kerugian untuk membuat partisi LVM. Apakah kamu?

Philip
sumber
1
+1 untuk skenario. Semua terlalu mungkin dalam kehidupan nyata.
Hennes
1
+1 karena berwawasan luas.
Alexander Janssen
Terima kasih balasannya! Saya tentu saja tidak melihat kekurangan memiliki tabel partisi. Saya hanya ingin mengkonfirmasi dengan cek kewarasan. Jadi urutan lapisan yang benar adalah: blok perangkat, tabel partisi, grup volume, volume logis, sistem file, apakah itu benar?
celana kucing
8
The downside: Jika Anda memperluas perangkat blok dan tidak menggunakan tabel partisi, Anda dapat segera memperluas volume fisik dengan pvresize. Jika Anda menggunakan tabel partisi, Anda harus menghapus partisi dan membuatnya kembali dengan ukuran yang lebih besar terlebih dahulu.
sciurus
1
Melakukan kehati-hatian itu baik, tetapi melemparkan kembali pertanyaan itu tidak memberikan jawaban yang bagus. Tidak perlu untuk partisi ini, dan ada kerugian untuk memiliki partisi.
bryn
16

Meskipun Anda hanya dapat membuat pv dari perangkat blok mentah saya biasanya mencoba menghindarinya karena dapat menyebabkan kebingungan untuk apa perangkat blok sedang digunakan. Ini juga dapat merusak beberapa rutinitas penemuan otomatis yang dapat digunakan LVM jika tidak ada file konfigurasi.

Berikut adalah contoh penggunaan parted untuk membuat GPT dengan 1 partisi yang merupakan keseluruhan drive dan mengatur flag partisi menjadi lvm. Mkpart mengharuskan Anda menentukan sistem file tetapi tidak membuat sistem file. Sepertinya bug lama berdiri sebagian. Juga offset awal 1M adalah untuk memastikan bahwa Anda mendapatkan perataan yang tepat.

parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on
Pengaruh 3d
sumber
3
"Bagian mk mengharuskan Anda menentukan sistem file tetapi tidak membuat sistem file." Terima kasih telah menyebutkan ini, itu SANGAT BESAR dalam membangun kewarasan! :)
celana kucing
1
Tidak lagi benar. mkpart primary 1M 100%bekerja dan membiarkan bidang sistem File kosong.
stark
1
@ 3dinfluence lvm sekarang melakukan penyelarasan secara otomatis, setelah bertahun-tahun saya tidak melihat kasus penggunaan sebenarnya untuk menggunakan partisi untuk disk data yang dicated untuk
lvm
5

Jika Anda membuat PV langsung pada perangkat penyimpanan virtual di dalam tamu KVM, maka Anda akan melihat bahwa volume logis dari tamu terlihat di hypervisor. Ini dapat membuat hal-hal yang cukup membingungkan jika Anda menggunakan volume dan nama grup volume logis yang sama di beberapa tamu. Anda juga bisa mendapatkan peringatan di hypervisor yang mengatakan bahwa itu tidak dapat menemukan perangkat.

Misalnya, saya telah membuat kembali masalah ini pada hypervisor tes saya:

[root@testhost ~]# vgs
  Couldn't find device with uuid dCaylp-1kvL-syiF-A2bW-NTPP-Ehlb-gtfxZz.
  VG          #PV #LV #SN Attr   VSize   VFree  
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_testhost   1   8   0 wz--n- 237.98g 120.15g

Di sini Anda dapat melihat 2 grup volume dengan nama yang sama, baik dari tamu yang seharusnya tidak muncul di hypervisor.

Untuk alasan ini, saya akan menyarankan Anda menggunakan parted atau fdisk untuk membuat partisi KVM di sana terlebih dahulu (seperti yang ditunjukkan pada jawaban sebelumnya oleh 3dinfluence), sebelum membuat PV dan menambahkannya ke grup volume. Dengan begitu, volume logis tamu tetap tersembunyi dari hypervisor.

Paul Maunders
sumber
1
Ini dapat dihindari jika Anda menggunakan filter/etc/lvm/lvm.conf untuk memfilter semua perangkat blokir yang digunakan langsung oleh VM Anda.
Mircea Vutcovici
Disk selalu ada di host - partisi tidak dipetakan. kpartx -aakan melakukannya untuk Anda. Hypervisor memiliki akses ke semua disk tamu, tetapi grup volume tidak boleh diaktifkan.
bryn
4

Salah satu kelemahannya adalah tidak mungkin untuk menambahkan ruang panas ke PV di dalam tabel partisi. Ini bukan masalah jika Anda menggunakan seluruh perangkat blok untuk PV.

pengguna217432
sumber
Pada 2018 Anda dapat menambahkan ruang pada PV di dalam tabel partisi. Saya membuat skrip ini yang dapat menghasilkan perintah yang diperlukan untuk melakukan itu: github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh
Mircea Vutcovici
3

Bahkan jika di masa lalu saya menggunakan disklabel MS-DOS atau GPT disklabel untuk PV, saya lebih suka sekarang menggunakan LVM langsung pada perangkat blok utama. Tidak ada alasan untuk menggunakan 2 disklabel, kecuali jika Anda memiliki use case yang sangat spesifik (seperti disk dengan sektor boot dan partisi boot).

Keuntungan memiliki LVM secara langsung adalah:

  • kesederhanaan - Anda tidak perlu menggunakan 2 set alat
  • fleksibilitas - Anda dapat menggunakan pvmove untuk memindahkan data dari satu volume disk ke yang lain tanpa downtime, Anda dapat menggunakan snapshot dan thin provisioning
  • Anda tidak perlu menjalankan partprobe atau kpartx untuk memberi tahu kernel bahwa Anda membuat / mengubah ukuran / menghapus volume. Dan partprobe / kpartx bisa gagal jika partisi sedang digunakan dan Anda mungkin perlu reboot
  • kinerja mungkin lebih baik, dibandingkan dengan menggunakan LVM di atas MS-DOS atau GPT disklables
Mircea Vutcovici
sumber
2
Tidak yakin mengapa semua orang menginginkan partisi itu - tetapi jawab di sini mengarah ke arah "mengapa tidak". Jawaban ini lebih baik - Anda tidak perlu partisi jika Anda akan menggunakan seluruh disk. Memiliki partisi juga dapat membuat mengubah ukuran / memperluas disk jauh lebih menyakitkan.
bryn
banyak administrator sistem unix membawa logika ini ke linux, saya ingat veritas volume manager yang bekerja dengan publik dan pribadi, di Linux ini tidak masuk akal
c4f4t0r