jak mogę dowiedzieć się, która część mojej pamięci ec2 jest ulotna


11

To może być głupie pytanie, przepraszam za moją ignorancję.

Mam instancję działającą w następujący sposób: Konsola AW

Czy rootowanie: EBS oznacza, że ​​cały mój system działa na EBS?

Skonfigurowałem tutaj apache i perlową aplikację, wszystkie moje konfiguracje i pliki nie znikną, prawda?

Skąd mam wiedzieć, co działa na efemerycznym magazynie, a co na EBS? Po kliknięciu instancji w konsoli zarządzania i przejrzeniu szczegółów u dołu wyświetli się komunikat: EBS Optimized: falseCo to dokładnie znaczy?

Oto jak wygląda moja pamięć:

[ec2-user@<MY_IP> ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  1.7G  6.2G  22% /
tmpfs                 298M     0  298M   0% /dev/shm

[ec2-user@<MY_IP> ~]$ mount
/dev/xvda1 on / type ext4 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

2
Instancja t1.micro nie ma żadnego efemerycznego magazynu, ma tylko m1.small lub wyższy.
numer 5

Ach miło. Nie wiedziałem tego. Nic dziwnego, że nie widzę żadnych opcji.
gideon

Odpowiedzi:


4

Urządzenie root to twoje „/”. W tym przypadku jest to / dev / xvda1 i dysk EBS.

Urządzenia efemeryczne to (jak wiem):

  • sdb (xvdb)
  • sdc (xvdc)
  • sdd (xvdd)
  • sde (xvde)

Zawsze możesz sprawdzić, które urządzenia są dyskami EBS, korzystając z AWS UI: EC2 -> Instancje -> [wybierz swoje] -> Blokuj urządzenia


Niesamowite. Dzięki :) Co to wszystko sysfs1, devpta co nie.
gideon

1
tmpfs jest podobny do ramfs i pozwala przechowywać pliki w szybkiej pamięci RAM. devpts i sysfs to „wirtualne” systemy plików linuksowe, które zapewniają dostęp do niektórych danych jądra. Możesz sprawdzić więcej w Google - jest o nich wiele artykułów.
Tomasz Olszewski

xvda1 Xvdd xvdc xvdbTo są wolumeny EBS. Jak możesz powiedzieć, że są ulotne?

3
Powyższa odpowiedź jest nieprawidłowa i nie powinna być sprawdzana jako „odpowiedź”
Andrew S

To jest źle!!
eyeApps LLC,

13

Urządzenia efemeryczne i ebs mogą przyjmować dowolną literową nazwę pliku urządzenia, więc nie polegaj wyłącznie na nazwie urządzenia. Nazwa urządzenia jest ważna przy ustalaniu, czy jest efemeryczna, czy nie, jak nakreślę poniżej. Poleganie na nazwie punktu montowania ze słowami „efemeryczny” lub „ebs” również nie jest wiarygodne.

Chociaż niektóre z tych czynności można wykonać za pomocą graficznego interfejsu użytkownika EC2, kilka poleceń nadal musiałoby być uruchamianych na samym serwerze, więc tutaj podaję tylko metodę „całego wiersza poleceń”. Dam ci przykłady ze sklepu instancji m3.medium CentOS minimalna wersja 6.5 (tj. Efemeryczna) wspierana przez AMI.

1) Zainstaluj narzędzie wget za pomocą yum install -y wget

2) Uruchom wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ -O -

W tym przykładzie AMI wspiera sklep - dane wyjściowe dla polecenia nr 2 powyżej to:

ami ephemeral0

Dla celów porównawczych poniżej przedstawiono przykładowe dane wyjściowe z serwera CentOS wspieranego przez EBS tylko z woluminami EBS (bez dysków efemerycznych):

ami ebs2 ebs3

Wrócę do kopii zapasowej EBS z woluminami EBS później. Na razie kontynuujmy z przykładem AMI opartym na oryginalnym magazynie instancji, który pokazuje efemeryczny dysk.

Aby dowiedzieć się, który plik urządzenia jest zamapowany na efemeryczny dysk, uruchom ponownie wget, tym razem dodając nazwę efemerycznego dysku odkrytego w punkcie 2 powyżej do adresu URL:

3) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0 -O -

a w tym przykładzie dane wyjściowe to / was:

sdb

