Не вистачає місця на диску '/' в екземплярі AWS


28

Я запускаю екземпляр Ubuntu 11.04 для свого веб-сервера на хмарі AWS, тепер я отримую, що в / розділі мого сервера немає місця на диску . df -ah сказати це

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.8G   97M  99% /
proc                     0     0     0   -  /proc
none                     0     0     0   -  /sys
fusectl                  0     0     0   -  /sys/fs/fuse/connections
none                     0     0     0   -  /sys/kernel/debug
none                     0     0     0   -  /sys/kernel/security
none                  3.7G  112K  3.7G   1% /dev
none                     0     0     0   -  /dev/pts
none                  3.7G     0  3.7G   0% /dev/shm
none                  3.7G   80K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdb             414G   16G  377G   4% /mnt

Тепер я спробував це, щоб отримати трохи додаткового місця на / розділ

  • Очистіть усі файли журналу для Apache.
  • Видалено всі непотрібні файли з сервера.
  • Очищення домашнього каталогу.

Але все одно мені не вистачає місця. Цей тип екземпляра m1.vege з 8 ГБ EBS. Тепер я отримую у мене достатньо місця на диску в / dev / xvdb .

Чи є спосіб я виділити деякий диск на / з / dev / xvdb або будь-який інший спосіб. Будь ласка, підкажіть мені можливе рішення для цього. Чи можливо використовувати той же розділ / dev / xvdb з іншим екземпляром.


1
Оновлення 2017 року: Amazon дозволяє змінити розмір ваших накопичувачів (навіть завантажувальний диск) на льоту сьогодні! дивіться мою відповідь ТА
Дмитро Шевкопляс

Відповіді:


26

Відповідь двояка.

Обхід: використання / dev / xvdb (/ mnt) для тимчасових даних

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

Рішення: змінити розмір / dev / xvda1 (/), щоб отримати бажане сховище

Це так званий Root Пристрій зберігання вашої Amazon EBS підтриманого примірника EC2, що полегшує Amazon EBS для гнучкості і міцності , зокрема, тобто дані , поставити там досить безпечно і виживають збої примірника; Ви можете ще більше підвищити гнучкість та довговічність, роблячи звичайні знімки обсягу EBS, які зберігаються на Amazon S3 , що відрізняється загальновідомим показником міцності на 99,999999999%.

Цей знімок дозволяє по черзі вирішити свою проблему, якщо ви зможете замінити поточний кореневий накопичувач EBS 8 Гб (/ dev / xvda1) на один або більше таких розмірів, скільки ви хочете. Процес описаний у чудовій статті Еріка Хаммонда Про розмір кореневого диска на екземплярі завантажуваного екземпляра EBS EC2 :

Поки ви не працюєте з невеликим часом простою на екземплярі EC2 (кілька хвилин), можна змінити кореневий об'єм EBS з більшою копією, не потрібно запускати новий екземпляр.

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

Більшість викладених кроків можна виконати і через консоль управління AWS , що дозволяє уникнути роботи з інструментами API Amazon EC2 API ; це зводиться до:

  • зупинити (не припиняти!) екземпляр EC2
  • від'єднати об'єм EBS від зупиненого екземпляра
  • створити знімок окремого тома EBS
  • створити новий (більший) об'єм EBS із створеного знімка
  • приєднайте новий об'єм EBS до екземпляра EC2 ( Важливо ! Якщо це ваш кореневий пристрій, переконайтесь, що він назвав його саме як кореневий пристрій екземпляра, як було зазначено, наприклад (/ dev / sda1) або (/ dev / xdva1) інакше він буде приєднаний як блок пристрою, а не кореневий пристрій, і ви не зможете запустити екземпляр, оскільки для цього екземпляра не буде вказано кореневого пристрою.)
  • SSH в запущений екземпляр і підтвердьте, що все в порядку через df -ah
    • якщо ваша система не змінила розмір файлової системи автоматично, вам потрібно буде зробити це вручну, як це пояснено в статті Еріка

Удачі!


Альтернатива

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

