В самой распространенной на сегодняшний день файловой системе Linux — ext4 есть такое понятие как inode. Количество inode конечно и размещение очень большого количества мелких файлов (часто картинок) приводит к тому, что сервер перестает нормально работать. Файловая система reiserfs не имеет понятия inode.
Файловая система reiserfs как альтернатива ext4
Обнаружить проблему с количестов inode можно выполнив в консоли сервера команду df -i
df -i
Пример вывода приведен на скриншоте:
Здесь видно, что процент занятых айнодов — 100%.
Решений в ситуации, описанной выше может быть несколько:
- удалить часть мелких файлов
- увеличить объем диска (для облачных ресурсов это сделать очень просто)
- пересоздать раздел с бОльшим количеством inode-ов (ведет к потере данных, информацию предварительно нужно скопировать)
- использовать reiserfs
Рассмотрим реализацию последней опции. reiserfs, другие варианты не требуют настройки сервера.
Пусть имеется каталог /var/website/images/ с очень большим количеством изображений и айноды кончились.
Создадим файл на 4 Гб при помощи dd
dd if=/dev/zero of=/var/new.disk bs=1M count=4096
Теперь из репозитория поставим пакет reiserfsprogs и создадим файловую систему reiserfs на новом разделе/файле, полученном на предыдущем шаге
apt-get install reiserfsprogs
mkfs.reiserfs /var/new.disk
Монтируем файл/раздел в /mnt
mount -t reiserfs /var/new.disk /mnt
Далее нужно переместить все картинки в смонтированную точку
mv /var/website/images/ /mnt
Также монтируем уже в каталог с изображениями
umount /mnt
mount -t reiserfs /var/new.disk /var/website/images/
После этого можно вернуть на место картинки.
Обязательно нужно задать вхождение в /etc/fstab для того, чтобы раздел был вновь примонтирован автоматически при перезагрузке сервера.