Мы помещаем большое количество файлов в файловую систему для последующего анализа. Мы не можем контролировать, сколько файлов у нас будет, и этому одному ящику нужен доступ ко всем из них.
Какие еще способы обойти это жесткое ограничение? Есть ли другие преимущества / недостатки упомянутых мной подходов?
Информация, которую нам не хватает ...
Похоже, ext4 не делает то, что вы хотите. Так что не используйте это ...
XFS должен хорошо справиться с вашей ситуацией. Он находится в ядре Linux, но его развертывание сильно зависит от гибкости вашего диска. Есть также некоторые Настраиваемые XFS это поможет с вашей нагрузкой ... Из коробки он не будет работать особенно хорошо. Вам понадобится правильная файловая система варианты создания и монтирования. Остальное зависит от вашего дистрибутива, используете ли вы контролер, и ваша конкретная рабочая нагрузка.
Я бы посоветовал вам использовать сетевой сервер с файловой системой, рассчитанной на то, что вам нужно. Первое, что приходит в голову, это что-то, что поддерживает zfs (freenas и nexenta, хотя бесплатная версия последнего имеет некоторые ограничения) или, если вы можете себе это позволить, вы можете купить что-то вроде netapp.
Я менее знаком с UFS, доступным на freebsd и т. Д., Но слышал, что это тоже сработает.
Дополнительные опции:
Создавайте файловые системы по запросу, когда они вам нужны. Разбиение на разделы с помощью LVM вместо присоединения файловых систем непосредственно к MBR. Вы можете смонтировать файловую систему в любом месте вашего дерева, чтобы вы могли добавлять новую файловую систему в любое время и в любом месте. Кроме того, LVM может охватывать части нескольких дисков, если вы хотите, что означает, что границы физического носителя менее значимы.
Петлевые ФС не являются ужасный идея, но почему бы вам вместо этого не использовать LVM? Все преимущества, никаких недостатков.
Если вы просто архивируете файлы (то есть не с произвольным доступом), тогда сохранение их непосредственно в файл .tar.gz - неплохая идея. Я также видел системы, в которых файлы временно «помещаются» на SSD, пока строится структура, а затем выгружаются в tar.gz на вращающемся диске для длительного хранения.
XFS - неплохой вариант, хотя и в нем есть свои сложности. Например, это не совсем так, как прощение нечистых отключений. Не то, чтобы вы ожидали потери данных, но иногда это требует более практического вмешательства.
Из всего этого мне больше всего нравится автоматическая загрузка файлов в архивы .tar.gz. Это экономит место и inodes, и просто аккуратно. Большое количество небольших файлов снижает производительность файловых систем, чем ожидалось.
Думаю, вы сами ответили на свой вопрос, вариант XFS кажется лучшим (я думаю, вы даже получите прирост производительности). Более сложная часть должна заключаться в том, как преобразовать EXT3 / 4 в XFS?
Если ваше хранилище не является уникальным физическим RAID VD (и вы не сделали fs напрямую на BlockDevice - mkfs.ext4 / dev / sdb), то я мог бы предложить вам разбить дерево fs на более мелкие блоки и соответственно смонтировать их, настройте программное обеспечение для одновременной записи в оба места и, если возможно, разделите записи. Ex.
Если разделение записей невозможно из приложения, вы можете создать cron, который перемещает файлы из раздела ext4 в новый XFS каждые п минут