Здравствуйте, vsb, Вы писали:
vsb>1. Никаких неразумных ограничений на объёмы данных, вроде 4ГБ на файл в FAT.
У современных это есть.
vsb>2. Гарантированная целостность ФС при нормально работающем оборудовании и потере питания без длительных проверок при загрузке.
Современные журналируемые ФС не требуют проверок вообще.
vsb>Также контроль целостности файлов и метаданных даже при сбоящем оборудовании (контрольные суммы).
Контрольные суммы в ФС — это в принципе смешно, но для файлов еще смешнее.
Разработчики IPv6, например, подумали, что козе баян не нужен и контрольные суммы из пакетов убрали, т.к. есть контрольные суммы уровнем ниже, а так же есть контроль данных на уровне приложения.
Здесь ситуация та же — жесткие диски и ссд сами хранят ECC для каждого сектора/страницы и могут прочитать лишь то, что было когда-то записано, либо не прочитать ничего вообще.
В этом смысле идея о контрольных сумм для файлов (со стороны ФС) выглядит дико, т.к. если делать эти суммы блоками фиксированной длинны, то они уже есть в железе, а если делать их для всего файла, то дозапись одного мегабайта в файл 10Г заставит страдать пользователя в страшных муках. Если же речь о транзакционности, то таким похвастаться могут только лог-фс, но они для общего случая не годятся, работают нормально только на ссд и требуют постоянной сборки мусора / дефрагментации.
vsb>3. Абстракция от хранилищ, множество разделов, raw-разделы, мгновенное изменение размера любого раздела. Т.е. поставил я новый хард на 4 ТБ в компьютер, добавил его в пул, поменял размер /home на +4ТБ и всё, при этом все операции моментальные.
Не понятно, зачем все это делать на уровне фс, если на отдельном уровне вроде llvm получается и гибче, и проще?
vsb>4. Мгновенные снапшоты раздела, клонирование, откат на любой снапшот (как это удобно, это просто представить сложно, делаешь простые скрипты, перед любым обновлением, установкой софта, экспериментами и просто по крону делаешь снапшот всего корня, при любых проблемах просто откатываешься на этот снапшот и у тебя всё работает как было, при этом накладных расходов практически нет).
Это лог-фс такое поддерживают. Накладные расходы там разумеется есть, но выражаются в иных вещах. Снимок состояния и возврат к нему делаются моментально, без регистрации и смс, но в общем случае на елку не обколовшись не влезешь.
vsb>5. Сжатие (настраиваемое), шифрование.
Это много где есть, не обязательно на уровне ФС даже делать это.
vsb>6. Поддержка RAID (т.е. RAID должен быть реализован в ФС, не на другом уровне).
Зачем именно на уровне ФС? Смысл городить комбайн?
vsb>7. Поддержка быстрых кеширующих хранилищ, например небольшой быстрый SSD перед большими HDD, естественно полностью прозрачно для пользователя.
Опять же, зачем это на уровне ФС?
vsb>8. Тут спорно, мне это пока не было нужно, но хотелось бы иметь: автоматическая дедупликация, т.е. поиск одинаковых блоков и удаление дубликатов. vsb>9. Возможность организовать дубликат на удалённом хосте, т.е. все изменения идут по сети на удалённый хост и применяются там, таким образом там будет идентичная ФС.
Этим не место в ядре, ибо нафига в ядре, если можно в юзерспейсе сделать?