У меня есть раздел ext4 (LVM на ВМ) с большим количеством маленьких файлов , которые я должен расширять каждые 3-4 месяца.
Относительно количества места, используемого inode.
Использует ли одна из файловых систем xfs, btrfs или ext4 меньше места?
Другими словами, переключение на btrfs или xfs замедлит заполнение раздела инодами по сравнению с ext4?
mkfs.ext4 -t news
для достижения наилучших результатов. Кроме того, я бы посоветовал протестировать - по очереди создать (на lvm или устройстве loopback) каждую из файловых систем и начать копировать в нее свои реальные файлы, пока они не заполнятся. Когда он заполнится, сделайтеdf -i
(илиfind | wc -l
), чтобы найти, какой из них сумел сохранить большинство ваших файлов - таким образом, вы точно об этом узнаете.-T
с заглавной буквой T. В конфигурационном файле есть и другие полезные вариантыmkfs.ext4 -T news
Ответы:
Начнем с вашего первого вопроса: да, одна из этих файловых систем занимает меньше места. Даже без дополнительных подробностей маловероятно, что все они используют одинаковое количество места, учитывая, что они имеют разные реализации. Таким образом, один обязан использовать меньше места, чем все остальные.
Btrfs имеет динамическое распределение inode, поэтому нет никакой необходимости заполнять таблицы inode для ext4 (размер для которого установлен во время создания файловой системы ext4).
XFS является динамическим аналогичным образом, но имеет ограничение (процент файловой системы, которую можно использовать для inode), поэтому в зависимости от того, будете ли вы заполнять свой допуск на inode, будет установлен процент, а также количество файлов / размеры файлов.
источник
xfs_growfs -m XX
Да, и учтите, что все зависит от ваших потребностей:
Btrfs (произносится как Масляная FS, Лучшая FS или B-Tree FS)
Учитывая, что btrfs сможет охватывать несколько жестких дисков, очень хорошо, что он может поддерживать в 16 раз больше дискового пространства, чем ext4 . Максимальный размер раздела файловой системы btrfs составляет 16 exbibytes, а также максимальный размер файла также равен 16 exbibytes.
Максимальное количество файлов: 2 ** 64
XFS
XFS является 64-разрядной , журнальной файловой системы высокой производительности. XFS поддерживает максимальный размер файловой системы 8 exbibytes для 64-битной файловой системы. Теперь RHEL 7.0 использует XFS в качестве файловой системы по умолчанию, включая поддержку использования XFS для
/boot
раздела.Максимальное количество файлов: 2 ** 64
EXT4
Ext4 хорошо известно из - за чего улучшение скорости над ext3. Ext4 имеет некоторые ограничения. Максимальный размер файла составляет 16 ТБ, что примерно равно 17,6 ТБ. Максимальный объем / раздел, который вы можете получить с помощью ext4, составляет 1 exbibyte. Как и в большинстве современных файловых систем, это журнальная файловая система, которая означает, что она будет вести журнал того, где файлы в основном находятся на диске, и любых других изменений, которые происходят с диском. Независимо от всех своих функций, он не поддерживает прозрачное сжатие, прозрачное шифрование или дедупликацию данных. Снимки поддерживаются технически, но в лучшем случае такая функция является экспериментальной.
Максимальное количество файлов: 4 миллиарда
XFS против Btrfs
XFS не имеет никакого RAID, в то время как Btrfs RAID еще не полностью стабилен и находится на ранних стадиях. XFS все более зрелая, чем Btrfs , но мы не можем отрицать, что Btrfs является мощной и хорошо растущей файловой системой.
На данный момент XFS - мой выбор, особенно потому, что это стандартная FS на RHEL 7, если только мне не нужны Btrfs.
источник
Я полагаю, что проблема у вас не в том, что раздел заполняется inode, а в исчерпании количества inode в файловой системе. ext4 резервирует inode статически при создании файловой системы, но вы можете установить число с опциями
mkfs.ext4
:В руководстве четко указано, что число байтов на индекс Inode не может быть изменено после создания FS, но общее число будет масштабироваться в соответствии с отношением, если FS изменяется.
Вы также можете установить размер каждого inode. Значение по умолчанию составляет 256 байт в «большинстве» файловых систем, но может быть уменьшено до 128 (значение по умолчанию для «небольших» файловых систем). Дополнительное пространство используется для хранения расширенных атрибутов (например, меток SELinux), поэтому, если они вам не нужны, можно безопасно уменьшить размер до минимума.
df -i
должен показывать количество выделенных и использованных инодов. С опциями по умолчанию у одного 30-гигабайтного раздела, на который я смотрел, был один инод для каждых 16 кБ, но если ваши файлы очень малы, вы можете установить, скажем,-i 4096
один инод для каждого блока данных в системе.Если ваши файлы меньше 4096, вы можете также уменьшить размер блока файловой системы, поскольку для всех обычных файлов в любом случае потребуется один полный блок данных. (То есть на ext4. Я не знаю, выполняют ли другие текущие файловые системы упаковку небольших файлов.)
mkfs.ext4
также имеет-T <type>
опцию, которая может использоваться как сокращение для некоторых или всех из них. Настройки находятся в том/etc/mke2fs.conf
, что на моем Debian, например,mkfs.ext4 -T small
эквивалентноЧто может быть неплохим набором опций для множества маленьких файлов (и без xattrs.)
Если ваши файлы даже меньше чем один килобайт, файловая система может не быть лучшим способом сохранить данные, но возможно следует рассмотреть что-то вроде базы данных или системы, специфичной для приложения.
источник