The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Обзор файловой системы NILFS2, которая будет включена в сост..., opennews (ok), 03-Июн-09, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от Аноним (-), 03-Июн-09, 23:34 
так снапшоты можно ведь через LVM реализовать. нужна ли тогда для этих функций новая ФС? не считая независимых деревьев, конечно.
Ответить | Правка | Наверх | Cообщить модератору

3. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от User294 (ok), 03-Июн-09, 23:47 
>так снапшоты можно ведь через LVM реализовать. нужна ли тогда для этих
>функций новая ФС? не считая независимых деревьев, конечно.

Просто версионники - более другой тип ФС нежели классические.С другими свойствами.Например, запись по идее достаточно быстрая а восстановление после краша - эстетичное.В принципе версионник может "почти нахаляву" поддерживать валидное состояние не только метаданных но и данных, в меру моего понимания."Почти нахаляву" означает что нет той сильной просадки скорости от журналирования данных которая присутствует в обычном дизайне ФС с журналом.И всегда можно вернуть файл в какой-то вменяемый вид после того как запись в него отвалилась на середине.

ЗЫ в этой статье ext2 почему-то обозвана ФС с деревьями.Если я не дятел - они гонят.Чистый ext2 без нифига деревьями вроде не пользуется?!

ЗЗЫ видится интересный вариант рекавери системы с такой ФС - просто загрузиться в состояние (снапшот) на энное время раньше.Нечто типа отката состояния у виртуалки :)

Ответить | Правка | Наверх | Cообщить модератору

6. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от Аноним (-), 04-Июн-09, 00:50 
но как я понимаю, версионные ФС создают большую избыточность данных, чтобы хранить одни и те же файлы, но разных версий. скорее всего используется какая-либо инкрементальная разница между снапшотами для уменьшения использования дискового пространства.

правильно понимаю?

Ответить | Правка | Наверх | Cообщить модератору

9. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +3 +/
Сообщение от User294 (ok), 04-Июн-09, 02:01 
>но как я понимаю, версионные ФС создают большую избыточность данных, чтобы хранить
>одни и те же файлы, но разных версий.

Версионники не переносят логи изменений из журнала в основную ФС(в отличие от обычных).Вместо этого вся ФС просто является кучкой логов.В результате достигается вполне логичная экономия: запись изменений делается 1 раз - в лог.А переносить из лога в основную ФС - не требуется.Экономия по операциям записи и рост скорости записи - очевидны.

При этом можно считать что ФС постоянно себя снапшотит(за счет ее структуры "куча логов" можно восстановить не только текущее но и некий набор прошлых состояний).Всегда есть набор "кандидатов в снапшоты" - в терминах NILFS это "чекпойнты".Что-то типа снапшотов, только временных - их живет некая пачка, самые старые постепенно подчищаются garbage collector'ом для как раз очистки места на диске.Т.е. выводок временных снапшотов живет на ФС чисто за счет принципа ее работы - ФС логгит все что делает, всегда можно выхватить состояние на некий предшествующий момент просто забив на более новые логи.Что и позволяет просто и корректно восстанавливаться после краха, откатываться на прошлые версии некоторое время и т.п.. Сказать что это занимает место можно достаточно условно - старые чекпойнты постепенно прибиваются и как максимум про них можно сказать "временно занимают место".

Создание "постоянного" снапшота из временного чекпойнта = запрету стирать некий набор логов, т.е. просто, быстро и нахаляву, ведь все что было надо для снапшота - уже есть, просто garbage collector-у запрещается прибивать нужные логи когда-то там в будущем.Это, разумеется приводит к съеданию места таким снапшотом - чудес не бывает.А вот временные чекпойнты место занимают достаточно условно.Тем не менее, хоть они и временные, они позволяют некоторое время (пока их не убьет GC) откатываться к старому состоянию.

>скорее всего используется какая-либо инкрементальная разница между снапшотами
>для уменьшения использования дискового пространства.

Эта разница называется "логами".Вся ФС состоит из "разниц" в виде логов.Новое состояние = старое + логи.Инкрементальность зашита в принципах работы такой ФС :)

>правильно понимаю?

Да - такая ФС "разницами" и оперирует, потому и log structured.Из логов состоит.

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

Минусов у такого подхода как я понимаю есть - срач логами по всему диску и нужда их постепенно подтирать.Потенциально может быть фрагментация + требуется достаточно непростой garbage collector и достаточно навороченная логика вокруг всего этого.

ЗЫ если я где-то наврал, пусть гуру типа Фрески меня поправят.

Ответить | Правка | Наверх | Cообщить модератору

10. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от Аноним (-), 04-Июн-09, 05:42 
>Новое состояние = старое + логи.

Непонятен этот момент. Т.е. текущее состояние - это лог1 + лог2 + лог3 + ... логХХХХ ? Если так, то считывать тысячи разниц, и, плюс к тому, сравнивать их - довольно затратно.

Или всё же после нескольких десятков изменений создаётся снимок состояний, который достаточно один раз прочитать и сразу использовать, без необходимости сравнивать разницы? Заранее спасибо :)

Ответить | Правка | Наверх | Cообщить модератору

21. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от fresco (??), 04-Июн-09, 13:01 
тут тот же принцип, что в ZFS и btrfs, только реализация немного проще. читайте про эти ФС -- станет понятнее.
Ответить | Правка | Наверх | Cообщить модератору

29. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от User294 (ok), 06-Июн-09, 04:59 
>тут тот же принцип, что в ZFS и btrfs, только реализация немного
>проще. читайте про эти ФС -- станет понятнее.

Кстати, из того что мне интересно:
1) Перестройка+дефрагментеж GCом... а насколько это безопасно?В плане сохранности данных?По наблюдениям - сбои в процессе таких объединений-дефрагментаций - наиболее хреновое что может произойти с подобной структурой.Как с этим борятся?Что-то не нашел у NILFS на сайте внятного освещения этого вопроса(плохо искал?).
2) Если нагрузка постоянная и интенсивная - как это с GC будет уживаться?
3) Такие структуры в принципе склонны к фрагментации? (GC как я понимаю с этим должен бороться).
4) Конеретно у NILFS кажется работа с мелочью и большим числом файлов в каталогах сделана как я понимаю не ахти? Явно не выглядит как ФС для хранения миллионов мелких файлов в 1 дире в данный момент.

Ответить | Правка | Наверх | Cообщить модератору

18. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от xxx (??), 04-Июн-09, 11:56 
>Основной плюс как я понимаю возможность честно журналировать запись и данных файлов и >метаданных не теряя от этого в скорости

Что-то я сомневаюсь, что она не теряет в скорости. Почему ты думаешь, что она должна быть быстрее обычной ФС c журналированием?

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

30. "Обзор файловой системы NILFS2, которая будет включена в сост..."  +/
Сообщение от User294 (ok), 06-Июн-09, 05:54 
>Что-то я сомневаюсь, что она не теряет в скорости. Почему ты думаешь,
>что она должна быть быстрее обычной ФС c журналированием?

В обычной ФС если честно журналить и метаданные ФС и данные файлов, придется писать записываемые данные 2 раза. Сперва в журнал, потом в ФС. Двойная запись данных разумеется сажает скорость записи. Зато честно реализуется "все или ничего".Запись аннулируется если обломалась при записи в журнал или доводится до конца по данным из журнала если обломалась уже при записи в основную ФС.

Обычно такая просадка считается неприемлимой (просадка вдвое, плюс-минус лапоть) и для большинства некритичных задач пользуют компромиссные варианты, когда в журнал идут только метаданные.Цена компромисса - честного "все или ничего" уже не получается.Валидное состояние ФС - да, есть.А вот в каком состоянии файлы?Правильно, никто ничего не гарантирует.Грамотный подход (типа ordered в ext3) может помочь данным оставаться более-менее корректными в типовых сценариях.Но честные транзакции через журнал надежнее.И этак вдвое тормознее...

"Версионники" пишут новые данные ОДИН раз.Как этакий "лог".Похожий по смыслу на лог журнала классической ФС.Из-за такого принципа работы "все или ничего" получается само (недописанные логи - в топку, дописанные - юзать, сконструировав из них текущий вид файла).При этом получается честное журналирование не только метаданных но и данных.И даже "машина времени" с разными версиями файла - просто свойство такой ФС(достаточно забить на логи позднее чем X - и вот вам ФС в состоянии на момент X).А запись вообще недеструктивна - исходный вариант файла вообще как правило не трогается (как минимум сразу, на момент записи).Отсюда вытекает и достаточно корректный откат (можно просто вернуться к прошлому состоянию файла на котором сорвалась запись) и богатые возможности по части снапшотов(все что надо для снапшота - уже существует).Минусы ... разгребать старье подтирая старые версии версионнику все-таки когда-то придется а сам этот процесс не то чтобы очень уж тривиальный.

Ответить | Правка | Наверх | Cообщить модератору

5. "Обзор файловой системы NILFS2, которая будет включена в сост..."  –1 +/
Сообщение от Аноним (-), 04-Июн-09, 00:47 
>так снапшоты можно ведь через LVM реализовать. нужна ли тогда для этих
>функций новая ФС? не считая независимых деревьев, конечно.

на LVM не работают барьеры если используется больше одного физического диска, отсюда как следствие у программ и у ФС пишущих через LVM нет гарантии что после выхода из *sync() данные действительно записались на диск, а это может привести к повреждению данных или журнала ФС при неожиданном отключении питания.

поэтому эта ФС нужна, а LVM не всегда можно использовать.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

7. "Обзор файловой системы NILFS2, которая будет включена в сост..."  –1 +/
Сообщение от Аноним (-), 04-Июн-09, 00:52 
>на LVM не работают барьеры если используется больше одного физического диска

что такое барьеры? с LMV я совсем недавно начал знакомиться.

Ответить | Правка | Наверх | Cообщить модератору

8. "Обзор файловой системы NILFS2, которая будет включена в сост..."  –1 +/
Сообщение от Аноним (-), 04-Июн-09, 01:49 
>>на LVM не работают барьеры если используется больше одного физического диска
>
>что такое барьеры? с LMV я совсем недавно начал знакомиться.

/usr/src/linux/Documentation/block/barrier.txt

ОС для обработки запросов ввода/вывода ставит их в очередь и может менять порядок запросов в этой очереди так как считает нужным. если не вдаваться в подробности, барьер - это специальный запрос в этой очереди который гарантирует что все запросы находящиеся в очереди до него, будут выполнены до него и не поменяются местами с последующими.

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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