Наприклад, ми використовуємо кілька досить важких програм Java, кожне з яких займає 1-2 Гб пам’яті в кожній версії; щоб полегшити версії модернізації і взагалі бути в змозі перемістити ці додатки в різних випадках на свій розсуд, я розмістив їх на спеціальних томів EBS кожен, встановити їх до примірника і м'якою зв'яжіть їх у потрібне місце, наприклад , як правило , /var/lib/<app>/<version>і /usr/local/<app>/<version>.

За допомогою цього методу в даний час ми використовуємо екземпляри EC2, де зберігання кореневого пристрою все ще є за замовчуванням у розмірі 8 Гб (як і у вас), але іноді до 8 томів EBS з різними розмірами (1-15 ГБ), також додається.

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


Я використовую / dev / xvdb для того, щоб підтримувати свою базу даних розміром майже 16 Гб зараз. Один фоновий процес працює, щоб оновити її в курсі. Отже, що має бути найкращим постійним сховищем для цієї бази даних. Чи варто йти на RDS Amazon або Amazon DynamoDB. що твоя пропозиція. я запускаю PHP-сервер у цьому випадку.
Сумма

2
@Sumant: Це не добре, тож ви зробили саме те, що небезпечно, а саме: поклавши дані, які потрібно зберігати на диску, який, в основному, може відійти в будь-який час (зазвичай це не так, покладіть, слід так ставитись до цього)? Я сподіваюся , що я не бджола в оману в зв'язку з цим - будь ласка , будьте особливо обережні при пом'якшуючих це для того , щоб втрати даних , уникайте під час процесу (ви робите резервні копії бази даних незалежно, чи не так чи що?)!
Steffen Opel

@Sumant: Що стосується вашого питання - Вам зовсім не потрібно змінювати архітектуру додатків (або БД для цього питання), щоб усунути проблему зберігання, просто змініть розмір кореневого диска або додайте більше томів EBS, як було запропоновано. Якщо ви хочете вдосконалити та роз'єднати також рівень свого БД, що в принципі є хорошою справою з майбутнім зростанням (але з відповідними витратами з самого початку), і якщо припустити, що ви зараз використовуєте MySQL, то Amazon RDS був би ідеальним і зручним вибором. Amazon DynamoDB вимагає повної нової архітектури додатків і застосовується лише до конкретних випадків використання.
Steffen Opel

1
@Sumant: Однак майте на увазі, що переміщення вашої БД до екземпляра RDS m1.small може фактично демонструвати більш низьку продуктивність, ніж ваш поточний MySQL на EC2, який працює m1.large з відповідними перевагами для процесора та вводу / виводу - чи це стосується, Однак залежить від вашого поточного навантаження в БД. Звичайно, ви можете використовувати і більші екземпляри RDS, щоб виправити це, але ваші витрати відповідно зростуть.
Steffen Opel

1

Так простий спосіб встановити його, а потім встановити, щоб сказати / var / www / html / files2 /

тоді mkdir / var / www / html / files2 / website then ln -s -d / var / www / html / website / var / www / html / files2 / website


використовувати UUID для монтажу розділу за допомогою команд blkids та fdisk say '/ dev / vxds /' для створення розділу. Використовуйте командувач опівночі для переміщення файлів з F6 з однієї папки в іншу, переконайтесь, що ви вибрали правильну папку під положенням монтажу, ой, і, звичайно, вам потрібно буде 'mount -a' після додавання до fstab
Daniel Chay

0

Сьогодні у мене виникла та сама проблема, коли ви припиняєте новий екземпляр ec2 за замовчуванням EBS - 8 Гб. Ви можете змінити розмір доданого EBS, не створюючи нової інтактності, не роблячи знімків або від'єднуючи EBS. Ось три етапи, які ви можете виконати:

  1. Змініть розмір обсягу EBS
  2. Змініть розмір розділу
  3. Змінення розміру розділу Для першого кроку перейдіть до своєї консолі AWS та натисніть EBS та змініть потрібний розмір та натисніть змінити.

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

Спасибі!

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