Vladislav
Δαρθ
Alex
это не то же, что журнал ext
Станислав
Это так ужасно: нельзя уменьшить раздел. Как я живу без этого =))
Я только что описал кейс с РМК, где без уменьшения никак. Т.к. компы с разным размером диска и накатывать вручную на всех ОС то ещё приключение. Были самописные скрипты на pxe сервере, которые быстро разворачивали подготовленную ОС со всем софтом и т.д. На гигабитной сетке с процом i3 4gen этот 2х гиговый образ за 45 секунд влетал. Это благодаря тому, что размер ФС была уменьшена до минимума и сделана копия с dd. Иначе пришлось бы копировать 10гиг+
Alex
Vladislav
это не то же, что журнал ext
Нет, стоп, Вы говорите "журнал ZFS не полагается"
Вы не сказали
*ZFS не журналируемая файловая система* (что корректно, ибо она транзакционная, но все транзакции точно также хранятся в *журнале*)
Alex
Vladislav
Alex
Alex
Alex
нет, это не журнал
Станислав
Vladislav
Нууу, давайте посмотрим на его расширофку
Станислав
Vladislav
P.S. С одной стороны, человек пытается привести нас к TXG (которые являются группой транзакций), но забывает, что TXG это тот же лог\журнал операций, (просто в профиль), а CoW позволяет проигрывать журнал не только вперёд, но и назад
Alex
Vladislav
Но это моё ИМХО
Alex
Vladislav
Что на самом деле несёт Alex - я хрен его знаю
Alex
Vladislav
Vladislav
Alex
Vladislav
Нет, это не так. имхо
То есть в итоге Вы просто считаете что правильно по Вашему без опоры на... что-либо?
Vladislav
Что по Вашему пишется в SLOG?
Vladislav
Vladislav
Δαρθ
журнал в ехт4 тоже intent log такто
Alex
ок , да они преследуют одну цель и похожи. Но slog идут append only для синхронных write, а журнал в ext это фиксация шагов изменений структуры фс. т.е по сути меты
Alex
хотя вы на меня накинулись , что я и засомневался . Бывает меня клинит, давайте погуглю
Alex
=)
Alex
* journal mode
data=journal mode provides full data and metadata journaling. All new data is
written to the journal first, and then to its final location.
In the event of a crash, the journal can be replayed, bringing both data and
metadata into a consistent state. This mode is the slowest except when data
needs to be read from and written to disk at the same time where it
outperforms all others modes. Enabling this mode will disable delayed
allocation and O_DIRECT support.
Alex
fuck :)
Vladislav
Ну самое банальное,
1) A physical journal logs an advance copy of every block that will later be written to the main file system. Physical journals impose a significant performance penalty because every changed block must be committed twice to storage.
2) A logical journal stores only changes to file metadata in the journal, and trades fault tolerance for substantially better write performance. May allow unjournaled file data and journaled metadata to fall out of sync with each other
3) CoW FS avoid in-place changes to file data by writing out the data in newly allocated blocks, followed by updated metadata that would point to the new data and disown the old, followed by metadata pointing to that, and so on up to the superblock, or the root of the file system hierarchy. This has the same correctness-preserving properties as a journal, without the write-twice overhead.
Vladislav
Alex
Vladislav
Vladislav
Просто открыл
journal vs transaction file system
Alex
physical journal logs - я не знаю что это за physical. Это как ?
Alex
ну или скажем, не-physical - это как?
Alex
Не, я всё же вовсе не уверен, что ext с journal=data будет равносильно cow по fault tolerance . В случае, когда идет перезапись файла, ext4 будет перезаписывать. И если уже произойдет перезапись данных, то никакой журнал не поможет. А старых данных у нее нет, иначе она была бы полноценной cow, а это не так
Vladislav
Не, я всё же вовсе не уверен, что ext с journal=data будет равносильно cow по fault tolerance . В случае, когда идет перезапись файла, ext4 будет перезаписывать. И если уже произойдет перезапись данных, то никакой журнал не поможет. А старых данных у нее нет, иначе она была бы полноценной cow, а это не так
?
У Вас есть данные, которые надо записать и мета к ним на диске 1
Пока она не окажется целиком на диске 2 - данные с диска 1 никуда не денутся.
Если у нас фейл по питанию - диск 2 продолжит восстанавливать данные с диска 1
CoW использует схожий принцип, просто данные не пишутся дважды, у Вас просто меняется указатель
(Деление на диски условное, это может быть один диск, просто с двумя нагляднее)
Δαρθ
Nikolay
Станислав
Станислав
Станислав
Vladislav
Vladislav
Это немного однонаправленная операция насколько мне известно
Станислав
Vladislav
Vladislav
Не *записаны*
Станислав
Аааа, теперь понял, что имелось ввиду
Станислав
Станислав
Я про случай отключения питания
Vladislav
Станислав
Vladislav
ext4, если у Вас в журнале данные отсутствуют - они не будут записаны на диск данных
Vladislav
По умолчанию - существует ситуация, что мета старая, а данные уже частично перезаписаны, потому что данные не кладутся в журнал
Alex
Alex
Если бы ext не перезаписывала данные, она была бы cow.
Alex
Станислав
Вы не поняли.
1) Данные просятся в ФС
2) ФС попутно создает мету и отправляет с данными на диск 1 (журнал). Диск берет их себе, кладёт в буфер у себя (ОЗУ), но сообщает, что записал на ПЗУ.
3) ФС считает, что всё ок, начинает писать данные на диск 2, но не успевает закончить, т.к. пропало питание.
4) Питание появилось, ФС запустилась. Смотрит, мета есть, а данные не сходятся ни в журнале, ни на диске 2.
5) Упс
Vladislav
Вы не поняли.
1) Данные просятся в ФС
2) ФС попутно создает мету и отправляет с данными на диск 1 (журнал). Диск берет их себе, кладёт в буфер у себя (ОЗУ), но сообщает, что записал на ПЗУ.
3) ФС считает, что всё ок, начинает писать данные на диск 2, но не успевает закончить, т.к. пропало питание.
4) Питание появилось, ФС запустилась. Смотрит, мета есть, а данные не сходятся ни в журнале, ни на диске 2.
5) Упс
У Вас очень интересный ССД, мету получается положил а данные в кэш отправил?
Станислав
Или данные положил, или мету. А может ни то, ни другое. Кто знает их логику, кроме разработчиков? А т.к. это не PLP, как у Вас evo 860, то никто ничего гарантировать не должен
Vladislav
Vladislav
https://github.com/tytso/ext4-patch-queue/blob/master/series
Станислав