Czy LVM potrzebuje tablicy partycji?

18

Wygląda na to, że jestem w stanie z powodzeniem wykonać pvcreate na surowym urządzeniu blokowym, nigdy nie podejmując kroku tworzenia tabeli partycji. Jestem w stanie stworzyć grupę woluminów, wolumin logiczny i wreszcie system plików, zamontować go i przetestować przez dd.

Wygląda na to, że działa, ale potrzebuję kontroli poczytalności. Czy to zły pomysł?

Jak utworzyć tabelę partycji GPT lub MBR na surowym urządzeniu blokowym?

Jak użyć opcji parted, aby pokazać, jakiego rodzaju tablica partycji jest używana? Próbowałem zrobić:

parted, wybierz / dev / sdb, print i otrzymuję:

Błąd: / dev / sdb: nierozpoznana etykieta dysku

Jednak dysk jest obecnie używany i mogę na nim czytać i pisać. Czy to oczekiwane wyjście przy wykonywaniu LVM na surowym urządzeniu blokowym bez tablicy partycji? jakieś pomysły?

Dzięki!

spodnie kota
źródło

Odpowiedzi:

29

Nawet jeśli sam LVM nie dba o prawdziwą partycję, jednym z powodów jej utworzenia jest poinformowanie programów partycjonujących, że „coś tam jest”. Scenariusz koszmaru to nowy administrator systemu diagnozujący problem z uruchomieniem na serwerze, uruchamiający program do partycjonowania, widziający dyski niepartycjonowane i stwierdzający, że dysk jest uszkodzony.

Nie widzę żadnych wad tworzenia partycji LVM. Czy ty?

Philip
źródło
1
+1 za scenariusz. Zbyt prawdopodobne w prawdziwym życiu.
Hennes
1
+1 za wnikliwość.
Alexander Janssen
Dziękuję za odpowiedź! Z pewnością nie widzę żadnych wad posiadania tabeli partycji. Chciałem tylko potwierdzić sprawdzeniem rozsądku. Prawidłowa kolejność warstw to: urządzenie blokowe, tablica partycji, grupa woluminów, wolumin logiczny, system plików, czy to prawda?
kocie spodnie
8
Wada: jeśli rozwiniesz urządzenie blokowe i nie użyjesz tablicy partycji, możesz natychmiast rozszerzyć wolumin fizyczny za pomocą pvresize. Jeśli korzystasz z tabeli partycji, musisz najpierw usunąć partycję i ponownie ją utworzyć w większym rozmiarze.
sciurus
1
Zachowanie ostrożności jest dobre, ale odrzucenie pytania nie jest dobrą odpowiedzią. Ta partycja nie jest potrzebna, a jej posiadanie ma swoje wady.
bryn
16

Chociaż możesz po prostu stworzyć PV z surowego urządzenia blokowego, zwykle staram się tego unikać, ponieważ może to powodować zamieszanie co do tego, do czego urządzenie blokowe jest używane. Może również uszkodzić niektóre procedury automatycznego wykrywania, których LVM może użyć, jeśli brakuje jego plików konfiguracyjnych.

Oto przykład użycia parted do utworzenia GPT z 1 partycją, która jest całym dyskiem i ustawieniem flagi partycji na lvm. Program mkpart wymaga określenia systemu plików, ale nie tworzy systemu plików. Wydaje się być długotrwałym błędem w rozstaniu. Przesunięcie początkowe 1M ma zapewnić prawidłowe wyrównanie.

parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on
3dinfluence
źródło
3
„Program mkpart wymaga określenia systemu plików, ale nie tworzy systemu plików”. Dziękuję, że o tym wspomniałeś, to jest OGROMNE w ustalaniu rozsądku! :)
kocie spodnie
1
Już nie prawda. mkpart primary 1M 100%działa i pozostawia pole systemu plików puste.
surowy
1
@ 3dinfluence lvm wykonuje teraz wyrównanie automatycznie, po wielu latach nie widzę prawdziwego przypadku użycia partycji na dysk danych przeznaczony dla
lvm
5

