Rosnące rozmiary wolumenów Amazon EBS [zamknięte]


154

Jestem pod wrażeniem usług Amazon EC2 i EBS. Chciałem wiedzieć, czy można zwiększyć wolumen EBS.

Na przykład: jeśli mam wolumen 50 GB i zaczyna mi brakować miejsca, czy w razie potrzeby mogę zwiększyć go do 100 GB?


2
Pisałem tutorial do wzrostu rozmiaru woluminu EBS w - aws-musings.com/how-to-expand-your-ebs-volume
Vaibhav Puranik

8
Świetne pytanie (+1). Lepiej jednak pasuje do błędu serwera?
Jonik

1
Zagłosuj na tę odpowiedź, ponieważ jest ona znacznie bardziej aktualna: stackoverflow.com/a/15229477/163461
David

1
@Jonik Całkowicie się zgadzam. Ci, którzy mogą (a także wyrażają zgodę), powinni zagłosować, aby ponownie otworzyć to pytanie, aby można było je przenieść. Chyba że jakiś mod czytający to może zrobić to samo?
Fuj

Powinno to zostać przeniesione do Server Fault, jeśli nie ma innego powodu niż zezwolenie na więcej aktualnych odpowiedzi (takich jak ta, która odwołuje się do dokumentacji AWS na ten temat na docs.aws.amazon.com/AWSEC2/latest/UserGuide/ ... )
Jeromy French

Odpowiedzi:



103

Możesz powiększyć magazyn, ale nie można tego zrobić w locie. Musisz zrobić migawkę bieżącego bloku, dodać nowy, większy blok i ponownie dołączyć migawkę.

Jest to prosta solucja tutaj opiera się na wykorzystaniu narzędzi wiersza poleceń EC2 Amazona


2
Będziesz także musiał zmienić rozmiar systemu plików. Prawdopodobnie szukasz "resize2fs - ext2 / ext3 / ext4 file system resizer".
James Moore,

8
Po prostu musiałem to wygooglować. Trafiłem na to pytanie i ten film w tym samym czasie. To naprawdę świetny przewodnik, bardzo dziękuję twórcy: youtube.com/watch?v=ouYjQ3_I3BA (wszystko wymyśliłem sam, z wyjątkiem elementu zmiany rozmiaru, jak wspomniał James Moore).
Chris Allen Lane

Istnieje również sposób, aby ustawić rozmiar wolumenu EBS za pomocą AWS-SDK , najpierw wysyłając zapytanie o rozmiar wolumenu jego migawki jako jedną z elastyczności korzyści z korzystania z EBS .
Chetabahana

Możesz teraz zmienić rozmiar woluminu na żywo z konsoli AWS . Wydaje się, że działa tylko na instancjach SSD (gp2, io1), a możesz nawet przełączać się z jednego typu na drugi. Nie jestem pewien, kiedy został dodany, ale to rozwiązuje główny problem.
STRML

44

Nie możesz po prostu „wrzucić” więcej miejsca w locie, jeśli tego potrzebujesz, ale możesz zmienić rozmiar partycji za pomocą migawki.

Kroki, aby to zrobić:

  1. odmontuj głośność ebs
  2. utwórz migawkę ebs
  3. dodaj nową objętość z większą przestrzenią
  4. odtwórz tablicę partycji i zmień rozmiar systemu plików
  5. zamontuj nowy wolumin ebs

Spójrz na http://aws.amazon.com/ebs/ - EBS Snapshot:

