1

Я на сервере SUSE Enterprise, который смонтировал диск через монтирование NFS. Я создал файл 34GB через dd if=/dev/Zero of=test_file bs=8k Count=4194304 чтобы проверить скорость записи общего ресурса NFS. После этого я удалил файл через rm test_file и сразу же использовал df .

Значение в used столбце вывода df начинает уменьшаться. Я обновляю, вызывая df каждые ~ 10 секунд и каждый раз, когда вижу, что used значение уменьшается на ~ 2 ГБ.

Таким образом, кажется, что команда rm test_file , похоже, не завершила свою работу, хотя у меня снова есть командная строка (таким образом, rm должен вернуть "0", верно?). Что здесь происходит на заднем плане?

1 ответ1

2

Файловая система на удаленном узле, который обеспечивает внутреннее хранилище для общего ресурса NFS, не освобождает пространство сразу.

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

Возможные причины, по которым освобождение места может занять некоторое время:

  • Файловая система может очистить пустое пространство, поскольку она освобождена, чтобы предотвратить раскрытие информации. Это почти всегда дорогая операция.
  • Файловая система может находиться на SSD или в хранилище с тонким предоставлением и может быть настроена для информирования нижних уровней о том, что пространство не используется. Эта операция также может занять довольно много времени.
  • Файловой системе может потребоваться обновить структуры данных для целей внутреннего учета. Это может или не может занять много времени, но обычно это не тривиально.
  • Файловой системе может потребоваться обновить внутренние структуры данных, чтобы правильно обрабатывать любые ссылки или другие общие области в файле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .