The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Возобновлена работа над версионной файловой системой Tux3

02.01.2013 19:01

После трёхлетнего затишья Дэниель Филлипс (Daniel Phillips) сообщил в списке рассылки разработчиков ядра Linux о возобновлении работы над файловой системой Tux3 и опубликовал первое сравнение производительности новой ФС, в котором показатели Tux3 оказались близки к Ext4 и даже немного опережают данную ФС. Для желающих поэкспериментировать с Tux3 предлагается использовать новый репозиторий проекта на GitHub.

Первый публичный выпуск Tux3 был представлен в 2008 году, до этого около 10 лет проект развивался под грифом внутренней разработки, нацеленной на опробование некоторых новых подходов к построению файловых систем. Файловая система Tux3 позиционируется как ФС общего назначения, которая использует версионный механизм учёта изменений и позволяет вернуться к состоянию ФС в любой момент времени в прошлом, что достигается благодаря тому, что данные при внесении изменений не переписываются, а копируются на новое место. При этом версионный контроль применяется как для ФС в целом, так и для индивидуальных файлов и директорий. Для выбранного состояния могут осуществляться версионные срезы (снапшоты), которые могут продолжать существование как самостоятельные объекты, для которых возможна запись и изменение данных.

Другими интересными особенностями Tux3 являются встроенные средства для репликации между системами отдельных файлов, директорий или целиком ФС, режим атомарного обновления данных, возможность изменения размера ФС на лету, динамическое распределение i-node (i-node хранятся в виде дерева btree и не имеют фиксированного размера или жестко заданного набора атрибутов), высокая скорость работы fsck за счёт ведения лога изменений в виде Btree-дерева, быстрый доступ к большим директориям, содержимое которых индексируется с использованием структур PHTree (в планах). Максимальные размеры файлов, разделов, числа i-node и версионных изменений практически не ограничены (2^60 и 2^48).