Podkreśla to mój punkt powyżej, że nie można zakładać, że / dev / sdb przez / dev / sde są urządzeniami ebs. Być może prawdą jest, że / dev / xvdb przez / dev / xvde to ebs - ale moje systemy zawsze zaczynają się od / dev / xvde1 , więc istnienie tych liter urządzeń prawdopodobnie zależy od systemu operacyjnego, regionu, AMI itp., Którego używasz. Nawiasem mówiąc, możesz uruchomić numer 3 w stosunku do nazw „ebs”, jeśli istnieją (np. ebs2), I uzyska podobne wyniki.

4) Następnie uruchom lsblk

W takim przypadku dane wyjściowe wyglądają tak:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvde1 202:65 0 8G 0 disk / xvdf 202:80 0 4G 0 disk

To podkreśla mój punkt widzenia z góry, że nie można polegać na punkcie montowania, aby powiedzieć, czy urządzenie jest efemeryczne, czy nie.

Zauważysz również, że odwzorowanie między literami woluminu urządzenia EC2 a literami odwzorowania systemu operacyjnego nie jest zgodne. Mały kawałek dobrych wiadomości tutaj jest taki, że litery dysków będą rosły w tej samej kolejności, nawet jeśli same litery nie będą pasować. Pobierzmy więc „inną” literę dysku z naszych meta-danych mapowań urządzeń. Jak widzieliśmy powyżej, były dwa mapowania urządzeń, jedno wywołane, amia drugie wywołane ephemeral0. Sprawdziliśmy już efemeryczny0, więc przyjrzyjmy się ami:

5) wget -q 169.254.169.254/latest/meta-data/block-device-mapping/ami -O -

Dane wyjściowe są następujące:

sda1

Możemy śmiało stwierdzić, że najniższa litera w odwzorowaniu systemu operacyjnego to najniższa litera odwzorowania urządzenia blokowego EC2 i od tego momentu możemy zwiększać w górę. A zatem:

/dev/sda1 = /dev/xvde1 i /dev/sdb = /dev/xvdf

Last but not least - zauważysz, że mapowanie urządzeń blokowych aminie pozwala od razu stwierdzić, czy jest ono wspierane przez EBS, czy przez Instance Store. Mamy jeszcze jedno polecenie do uruchomienia.

6) wget -q 169.254.169.254/latest/meta-data/ami-manifest-path -O -

Jestem pewien, że AMI wspierane przez EBS nie mają ścieżki manifestu, ponieważ manifest ma tylko woluminy magazynu instancji (manifest zawiera nazwy i ścieżkę segmentów pakietu AMI w S3). W przypadkach, które sprawdziłem, wynik z punktu 6 powyżej, gdy działam przeciwko i przechowuję instancję ami, jest podobny do:

someamibucketname/someamidescription/someamidescription.manifest.xml

podczas gdy # 6 jest uruchamiany przeciwko AMI wspieranemu przez EBS, otrzymujesz:

(unknown)


2

sudo lsblkpowinien dać ci kilka wskazówek. TO ZNACZY

[ec2-user@ec2-host ~]$ sudo lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdb    202:16   0   4G  0 disk /media/ephemeral0

0

Istnieją trzy sposoby sprawdzenia, czy przechowywanie EC2 jest efemeryczne.

1) Zgodnie ze zrozumieniem artykułu Instance Store i EBS, które dyskutują, dlaczego istnieją instancje, które utraciły swoje dane w przypadku zatrzymania / zakończenia.

Musisz uruchomić lsblkpolecenie linux. Przykładowe dane wyjściowe będą:

[ec2-user:ip-127.0.0.1] ~]$ lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk 
└─xvda1 202:1    0  50G  0 part /
xvdb    202:16   0   8G  0 disk /media/ephemeral0

Jeśli widzisz ephemeral0słowo kluczowe. wszystko przechowywane na dysku efemerycznym utraci dane po zatrzymaniu i ponownym uruchomieniu instancji.

2) Możesz sprawdzić typ instancji. Jeśli zauważysz, że jest przechowywany typ Twojego wystąpienia EBS only, dane zostaną zachowane po zatrzymaniu lub ponownym uruchomieniu.

wprowadź opis zdjęcia tutaj

3) Zapytaj serwer metadanych, używając:

curl 169.254.169.254/latest/meta-data/block-device-mapping/ -O -

Pamięć EBS

[ec2-user:ip-127.0.0.1] ~]$ curl 169.254.169.254/latest/meta-data/block-device-mapping/ -O -
ami
ebs2

Z efemerycznym magazynowaniem

[ec2-user:ip-127.0.0.1] ~]$ curl 169.254.169.254/latest/meta-data/block-device-mapping/ -O -
ami
ephemeral0
ephemeral1
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.