Migawki mogą być również używane do tworzenia instancji wielu nowych woluminów, zwiększania rozmiaru wolumenu lub przenoszenia woluminów w strefach dostępności. Po utworzeniu nowego wolumenu istnieje możliwość utworzenia go na podstawie istniejącej migawki Amazon S3. W tym scenariuszu nowy wolumin zaczyna się jako dokładna replika oryginalnego woluminu. Opcjonalnie określając inny rozmiar wolumenu lub inną Strefę Dostępności, ta funkcjonalność może posłużyć jako sposób na zwiększenie rozmiaru istniejącego wolumenu lub utworzenie duplikatów wolumenów w nowych Strefach Dostępności. Jeśli zdecydujesz się użyć migawek do zmiany rozmiaru woluminu, musisz upewnić się, że system plików lub aplikacja obsługuje zmianę rozmiaru urządzenia.


22

Podążyłem za wszystkimi odpowiedziami, wszystkim brakuje czegoś z całym szacunkiem.

Jeśli wykonasz te kroki, możesz zwiększyć wolumen EBS i zachować dane (nie dotyczy to woluminu głównego). Dla uproszczenia sugeruję użycie konsoli AWS do tworzenia migawki, ... możesz to zrobić również za pomocą narzędzi wiersza poleceń AWS.

Nie dotykamy tutaj głośności podstawowej.

Przejdź do konsoli AWS:

  1. Zamknij instancję (potrwa to tylko kilka minut)
  2. Odłącz wolumen, który planujesz rozwijać (powiedz / dev / xvdf)
  3. Utwórz migawkę woluminu.
  4. Utwórz nowy wolumin o większym rozmiarze, korzystając z właśnie utworzonej migawki
  5. Dołącz nowy wolumin do swojej instancji
  6. Uruchom swoją instancję

SSH do Twojej instancji:

 $ sudo fdisk -l

To daje coś takiego:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

Zapisz wartości Start i Id . (w tym przypadku 2048 i 83)

