После трёхлетнего затишья Дэниель Филлипс (Daniel Phillips) сообщил (https://lkml.org/lkml/2013/1/1/8) в списке рассылки разработчиков ядра Linux о возобновлении работы над файловой системой Tux3 (http://tux3.org/) и опубликовал первое сравнение производительности новой ФС, в котором показатели Tux3 оказались близки к Ext4 и даже немного опережают данную ФС. Для желающих поэкспериментировать с Tux3 предлагается использовать новый репозиторий (https://github.com/OGAWAHirofumi/tux3) проекта на GitHub.
Первый публичный выпуск Tux3 был представлен в 2008 году, до этого около 10 лет проект развивался под грифом внутренней разработки, нацеленной на опробование некоторых новых подходов к построению файловых систем. Файловая система Tux3 позиционируется как ФС общего назначения, которая использует версионный механизм учёта изменений и позволяет вернуться к состоянию ФС в любой момент времени в прошлом, что достигается благодаря тому, что данные при внесении изменений не переписываются, а копируются на новое место.
При этом версионный контроль применяется как для ФС в целом, так и для индивидуальных файлов и директорий. Для выбранного состояния могут осуществляться версионные срезы (снапшоты), которые могут продолжать существование как самостоятельные объекты, для которых возможна запись и изменение данных.Другими интересными особенностями Tux3 являются встроенные средства для репликации между системами отдельных файлов, директорий или целиком ФС, режим атомарного обновления данных, возможность изменение размера ФС на лету, динамическое распределение i-node (i-node хранятся в виде дерева btree и не имеют фиксированного размера или жестко заданного набора атрибутов), высокая скорость работы fsck за счёт ведения лога изменений в виде Btree-дерева, быстрый доступ к большим директориям, содержимое которых индексируется с использованием структур PHTree (в планах). Максимальные размеры файлов, разделов, числа i-node и версионных изменений практически не ограничены (2^60 и 2^48).
В отличие от файловых систем Btrfs и ZFS, Tux3 базируется (http://lwn.net/Articles/288896/) на модели использования одного указателя на екстент (single-pointer-per-extent) и привязке информации о версиях к конечным узлам дерева (в классических "copy on write" системах учитывается состояние всего дерева ФС). Подобный подход позволил добиться сокращения объема мета-данных и значительного упрощения "физического" дизайна за счет переноса функциональности на "логический" уровень, что упрощает проведение таких операций как проверка целостности и восстановление после сбоя. Тем не менее, так как изменение дочерних элементов не приводит к изменению родительских, в процессе монтирования приходится отталкиваться от исходного состояния элементов, проигрывая все последующие изменения для создания кэша (в процессе работы данная особенность не сказывается, так как все изменения отражаются в прокэшированном дереве). С другой стороны подобные подход позволяет избавиться от рекурсивных операций с деревьями, свойственными copy-on-write системам.
Сравнение производительности с файловой системой Ext4 показало, что Tux3 немного опережает Ext4 (46.338/46.684, 49.101/44.011, 49.838/43.773) и при этом создаёт вдвое меньшую нагрузку на CPU. Тестирование проведено с использованием утилиты fsstress (http://www.cs.duke.edu/ari/fstress/), оценивающей скорость выполнения нескольких сценариев работы с ФС, свойственных для высоконагруженных систем. В качестве одной из причин низкой нагрузки на CPU называется разделение реализации Tux3 на две раздельные подсистемы - фронтэнд и бэкенд. Фронтэнд оуществляет выполнение операций, свойственных для POSIX ФС, и работает только с данными имеющимися в кэше. Бэкенд в фоновом режиме следит за синхронизацией кэша, осуществляя операции с диском в атомарном виде (в показателях теста учитывается только нагрузка от фронтэнда, но разработчики утверждают, что если учесть и бэкенд, общая нагрузка на CPU всё равно будет ниже). Все изменения передаются фронтэндом в виде транзакций, которые группируются в delta-наборы с тем расчётом, что каждый набор может быть записан на носитель в виде атомарного изменения.
Несмотря на то, что ФС Tux3 уже пригодна для экспериментов, ещё не все запланированные функции реализованы. Наиболее существенной функцией, которую планируется реализовать в первую очередь, является поддержка снапшотов. Также пока не реализован в коде новый метод индексирования директорий (PHtree). Требуется доработка систем для управления свободным дисковым пространством и распределения блоков для уменьшения фрагментации. Необходимо создать эффективную утилиту для восстановления повреждённых ФС (fsck). В планах также реализация возможностей, связанных с миграцией блоков, увеличением/уменьшением размера разделов, дефрагментацией, дедупликацией и репликацией.URL: https://lkml.org/lkml/2013/1/1/8
Новость: http://www.opennet.me/opennews/art.shtml?num=35741
> в процессе монтирования приходится отталкиваться от исходного состояния элементовТ.е. на большом томе с кучей снапшотов монтирования просто не дождешься?
зато потом на прямой обойдешь даже ext4 !! Интересно и почему такую перспективную разработку забросили на 3 года и никто не подхватил? опенсорц же?..
> зато потом на прямой обойдешь даже ext4 !!Если дождешься... :)
> забросили на 3 года и никто не подхватил? опенсорц же?..
Даже опенсорс ничего не может поделать с неуловимостью того самого Джо.
Тут определиться во мнении сколько же займет места несколько килобакт не могут, а вы говорите прогрессивную фс пилить.
> займет места несколько килобактЛогично. Кто-то знает что за килобакты такие? Это единица чего? :)
Звёздные войны?
Мегабакта, килобакта, БАКТА...
Неизвестная мера бакты.
> и почему такую перспективную разработку забросили на 3 года и никто не подхватил?По той-же причине, что и Reiser4. Сил и времени нужно много, а так-же нехилые знания в некоторых областях математики и программирования. За "спасибо" такие вещи не делаются, ибо займет все свободное время.
дык для этого и нужно было похищать(точнее изначально - подговаривать)и убивать жену Рейзера, потом платить его адвокатам, чтобы ему промыли мозги на момент "признания" итп.
чтобы появился Такс3, ВинФС и все-все-все.
Почему не подхватил, подхватили, только никому не показываем.
Сильно похоже на http://www.nilfs.org/en/
>данные при внесении изменений не переписываются, а копируются на новое местот.е. можно 100500 раз отредактировать килобайтный файлик и забить терабайтный раздел?
100500*1кб=100500кб=100,5мб
Математика, 2 класс.
100500 килобайт = 100500/1024 мегабайт = 98.14453125 мегабайт. Информатика, первый год изучения.
> 100500 килобайт = 100500/1024 мегабайт = 98.14453125 мегабайт.Mebibytes. В мегабайте 1000 байт, ибо мега - десятичная приставка, увы.
чем отличается обычный человек от программиста ?
обычный человек думает что в 1 МБ - 1000 кб
программист думает, что в одном килограмме - 1024 грамма
Это хреновые программисты, которые на стандарты обозначений кладут.
Это хреновые стандарты, которые кладут на выражение, которое уже устоялось.
Я читал стандарт (ГОСТ). Там не сказано как правильно употреблять 1024-приставки и можно ли вообще. Но и запрета нет. Есть только упоминание, что, мол, сложилось, что килобайт -- это 1024 байта, но это ошибка.
***, чуть чаем не подавился. Вы ГОСТ на что читали?
такой вопрос могут задать только пхп-программисты
А вы читали? Или чай замещает чтение документации?Вот с кем не поговоришь, всё слышно: "должно быть!", "по стандарту так!". А как спросишь: "а ты стандарт-то читал? А законы?", так все сникают. Ну или громче кричать начинают. Ещё ни разу в жизни не встретил читавшего. Зато все специалисты.
> Это хреновые стандарты, которые кладут на выражение, которое уже устоялось.Десятичные приставки появились намного раньше чем вообще компьютеры. А 1024 пострадал лишь за то что довольно похож на тысячу :)
Мне Вас жаль, если Вы не можете следовать стандартам и считаете, что все должны подстраиваться под Ваш закостенелый ум.
Для особо одаренных: в СИ основание системы счисления 10 (10^n, так как весь мир пользуется десятичной системой счисления), в информатике основание системы счисления 2 (2^n, так как ЭВМ работают с двоичной логикой).
Система СИ к ЭВМ не может быть применения.
> В мегабайте 1000 байтПредыдущие спортсмены очень старались, но ты победил.
с детьми нужно общаться на им понятном языке. :D
сам факт — где ~100мб и гдё ~терабайт.
>> 100500 килобайт = 100500/1024 мегабайт = 98.14453125 мегабайт.
> Mebibytes. В мегабайте 1000 байт, ибо мега - десятичная приставка, увы.http://ru.wikipedia.org/wiki/%D0%9C%D0%B... первые 3 столбца в таблице, что сверху справа
> 100500*1кб=100500кб=100,5мбНе учтен размер блоков ФС (if any) и оверхед от метаданных. Да, это вам не школа :)
>> 100500*1кб=100500кб=100,5мб
>Не учтен размер блоков ФС (if any) и оверхед от метаданных. Да, это вам не школа :)учитывать оверхед от размера блока и метаданных при соотношениях ~100мб на ~1Тб будет только параноик.
да и то при обострении.
С современными файловыми системами вполне может дойти до того что метаданные будут больше самих данных.
> учитывать оверхед от размера блока и метаданных при соотношениях ~100мб на ~1Тб
> будет только параноик.А если взять файлы нулевого размера то можно ... ну вы в курсе насчет соотношений, да? :)
>А если взять файлы нулевого размера то можно ...то можно выглядеть дураком.
я понял.
> то можно выглядеть дураком.Да, можно. Особенно если попутно вопить о том что оверхед от метаданных обуительный.
Если менять нулевой файл на нулевой, то и изменений никаких писать не нужно. Метку доступа помнить и вроде бы все.
Btrfs больше не нужна? Или у них разное назначение? Кто в теме?
> Btrfs больше не нyжна? Или у них разное назначение? Кто в теме?Белаз больше не нyжен? Ведь есть же пикапы!
"ещё не все запланированные функции реализованы."
Мы предсказываем, что после того как оставшиеся функции будут реализованы, утилита fsstress покажет для Tux3 снижение производительности и повышение нагрузки на ЦПУ, хуже значений которые будут к тому времени достигнуты на ext4.
> предлагается использовать новый репозиторий проекта на GitHubКто там вякал что нужны другие хостинги?
дальний родич 3-го рейзера, ФС Диджитал и Новелл.
но в отличие от такса, там приоритет был не на минимизации оверхэда, а на НАДЕЖНОСТИ.
хотите малый оверхэд ? вам на UFS или exFAT ;)