LINUX.ORG.RU

Резиновая файловая система - существует ли хорошая?

 , , , ,


0

2

Здравствуйте, многоуважаемые господа линуксойды!

Имеется потребность в хранении огромного числа файлов в рассыпухе - это значит что на 1 гигабайт дискового пространства может приходится дохрелион (неограниченное число) файлов малого объема. По сути речь идет про файловую базу данных, где каждый файл представляет объект в базе. Ускорение чтения проиходит за счет страничного (надеюсь не путаю) кеша Linux, а записи за счет ее асинхронности, кое отлично работает в ext4. В принципе, можно было бы не погружаться в эти дебри не будь у ext4 ограничения в виде статического числа inode, что рано или поздно приведет к отказу в записи. Смотрел в сторону Btrfs, правда многие не рекомендуют ее использовать в виду то нестабильности, то малого быстродействия.

Какую файловую систему вы могли бы порекомендовать для сей изврата?

Ответ на: комментарий от no-such-file

XFS неоптимально для этой задачи использовать. Она хороша при работе с большими файлами, а с множеством мелких справляется несколько хуже. Я так слышал по крайней мере. (сам использую XFS под /home)

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

Я так слышал по крайней мере. (сам использую XFS под /home)

Я тоже так слышал, но у XFS динамические inode, что нужно ТС. А как она там справляется, хрен его знает. Также держу /home на XFS, мелких файлов дохрилион, брат жив.

no-such-file ★★★★★ ()

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

Diff ★★★★ ()
Ответ на: комментарий от eternal_sorrow

ReiserFS?

Сам на ней сижу уже лет *надцать.
Только есть момент: обязательно в опциях монтирования прописать notail. Иначе «в полночь превратится в тыкву» (С) (без потерь данных... наверное...)

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 1)

Не парь себе мозг и используй какую-нибудь key-value базу данных. Файловые системы в принципе не очень предназначены для такого использования.

У тебя будет куча проблем, если ты попытаешься в одной директории хранить больше пары тысяч файлов, придется придумывать механизм который будет контролировать, чтобы в одной директории находилось ограниченное количество файлов. Тогда у тебя начнутся проблемы с итерациями по ключам.

В ext4 есть проблемы с разрастанием самого файла с содержимым директории, думаю, такие же тонкие нюансы есть и в других фс.

Как ты будешь делать бекапы миллионов файлов? Это займет вечность.

В общем, абсолютно любая бд из коробки будет справляться лучше, чем фс. А если хоть чуть-чуть подойти к проблеме с умом, и в зависимости от соотношения чтения/запись, доступного места и типа носителя подобрать соотвествующую базу данных, то бд будет намного быстрее и надежнее любой фс.

anonymous ()
Ответ на: комментарий от no-such-file

Вообще-то, у него пожизненное. Через 4 года могут помиловать, но это надо, чтобы суд решил. Потом, не факт, что он даже выйдя реинтегрируется в сообщество, да ещё и со статусом человека, способного «порядок навести». Особенно в наше время CoC-ов и т.п.

Т.е. чисто теоретически возможно, но маловероятно.

hobbit ★★★★★ ()

линуксойды

Говорят, так пишу только дебилойды.

В принципе, можно было бы не погружаться в эти дебри не будь у ext4 ограничения в виде статического числа inode, что рано или поздно приведет к отказу в записи.

Просто задай сколько надо, ты же знаешь параметры своей СУБД. У XFS и других количество тоже конечное на самом деле. Если не хочется, то используешь XFS. У btrfs с надёжностью лучше, чем у остальных, но производительность может оказаться не очень, надо тестировать. Шизиков с reiserfs, reiserfs4, nilfs2 и прочим мусором слушать не стоит.

anonymous ()

Резиновая файловая система - существует ли хорошая?

Параметры ФС, как правило, задаются один раз - при её создании. Изменять размеры ФС как правило можно но не всех и не как вздумается. И опять же как правило применяют либо Lvm2 вместе с ext* либо любой другой на вкус, либо btrfs... Извращенцы тащат zfs.

anonymous ()

Насколько я помню, именно Ганс Рейзер говаривал, что если вам хочется БД, значит у вас плохая ФС. Ну и запилил reiserfs. Хотя, конечно, любви ей сейчас не хватает.

Когда я делал для себя синтетические тесты ФС с миллионом файлов в директории и ext4 и рейзер показали себя хорошо, а вот xfs развалилась. Но это было лет пять назад.

В синтетическом тесте файлы в директории и их иноды идут подряд и все работает быстро, но на реальных данных ls миллиона файлов - это миллион seek'ов со всеми вытекающими, особенно на шпинделе.

legolegs ★★★★★ ()
Ответ на: комментарий от hobbit

Через 4 года могут помиловать,

В вики пишут, что 4 года ему скостили за примерное поведение. Т.е. откинуться он теоретически может уже в этом году.

но это надо, чтобы суд решил

А какие у суда могут быть основания его не выпустить? Примерный сиделец, не урка...

со статусом человека, способного «порядок навести»

Ну хз, может как раз его как представителя «меньшинств» будут особо уважать. Ну типа, в команде должен быть один бывший зк, а то не толерантно...

no-such-file ★★★★★ ()

В принципе, можно было бы не погружаться в эти дебри не будь у ext4 ограничения в виде статического числа inode, что рано или поздно приведет к отказу в записи.


ну дак форматни с бОльшим!

darkenshvein ★★★★★ ()
Ответ на: комментарий от hobbit

Особенно в наше время CoC-ов и т.п.

Это как повернуть. С одной стороны Ганс убил женщину, что харам и харам абсолютный. С другой — начал бороться с русской угрозой ещё до того, как это стало мэйнстримом. Опять же, райзерфс, допустим при отключении питания, уничтожила кучу файлов. А ведь там могло бы храниться детское порно! Так что выйти по-всякому может.

ugoday ★★★★★ ()
Ответ на: комментарий от TuzelKO

Ты ещё GlusterFS не видел. Если перднуть в 100 метрах от одной годы, все самоуничтожается в ядерном пламени. Прикинь, у них пакеты нужно пинить и обновлять версии только под надзором прочитав гайд

vertexua ★★★☆☆ ()

Я конечно не настоящий сварщик, но интуитивно в ситуации «много маленьких файлов, которые либо читаются целиком, либо пишутся целиком» БД должны работать лучше. Было бы интересно замерять производительность.

ugoday ★★★★★ ()
Ответ на: комментарий от ugoday

Ну там все должно быть печально даже по сисколам: для бд на основе файлов, обращение к любой записи это как минимум 3 сискола (открытие файла, чтение, закрытие). Для нормальной бд это или один сискол или вообще 0, в случае mmap и попадания в кеш.

anonymous ()