Jeśli utworzysz PV bezpośrednio na wirtualnym urządzeniu magazynującym wewnątrz gościa KVM, zauważysz, że woluminy logiczne od gościa są widoczne na hiperwizorze. Może to powodować zamieszanie, jeśli używasz tego samego logicznego woluminu i nazw grup woluminów dla wielu gości. Możesz również otrzymać ostrzeżenia na hiperwizorze informujące, że nie może znaleźć urządzenia.

Na przykład odtworzyłem ten problem na moim hiperwizorze testowym:

[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

Tutaj możesz zobaczyć 2 grupy woluminów o tej samej nazwie, obie od gości, które tak naprawdę nie powinny pojawić się na hiperwizorze.

Z tego powodu radziłbym najpierw użyć parted lub fdisk do utworzenia partycji KVM na nim (jak pokazano w poprzedniej odpowiedzi 3dinfluence), przed utworzeniem PV i dodaniem go do grupy woluminów. W ten sposób woluminy logiczne gościa pozostają ukryte przed hiperwizorem.

Paul Maunders
źródło
1
Można tego uniknąć, jeśli użyjesz filterpliku /etc/lvm/lvm.conf do odfiltrowania wszystkich urządzeń blokowych używanych bezpośrednio przez maszyny wirtualne.
Mircea Vutcovici,
Dyski i tak są zawsze obecne na hoście - partycje po prostu nie są mapowane. kpartx -azrobiłby to dla ciebie. Hiperwizor ma dostęp do wszystkich dysków gościnnych, ale grupy woluminów nie powinny być aktywowane.
bryn
4

Jednym minusem jest to, że nie jest możliwe dodawanie miejsca na gorąco do PV wewnątrz tabeli partycji. Nie stanowi to problemu, jeśli używasz całego urządzenia blokowego do PV.

użytkownik217432
źródło
Od 2018 roku możesz dodawać miejsce na PV wewnątrz tabeli partycji. Zrobiłem ten skrypt, który może wygenerować polecenia wymagane do tego: github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh
Mircea Vutcovici
3

Nawet jeśli w przeszłości korzystałem z etykiety dyskowej MS-DOS lub etykiety dyskowej GPT do PV, wolę teraz używać bezpośrednio LVM na głównym urządzeniu blokowym. Nie ma powodu, aby używać 2 etykiet dyskowych, chyba że masz bardzo konkretny przypadek użycia (np. Dysk z sektorem rozruchowym i partycją rozruchową).

Zaletą posiadania LVM bezpośrednio są:

  • prostota - nie trzeba używać 2 zestawów narzędzi
  • elastyczność - możesz używać pvmove do przenoszenia danych z jednego woluminu dysku na drugi bez przestojów, możesz użyć migawki i cienkiego przydzielania
  • nie musisz uruchamiać partprobe ani kpartx, aby poinformować jądro, że utworzyłeś / zmieniłeś rozmiar / usunąłeś wolumin. A partprobe / kpartx może zawieść, jeśli partycje są w użyciu i może być konieczne ponowne uruchomienie
  • być może lepsza wydajność w porównaniu do używania LVM na dyskach CD-MS-DOS lub GPT
Mircea Vutcovici
źródło
2
Nie jestem pewien, dlaczego wszyscy chcą tej partycji - ale odpowiedz tutaj idź w kierunku „dlaczego nie”. Ta odpowiedź jest lepsza - nie potrzebujesz partycji, jeśli chcesz użyć całego dysku. Posiadanie partycji może również sprawić, że zmiana rozmiaru / rozszerzenie dysków będzie o wiele bardziej bolesna.
bryn
wielu administratorów systemu unix wprowadza tę logikę do systemu Linux, pamiętam menedżera woluminów Veritas, który działa z publicznym i prywatnym, w Linuksie nie ma to żadnego sensu
c4f4t0r