Как увеличить размер диска на работающем экземпляре на Amazon EC2

13

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

Прочитав руководства, можно создать новый диск, перенести данные, отключить диск подкачки экземпляра и снова включить его. Такой подход звучит немного рискованно, потребует некоторого времени простоя. Интересно, есть ли лучший подход?

googletorp
источник

Ответы:

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
@Tensibai извините, я не понимаю, что означает "блокировка физических разделов для горячего изменения размера". Вы хотите сказать, что изменение размера тома с помощью API-интерфейсов AWS заблокирует запись / чтение тома?
Евгений
Нет, я имею в виду, что диск будет больше, но раздел на нем останется прежним, вы должны использовать его fdiskдля изменения размера, что касается корневого раздела, обычно вы не можете записать таблицу разделов диска, пока он смонтирован, и Вы не можете размонтировать его. Вам придется перезагрузиться в один момент :)
Tensibai
Правильно, если вы используете несколько разделов перед добавлением слоя файловой системы - тогда размер разделов нужно будет сначала изменить. Спасибо, я постараюсь добавить это в ответ, цитируя какое-то руководство о том, как это делается.
Евгений
Вопрос упоминается без простоев. Однако, чтобы изменить размер корневого тома, кажется, вам нужно будет отключить экземпляр, чтобы выполнить этот шаг?
Крис Стрычински
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 для разных точек монтирования, это позволит расширить необходимое пространство, а затем изменить размер томов на линии без перерыва.

Tensibai
источник
0

Масштабирование хранилища файловой системы ZFS Zero Downtime в AWS (или в другом месте)

укрупняются

  1. Установите ZFS на EC2.

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

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

DOWNSIZE

  1. Создайте новый zpool на новом EBS, достаточно большом для хранения сжатых данных. (пока не нужно монтировать или даже на той же EC2)
  2. снимок старый слишком большой зпул
  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
Майкл Перейра
источник