EC2 Nie można zmienić rozmiaru głośności po zwiększeniu rozmiaru

95

Postępowałem zgodnie z instrukcjami zmiany rozmiaru woluminu EC2

  1. Zatrzymano instancję
  2. Zrobiłem migawkę bieżącego woluminu
  3. Utworzono nowy wolumin z poprzedniej migawki o większym rozmiarze w tym samym regionie
  4. Odłączono stary wolumin z instancji
  5. Dołączono nowy wolumin do instancji w tym samym punkcie instalacji

Stary wolumin miał 5 GB, a ten, który utworzyłem, ma 100 GB. Teraz, gdy ponownie uruchomię instancję i uruchomię, df -h Inadal to widzę

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            4.7G  3.5G 1021M  78% /
tmpfs                 296M     0  296M   0% /dev/shm

To właśnie otrzymuję podczas biegania

sudo resize2fs /dev/xvde1

The filesystem is already 1247037 blocks long.  Nothing to do!

Jeśli biegnę cat /proc/partitions, widzę

 202       64  104857600 xvde
 202       65    4988151 xvde1
 202       66     249007 xvde2

Z tego, co rozumiem, jeśli podjąłem właściwe kroki, xvde powinien mieć te same dane co xvde1, ale nie wiem, jak z niego korzystać

Jak mogę użyć nowego wolumenu lub umount xvde1 i zamiast tego zamontować xvde?

Nie mogę zrozumieć, co robię źle

Ja też próbowałem sudo ifs_growfs /dev/xvde1

xfs_growfs: /dev/xvde1 is not a mounted XFS filesystem

Przy okazji, to Linux Box z Centos 6.2 x86_64

Z góry dziękuje za twoją pomoc

Wilman Arambillete
źródło

Odpowiedzi:

71

Dziękuję Wilman, twoje polecenia działały poprawnie, należy wziąć pod uwagę niewielką poprawę, jeśli zwiększamy EBS do większych rozmiarów

  1. Zatrzymaj instancję
  2. Utwórz migawkę z woluminu
  3. Utwórz nowy wolumin na podstawie migawki, zwiększając rozmiar
  4. Sprawdź i zapamiętaj aktualny punkt montowania woluminu (tj. /dev/sda1)
  5. Odłącz bieżącą głośność
  6. Dołącz ostatnio utworzony wolumin do instancji, ustawiając dokładny punkt podłączenia
  7. Uruchom ponownie instancję
  8. Uzyskaj dostęp przez SSH do instancji i uruchom fdisk /dev/xvde

    OSTRZEŻENIE: tryb zgodny z systemem DOS jest przestarzały. Zdecydowanie zaleca się wyłączenie trybu (polecenie „c”) i zmianę wyświetlanych jednostek na sektory (polecenie „u”)

  9. Hit, paby wyświetlić aktualne partycje

  10. Hit, daby usunąć bieżące partycje (jeśli jest więcej niż jedna, musisz usuwać pojedynczo) UWAGA: Nie martw się, dane nie zostaną utracone
  11. Hit, naby utworzyć nową partycję
  12. Hit, paby ustawić go jako podstawowy
  13. Hit, 1aby ustawić pierwszy cylinder
  14. Ustaw żądane nowe miejsce (jeśli puste, całe miejsce jest zarezerwowane)
  15. Hit, aaby był bootowalny
  16. Uderz 1i wnapisz zmiany
  17. Uruchom ponownie instancję LUB użyj partprobe(z partedpakietu), aby poinformować jądro o nowej tablicy partycji
  18. Zaloguj się przez SSH i uruchom resize2fs / dev / xvde1
  19. Na koniec sprawdź nowe miejsce, w którym działa df -h
