Назад | Перейти на главную страницу

Какая файловая система лучше всего подходит для хранения тысяч файлов в одной структуре id-blob, подобной словарю?

Какая файловая система лучше всего подходит для моих нужд?

  1. Тысячи или даже миллионы файлов в одном каталоге.
  2. Хорошая (уровень ext4 & ntfs или близко) надежность (включая отказоустойчивость) и скорость доступа.
  3. На самом деле не нужны никакие каталоги, как и описательные имена, мне нужна просто словарная структура пар id-blob.
  4. Никаких ссылок, атрибутов и функций контроля доступа не требуется.
  5. Было бы здорово иметь шифрование данных с закрытым ключом на уровне хранилища (чтобы в случае потери или кражи жесткого диска никто не мог использовать его содержимое).

Назначение - файловое хранилище, где все метаданные (данные, описывающие все факты о том, что на самом деле содержит файл и кто может получить к нему доступ) хранятся в базе данных MySQL.

Насколько мне известно, обычные файловые системы, такие как NTFS и ext3 / 4, могут работать очень медленно, если в одном каталоге помещено слишком много файлов - вот почему я спрашиваю.

  • Проблема не столько в файловой системе (NTFS на самом деле подходит для нескольких сотен тысяч) - это все инструменты. Даже не СМЕЙТЕ открывать каталог в проводнике Windows. Скрипты оболочки займут много времени, если каталог вернет 2 миллиона и т. Д.

Лучше в иерархии папок.

Дайте каждому файлу 16-байтовый шестнадцатеричный код

  • Делайте имена папок / файлов в сегментах по 4 символа,

Таким образом, файл может быть в affc / 2548/2224 .... и т. Д.

Делает каталоги короче

И вы можете реализовать здесь точки монтирования (хотя уровень файла из 4 символов слишком широк для этого).

Не забывайте также, что вам необходимо сделать резервную копию / восстановить это

XFS: http://en.wikipedia.org/wiki/XFS

Не используйте ext3, так как он использует связанный список для содержимого каталога -> очень медленный каталог с большим набором файлов. Более того, ext3 плохо очищает эту структуру при удалении файлов.

В Linux вы можете получить представление о размере этого списка, используя ls -lahd directory /.