Jak przedłużyć partycję PV systemu Linux po powiększeniu dysku wirtualnego


14

VMware pozwala na zwiększenie rozmiaru wirtualnego dysku online - gdy VM jest uruchomiona. Kolejne oczekiwane kroki dla systemu Linux to:

  1. rozszerz partycję: usuń i utwórz większą za pomocą fdisk
  2. zwiększyć rozmiar PV za pomocą pvresize
  3. używaj bezpłatnych zakresów do lvresizeoperacji
  4. a następnie resize2fsdla systemu plików

Ale jestem zakleszczony na pierwszym stopniu: fdiski sfdisknadal wyświetla stare rozmiar dysku.

Mój dysk to wirtualny dysk SCSI podłączony dzięki wirtualnemu kontrolerowi LSI Logic.

Jak odświeżyć rozmiar dysku wirtualnego i informacje o tablicy partycji dostępne w jądrze Linuksa bez restartu ?

O ile wiem, wszystkie te kroki są możliwe dla działającego systemu Windows, bez ponownego uruchamiania, a nawet bez żadnych działań użytkownika dzięki narzędziom VMWare. W Linuksie spodziewam się, że wszystkie kroki wykonam również online i już wiem, że kroki 2, 3 i 4 działają online. Ale pierwsza - zmiana rozmiaru partycji zadeklarowana w tabeli partycji (nadal) wydaje się wymagać ponownego uruchomienia.

Aktualizacja: Mój system to Debian Lenny z jądrem 2.6.26, a dysk, który rozszerzyłem, jest dyskiem głównym z dużym PV zawierającym „root” LV dla „/”.

Odpowiedzi:


9

Możesz to zrobić bez restartu. pvresize nie zmienia rozmiaru woluminu fizycznego, dopóki partycja nie zostanie zaktualizowana o dodane miejsce. Musisz fdisk partycję i odtworzyć ją z nowym pełnym rozmiarem dysku, po tym, jak możesz ponownie przeskanować dyski, aby zobaczyć dodatkowe miejsce w pierwszej kolejności.

Więcej informacji: http://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/


Zgadzam się, ale cokolwiek zrobiłem, aby ponownie przeskanować dysk SCSI, nigdy nie widziałem nowego rozmiaru dysku w fdisk, więc utknąłem do pierwszego uruchomienia. „Partprobe” to dla mnie nowe polecenie. Zdecydowanie muszę przetestować tę procedurę ... Dziękuję.
Yves Martin,

Dla informacji partprobejest to polecenie z partedprojektu.
Yves Martin

Jeśli nie widziałeś nowego rozmiaru dysku, fdiskproblem nie dotyczy LVM. Musiałbym zapytać, jak skanowałeś, ponieważ zwykle odbiera mi nowy rozmiar dysku. Nie dzielę też dysków na partycje, na których będę korzystać z LVM, jeśli mogę pomóc. Jeśli masz pvcreatecały dysk, to aktualizowanie tablicy partycji to tylko jedna rzecz mniej, którą musisz zrobić, gdy chcesz zmienić jej rozmiar.
Bratchley,

14

Druga odpowiedź, pod warunkiem, że nie dotyczy twojego pytania, zidentyfikowałem prawidłowe polecenie, aby ponownie przeskanować już podłączony dysk.

Musimy ponownie przeskanować już podłączony dysk, najpierw zidentyfikować dysk, który chcesz przeskanować ponownie.

ls /sys/class/scsi_disk/

W moim przykładzie widzę dowiązanie symboliczne o nazwie 0:0:0:0, więc ponownie skanujemy ten dysk SCSI.

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

Właśnie rozszerzyłem dysk VMware i musiałem przejrzeć inne odpowiedzi, aby znaleźć prawidłowe polecenie. Mamy nadzieję, że uratuje to przyszłych poszukiwaczy przed daremnymi próbami.


Działa idealnie!
Emil Styrke

Możesz także znaleźć dyski według ich nazwy „/ dev /” w /sys/block/, więc możesz użyć np /sys/block/sda/device/rescan.
mwfearnley

4

Jeśli główny system plików /jest zamontowany na dysku, którego rozmiar został zmieniony, tablica partycji i rozmiar dysku nie są odświeżane przez skanowanie SCSI w systemie Linux 2.6.26.

Naprawdę mam nadzieję, że wkrótce będzie lepiej z nowszymi wersjami jądra.

Musiałem więc:

  • uruchom ponownie po raz pierwszy, aby zobaczyć nowy rozmiar dysku w fdisk
  • usuń starą podstawową partycję PV w fdisk
  • utwórz pozycję partycji o tym samym numerze i rozpocznij sektor do końca dysku
  • uruchom ponownie komputer LUB uruchom ponownie partprobez partedpakietu, tylko jeśli /nie jest tam zamontowany
  • Teraz mogę uruchomić, pvresizeaby uzyskać nowe wolne miejsce lvextendi resize2fsprzydzielić trochę więcej miejsca systemowi plików

pvcreatePolecono mi po prostu odrzucić tę głupią starą tablicę partycji i uruchomić bezpośrednio na urządzeniu, ponieważ Grub2 jest w stanie załadować obraz jądra bezpośrednio z systemu plików na partycji LVM. Ale taka konfiguracja wcale nie jest oczywista w przypadku instalatorów dystrybucji.

Aktualizacja: Właśnie sprawdziłem przy pomocy Debiana GNU / Linux Jessie 8.2 z jądrem 3.16 i parted3.2, partprobeteraz udaje się to po edycji tablicy partycji cfdiskbez restartu. pvresizedziała natychmiast po.