dcf
źródło
1
„OSTRZEŻENIE: tryb kompatybilny z DOS jest przestarzały. Zdecydowanie zaleca się wyłączenie trybu (polecenie 'c') i zmianę jednostek wyświetlania na sektory (polecenie 'u')” Nie było to konieczne dla mnie (Ubuntu 13.04). Wyłączył już kompatybilność z DOS i domyślnie używał sektorów. Naciśnięcie ci ufaktycznie przełączono NA przestarzałe tryby.
wisbucky
6
Rozwiązanie działało znakomicie, ale instancja utknęła na „1/2 kontroli zakończonej pomyślnie” z wykrzyknikiem (ReadHat 6.5). Aby to naprawić, ustawiłem „pierwszy cylinder” na 16 (tak jak poprzednio). Następnie instancja została uruchomiona normalnie z wynikiem „2/2 testy zakończone pomyślnie”. Mam nadzieję, że to komuś pomoże ...
user3586516
1
Ja też musiałem zmienić pierwszy cylinder, ale musiałem zmienić go na 2048. Zalecałbym sprawdzenie aktualnych ustawień partycji przed jej usunięciem.
Doyley
9
Po ponownym uruchomieniu instancji nie mogę połączyć się przez SSH. Przekroczono limit czasu połączenia, a konsola aws pokazuje, że nie może rozpocząć sprawdzania stanu. Myślę, że jest martwy. Masz jakiś pomysł, co robić?
Richard
5
Ta odpowiedź jest obecnie przestarzała, ponieważ AWS obsługuje zmianę rozmiaru online dla woluminów EBS.
Dale Anderson
308

Nie ma już potrzeby zatrzymywania instancji i odłączania wolumenu EBS, aby zmienić jego rozmiar!

13 lutego 2017 r. Amazon ogłosił: „ Aktualizacja Amazon EBS - nowe elastyczne woluminy zmieniają wszystko

Proces działa nawet wtedy, gdy wolumin do rozszerzenia jest woluminem głównym uruchomionej instancji!


Powiedzmy, że chcemy zwiększyć dysk rozruchowy Ubuntu z 8G do 16G „w locie”.

krok-1) zaloguj się do konsoli internetowej AWS -> EBS -> kliknij prawym przyciskiem myszy tę, której rozmiar chcesz zmienić -> „Zmień głośność” -> zmień pole „Rozmiar” i kliknij przycisk [Modyfikuj]

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj


step-2) ssh do instancji i zmień rozmiar partycji:

wymieńmy urządzenia blokowe podłączone do naszego pudełka:
lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

Jak widać / dev / xvda1 nadal jest partycją 8 GiB na urządzeniu 16 GiB i nie ma innych partycji na woluminie. Użyjmy „growpart”, aby zmienić rozmiar partycji 8G na 16G:

# install "cloud-guest-utils" if it is not installed already
apt install cloud-guest-utils

# resize partition
growpart /dev/xvda 1

Sprawdźmy wynik (widać, że / dev / xvda1 ma teraz 16G):

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0  16G  0 part /

Wiele odpowiedzi SO sugeruje użycie fdisk z usuwaniem / odtwarzaniem partycji, co jest nieprzyjemnym, ryzykownym i podatnym na błędy procesem, zwłaszcza gdy zmieniamy dysk rozruchowy.


krok-3) zmień rozmiar systemu plików, aby w pełni wykorzystać nową przestrzeń partycji
# Check before resizing ("Avail" shows 1.1G):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  6.3G  1.1G  86% /

# resize filesystem
resize2fs /dev/xvda1

# Check after resizing ("Avail" now shows 8.7G!-):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       16G  6.3G  8.7G  42% /

Mamy więc zero przestojów i dużo nowej przestrzeni do wykorzystania.
Cieszyć się!

Aktualizacja: Aktualizacja: użyj sudo xfs_growfs / dev / xvda1 zamiast resize2fs, gdy system plików XFS.

Dmitry Shevkoplyas
źródło
zmiana rozmiaru partycji była bardzo pomocna .... !! Najwspanialsze było to, że działał nawet dla głośności roota.
piyushmandovra
4
Czy ktoś zaakceptuje to jako poprawną odpowiedź? Tylko dlatego, że ... jest.
eduardohl
Solidnie, wielkie
4
Huh, oficjalna dokumentacja nie wspomina o growpart, dlatego wcześniej nie mogłem tego uruchomić. Dzięki!
Ibrahim
1
@Shihas, tak. O to chodzi. Nawet bootowalny dysk zamontowany jako root można bezpiecznie zwiększyć bez konieczności ponownego uruchamiania!
Dmitry Shevkoplyas
42

Prefect komentarz autorstwa jperelli powyżej.

Dzisiaj miałem ten sam problem. Dokumentacja AWS nie wspomina wyraźnie o growpart. Odkryłem na własnej skórze i rzeczywiście te dwa polecenia działały idealnie na M4.large i M4.xlarge z Ubuntu

sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1
Sachin Shintre
źródło
druga odpowiedź do dołączenia i ta odpowiedź dotyczy zmiany rozmiaru
Adiii
Niesamowity! pracował na mojej instancji t2.small. Uff. Pomyślałem, że to będzie bardziej krwawe. Dzięki!
wiadomości
Nie mogę zainstalować narzędzi gościa w chmurze, które zawierają growpart. Wersja Linuksa 3.16.0-4-amd64
nettie
16

[ROZWIĄZANY]

Oto, co należało zrobić

  1. Zatrzymaj instancję
  2. Utwórz migawkę z woluminu
  3. Utwórz nowy wolumin na podstawie migawki, zwiększając rozmiar
  4. Sprawdź i zapamiętaj aktualny punkt montowania woluminu (np. / Dev / sda1)
  5. Odłącz bieżącą głośność
  6. Dołącz ostatnio utworzony wolumin do instancji, ustawiając dokładny punkt podłączenia
  7. Uruchom ponownie instancję
  8. Uzyskaj dostęp przez SSH do instancji i uruchom fdisk /dev/xvde
  9. Hit, paby wyświetlić aktualne partycje
  10. Hit, daby usunąć bieżące partycje (jeśli jest więcej niż jedna, musisz usuwać pojedynczo) UWAGA: Nie martw się, dane nie zostaną utracone
  11. Hit, naby utworzyć nową partycję
  12. Hit, paby ustawić go jako podstawowy
  13. Hit, 1aby ustawić pierwszy cylinder
  14. Ustaw żądane nowe miejsce (jeśli puste, całe miejsce jest zarezerwowane)
  15. Hit, aaby był bootowalny
  16. Uderz 1i wnapisz zmiany
  17. Uruchom ponownie instancję
  18. Zaloguj się przez SSH i uruchom resize2fs /dev/xvde1
  19. Na koniec sprawdź nową działającą przestrzeń df -h

To jest to

Powodzenia!

Wilman Arambillete
źródło
1
Wydaje się, że w woluminach Amazon EBS ważne jest, aby używać tego samego punktu montowania w resize2fs, co w przypadku fdisk. df pokazuje coś takiego jak / dev / xvda1 jako dołączony wolumin EBS, ale polecenie resize2fs działało dla mnie tylko wtedy, gdy użyłem identyfikatora / dev / sdf1, którego użyłem podczas tworzenia nowej partycji w fdisk.
Garreth McDaid,
To jest w dokumentacji AWS. Słabe jest to, że po 3 latach ich procedury są nadal niekompletne. Jeśli masz obraz, możesz się wycofać. Zawsze jest możliwe tymczasowe zawieszenie nowego dysku z instancji działającej na pulpicie, ale potrzeba zamontowania go w celu zmiany rozmiaru może być problemem, jeśli myślisz o użyciu gparted. gcloud zmienia rozmiar w locie.
mckenzm
Moje urządzenie magazynujące (/ dev / xvda1) zostało uruchomione w sektorze 16065, a nie w sektorze 1. Tak więc krok 13 (Hit 1, aby ustawić pierwszy cylinder) musiał w moim przypadku być 16065.
Simon Paarlberg,
Nie idź z tym rozwiązaniem, możesz stracić swoje dane. Właściwie doszedłem do wniosku, że nie wybieraj opcji usuwania partycji, jeśli pokaż wartości listy partycji w tabeli partycji, ponieważ jeśli lista istnieje, to dosłownie usuwa partycję, więc dane zostaną utracone, nawet jeśli odpowiedź mówi "Nie będzie usunąć". Istnieje sposób na zwiększenie rozmiaru partycji, sprawdź na dole inne narzędzia, które pomogą w płynnym rozszerzeniu rozmiaru partycji.
piyushmandovra
6
  1. zaloguj się do konsoli internetowej AWS -> EBS -> kliknij prawym przyciskiem myszy tę, której rozmiar chcesz zmienić -> „Zmień głośność” -> zmień pole „Rozmiar” i kliknij przycisk [Modyfikuj]

  2. growpart /dev/xvda 1

  3. resize2fs /dev/xvda1

To skrócona wersja odpowiedzi Dmitrija Szewkoplasa. Dokumentacja AWS nie zawiera growpartpolecenia. Działa to dobrze w przypadku ubuntu AMI.

