Переместить папку tmp из раздела '/' в смонтированный раздел (/ mnt)

15

У меня есть экземпляр Amazon EC2, который дал мне маленький раздел / / и большой раздел / mnt. Поэтому я переместил мой каталог данных mysql в раздел / mnt. Однако сейчас у меня возникают проблемы с тем, что в папке / tmp не хватает места в моих массовых запросах на соединение, и я также пытаюсь переместить / tmp в / mnt / tmp. Я попытался сделать это с помощью символической ссылки, но это привело к невозможности запуска службы mysql.

Посоветуйте, пожалуйста, как перенести хранилище / tmp в / mnt (/ dev / xvdb)

Programster
источник

Ответы:

15

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

sudo mount -B /tmp /mnt/tmp
Braiam
источник
Фантастический! Легко, когда вы знаете, как.
Programster
4
Одна вещь, о которой вы должны знать, это то, что раздел / mnt является эфемерным хранилищем. Если вы остановите свой экземпляр (или он ухудшится, а AWS переместит его), данные в / mnt будут потеряны. Рекомендуется (особенно для MySQL) смонтировать том EBS и использовать его для данных, которые вы хотите сохранить.
Кевин Уиллок
@KevinWillock Я думаю, что его /mnt(по размеру) является постоянным (или он установил что-то там, что является постоянным), так как он на самом деле сохраняет данные там. Кстати, вы можете захотеть пинговать его (используя @), так как я почти уверен, что его не пинговали.
Брайам
@Braiam Я не получил pinged, но проверил эту тему снова по счастливой случайности. Кевин был бы прав, что это эфемерное хранилище. Я знаю, что это очень небезопасно, но сделано специально для тестирования производительности использования локального хранилища. Если бы мне пришлось использовать такую ​​систему, я бы обязательно скопировал ее на том EBS или сам RDS и сделал бы резервную копию оттуда. Я хорошо осведомлен о рисках.
Programster
1
Нужно ли выполнять эту команду при каждой перезагрузке?
hithwen
3

Перемещение раздела "/ tmp" требует дополнительных действий, которые не предлагаются в этом неправильном ответе /ubuntu//a/371628/298086 .

Перемещение данных подразумевает удаление данных из исходного раздела после его клонирования в целевой раздел, что совершенно не выполняется подключением.

РЕКОМЕНДАЦИЯ : Прочтите этот замечательный пост, если вы хотите понять, что такое bind mount /unix//a/198591

Если вы попытаетесь выбрать правильный вариант монтирования («MOVE», а не «bind»):

mount -M /tmp /mnt/tmp

Я убежден, что он не сможет сообщить о том, что « tmp является общей точкой монтирования » (что действительно означает « я не могу переместить точку монтирования, если все еще использую ее как процесс »)

«Ответ», который вы ищете, может потребовать остановки и перезапуска служб с использованием / accessing / tmp, прежде чем перемещать контент.

Вы можете перечислить эти службы / процессы, выполнив:

lsof +D /tmp/

Таким образом, после того, как вы перечислили, что на самом деле получает доступ / использует /tmp, вы можете действительно решить, «как действовать».

На мой взгляд, самый безопасный путь проходит мимо

  1. Остановка всех служб, обращающихся к / tmp (если вы можете это сделать)
  2. Полное копирование содержимого / tmp на новое место
  3. Редактирование / etc / fstab и изменение физического местоположения точки монтирования / tmp (независимо от того, является ли привязка или монтирование устройства)
  4. Перезапуск системы для выполнения перемонтирования

Но есть и другой способ, который не требует перезагрузки системы, но не так безопасен, как предыдущий. Он описан здесь и заключается в umounting /tmpв ленивой образом, что должно позволить вам выполнитьmount -M

Эти две ссылки будут полезны для вашего запроса:

xsubira
источник