Изменение размера файловой системы для увеличения пространства на экземпляре AWS EC2.

Вопрос или проблема

Я создал экземпляр AWS EC2 и использую этот экземпляр для обслуживания базы данных. В настоящее время я пытаюсь выполнить некоторую постобработку в своей базе данных (путем выполнения запросов к базе данных партиями), но у меня это не получается, потому что я получаю сообщение об ошибке Postgres, указывающее, что у меня закончилась память: sqlalchemy.exc.OperationalError: (psycopg2.errors.DiskFull) could not write to file "base/pgsql_tmp/pgsql_tmp5592.0": No space left on device.

Моя текущая файловая система выглядит следующим образом (вывод команды df -h):

Filesystem        Size  Used Avail Use% Mounted on
devtmpfs          4.0M     0  4.0M   0% /dev
tmpfs              63G  1.1M   63G   1% /dev/shm
tmpfs              25G  512K   25G   1% /run
/dev/nvme0n1p1    8.0G  7.4G  615M  93% /
tmpfs              63G  4.0K   63G   1% /tmp
/dev/nvme0n1p128   10M  1.3M  8.7M  13% /boot/efi
tmpfs              13G     0   13G   0% /run/user/1000

Я заметил, что моя файловая система /dev/nvme0n1p1 в основном используется, но у меня много свободного места в /dev/shm и /tmp. Моя проблема может быть решена, если я освободю место в этих файловых системах и перенесу его в /dev/nvme0n1p1? Если да, то как это сделать?

Спасибо!

Ответ или решение

Увеличение пространства файловой системы в экземпляре AWS EC2 – шаги и рекомендации

Ваша проблема с нехваткой места на диске, особенно в случае с PostgreSQL, требует увеличения дискового пространства на корневом разделе (/dev/nvme0n1p1) вашего экземпляра AWS EC2. Вот как вы можете решить эту задачу:

1. Анализ текущих разделов и использования

Ваш экземпляр EC2 демонстрирует заполненность корневого раздела на 93%, что вызывает проблемы при записи временных данных PostgreSQL. Хотя tmpfs показывает наличие свободного пространства, оно относится к памяти, а не к постоянному хранилищу, и, следовательно, не может быть использовано для расширения вашего корневого раздела.

2. Увеличение размера EBS-тома

Для увеличения пространства на корневом разделе, сначала необходимо увеличить размер соответствующего EBS-тома:

  • Шаг 1: Перейдите в консоль AWS EC2 и выберите ваш экземпляр.
  • Шаг 2: Найдите соответствующий EBS-том, который используется вашим nvme0n1p1 устройством.
  • Шаг 3: Увеличьте размер тома. Рекомендуется увеличить его до размера, достаточного для текущих и будущих нужд, например, до 20G.

3. Изменение размеров и повторное сканирование

После увеличения EBS-тома, вам необходимо уведомить операционную систему о новых размерах:

  • Шаг 1: Используйте команду lsblk для проверки размеров дисков.
  • Шаг 2: Выполните повторное сканирование (ресканирование) устройства с помощью команды:
    sudo growpart /dev/nvme0n1 1

4. Расширение файловой системы

Теперь, когда пространство на EBS-томе увеличено, вы должны расширить файловую систему:

  • Шаг 1: Используйте соответствующую команду расширения файловой системы. Если у вас используется ext4, выполните:
    sudo resize2fs /dev/nvme0n1p1

5. Финальная проверка

Проверьте результат, снова посмотрев на использование дискового пространства:

df -h

Это должно показать увеличенное пространство на вашем корневом разделе.

Важные замечания

  • Создайте резервную копию ваших данных перед выполнением операций на диске.
  • Убедитесь, что ваш EC2 экземпляр поддерживает динамическое изменение размера разделов на работающей машине.
  • Будьте готовы к кратковременному прерыванию службы во время выполнения этих операций.

Следуя этим шагам, вы эффективно освободите дополнительное пространство на вашем экземпляре AWS EC2, что позволит PostgreSQL функционировать без ошибок "No space left on device."

Оцените материал
Добавить комментарий

Капча загружается...