увеличение размера / tmp на экземплярах EC2

8

Я использую сервер Ubuntu на EC2 ebs, и моему приложению требуется много временного дискового пространства, выделенного в / tmp. Однако на ec2 корневой диск, который также содержит / tmp, довольно мал, около 10 ГБ. Все оставшееся дисковое пространство монтируется в / mnt. В результате мое приложение возвращает ошибки «недостаточно места на диске», потому что / tmp кажется заполненным.

Как лучше всего решить эту проблему? Одна вещь, о которой я могу думать, это создать / mnt / tmp и сделать символическую ссылку

/tmp --> /mnt/tmp

Однако я немного неохотно возиться с чем-то, что используется многими программами и инструментами Linux. Я не уверен, что каждая программа будет правильно разрешать символическую ссылку, и не уверен, как это повлияет на производительность.

Йерун
источник
2
Привязывать горы означает, что нет необходимости в символической ссылке.
Игнасио Васкес-Абрамс

Ответы:

5

С изображениями, поддерживаемыми EBS, эфемерное хранилище все еще доступно, оно просто не отображается в качестве блочного устройства по умолчанию (как в изображениях хранилища экземпляров)

Документ амазонки здесь , и есть полезная запись в блоге, здесь

В итоге: вы можете указать это отображение в командной строке при запуске образа, а затем подключить его как обычный том на /dev/sd[x]. Или, если вы свернули свой собственный AMI, вы можете запечь отображение этого AMI, чтобы все изображения, запущенные с него, имели доступ к нему с самого начала.

Симлинкинг /tmpбудет работать, но я бы не рекомендовал его в этом случае, когда используется большое количество временного хранилища. Если у вас есть доступное сопоставление устройств, вы можете подключить устройство как /tmpв /etc/fstab.

С небольшим экземпляром у вас должно быть 150 ГБ хранилища экземпляров, доступного бесплатно. Само собой разумеется, что это хранилище умирает при перезагрузке экземпляра. Если ваше использование не является временным, вам нужно создать собственный новый том EBS и смонтировать его таким образом.

SmallClanger
источник
1
Почему символическая ссылка не рекомендуется? Например, если я хочу поместить и / var / tmp, и / var / log в мое временное хранилище, я могу смонтировать хранилище как / mnt и symlink в оба каталога.
j0nes
Хорошая точка зрения. Я размышлял над этим конкретным случаем, основываясь на предположении, что ФП рассматривает символическую ссылку на основной раздел. Я уточню мой ответ.
SmallClanger
1

Вы можете привязать точку монтирования / tmp к / mnt / tmp:

sudo mount -B / tmp / mnt / tmp

hithwen
источник
2
Эти команды оглядываются назад на меня. Я думаю, что вы поменялись двумя именами каталогов.
kasperd
0

Символическое связывание, предложенное в вопросе, не является плохим решением. Но при этом необходимо соблюдать особую осторожность. Просто, чтобы объединить точные шаги, вовлеченные в установку объема, являются:

1) Создайте новый том в консоли AWS. Прикрепите это к экземпляру.

2) Отформатируйте и смонтируйте его, скажем, /mnt/vol1

3) Очистить /tmpв максимально возможной степени.

4) mkdir /mnt/vol1/tmp && mv /tmp/* /mnt/ && rmdir /tmp && ln -s /mnt/vol1/tmp /tmp

Мерфи
источник
Перемещение файлов в новый каталог не приведет к желаемому результату для любого файла, который открыт в данный момент. Вместо этого я бы перезагрузился, так как программы не могут ожидать, что файлы /tmpвыживут после перезагрузки.
kasperd