TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #1159 8.97K
Закончилось место на диске? Или же закончились inode?

🔤🔤🔥🔤🔤🔤🔤🔤🔤

Ситуация неприятная и чаще всего выходом служит удаление "ненужных" файлов. Рассмотрим ситуацию, когда все файлы нужны, то есть удалять ничего не будем.
ㅤ
В качестве примера, смоделируем ситуацию, когда в файловой системе закончились inode.

Создадим файловую систему с небольшим количеством inode на виртуальном блочном устройстве, позаимствовав немного места с реальной файловой системы:

dd if=/dev/zero of=/home/user/fs.img count=1000 bs=4096K
mkfs.ext4 -N 512 /home/user/fs.img


Монтируем файловую систему:

mkdir newfs
mount /home/user/fs.img newfs/


Забиваем ее до отказа файлами:

touch file{1..501}


Проверяем:

df -i newfs


Вывод:

[root@14 ~] df -i newfs/

/dev/loop6 512 512 0 100% /root/newfs


Все, создавать новые файлы нельзя. Если сильно надо, выход есть. Понадобится свободное место, с файловой системой ext4.

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

dd if=/dev/zero of=/home/user/newfs.img count=1500 bs=4096K
mkfs.ext4 /home/user/newfs.img
mount /home/user/newfs.img freespacefs
mkdir -p freespacefs/{up,service}


Теперь главное:

mount -t overlay overlay -olowerdir=newfs,upperdir=freespacefs/up,workdir=freespacefs/service newfs


Здесь монтируется специальная файловая система overlayfs.

Аргументы:

lowerdir - директория, которую расширяем. Может быть любой файловой системой, может быть смонтирована только на чтение. В терминологии overlayfs - нижний слой.

upperdir - директория на файловой системе с поддержкой d-type (например, ext4).

В терминологии overlayfs верхний слой. В эту папку реально будут попадать результаты деятельности (новые файлы например) workdir- служебная директория, нужна для работы overlayfs. Должна находится на той же файловой системе, что и upperdir.

Проверяем:

[root@14 ~] df -i newfs

overlay 376K 16 376K1% /root/newfs

занято 1 % inode.

[root@14 ~] df -i newfs
[root@14 ~] touch newfs/extrafile
[root@14 ~] ls newfs/
extrafile  file125  file152  file1.....

(вывод обрезан, здесь 501 файл)


Теперь посмотрим в up:

[root@14 ~] ls freespacefs/up
extrafile


Вариант для экстремалов (можно задействовать оперативную память, если свободного места нет совсем):

[root@14 ~] mkdir ramfs
[root@14 ~] mount -t tmpfs tmpfs -osize=4G ramfs
[root@14 ~] mkdir ramfs/{up,work}
[root@14 ~] mount -t overlay overlay -\ olowerdir=newfs,upperdir=ramfs/up,workdir=ramfs/work  newfs
[root@14 ~] df -h newfs/

overlay 7,8G 8,7M 7,8G 1% /root/newfs


Фактически, это tmpfs, которая располагается в оперативной памяти, и стоит об этом помнить.

Теперь пара слов про overlayfs.

Функционал реализован модулем ядра, который, возможно, нужно включить:

[root@14 tmp] lsmod | grep overlay


Если вывод пустой, то:

[root@14 tmp] modprobe overlay


Как видно из вышесказанного, особенность этой файловой системы - она работает с директориями а не с устройствами.

На этом все. Выражаю благодарность за идею статьи @AlexeyVictorovi4

🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
More from @bashdays
  1. Sep 25, 2026ИИ-агент может быть у каждого: создать персонального помощника можно без настройки серверо…
  2. Sep 25, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  3. Sep 24, 2026✨ Как настроить PostgreSQL для продакшен-нагрузок При переходе к продакшен-нагрузкам важно…
  4. Sep 24, 2026Post #1565
  5. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  6. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →