Як використовувати сховище "Магазин екземплярів" в Amazon EC2?


18

За даними AWS, я отримав 850 Гб пам’яті з сервером Medium EC2. Але коли я створю AMI Amazon Linux AMI, я не можу використовувати надані 850 ГБ.

Під час його створення в конфігурації пристрою зберігання в магазинах інстанцій зберігається, що його пристрій буде розташований у / dev / sdb, але коли я запускаю VM, я просто знаходжу / dev / sda1.

Чи можете ви мені допомогти у встановленні цього сховища? Дякую

Крім того, коли Amazon стверджує, що зберігання екземплярів не є безпечним для довготривалого використання та має віддавати перевагу використанню EBS, то в чому сенс цих 850 ГБ?

Спасибі


Який конкретний тип екземпляра ви намагаєтеся запустити? c1.medium? m1.medium? щось ще?
Ерік Хаммонд

1
Ось два чудові ресурси для вивчення зберігання примірників на EC2: docs.amazonwebservices.com/AWSEC2/latest/UserGuide/… та docs.amazonwebservices.com/AWSEC2/latest/UserGuide/…
Ерік Хаммонд

Відповіді:


10

Використання локального сховища екземпляра, яке не є стійким при зупинці примірника, досить просте: це дуже великий шматок простору, корисний для перехідних речей. Вони є ідеальною ціллю для монтажу /tmpта надзвичайно корисні, якщо ваш сервер швидко обробляє дуже великі файли.

Наприклад, якщо ви створювали групу екземплярів, щоб зробити голосовий текст перекладу завантажених відеофайлів, зберігання екземпляра-локального було б лише тим, до чого потрібно покласти вбудовані файли. Він може бути там кілька годин, поки файл обробляється, але як тільки це буде зроблено, його можна буде видалити, а ще один підняти. Вам не потрібно EBS для цього, і це набагато дешевше , щоб запустити цей вид зберігання з примірника-місцевої , а не EBS.

Локальний сховище для інстанцій призначене для використання в якості місця для подряпин для запущеної обробки, а не для довготривалого зберігання. Якщо ваше навантаження не використовує місця для подряпин ні для чого, або що йому потрібно настільки мало, що не має значного значення, то це не дуже підходить для вас.


16
Ephemeral storage or instance-store НЕ зберігається через перезавантаження екземпляра! Він не зберігається ні через зупинку / запуск, ні на припинення, ні на деякі апаратні збої. Ось стаття, яку я написав про різницю між перезавантаженням та зупинкою / запуском: alestic.com/2011/09/ec2-reboot-stop-start
Ерік Хаммонд

27

Якщо вона вже не встановлена ​​під напр. / Mnt і якщо у неї вже не створена файлова система, то виконайте такі дії:

  1. Перевірте назву пристрою

    sudo fdisk -l

  2. Зробіть каталог, куди ви хочете встановити гучність

    sudo mkdir / mnt

  3. Створіть файлову систему на своєму томі (переконайтеся, що ви вибрали правильний том, оскільки це створює нову файлову систему на томі)

    sudo mkfs.ext4 / dev / xvdj

  4. Монтувати гучність

    sudo mount -t ext4 / dev / xvdj / mnt

  5. Якщо ви хочете зберегти кріплення після напр. Перезавантаження, відкрийте / etc / fstab і додайте кріплення до нього

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

  6. Переконайтесь, що нічого не буває з Fstab, встановивши всі

    гора -а


5
Залежно від типу екземпляра, спочатку потрібно приєднати томи зберігання до примірника, використовуючи параметри відображення блоку пристрою. Якщо ви цього не зробите, ви, можливо, навіть не побачите пристрої під / dev
Ерік Хаммонд

@ Коментар EricHammond справді був відповіддю на мої пошуки - я їх ніде не бачив - навіть уfdisk -l
Пітер В. Морч

Якщо ви не бачите пристрій, спробуйте використовувати lsblk.
volker238

Ці інструкції підкреслюють гучність для мене, але спроба написати новий файл до тома дає "доступ заборонений". Я не можу розібратися, що не так у дозволах. Якісь ідеї?
MikeB

lsblk -fє найкращим способом пошуку томів диска - будь-які встановлені томи відображатимуться шляхом монтажу, і він показує мітки для томів (рекомендується використовувати UUID або мітки під час монтажу файлових систем в Linux).
RichVel

1

Я створив сценарій для Ubuntu, який можна запустити під час завантаження та після циклу запуску / зупинки, оскільки у світі AWS це дві дуже різні речі. Коли ви перезавантажуєтесь, у вас все ще є той самий ефемерний диск, і все, що вам потрібно зробити, це встановити (/ etc / fstab повинен це впоратися автоматично), але коли примірник зупиняється і перезавантажується, ви отримуєте новий неформатований ефемерний диск, для отримання якого потрібно більше любові готовий до використання. Поки ви маєте правильний запис / etc / fstab, ви можете запустити це в будь-який час, і він змонтує / відформатує пристрій за потребою. він буде приймати параметр точки монтування, але якщо це не передбачено, він буде приймати / mnt Ви можете викликати скрипт mount_ephemeral.sh і запустити як root у сервісі запуску.

#!/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

Я вважаю за краще не використовувати /mntв якості точки монтажу томів, оскільки умова полягає в тому, що /mnt/fooвикористовується для кожного тома. Якщо вам доведеться монтувати інший том у певний момент, як скажіть /mnt/bar, це означатиме, що демонтажу /mntгучності неможливо виконати під час /mnt/barмонтажу. grepНебезпечно , якщо ви використовуєте /mntі є точки монтування , такі як /mnt/foo, так як /mntможе відповідати кілька рядків - так Міць скрипта в деяких випадках встановити або МКФС неправильного диска.
RichVel

Він не знайде інших подібних кріплення, оскільки він повинен точно відповідати. Проблема полягає в тому, що пробіл, який використовується у вашому fstab, повинен відповідати вказаному значенню в грепі. Я оновив для використання, \bале YMMV. Це /mntпросто за замовчуванням, який ви можете змінити, і це лише приклад. Крім того, ви можете передати параметр до сценарію, і він замість цього використовуватиме точку монтування. Я збираюся додати, set -eщоб будь-який збій припинив весь сценарій
DanJGer

виправлення: змінено з \bна\s
DanJGer

0

Монтаж сховища примірника також залежить від зображення:

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

Під час запуску екземпляра відображення блоку пристроїв за замовчуванням відображається вказаним AMI. Якщо вам потрібні додаткові томи зберігання примірників, ви повинні додати їх до екземпляра під час його запуску. Зауважте, що ви також можете опускати пристрої, вказані в картографічному блоці AMI.

У деяких зображеннях будуть використані всі доступні ресурси.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.