Як збільшити розмір диска на запущеному екземплярі на Amazon EC2


14

Я отримав запущений екземпляр налаштування сервера EC 2 з Ubunto. Який найкращий спосіб збільшити розмір диска без простоїв і мінімального ризику?

Читаючи посібники, одним із способів було б створити новий диск, перенести дані, вимкнути диск обміну екземплярами та знову включити його. Такий підхід звучить трохи ризик і вимагатиме певного простою. Цікаво, чи є кращий підхід?

Відповіді:


14

Amazon AWS щойно випустив (13 лютого 2017 року) нову функцію, яка дозволяє змінити розмір гучності EBS.

джерело: https://aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

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

Важливо зауважити, що зміна розміру гучності не змінює розмір файлової системи в обсязі (для більшості файлових систем). Можуть знадобитися додаткові кроки (залежно від файлової системи) в самій операційній системі. Наприклад, resizefsв ext4файлової системі використовується більшістю ОС Linux сьогодні.

Повну документацію з AWS, що описує процес, можна знайти на веб-сторінці http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

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

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


Перед тим як змінити розмір файлової системи, вам доведеться також змінити розмір базового розділу, який дійсно блокує фізичні розділи для отримання гарячого розміру.
Тенсібай

@Tensibai Вибачте, я не розумію, що означає "блокування фізичних розділів для гарячого розміру". Ви маєте на увазі, що зміна розміру гучності за допомогою API AWS заблокує запис / читання до тома?
Євгеній

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

Правильно, якщо ви використовуєте кілька розділів перед тим, як додати рівень файлової системи, - тоді спочатку потрібно змінити розміри розділів. Дякую, я спробую додати це до відповіді, цитуючи деякий посібник про те, як це робиться.
Євгеній

Питання, згадане без простоїв. Однак, щоб змінити розмір кореневого тома, вам здається, вам потрібно буде зняти примірник, щоб виконати цей крок?
Кріс Стричинський

2

Що я роблю (а це не зовсім відповідає на ваше запитання), це наступне:

  1. Створіть EBS-том і додайте його до документа екземпляра тут
  2. Перегляньте шини scsi echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(можливо, вам доведеться адаптувати номер хоста)
  3. Створіть фізичну гучність pvcreateна новому знайденому диску ( fdisk -lщоб перерахувати весь диск)
  4. Створіть групу томів, а потім логічний том на ній ( vgcreateі lvcreate)
  5. Відформатуйте логічний том з потрібною файловою системою
  6. tar цільову точку кріплення для відновлення.
  7. Монтуйте цей об'єм там, де вам потрібно новий простір.
  8. Відновіть дьоготь в цей нещодавно змонтований простір.

Кроки 6 та 8 необов’язкові, якщо ви використовуєте новий пробіл перед тим, як щось встановити. Якщо ви хочете замінити існуючий каталог, вам очевидно потрібно уникати чогось там між кінцем архіву та відновленням.

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


0

Масштабування файлової системи ZFS Zero Downtime масштабування на AWS (або в іншому місці)

збільшити розмір

  1. Встановіть ZFS на EC2.

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

  2. Створіть пул для своїх об'ємних даних, використовуючи об'єм EBS.
  3. Додайте іншу EBS, щоб отримати більше блокового сховища. (або встановіть пул autoexpand = true і просто виростіть свою EBS)
  4. Додайте нову EBS у свій zpool, щоб зробити доступним простір. (якщо ви не використовували автоматичне розгортання та збільшення розміру EBS)

Зменшення розміру

  1. Зробіть новий zpool на новій EBS досить великою для зберігання скорочених даних. (його ще не потрібно монтувати або навіть на одному EC2)
  2. знімок старого занадто великого zpool
  3. zfs - надішліть знімок до нового zpool
  4. рекламуйте отриманий знімок у новому басейні та змонтуйте його
  5. знищити старий басейн
  6. знищити EBS старого басейну

0

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