Lazy umount или Размонтирование занятого диска в Linux

Я прочитал, что можно "размонтировать" диск, который в противном случае занят, используя опцию "lazy". На этой странице есть что сказать:

umount - размонтировать файловые системы

ленивая разборка. Отключите файловую систему от иерархии файловой системы и очистите все ссылки на файловую систему, как только она больше не будет занята. Эта опция позволяет "занятой" файловой системе быть размонтированной. (Требуется ядро ​​2.4.11 или новее.)

Но какой в ​​этом смысл? Я подумал, почему мы вообще отключаем разделы:

  1. Чтобы удалить оборудование
  2. Для выполнения операций над файловой системой, которые было бы небезопасно делать при монтировании

В любом из этих случаев все "ленивое" размонтирование служит ИМХО, чтобы затруднить определение того, действительно ли диск размонтирован, и вы действительно можете выполнить эти действия. Единственное приложение для umount -l Похоже, что неопытные пользователи "чувствуют", что достигли того, чего не достигли.

Почему вы используете ленивый размонтировать?

6 ответов

Решение

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

Вот вероятный сценарий:

Вы используете rsync сделать ваши резервные копии и уйти. Вы можете umount -l диск и, как только он закончит копирование и синхронизацию, отключится, поэтому, когда вы вернетесь после перерыва (который, как вы знаете, займет больше времени, чем резервное копирование), вы можете просто отключить диск вместо того, чтобы снова возиться с клавиатурой.

Скажем, вам действительно нужно изменить том, на котором программное обеспечение записывает журнал, например, веб-сервер, но он имеет большой трафик и не может быть отключен для операции, а также не может быть изменен путь регистрации.

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

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

Перефразируя man-страницу, это означает, что если у тома есть открытые файлы, когда он лениво размонтирован, на самом деле он остается смонтированным, но просто недоступным через файловую систему и действительно размонтируется только при закрытии последнего открытого файла.

Это фактически реализовано, чтобы получить больше времени для выполнения последующих задач в административных задачах.

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

Пример: Задача 1 и Задача 2 - две административные задачи, запланированные вплотную.

Задача 1 Ежедневное резервное копирование

Он копирует большое количество файлов из раздела проекта в резервный раздел, например, /mnt/backupProj, который будет монтироваться на лету и размонтироваться в конце этой задачи. Копирование занимает значительное время.

Задача 2 Обновление SQL-представлений

Выполняет серию обновлений представления базы данных на выделенном сервере.

Задача 2, очевидно, полностью независима от задачи 1, поэтому мы можем lazy-unmount /mnt/backupProj, не дожидаясь завершения задачи резервного копирования.

Я использую lazy umount в тех случаях, когда он явно завис по разным причинам (например, отключение сервера nfs), а также когда мне нужно увидеть исходное содержимое каталога, который был смонтирован при монтировании. В обоих случаях монтировка занята. Я думаю, что есть и другие крайние случаи, но эти 2 являются наиболее распространенными причинами, по которым я использовал эту опцию.

Рассмотрите привязку, как вы можете видеть при работе с chroot:

mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc

Если в вашей системе есть демон, который постоянно опрашивает /proc (Я смотрю на тебя ksysguardd), тогда вы не сможете umount /mnt/proc, Ленивый позволит тебе umount в этом случае.

USB-накопители иногда зависают из-за аппаратного сбоя. Даже если вы подключите диск физически, вы получите другое имя устройства. Старое имя устройства не может быть размонтировано как обычно. сумма -l заставила мертвую запись исчезнуть.

Я использую Encfs для шифрования части моих конфиденциальных данных.

Когда диск монтируется, nautilus создает превью (думаю, я не уверен) и блокирует файлы. Когда я хочу размонтировать его, он говорит, что он заблокирован другим процессом.

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

Другие вопросы по тегам