The OpenNET Project / Index page

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



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

Оглавление

Проблемы с потерей данных на Ext4 разделах в тестовой версии..., opennews (??), 12-Мрт-09, (0) [смотреть все]

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


27. "Проблемы с потерей данных на Ext4 разделах в тестовой версии..."  +/
Сообщение от Tim (??), 12-Мрт-09, 18:49 
> Файл записывается в сектора, ПОТОМ обновляется системная инфа (каталог) и вуаля!

IMHO во FreeBSD это называется SoftUpdate.

> Я не совсем понимаю, а что за такие громадные преимущества даёт "журнал"?

1) технология журналирования уже расPRена (журнал магически исправляет ошибки дизайна)
2) новую "надежную ФС" могут написать даже "индусы" (речь не об конкретной ФС и тем более ОС)
3) идея журналирования широко используется уже 20 лет
главный козырь) у нас -- как в ntfs, только лучше! ;-)

> Зачем ещё какие-то параноидальные "повышения надёжности"?

журналирование ФС используется не для повышения надежности, а для сокращения времени восстановления ?_внутренних_ структур ФС после сбоев. О сохранности пользовательских данных речи вообще _нет_.

Для повышения надежности используется аппаратный кэш (статическая память*) дисковой подсистемы. Или в бюджетном варианте синхронная запись на диск.

* статическая память -- может пережить отключение питания, при этом очень быстрая и очень дорогая.

> Проблему надумали?

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

В статье говорилось о задержке перед записью в 60 сек -- значит при падении системы, будут терятся (в среднем) все записи сделанные за последние 30 сек перед сбоем.


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

39. "Проблемы с потерей данных на Ext4 разделах в тестовой версии..."  +/
Сообщение от _umka_ (ok), 12-Мрт-09, 19:25 
>> Файл записывается в сектора, ПОТОМ обновляется системная инфа (каталог) и вуаля!
>
>IMHO во FreeBSD это называется SoftUpdate.
>

только в extXXX - журнал на диске в специальной inode.
а в FreeBSD - это в памяти, а в остальном функциональность похожая.
Поэтому после падения - в ext можно что-то прочитать, а в freebsd - этого нету.
Но в FreeBSD добавили журналирование через GEOM (geom_journal) - насколько я понял это полное журналирование данных и лучше такое держать на внешнем девайсе.

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

77. "Проблемы с потерей данных на Ext4 разделах в тестовой версии..."  +/
Сообщение от Tim (??), 12-Мрт-09, 22:42 
>>> Файл записывается в сектора, ПОТОМ обновляется системная инфа (каталог) и вуаля!
>>
>>IMHO во FreeBSD это называется SoftUpdate.
>>
>
>только в extXXX - журнал на диске в специальной inode.
>а в FreeBSD - это в памяти, а в остальном функциональность похожая.

Работа extXXX классическая -
1) отметка в журнале "начало операции"
2) выполнение операции (обычно группируются в пакеты для производительности)
3) отметка в журнале "завершение операции"
При сбое: чтение журнала и откат до валидного состояния.

IMHO основная идея SoftUpdate выполнять изменения метаданных в таком _порядке_, чтобы состояние ФС на _диске_ всегда было валидным! Основной упор делается на _порядок_ изменений.

PS. Подробности реализации этого чуда во FreeBSD я незнаю (не интересовался),
по-этому судить о сильных/слабых сторонах не могу.

PPS. Вероятно я ошибаюсь, ушел искать FM по SU ;-)

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

102. "Проблемы с потерей данных на Ext4 разделах в тестовой версии..."  +/
Сообщение от _umka_ (ok), 13-Мрт-09, 10:13 
>[оверквотинг удален]
>>>
>>>IMHO во FreeBSD это называется SoftUpdate.
>>>
>>
>>только в extXXX - журнал на диске в специальной inode.
>>а в FreeBSD - это в памяти, а в остальном функциональность похожая.
>
>Работа extXXX классическая -
>1) отметка в журнале "начало операции"
>2) выполнение операции (обычно группируются в пакеты для производительности)

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

>3) отметка в журнале "завершение операции"

ошибка. journal commit + очистка журнала - журнал не растет бесконечно.

>При сбое: чтение журнала и откат до валидного состояния.

не откат а journal replay. операции из журнала применяются повторно - чем гарантирует что по концу журнала FS будет +/- не противоречиво.

>
>IMHO основная идея SoftUpdate выполнять изменения метаданных в таком _порядке_, чтобы состояние
>ФС на _диске_ всегда было валидным! Основной упор делается на _порядок_
>изменений.

будете смеяться - но в ext - тоже самое, задача получить правильный порядок обновления.


>
>PPS. Вероятно я ошибаюсь, ушел искать FM по SU ;-)

я там копался весьма мало - но по результатам сложилось стойкое впечатление что это тот же журнал - только в памяти. для ext такое тоже делают для ускорения - journal на внешнем флэш девайсе или в ram которая искуственно подпитывается.

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

108. "Проблемы с потерей данных на Ext4 разделах в тестовой версии..."  +/
Сообщение от Tim (??), 13-Мрт-09, 14:02 
>тут разное, бывает журналирование обновлений блоков метаданных, бывает всего.
>главная задача создать правильный порядок обновления - как вобщем-то и SU.

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

>не откат а journal replay. операции из журнала применяются повторно - чем
>гарантирует что по концу журнала FS будет +/- не противоречиво.

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

>что это тот же журнал - только в памяти. для ext

Нашел прекрасное описание SU написанное McKusick'ом. Если в кратце:
1) изменения метаданных записывается в кэш (как и в extXXX)
2) строится граф зависимостей этих изменений
3) сортируется (топологическая сортировка)
4) выполняется по порядку

McKusick указал на два основных недостатка:
1) это сложность реализации (и соответсвенно отладки)
2) возможность утечки свободного дискового пространства при сбоях
Второй пункт рекомендует лечить фоновым fsck

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

154. "FreeBSD SoftUpdates vs журнал"  +/
Сообщение от nuclightemail (ok), 21-Мрт-09, 22:37 
По сути, если смотреть максимально обще, то фревый SostUpdates - это действительно такой специфический журнал, только существующий исключительно в памяти. И при сбое он теряется, то есть всегда выполняется rollback транзакций.

>McKusick указал на два основных недостатка:
>1) это сложность реализации (и соответсвенно отладки)
>2) возможность утечки свободного дискового пространства при сбоях
>Второй пункт рекомендует лечить фоновым fsck

Да, именно сложность реализации и составляет основную проблему, а сама идея неплоха. Второй пункт появляется, поскольку на диске реального журнала нет, и если сбой случится в окно записи на диск, то будет ошибка. Однако SU построен таким образом, что класс таких ошибок очень ограничен (по большому счету пропажа места, ага), потому с введением бэкграундного fsck систему можно запускать сразу же на непроверенной fs, очень удобно, в отличие от форсированных проверок "180 дней на ext3 без fsck". Журнал не панацея, хехе.

В общем, идея, повторюсь, неплоха, и вполне конкурентоспособна с журналом. Вот только из-за сложности реализации имеются проблемы - например в NetBSD с кодом задолбались и будут SU выкидывать. Печальный пример, как плохая реализация может убить хорошую идею.

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

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

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




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

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