Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: Пред. 1 2 3 4
RSS
фс мечты
 
> мне кажется все таки стоит еще определится - эта DreamFS  предполагает восстановление пользовательских данных ? или только служебной информации ФС ?

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

> я непонял (учитывая далее сказанное) существуют блоки и транзакции, это не одно и тоже, где-то на диске еще и хранится список транзакция файла ?

да.


> а если между этими шагами произойдет сбой ?
то при диагностике системы получим ни к чему не привязанный блок, что легко исправляется.

> не будешь бить на части - будут остатки кластера в чистом виде (аля FAT)

а разве я уже два или три раза не говорил, что буду бить на части при необходимости? :)

> так вот уточни количество этих избыточных блоков для твоих нужд
а это принципиально важно? сколько надо будет - столько и сделаю :)


> то есть при нужде поправить блок надо его сначала считать с диска и записать поправленную инфу ?

если ты про процедуру выделения, то на этапе выделения данные о блоке УЖЕ будут в памяти, потому что мы считали их туда, когда искали этот блок.

> тогда операция выделения блока превращается в как минимум три независимых

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

допустим, данные задерживаются в кеше отложенной записи максимум на 1 секунду. тогда все транзакции, сделанные более, чем за секунду до сбоя, записаны ВЕРНО. после сбоя производится откат на секунду, и в результате состояние файловой системы совершенно корректно :)
 
Цитата
buggzy пишет:

> мне кажется все таки стоит ещопределится - эта DreamFS  предполагает восстановление пользовательских данных ? или только служебной информации ФС ?

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

Цитата
buggzy пишет:

> я непонял (учитывая далее сказанное) существуют блоки и транзакции, это не одно и тоже, где-то на диске еще и хранится список транзакция файла ?

да.
мда, и не слабо будет еще проводить синхронизацию эта списка в памяти с диском (ведь по сути это будет основная структура ФС которая будет определять ее целостность)

Цитата
buggzy пишет:

> а если между этими шагами произойдет сбой ?
то при диагностике системы получим ни к чему не привязанный блок, что легко исправляется.
легко, но в какую сторону?
блок помечен как занятый а свободные блоки указывают на него как на свободный, че с ним делать ? придется как-то соотносить это дело со списком транзакций, который неизвестно успел обновиться или нет.....

Цитата
buggzy пишет:


> не будешь бить на части - будут остатки кластера в чистом виде (аля FAT)

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

Цитата
buggzy пишет:

> так вот уточни количество этих избыточных блоков для твоих нужд
а это принципиально важно? сколько надо будет - столько и сделаю :)
мне просто интересно оценка количества этих самых дополнительных блоков для достижения _необходимого_ уровня восстановимости.
хотя бы примерно ?

Цитата
buggzy пишет:

> тогда операция выделения блока превращается в как минимум три независимых

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

Цитата
buggzy пишет:

я пользовался и ntfs, и reiserfs, и вижу, что они - не панацея. при неправильном выключении питания сыпятся, а иногда и без оного - тоже. думаю, остальные современные файловые системы не лишены тех же недостатоков. лично я думаю, что они - не идеал, а компромисс (между устойчивостью и производительностью), но мне иногда поведение этого компромисса не нравится :)
я работаю с NTFS достаточно давно, чтобы сказать, что я считаю ее достаточно стабильной ФС, которая достаточно быстро и корректно исправляет ошибки в служебной информации файловой структуры - _при_стандартных_режимах_работы_
что я имею в виду ? да я видел, и не раз как она портилась вся, так что даже польз. инфу только часть удавалось спасти, но это происходило только при наличии аппаратных проблем (в основном совсем плохо бывает при ошибках в памяти). я не думаю что какая-то другая _существующая_ ФС смогла бы сделать больше, хотя это и спорное утверждение

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

зы. пишу и думаю "а много сюда еще текста влезет?"  
 
Цитата
buggzy пишет:
а не будет проблем при потере питания, несмотря на кеши! :) как так? а вот :)

допустим, данные задерживаются в кеше отложенной записи максимум на 1 секунду. тогда все транзакции, сделанные более, чем за секунду до сбоя, записаны ВЕРНО. после сбоя производится откат на секунду, и в результате состояние файловой системы совершенно корректно :)
че-то я писал писал а потом подумал, а где ты зафиксируешь время сбоя, да еще с точностью до микросекунд? типа запись в жрунале событий "произошел сбой электропитания в 14:35:11, необходимо восстановление ФС на состояние 14:35:10"
 
> блок помечен как занятый а свободные блоки указывают на него как на свободный, че с ним делать ? придется как-то соотносить это дело со списком транзакций, который неизвестно успел обновиться или нет.....

да не надо так грузиться, все просто! :) после сбоя ищется последнее состояние системы, в котором файловая система цела. все, что было позже - отменяется. вот и все. нужно лишь два условия:

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

> вообще кажется не говорил, ты говорил что будешь объединять

говорил!! :)

> мне просто интересно оценка количества этих самых дополнительных блоков для достижения _необходимого_ уровня восстановимости.

1/5..1/10 от общего числа

> ты уверен

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

а может лучше доработать NTFS ?  там вроде немного осталось
 
а разве в NTFS фича "откат на произвольное время" (скажем, на пол часа) как-то предусмотрена?
 
Цитата
buggzy пишет:
а разве в NTFS фича "откат на произвольное время" (скажем, на пол часа) как-то предусмотрена?
если бы была предусмотрена я думаю этого треда бы здесь не было хотя ...

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

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

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

что такое транзакции служебных данных? у меня такое понятие никак не определено...
 
Цитата
buggzy пишет:
не понял...

что такое транзакции служебных данных? у меня такое понятие никак не определено...

транзакции ведь существуют для того, чтобы выполнять некоторую последовательность операций с уверенностью в том, что она либо завершиться успешно, либо вообще не будет выполнена (неудачное слово, я имею в виду результат _всей_ последовательности - он либо будет либо нет)
любое изменение файловой системы
(выделение свободного блока -
   1. найти первый свободный
   2. пометить его как занятый
   3. предыдущий свободный указать на следующий свобод.
   и т.д.)
есть по сути последовательность операций которая не должна прерываться в середине - она либо должна завершиться, либо ничего не изменить в структуре ФС.
это и будет трназакция записи служебных данных ФС (структура ФС = служебные данные)
 
> транзакции ведь существуют для того, чтобы выполнять некоторую последовательность операций с уверенностью в том, что она либо завершиться успешно, либо вообще не будет выполнена

ну, у меня они существуют не только и не столько для этого :)

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

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

надо было мне какое-то новое слово придумать, чтобы такой вот путаницы не возникало :(
 
точно, надо просто другим термином обозначить, а то ведь то как у тебя файлики организованны, это не транзакции , это просто что-то типа как в бзых данных, разные версии записей..
 
Жила когда-то такая железка VAX 11, так вот там було все, кроме приемлемой скорости обмена... эх детство 8)
Может есть тут спецы по старому убогому Digital'у. Дайте ссылку на доки по устройству той FS.
Страницы: Пред. 1 2 3 4
Читают тему