LINUX.ORG.RU

Логическое и физическое журналирование

 , ,


0

1

Добрый вечер. Собственно вопрос, правильно ли я понимаю, что в логическом журналировании мы логируем только мета-данные, а в физическом - блоки данных? Т.е. по сути, логическое - это writeback, а физическое - journal в Ext3?

Добрый вечер. Собственно вопрос, правильно ли я понимаю, что в логическом журналировании мы логируем только мета-данные, а в физическом - блоки данных? Т.е. по сути, логическое - это writeback, а физическое - journal в Ext3?

дядя, можно побольше узнать про -J journal_type=logical ?

emulek
()

Т.е. по сути, логическое - это writeback, а физическое - journal в Ext3?

В ext есть data=writeback, data=ordered, data=journal. Writeback/ordered и журналирование данных слабо связанные между собой понятия, возможна любая комбинация. Под ordered понимают последовательность «сначала записали в журнал, потом sync, потом реальная запись». В случае writeback таких ограничений нет. Соответственно и журналирование не даёт вообще никаких гарантий целостности.

i-rinat ★★★★★
()

Можно узнать, что вы читали? Просто я вобще не слышал словосочетания «логическое журналирование», как, впрочем, и «физическое журналирование».

mky ★★★★★
()
Ответ на: комментарий от i-rinat

Про writeback, ordered, journal я более-менее в курсе. Меня лишь интересовала параллель с понятиями физического/логического журналирования.

Hammernv
() автор топика
Ответ на: комментарий от Hammernv

Меня лишь интересовала параллель с понятиями физического/логического журналирования.

«Логическое журналирование» упоминается в статье в википедии. А вот в статье, на которую ссылка указана, такого понятия нет. Его выдумал автор раздела в статье на википедии.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Ну беглым взглядом я нашел там следующее: «Ext3 uses physical logging» Получается понятие «физическое журналирование» существует. Я думаю и логическое тоже, тем более встречал его еще в нескольких источниках.

Hammernv
() автор топика
Ответ на: комментарий от Hammernv

Из выражения «глокая куздра икает справдо» можно понять, что речь идёт о некой куздре, которая икает и делает это справдо, а сама по себе она глокая. Но вот понять, что именно означает глокая или что такое куздра, затруднительно.

Стоит найти автора тех строк и спросить у него.

i-rinat ★★★★★
()
Ответ на: комментарий от Hammernv

Оттуда и пошел вопрос. Может я неправильно перевел.

AFAIK в апстриме EXT4 сейчас есть только «логическое» журналирование, а вот «физического» нет. Т.е. в журнале только метаданные хранятся. Но это совсем не плохо: в случае сбоя (любого), мы откатываемся на последнюю непротиворечивую точку, и при этом структура сохраняется. Также сохраняются и все старые файлы. Теряются (обнуляются) только временные файлы.

Нужно понимать, как происходит процесс «изменения» файла в linux:

Допустим, мы заменяем файл X файлом Y(с другой ФС или вообще из Сети)

1. сначала создаётся временный файл X1 размера 0, рядом с файлом X

2. затем происходит копирование Y --> X1

3. после копирования, ОДНОВРЕМЕННО происходят две или три вещи: во первых файл X удаляется или переименовывается в X~; во вторых файл X1 переименовывается в X; и в третьих удаляется Y, если это нужно. Эта операция атамарна, и данные при этом не меняются. Если что, она откатывается журналом с метаданными.

Можно заметить, что когда-бы не случился сбой, мы потеряем только фантом-копию X1.

По этой причине, «физическое» журналирование в Linux просто не нужно, и не используется. Я даже не знаю, как его включать(если это даже возможно).

И да, writeback к этому всему совершенно не относится, журнал в этом смысле — самый обычный файл, и точно также пишется неизвестно когда. Единственная разница, это то, что приоритет файла-журнала на запись, является максимальным, и журнал отправляется на запись в девайс первым, всегда опережая данные. В EXT4 есть даже барьеры, что-бы журнал скидывался на HDD даже из внутренних буферов самого HDD.

emulek
()
Ответ на: комментарий от Hammernv

Но даже, допустим, эти понятия выдумал автор раздела.

AFAIK общепринятой терминологии просто не существует.

emulek
()
Ответ на: комментарий от Hammernv

Похоже, это не выдумка автора, а просто что-то далёкое. Если взять второй источник из той статьи с википедии — презентация ext3 в середине 2000 года ( http://olstrans.sourceforge.net/release/OLS2000-ext3/OLS2000-ext3.html ) :

The important thing about this API is that all of the updates that we're making are expressed in terms of: here is a block, here is the new contents of that buffer on disk. We're doing physical journaling. Now there's some filesystems that do journaling which do logical journaling and that means that, for example, if they allocate a particular disk block to a particular file, they'll write an entry in the journal that says: this disk block (is marked free, sorry) is marked in use. And this file has a mapping pointer pointing to that disk block. And that description for that allocation might only be a few bytes long. EXT3 will journal the entire copy of the blocks that have been modified, all 1K, 4K, whatever, of the blocks.

То там есть и физическое и логическое журналирование. При этом в то время ext3 умела только журнал версии 1 и ″data=journal″ (точнее у неё вобще не было опции монтирования ″data″).

А вот третий источник «Ext3 uses physical logging» говорит, что физическое, это когда в журнал идёт весь блок, независимо от числа изменённых байт и противопоставляет физическому журналированию разностное (differential journaling). При этом в их терминологии у ext3 всегда физическое журналирование, независимо от ″data=...″.

mky ★★★★★
()

Ну подведя итог, можно сделать вывод, что физическое - логируем блоки, а логическое - мета-данные. Так?

Hammernv
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.