Jak zwiększyć rozmiar dysku w działającej instancji na Amazon EC2


13

Mam uruchomioną instancję konfiguracji serwera EC 2 z Ubunto. Jaki jest najlepszy sposób na zwiększenie rozmiaru dysku bez przestojów i minimalnego ryzyka?

Czytając przewodniki, jednym ze sposobów byłoby utworzenie nowego dysku, migracja danych, wyłączenie dysku wymiany instancji i włączenie go ponownie. Takie podejście wydaje się nieco ryzykowne i wymagać będzie przestoju. Zastanawiam się, czy istnieje lepsze podejście?

Odpowiedzi:


14

Amazon AWS właśnie wypuścił (13 lutego 2017 r.) Nową funkcję, która pozwala zmienić rozmiar woluminu EBS.

źródło: https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

Pozwala to zwiększyć rozmiar woluminu EBS w istniejącej instancji podczas jej działania.

Należy zauważyć, że zmiana rozmiaru woluminu nie zmienia rozmiaru systemu plików na woluminie (w przypadku większości systemów plików). Dodatkowe kroki mogą być wymagane (w zależności od systemu plików) w samym systemie operacyjnym. Na przykład resizefsw ext4systemie plików używanym obecnie przez większość systemów operacyjnych Linux.

Pełna dokumentacja AWS opisująca proces znajduje się na stronie http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

W niektórych przypadkach urządzenie blokowe zamapowało partycje i tylko wtedy jedna (lub więcej) partycji zawiera system plików. W takim przypadku należy najpierw zmienić rozmiar partycji, a dopiero potem system plików. Ten proces jest również opisany w dokumentacji .

Nowa funkcja zmiany rozmiaru „online” opisana na blogu ma zastosowanie tylko do instancji bieżącej generacji. Istnieją także inne kwestie i ograniczenia, które należy sprawdzić przed próbą zmiany rozmiaru woluminu.


Przed zmianą rozmiaru systemu plików należy również zmienić rozmiar partycji bazowej, która tak naprawdę blokuje partycje fizyczne w celu zmiany rozmiaru na gorąco.
Tensibai

@Tensibai przepraszam, nie rozumiem, co oznacza „blokowanie partycji fizycznych w celu zmiany rozmiaru”. Czy masz na myśli to, że modyfikowanie rozmiaru woluminu za pomocą interfejsów API AWS spowoduje blokowanie zapisów / odczytów w woluminie?
Evgeny

Nie, mam na myśli, że dysk będzie większy, ale partycja na nim pozostanie taka sama, musisz użyć, fdiskaby zmienić jego rozmiar, w odniesieniu do partycji głównej, zwykle nie możesz zapisać tabeli partycji dysku, gdy jest ona zamontowana, i nie możesz tego odmontować. W pewnym momencie będziesz musiał ponownie uruchomić komputer :)
Tensibai

Tak, jeśli używasz wielu partycji przed dodaniem warstwy systemu plików - najpierw trzeba zmienić rozmiar partycji. Dzięki, postaram się dodać to do odpowiedzi, cytując przewodnik, jak to zrobić.
Evgeny

Pytanie wspomniane bez przestojów. Jednak aby zmienić rozmiar woluminu głównego, musisz wykonać instancję, aby wykonać ten krok?
Chris Stryczyński

2

To, co robię (i to nie do końca odpowiada na twoje pytanie) jest następujące:

  1. Utwórz wolumin EBS i dołącz go do dokumentu instancji, który znajduje się tutaj
  2. Wykonaj ponowne skanowanie magistrali SCSI echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(może być konieczne dostosowanie numeru hosta)
  3. Utwórz wolumin fizyczny pvcreatena znalezionym nowym dysku ( fdisk -laby wyświetlić wszystkie dyski)
  4. Utwórz grupę woluminów, a następnie na niej wolumin logiczny ( vgcreatei lvcreate)
  5. Sformatuj wolumin logiczny z wybranym systemem plików
  6. tar docelowy punkt montowania, aby go przywrócić.
  7. Zamontuj ten wolumin tam, gdzie potrzebujesz nowego miejsca.
  8. Przywróć smołę w tym nowo zamontowanym miejscu.

Kroki 6 i 8 są opcjonalne, jeśli używasz nowej przestrzeni przed instalacją. Jeśli chcesz zastąpić istniejący katalog, oczywiście musisz unikać pisania tam między końcem archiwum a przywracaniem.

Możesz powtórzyć kroki od 4 do 8 dla różnych punktów montowania, co pozwala na zwiększenie potrzebnej przestrzeni, a następnie zmianę rozmiaru tych woluminów w trybie online bez zakłóceń.


0

Skalowanie pamięci systemu plików ZFS Zero Przestój na AWS (lub gdzie indziej)

wzrost

  1. Zainstaluj ZFS na EC2.

    http://serverascode.com/2016/09/05/aws-zfs-user-data.html

  2. Stwórz zpool dla swoich danych zbiorczych za pomocą woluminu EBS.
  3. Dodaj kolejny EBS, aby uzyskać więcej miejsca do przechowywania bloków. (lub ustaw pulę autoexpand = true i po prostu powiększ swój EBS)
  4. Dodaj nowy EBS do swojego zpool, aby udostępnić miejsce. (chyba że użyłeś auto-rozwiń i zwiększyłeś rozmiar EBS)

Rozmiar mniejszy

  1. Stwórz nowy zpool na nowym EBS wystarczająco dużym, by pomieścić skurczone dane. (nie wymaga jeszcze montażu, ani nawet na tym samym EC2)
  2. migawkę starego, zbyt dużego zpool
  3. zfs-wyślij migawkę do nowego zpool
  4. promuj otrzymaną migawkę w nowej puli i zamontuj ją
  5. zniszcz stary basen
  6. zniszcz EBS starej puli

0

Po zmianie rozmiaru woluminu EBS, oto co właśnie wykonałem, gdy potrzebowałem rozszerzyć pulę ZFS:

parted -l # Get the list of partitions 
parted /dev/xvdf rm 9 # Remove the buffer partition
parted /dev/xvdf resizepart 1 100% # Resize the partition
zpool online -e <zfs partition name> /dev/xvdf # Expand the zpool and the filesystem it holds
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.