Jeśli chcesz rozszerzyć PV przechowywane jako logiczna partycja PC, na przykład /dev/sda5na rozszerzonej partycji podstawowej /dev/sda2, nie używaj, fdiskale wolisz parted:

parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5

Komendy na końcu nie działają # parted / dev / sda2 -1 -> parted: niepoprawna opcja - '1'
Oskar Berggren

3

Musisz ponownie przeskanować dyski, zanim utworzysz większą partycję.

W Centos możesz to zrobić przez

ls /sys/class/scsi_host

następnie dla każdego hosta

echo "- - -" > /sys/class/scsi_host/host#/scan

(zamień # na liczbę)

Jest jeszcze jeden krok do powyższego, czyli rozszerzenie ext lub dowolnego systemu plików, którego używasz po zmianie rozmiaru partycji.

W pewnym momencie nadal będziesz musiał odmontować tę partycję. Zwykle dodajemy drugi dysk vmware i używamy lvm, aby rozszerzyć go na nowy dysk (i zmniejszyć stary, jeśli jest on zamienny), ponieważ pozwala to na cały proces na żywo.


Mój system to Debian i uruchamiam rescan-scsi-bus.sh z scsitools. Myślę, że jest to równoważne z poleceniem, które proponujesz na / sys / class / scsi_host, ale „fdisk” nadal wyświetla stary rozmiar na moim dysku ...
Yves Martin

Czy rozpoznaje nowy dysk VMware podczas ponownego skanowania?
JamesRyan

Nie. Ten dysk już istnieje, nie jest nowy. Rozmiar dysku został zwiększony w kliencie vSphere.
Yves Martin

Zdaję sobie z tego sprawę, ale powinieneś spróbować dodać nowy, aby sprawdzić, czy Twój skan wykryje problem, aby zawęzić problem
JamesRyan

Zgadzam się z tobą i już wiem, że dodanie nowego dysku SCSI do komputera z systemem Linux można wykonać online dla wszystkich wymienionych kroków. Ponieważ maszyna wirtualna może działać przez 10 lat ... Obawiam się, że całkowita liczba dysków w najbliższej przyszłości ...
Yves Martin

2

Jako zaktualizowaną odpowiedź w Ubuntu 16.04.1 mogłem wykonać następujące czynności, aby zmienić rozmiar woluminu z 1024 GB na 1,4 TB:

echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt

Nie jest fdiskwymagane, a miejsce było natychmiast dostępne.


3
Szczęściarz. Powodem jest to, że nie masz tabeli partycji, ale bezpośrednie włączenie PV /dev/sdb, który prawdopodobnie jest dyskiem dodatkowym danych aplikacji, ale nie pierwszym dyskiem z systemem (wspominając, że konfiguruję moje systemy w ten sam sposób!). Moje pytanie dotyczyło rozszerzenia ostatniej PV / partycji takiego „dysku systemowego” (sklonowanego z szablonu), o ile dystrybucje Linuksa nie obsługują instalacji na bezpośrednim PV, podczas gdy jądro Linuksa i GRUB powinny być w stanie uruchomić się i uruchomić na dysku systemowym w ogóle bez tablicy partycji.
Yves Martin,

Uczciwy punkt. Dla tych, którzy znajdą to za pośrednictwem Google: pamiętaj o tym.
peelman,

1

Nie podałeś nam wystarczających szczegółów, aby powiedzieć ci dokładnie, jakich poleceń potrzebujesz, ale w zasadzie musisz użyć lvextendpolecenia, aby rozszerzyć wolumin logiczny, następnie e2fsckpolecenia, a następnie resize2fspolecenia, aby faktycznie rozwinąć system plików. Każde z tych poleceń będzie wymagało dodatkowych parametrów, w szczególności informacji o urządzeniu i systemie plików, których nie możemy podać, ale musisz je znać, po prostu użyj opcji --help dla każdego polecenia, aby powiedzieć, jak ich używać, a także prawdopodobnie użyjesz komend pvdisplay, lvdisplayi mount, aby pomóc wypełnić te parametry.


Znam wszystkie polecenia dla innych kroków. Moje pytanie brzmi: jak rozbudować partycję podstawową używaną jako PV bez ponownego uruchamiania?
Yves Martin

Przepraszam, masz na myśli pvresize?
Chopper3

Zgadzam się, że moje pytanie nie było wystarczająco jednoznaczne (nawet z odważną częścią). pvresize jest wspomniany jako krok 2. Utknąłem na kroku 1: zwiększ rozmiar partycji „PCAT”.
Yves Martin

Czy zwiększyłeś już rozmiar pliku .vmdk za pośrednictwem VSClient?
Chopper3

3
Aby potwierdzić, /sbin/rescan-scsi-busnie zmieniaj istniejącego rozmiaru dysku. Ale echo "1" > '/sys/class/scsi_disk/0:0:1:0/device/rescan'nie robi
Yves Martin

0

Nikt nie opublikował pełnego zestawu poleceń, więc zaczynamy:

# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root

#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root

Przepraszam, że przeszkadzam, ale uważam, że dodawanie dysku, partycji i PV na każdym dysku jest „brzydkie” i nie skaluje się. Moje pytanie dotyczyło rozszerzenia istniejącej partycji podstawowej na dysku bez dodawania dysku, partycji lub PV.
Yves Martin,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.