В отличие от файловых систем Btrfs и ZFS, Tux3 базируется на модели использования одного указателя на екстент (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, оценивающей скорость выполнения нескольких сценариев работы с ФС, свойственных для высоконагруженных систем. В качестве одной из причин низкой нагрузки на CPU называется разделение реализации Tux3 на две раздельные подсистемы - фронтэнд и бэкенд. Фронтэнд осуществляет выполнение операций, свойственных для POSIX ФС, и работает только с данными имеющимися в кэше. Бэкенд в фоновом режиме следит за синхронизацией кэша, осуществляя операции с диском в атомарном виде (в показателях теста учитывается только нагрузка от фронтэнда, но разработчики утверждают, что если учесть и бэкенд, общая нагрузка на CPU всё равно будет ниже). Все изменения передаются фронтэндом в виде транзакций, которые группируются в delta-наборы с тем расчётом, что каждый набор может быть записан на носитель в виде атомарного изменения.

Несмотря на то, что ФС Tux3 уже пригодна для экспериментов, ещё не все запланированные функции реализованы. Наиболее существенной функцией, которую планируется реализовать в первую очередь, является поддержка снапшотов. Также пока не реализован в коде новый метод индексирования директорий (PHtree). Требуется доработка систем для управления свободным дисковым пространством и распределения блоков для уменьшения фрагментации. Необходимо создать эффективную утилиту для восстановления повреждённых ФС (fsck). В планах также реализация возможностей, связанных с миграцией блоков, увеличением/уменьшением размера разделов, дефрагментацией, дедупликацией и репликацией.

  1. Главная ссылка к новости (https://lkml.org/lkml/2013/1/1...)
  2. OpenNews: Новый вариант распределённой файловой системы POHMELFS готов для включения в ядро Linux
  3. OpenNews: Представлен полностью переработанный вариант распределённой файловой системы POHMELFS
  4. OpenNews: Доступна новая версия распределённой файловой системы XtreemFS 1.4
  5. OpenNews: В состав ядра Linux 3.8 войдёт файловая система F2FS
  6. OpenNews: Решение проблемы с потерей данных в ext4. NILFS2 и CEPH претендуют на включение в ядро 2.6.30
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35741-tux3
Ключевые слова: tux3, fs
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:08, 02/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в процессе монтирования приходится отталкиваться от исходного состояния элементов

    Т.е. на большом томе с кучей снапшотов монтирования просто не дождешься?

     
     
  • 2.2, deadless (ok), 20:41, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    зато потом на прямой обойдешь даже ext4 !! Интересно и почему такую перспективную разработку забросили на 3 года и никто не подхватил? опенсорц же?..
     
     
  • 3.8, Аноним (-), 22:34, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > зато потом на прямой обойдешь даже ext4 !!

    Если дождешься... :)

    > забросили на 3 года и никто не подхватил? опенсорц же?..

    Даже опенсорс ничего не может поделать с неуловимостью того самого Джо.

     
  • 3.16, Anonim (??), 22:51, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Тут определиться во мнении сколько же займет места несколько килобакт не могут, а вы говорите прогрессивную фс пилить.
     
     
  • 4.31, Аноним (-), 05:36, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > займет места несколько килобакт

    Логично. Кто-то знает что за килобакты такие? Это единица чего? :)

     
     
  • 5.32, asd (??), 10:54, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Звёздные войны?
    Мегабакта, килобакта, БАКТА...
    Неизвестная мера бакты.
     
  • 3.19, BratSinot (ok), 00:12, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > и почему такую перспективную разработку забросили на 3 года и никто не подхватил?

    По той-же причине, что и Reiser4. Сил и времени нужно много, а так-же нехилые знания в некоторых областях математики и программирования. За "спасибо" такие вещи не делаются, ибо займет все свободное время.

     
     
  • 4.44, Аноним (-), 22:44, 18/05/2014 [^] [^^] [^^^] [ответить]  
  • +/
    дык для этого и нужно было похищать(точнее изначально - подговаривать)и убивать жену Рейзера, потом платить его адвокатам, чтобы ему промыли мозги на момент "признания" итп.
    чтобы появился Такс3, ВинФС и все-все-все.
     
  • 3.38, pavlinux (ok), 23:50, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почему не подхватил, подхватили, только никому не показываем.  
     

  • 1.4, eve (ok), 21:06, 02/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сильно похоже на http://www.nilfs.org/en/
     
  • 1.5, Аноним (-), 21:48, 02/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >данные при внесении изменений не переписываются, а копируются на новое место

    т.е. можно 100500 раз отредактировать килобайтный файлик и забить терабайтный раздел?

     
     
  • 2.6, ананим (?), 21:56, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +6 +/
    100500*1кб=100500кб=100,5мб
    Математика, 2 класс.
     
     
  • 3.7, нононим (?), 22:24, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    100500 килобайт = 100500/1024 мегабайт = 98.14453125 мегабайт. Информатика, первый год изучения.
     
     
  • 4.10, Аноним (-), 22:36, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > 100500 килобайт = 100500/1024 мегабайт = 98.14453125 мегабайт.

    Mebibytes. В мегабайте 1000 байт, ибо мега - десятичная приставка, увы.

     
     
  • 5.11, res2500 (ok), 22:40, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +7 +/
    чем отличается обычный человек от программиста ?
    обычный человек думает что в 1 МБ - 1000 кб
    программист думает, что в одном килограмме - 1024 грамма
     
     
  • 6.13, Аноним (-), 22:49, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это хреновые программисты, которые на стандарты обозначений кладут.
     
     
  • 7.18, Аноним (-), 23:16, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это хреновые стандарты, которые кладут на выражение, которое уже устоялось.
     
     
  • 8.20, Аноним (-), 00:47, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я читал стандарт ГОСТ Там не сказано как правильно употреблять 1024-приставки... текст свёрнут, показать
     
     
  • 9.22, all (??), 01:17, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    , чуть чаем не подавился Вы ГОСТ на что читали ... текст свёрнут, показать
     
     
  • 10.37, Mr. Gentoo (?), 20:41, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    такой вопрос могут задать только пхп-программисты ... текст свёрнут, показать
     
  • 10.41, Аноним (-), 22:17, 07/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    А вы читали Или чай замещает чтение документации Вот с кем не поговоришь, всё ... текст свёрнут, показать
     
  • 8.27, Аноним (-), 05:31, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Десятичные приставки появились намного раньше чем вообще компьютеры А 1024 пост... текст свёрнут, показать
     
  • 8.34, Анончик (?), 15:42, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне Вас жаль, если Вы не можете следовать стандартам и считаете, что все должны ... текст свёрнут, показать
     
     
  • 9.35, all (??), 16:29, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для особо одаренных в СИ основание системы счисления 10 10 n, так как весь мир... текст свёрнут, показать
     
  • 5.12, filosofem (ok), 22:40, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > В мегабайте 1000 байт

    Предыдущие спортсмены очень старались, но ты победил.

     
     
  • 6.23, ананим (?), 01:40, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    с детьми нужно общаться на им понятном языке. :D
    сам факт — где ~100мб и гдё ~терабайт.
     
  • 5.17, нононим (?), 22:58, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> 100500 килобайт = 100500/1024 мегабайт = 98.14453125 мегабайт.
    > Mebibytes. В мегабайте 1000 байт, ибо мега - десятичная приставка, увы.

    http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B3 первые 3 столбца в таблице, что сверху справа

     
  • 3.9, Аноним (-), 22:35, 02/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > 100500*1кб=100500кб=100,5мб

    Не учтен размер блоков ФС (if any) и оверхед от метаданных. Да, это вам не школа :)


     
     
  • 4.24, ананим (?), 01:43, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> 100500*1кб=100500кб=100,5мб
    >Не учтен размер блоков ФС (if any) и оверхед от метаданных. Да, это вам не школа :)

    учитывать оверхед от размера блока и метаданных при соотношениях ~100мб на ~1Тб будет только параноик.
    да и то при обострении.

     
     
  • 5.26, Anonim (??), 03:46, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    С современными файловыми системами вполне может дойти до того что метаданные будут больше самих данных.
     
  • 5.29, Аноним (-), 05:32, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > учитывать оверхед от размера блока и метаданных при соотношениях ~100мб на ~1Тб
    > будет только параноик.

    А если взять файлы нулевого размера то можно ... ну вы в курсе насчет соотношений, да? :)


     
     
  • 6.33, ананим (?), 11:29, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А если взять файлы нулевого размера то можно ...

    то можно выглядеть дураком.
    я понял.

     
     
  • 7.36, Аноним (-), 17:52, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > то можно выглядеть дураком.

    Да, можно. Особенно если попутно вопить о том что оверхед от метаданных обуительный.


     
  • 6.42, Евгений (??), 19:08, 09/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Если менять нулевой файл на нулевой, то и изменений никаких писать не нужно. Метку доступа помнить и вроде бы все.
     

  • 1.21, CSRedRat (ok), 01:11, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Btrfs больше не нужна? Или у них разное назначение? Кто в теме?
     
     
  • 2.30, Аноним (-), 05:33, 03/01/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Btrfs больше не нyжна? Или у них разное назначение? Кто в теме?

    Белаз больше не нyжен? Ведь есть же пикапы!

     

  • 1.25, Главные Редакторы (?), 02:15, 03/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    "ещё не все запланированные функции реализованы."
    Мы предсказываем, что после того как оставшиеся функции будут реализованы, утилита fsstress покажет для Tux3 снижение производительности и повышение нагрузки на ЦПУ, хуже значений которые будут к тому времени достигнуты на ext4.
     
  • 1.40, Аноним (-), 00:41, 06/01/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > предлагается использовать новый репозиторий проекта на GitHub

    Кто там вякал что нужны другие хостинги?

     
  • 1.45, Аноним (-), 22:46, 18/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    дальний родич 3-го рейзера, ФС Диджитал и Новелл.
    но в отличие от такса, там приоритет был не на минимизации оверхэда, а на НАДЕЖНОСТИ.
    хотите малый оверхэд ? вам на UFS или exFAT ;)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру