Jak korzystać z pamięci „Instance Store Volumes” w Amazon EC2?

18

Według AWS mam 850 GB przestrzeni dyskowej na serwerze Medium EC2. Ale kiedy tworzę Amazon Linux AMI, nie mogę korzystać z 850 GB.

Podczas jego tworzenia pokazuje w konfiguracji urządzenia pamięci masowej w woluminach magazynu instancji, że jego urządzenie będzie znajdować się w katalogu / dev / sdb, ale kiedy uruchamiam maszynę wirtualną, po prostu znajduję / dev / sda1.

Czy możesz mi pomóc w montażu tego magazynu? Dziękuję Ci

Ponadto, gdy Amazon twierdzi, że przechowywanie instancji nie jest bezpieczne do długotrwałego użytkowania i powinno preferować korzystanie z EBS, to po co te 850 GB?

Dzięki

rahulg
źródło
Jaki konkretny typ instancji próbujesz uruchomić? c1.medium? m1.medium? coś innego?
Eric Hammond
1
Oto dwa świetne zasoby do nauki o przechowywaniu instancji w EC2: docs.amazonwebservices.com/AWSEC2/latest/UserGuide/... i docs.amazonwebservices.com/AWSEC2/latest/UserGuide/...
Eric Hammond

Odpowiedzi:

10

Korzystanie z lokalnej pamięci instancji, która nie jest trwała po zatrzymaniu instancji, jest dość prosta: jest to bardzo duża część miejsca przydatna do przejściowych rzeczy. Są idealnym celem do montażu /tmpi są niezwykle przydatne, jeśli Twój serwer obsługuje przejściowo bardzo duże pliki.

Na przykład, jeśli budujesz grupę instancji do tłumaczenia głosu na tekst przesłanych plików wideo, lokalna pamięć instancji będzie tylko tym, na czym chcesz umieścić pliki w toku. Plik może być dostępny przez kilka godzin podczas przetwarzania pliku, ale po zakończeniu można go usunąć i zająć inny. Nie potrzebujesz do tego EBS i dużo taniej jest uruchamiać ten rodzaj pamięci poza lokalnym instancją niż w EBS.

Lokalna pamięć instancji jest przeznaczona do wykorzystania jako miejsce na zarysowania do uruchamiania przetwarzania, a nie do przechowywania długoterminowego. Jeśli twoje obciążenie pracą nie wykorzystuje do niczego miejsca na zarysowania lub to, czego potrzebuje, jest tak małe, że nie jest znaczące, to nie jest dla ciebie odpowiednie.

sysadmin1138
źródło
16
Magazyn efemeryczny lub magazyn instancji MOGĄ trwać po ponownym uruchomieniu instancji! Nie utrzymuje się podczas zatrzymania / uruchomienia, zakończenia ani niektórych awarii sprzętowych instancji. Oto artykuł, który napisałem o różnicy między restartem a stop / start: alestic.com/2011/09/ec2-reboot-stop-start
Eric Hammond
27

Jeśli nie jest jeszcze zamontowany pod np. / Mnt i jeśli nie ma jeszcze utworzonego systemu plików, wykonaj następujące czynności:

  1. Sprawdź nazwę urządzenia

    sudo fdisk -l

  2. Utwórz katalog, w którym chcesz zamontować wolumin

    sudo mkdir / mnt

  3. Utwórz system plików na woluminie (upewnij się, że wybrałeś odpowiedni wolumin, ponieważ spowoduje to utworzenie nowego systemu plików na woluminie)

    sudo mkfs.ext4 / dev / xvdj

  4. Zamontuj głośność

    sudo mount -t ext4 / dev / xvdj / mnt

  5. Jeśli chcesz zachować mount po np. Ponownym uruchomieniu, otwórz / etc / fstab i dodaj do niego mount

    echo "/ dev / xvdj / mnt auto noatime 0 0" | sudo tee -a / etc / fstab

  6. Upewnij się, że nie ma nic złego w fstab, montując wszystko

    zamontować -a

horte
źródło
5
W zależności od typu instancji należy najpierw dołączyć woluminy magazynu instancji do instancji za pomocą opcji mapowania urządzeń blokowych. Jeśli tego nie zrobisz, możesz nawet nie zobaczyć urządzeń pod / dev
Eric Hammond
Komentarz EricHammonda był naprawdę odpowiedzią na moje poszukiwanie - nigdzie ich nie widziałem - nawet wfdisk -l
Peter V. Mørch
Jeśli nie widzisz urządzenia, spróbuj użyć lsblk.
volker238,
Te instrukcje montują dla mnie wolumin, ale próba zapisania nowego pliku w woluminie daje „odmowę dostępu”. Nie mogę ustalić, co jest nie tak z uprawnieniami. Jakieś pomysły?
MikeB
lsblk -fto najlepszy sposób na znalezienie woluminów dyskowych - wszystkie zamontowane woluminy zostaną pokazane wraz ze ścieżką montowania i pokażą etykiety woluminów (zalecane jest używanie UUID lub etykiet podczas montowania systemów plików w systemie Linux).
RichVel
1

Stworzyłem skrypt dla Ubuntu, który można uruchomić podczas rozruchu i po cyklu start / stop, ponieważ w świecie AWS są to dwie bardzo różne rzeczy. Po ponownym uruchomieniu nadal masz ten sam dysk efemeryczny i wszystko, co musisz zrobić, to zamontować (/ etc / fstab powinien to obsłużyć automatycznie), ale gdy instancja zostanie zatrzymana, a następnie uruchomiona ponownie, otrzymasz nowy niesformatowany dysk efemeryczny, który wymaga więcej miłości, aby uzyskać gotowy do użycia. Tak długo, jak masz poprawny wpis / etc / fstab, możesz go uruchomić w dowolnym momencie i odpowiednio zamontuje / sformatuje urządzenie. przyjmie parametr punktu podłączenia, ale jeśli nie zostanie podany, przyjmie / mnt Możesz wywołać skrypt mount_ephemeral.sh i uruchomić jako root w usłudze startowej.

#!/bin/sh
set -e
mountPoint=${1:-'/mnt'}
rawDevice=$(grep "\s$mountPoint\s" /etc/fstab |cut -f1)
#echo checking $mountPoint on $rawDevice
[ "$rawDevice" = "" ] && { echo -e "$mountPoint not in /etc/fstab"; exit 1; }
mountpoint -q $mountPoint
[  "$?" = "0" ] && { echo -e "$mountPoint mounted"; exit; }
hasFS=$(blkid |grep $rawDevice)
[ ! "$hasFS" = "" ] && { echo -e "$mountPoint has FS:$hasFS"; mount $mountPoint; exit; }
echo initializing $mountPoint on $rawDevice
mkdir -p $mountPoint
mkfs.ext4 $rawDevice
mount $mountPoint
chmod 777 $mountPoint
exit 0
DanJGer
źródło
Wolę nie używać /mntjako punktu montowania woluminów, ponieważ konwencja /mnt/foojest stosowana dla każdego woluminu. Jeśli musisz zamontować inny wolumin w pewnym momencie, jak powiedzmy /mnt/bar, oznaczałoby to, że odmontowania /mntwoluminu nie można wykonać, gdy /mnt/barjest on zamontowany. Jest grepto niebezpieczne, jeśli używasz /mnti istnieją punkty montowania, takie jak /mnt/foo, ponieważ /mntmogą pasować do kilku linii - więc skrypt może w niektórych przypadkach zamontować lub mkfs niewłaściwy dysk.
RichVel
Nie znajdzie innych podobnych wierzchowców, ponieważ musi dokładnie pasować. Problem polega na tym, że białe znaki używane w twoim fstab muszą odpowiadać podanej wartości w grep. Zaktualizowałem do użycia, \bale YMMV. To /mnttylko domyślna zmiana, którą możesz zmienić i to tylko przykład. Dodatkowo możesz przekazać parametr do skryptu, który użyje tego punktu montowania. Zamierzam dodać set -e, aby każda awaria kończyła cały skrypt
DanJGer
korekta: zmieniono z \bna\s
DanJGer
0

Montaż magazynu instancji zależy również od obrazu:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html

Po uruchomieniu instancji domyślne AMI mapuje urządzenie blokowe. Jeśli potrzebujesz dodatkowych woluminów magazynu instancji, musisz dodać je do instancji podczas jej uruchamiania. Należy pamiętać, że można również pominąć urządzenia określone w mapowaniu urządzeń blokowych AMI.

Niektóre obrazy będą wykorzystywać wszystkie dostępne zasoby.

Zulus
źródło