Назад | Перейти на главную страницу

Можно ли изменить точку монтирования каталога онлайн?

Предположим, у меня есть рабочий сервер с одним большим корневым разделом, на котором хранится все. Хочу поставить каталог, например /var, в отдельном разделе вместе со всеми имеющимися в нем данными. Очевидный способ копирования всех данных в новый раздел с последующим его монтированием может привести к несогласованности данных, поскольку изменения в онлайн-системе могут быть непредсказуемыми.

Я думал о чем-то вроде:

  1. Смонтируйте где-нибудь пустой раздел;
  2. Скопируйте все данные из /var в новый раздел;
  3. Начать удерживать / блокировать (ставить в очередь?) Все запросы на запись в /var;
  4. Синхронизируйте последние изменения с помощью rsync;
  5. Подключить новый раздел к /var;
  6. Освободите блокировку, сделанную на шаге 3.

Шаги 3 и 6 - это то, что я не умею делать.

Возможно ли что-то подобное без простоев? Если не без простоев, то хотя бы с непродолжительным простоем без перезагрузки сервера?

Если вы уже не создали свои файловые системы с помощью LVM (а я полагаю, что вы этого не сделали, потому что, вероятно, вы бы не спросили об этом, если бы вы это сделали), вам действительно будет сложно сделать это «онлайн». Например, в дереве / var есть много демонов с постоянно открытыми файлами журнала, вам будет сложно переместить их без перезапуска демона (ов).

Поскольку вам в значительной степени придется перезапускать систему, вы можете просто запланировать окно обслуживания и сделать это в автономном режиме в однопользовательском режиме, где это должно быть так же просто, как

  • переименовать старый / var в другое
  • смонтировать новый / var
  • обновите / etc / fstab, чтобы отразить изменения
  • копировать данные
  • перезагрузитесь до обычного уровня запуска