jperelli
źródło
6
  1. sudo growpart / dev / xvda 1
  2. sudo resize2fs / dev / xvda1

powyższe dwie komendy pozwoliły mi zaoszczędzić czas w przypadku wystąpień AWS ubuntu ec2.

HD298
źródło
5

To zadziała dla systemu plików xfs, po prostu uruchom to polecenie

xfs_growfs /
Saurabh Chandra Patel
źródło
uczyń mój dzień ... myWEEK!
Cristian Sepulveda
4

Na wszelki wypadek, jeśli ktoś jest tutaj dla platformy Google Cloud GCP,
spróbuj tego:

sudo growpart /dev/sdb 1
sudo resize2fs /dev/sdb1
yunus
źródło
2

Czy utworzyłeś partycję na tym woluminie? Jeśli tak, musisz najpierw rozwinąć partycję.

chantheman
źródło
nie zrobiłem. Powinienem? Jak to zrobić? Pamiętaj, że ten nowy tom, który załączyłem, powinien zawierać wszystkie poprzednie dane, ponieważ jest to migawka oryginalnego tomu
Wilman Arambillete
Nie. Ale otrzymałem ten błąd, jeśli była dołączona partycja. Idź i dokładnie sprawdź, czy wolumin ma prawidłowy rozmiar, i dwukrotnie sprawdź, czy zamontowałeś nowy wolumin.
chantheman
Nie musisz też zatrzymywać instancji, aby to zrobić. Jest to bezpieczne, jeśli masz zapisy na tym woluminie, ale możesz wykonać migawkę przy uruchomionej instancji.
chantheman
1

Flaga startowa (a) nie działała w moim przypadku (EC2, centos6.5), więc musiałem ponownie utworzyć wolumin z migawki. Po powtórzeniu wszystkich kroków OPRÓCZ flagi startowej - wszystko działało bezbłędnie, więc mogłem później zmienić rozmiar2fs. Dziękuję Ci!

sandr
źródło
1

Dzięki, @Dimitry, działało jak urok z niewielką zmianą pasującą do mojego systemu plików.

źródło: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#recognize-expanded-volume-linux

Następnie użyj następującego polecenia, zastępując punkt montowania systemu plików (systemy plików XFS muszą być zamontowane, aby zmienić ich rozmiar):

[ec2-user ~]$ sudo xfs_growfs -d /mnt
meta-data=/dev/xvdf              isize=256    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 26214400

Uwaga Jeśli otrzymasz komunikat xfsctl nie powiódł się: błąd nie można przydzielić pamięci, może być konieczne zaktualizowanie jądra systemu Linux w instancji. Więcej informacji można znaleźć w dokumentacji konkretnego systemu operacyjnego. Jeśli otrzymasz komunikat System plików ma już nnnnnnn długości bloków. Nic do roboty! błąd, zobacz Rozszerzanie partycji Linuksa.

user2125117
źródło
0

Nie masz wystarczającej liczby przedstawicieli, aby komentować powyżej; ale zwróć uwagę na powyższe komentarze, że możesz uszkodzić swoją instancję, jeśli zaczniesz od 1; jeśli naciśniesz 'u' po uruchomieniu fdisk, zanim wypiszesz partycje z 'p', to faktycznie da ci prawidłowy numer początkowy, aby nie uszkodzić woluminów. Dla centów 6,5 AMI również jak wspomniano powyżej 2048 był dla mnie poprawny.

Reece
źródło
0

Więc w przypadku, gdy ktoś miał problem, w którym napotkał ten problem ze 100% wykorzystaniem i brakiem miejsca na uruchomienie polecenia growpart (ponieważ tworzy plik w / tmp)

Oto polecenie, które znalazłem, pomija nawet podczas korzystania z głośności EBS, a także jeśli nie masz wolnego miejsca na ec2, a jesteś na 100%

/sbin/parted ---pretend-input-tty /dev/xvda resizepart 1 yes 100%

zobacz tę witrynę tutaj:

https://www.elastic.co/blog/autoresize-ebs-root-volume-on-aws-amis

CodeJunkie
źródło
Po tym poleceniu należy sudo resize2fs /dev/xvda1zaktualizować /etc/fstab, dopiero potem df -hpokaże powiększone miejsce na dysku
karmendra