Становится ещё хуже, но, возможно, это ближе к истинной проблеме… Исходя из гипотезы, что мне нужно больше места на диске, я создал новый экземпляр из своего образа, на этот раз с 100 ГБ вместо предыдущих 50 ГБ. (Резервные копии занимают по 5 ГБ каждая и хранятся в S3.) На этот раз я получил явную ошибку: «No space left on device» (Место на устройстве закончилось). Однако команда df показывает огромное количество свободного места.
> [2019-11-29 22:42:58] Убедимся, что каталог /var/www/discourse/tmp/restores/default/2019-11-29-224258 существует...
> [2019-11-29 22:42:58] Загрузка архива во временный каталог...
> [2019-11-29 22:45:46] Распаковка архива, это может занять некоторое время...
> [2019-11-29 22:51:46] Файл метаданных для извлечения отсутствует.
> [2019-11-29 22:51:46] Проверка метаданных...
> [2019-11-29 22:51:46] Текущая версия: 20191129144706
> [2019-11-29 22:51:46] Восстанавливаемая версия: 20191108000414
> [2019-11-29 22:51:46] Извлечение файла дампа...
> [2019-11-29 22:53:47] ИСКЛЮЧЕНИЕ: No space left on device @ io_write - /shared/tmp/restores/default/2019-11-29-224258/dump.sql
> [ec2-user@ip-172-31-47-237 discourse]$ df / -h
> Файловая система Размер Использовано Доступно Использ. Точка монтирования
> /dev/xvda1 99G 28G 71G 28% /
Интересно, что в указанном каталоге ничего нет:
> /var/www/discourse# ls /shared/tmp/*
> /shared/tmp/backups:
> < пусто >
> /shared/tmp/restores:
> < пусто >
Неужели это проблема с файлом подкачки? Экземпляр EC2 имеет тип t2.small с 2 ГБ оперативной памяти, поэтому я давно создал файл подкачки на рабочем форуме. Предполагаю, что файл подкачки был скопирован на новый экземпляр. Я не эксперт, но считаю, что файл подкачки существует, так как система не позволила мне создать новый, и потому что:
> /var/www/discourse# swapon -s
> Имя файла Тип Размер Использовано Приоритет
> /swapfile файл 2097148 1024 -2