Места нет, но место есть

Случилась со мной одна оказия — закончилось место на винте. И оказия бы не случилась, если бы я знал, что оно заканчивается. А случилось вот что.

В логи посыпалось следующее:

  1. pid 1809 (nfsd), uid 0 inumber 186861599 on /freebsd/tunefs/filesystem/full: filesystem full

Файловый менеджер на удалённом компе, к которому примонтирована эта NFS–шара, клятвенно уверял, что свободного места полно — 100 гиг, не меньше. Но с ним в конфронтацию вступал df на NFS–сервере, который хоть и показывал, что есть те самые 100 гигабайт, и даже больше, неиспользованного места, но свободного места не показывал вообще:

  1. df -ih
  2. Filesystem  Size Used Avail Capacity iused ifree %iused                      Mounted on
  3. /dev/ad4s1a 1.8T 1.6T    0B     100%  150k  244M     0% /freebsd/tunefs/filesystem/full

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

Раздел был несколько раз отмонтирован/примонтирован, проверен fsck, fsck_ufs, pater_noster и обматерён, но ничего так и не помогло.

И тут я вспомнил про tunefs, который может регулировать параметры файловой системы, а конкретно — объём зарезервированного для системы и рута места. Наличие такого резерва имеет смысл на системных разделах, чтобы админ чуть раньше реагировал на убывающее место и имел какое-то время для реакции. Но на разделе, отведённом под файлопомойку, этот резерв теряет всякий смысл, тем более, что этим местом всё–равно никто, кроме системы и рута, воспользоваться не сможет. Короче, следующее заклинание решило проблему:

  1. tunefs -m 0 /dev/ad4s1a

Эта команда обнулила резервное место, сделав всё пространство винта доступным:

  1. df -ih
  2. Filesystem  Size Used Avail Capacity iused ifree %iused                      Mounted on
  3. /dev/ad4s1a 1.8T 1.6T  132G      93%  150k  244M     0% /freebsd/tunefs/filesystem/full

Комментарии

Комментировать