Używając fdisk, usuń partycję xvdf1 i utwórz nową, która zaczyna się dokładnie od tego samego bloku (2048). Nadamy mu ten sam identyfikator (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Ten krok jest dobrze wyjaśniony tutaj: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Prawie gotowe, musimy tylko zamontować wolumen i uruchomić resize2fs:

Zamontuj głośność ebs: (mój jest w / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

i zmień jego rozmiar:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

Gotowe! Służy df -hdo weryfikacji nowego rozmiaru.



5

Możesz to teraz zrobić za pomocą konsoli zarządzania AWS. Proces jest taki sam, jak w przypadku innych odpowiedzi, ale nie musisz już przechodzić do wiersza poleceń.


7
Czy możesz opublikować więcej informacji o tym, jak to się robi za pomocą konsoli internetowej? Konsola może być w stanie zmienić rozmiar woluminu, ale jak radzi sobie ze zmianą rozmiaru partycji wewnątrz woluminu, zwłaszcza jeśli jest to typ XFS, BRTFS itp.?
Riyad Kalla

Powinien to być komentarz, ponieważ tylko wzmacnia istniejące odpowiedzi i sam w sobie nie dodaje niczego nowego.
Fuj

1
Instrukcje dotyczące korzystania z konsoli internetowej są dostępne tutaj: docs.aws.amazon.com/AWSEC2/latest/UserGuide/ ...
Dan Osipov

4

BTW: Podobnie jak w przypadku dysków fizycznych, może być przydatne użycie LVM; dawny:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

Duża zaleta: umożliwia dynamiczne dodawanie (lub usuwanie) przestrzeni.

Można go również łatwo przenosić między instancjami.

Ostrzeżenia:

  • należy go skonfigurować z wyprzedzeniem
  • prosta konfiguracja JBOD oznacza utratę wszystkiego, jeśli stracisz jeden „dysk”

4

Moje kroki:

  1. zatrzymaj instancję
  2. znajdź wolumin ebs dołączony do instancji i utwórz jego migawkę
  3. utwórz nowy wolumen z większą przestrzenią dyskową przy użyciu powyższej migawki. Niestety interfejs użytkownika konsoli aws do tworzenia migawki jest prawie bezużyteczny, ponieważ wyświetla wszystkie migawki w aws. Korzystanie z narzędzia wiersza poleceń jest o wiele łatwiejsze, na przykład:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. odłącz istniejący wolumen ebs (mniejszy) od instancji

  5. dołącz nowy (większy) wolumin do instancji i upewnij się, że jest podłączony do tego samego urządzenia, którego oczekuje instancja (w moim przypadku jest to / dev / sda1)
  6. uruchom instancję

Gotowe!

Oprócz powyższego kroku 3 możesz zrobić wszystko za pomocą konsoli zarządzania aws.

UWAGA, jak wspomniano tutaj:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

urządzeniem w Twojej instancji ec2 może być / dev / xv *, podczas gdy konsola internetowa aws informuje, że jest to / dev / s *.


2
Od listopada 2013 r. Możesz wybrać nowo utworzoną migawkę, a następnie po prostu kliknąć „Utwórz wolumin” u góry strony. Spowoduje to utworzenie woluminu z migawki i możesz uniknąć wykonywania kroku 3 powyżej z wiersza poleceń.
Matt C

1
Jedna uwaga jest taka, że ​​powinieneś upewnić się, że tworzysz wolumin w tej samej strefie dostępności co instancja, w przeciwnym razie nie będziesz mógł go dołączyć.
codecowboy

3

Użyj polecenia „diskpart” dla systemu operacyjnego Windows, spójrz tutaj: Użyj http://support.microsoft.com/kb/300415 Poniżej przedstawiono kroki, które wykonałem dla dysku innego niż root (podstawowy, a nie dynamiczny)

Po wykonaniu migawki, rozmontowaniu starego wolumenu EBS (powiedzmy 600 GB) i utworzeniu większego wolumenu EBS (powiedzmy 1 TB) i zamontowaniu tego nowego woluminu EBS - musiałbyś powiadomić system Windows o zmianie rozmiaru (z 600 GB na 1 TB), więc w wierszu poleceń (uruchom jako administrator)

diskpart.exe

wybierz dysk = 9

wybierz głośność = Z

poszerzać

[mój dysk 9, oznaczony jako Z, był woluminem o rozmiarze 1 TB utworzonym z migawki ec2 o rozmiarze 600 GB - chciałem zmienić rozmiar 600 GB na 1 TB, więc mogłem wykonać powyższe kroki, aby to zrobić.]


Działał świetnie dla mojego systemu Win Server 2003 R2 Datacenter. Dzięki za wskazówkę!
Jeff Hay

Świetny post, bardzo mi pomógł!
user1326293

0

Bardzo polecam Logical Volume Manager (LVM) dla wszystkich woluminów EBS, jeśli twój system operacyjny go obsługuje. Dystrybucje Linuksa zazwyczaj to robią. Jest to świetne z kilku powodów.

  1. Zmiana rozmiaru i przenoszenie woluminów logicznych może odbywać się na żywo, więc zamiast całej migawki offline, która wymaga przestoju, możesz po prostu dodać, utworzyć kolejny większy wolumin EBS, dodać go do puli LVM jako wolumin fizyczny (PV), przenieść wolumin logiczny (LV), usuń stary wolumin fizyczny z puli i usuń stary wolumin EBS. Następnie po prostu zmieniasz rozmiar woluminu logicznego i rozmiar systemu plików na nim. Nie wymaga to żadnych przestojów!

  2. Oddziela pamięć masową od urządzeń „fizycznych”. Przenoszenie partycji między urządzeniami bez przestojów lub zmian w punktach montowania / fstab jest bardzo przydatne.

Byłoby miło, gdyby Amazon umożliwił zmianę rozmiaru wolumenów EBS w locie, ale w przypadku LVM nie jest to konieczne.


0

jeśli woluminem głównym jest system plików xfs, uruchom to polecenie xfs_growfs /


Potrzeba nieco więcej szczegółów, aby można było uznać ją za kompletną i użyteczną odpowiedź.
Fuj
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.