Пример: файловая система ext2fs
Выполнил: Сидоров А.С.
ЖУРНАЛИРУЮЩИЕ ФАЙЛОВЫЕ СИСТЕМЫ
Файловая система - это программное обеспечение, которое используется для организации и управления данными, хранящимися на носителях информации; файловая система обеспечивает целостность данных, контролируя идентичность данных при их записи и последующем чтении.
Журналируемая файловая система— файловая система, в которой осуществляется ведение журнала, хранящего список изменений и, в той или иной степени, помогающего сохранить целостность файловой системы при сбоях.
Большинство современных файловых систем используют журналирование, заимствованное из мира баз данных, которое призвано улучшить восстановление после сбоев в работе системы. Дисковые транзакции последовательно записываются в специальную зону диска, называемого журналомили логом, перед тем как записаться в конечные пункты своего назначения в файловой системе.
Примеры файловых систем:
В семействе ОС Microsoft Windows к журналируемым относится файловая система NTFS.
В Mac OS X — HFS+.
В Linux существует несколько доступных журналируемых файловых систем. Наиболее известные из них:
§ XFS — журналируемая файловая система, разработанная Silicon Graphics, но сейчас выпущенная с открытым исходным кодом;
§ ReiserFS (Reiser4) — журналируемая файловая система разработанная специально для Linux;
§ JFS (JFS1 и JFS2) (Smart File System) — журналируемая файловая система, первоначально разработанная IBM, но сейчас выпущенная с открытым исходным кодом;
§ ext3fs (extended file system) — журналируемое расширение (можно подключать и отключать (tune2fs), а также выбирать режим журналирования) файловой системы ext2, используемой на большинстве версий GNU/Linux;
Реализации варьируются на уровне того, каким данные записываются в журнал. Некоторые варианты записывают только матаданные файловой системы, в то время как другие записывают в журнал абсолютно все данные.
Теперь, если сбой происходит перед внесением записи в журнал, то первоначальная версии файла сохраняется на диске, а теряются только несохраненные изменения. Если система "падает" в момент обновления данных на диске (то есть после внесения записи в журнал), то запись в журнале показывает, что планировалось сделать. Поэтому после перезагрузки системы, прочитываются журнальные записи и прерванные операции записи на диск доводятся до своего логического конца.
При перезагрузке компьютера программа монтирования может гарантировать целостность журналируемой файловой системы простой проверкой лог-файла на наличие ожидаемых, но не произведённых изменений и последующей записью их в файловую систему. То есть, при наличии журнала в большинстве случаев системе не нужно проводить проверку целостности файловой системы. Соответственно, шансы потери данных в связи с проблемами в файловой системе значительно снижаются.
Пример: файловая система ext2fs
ext2fs - стандартная файловая система ОС Linux, но и классические файловые системы обычно устроены подобным образом. Единой и неделимой с точки зрения обращения к диску порции данных является логический блок, размер которого кратен степени двойки (обычно 1024 или 4096 байт). В логические блоки записываются собственно данные файлов. Но файлы могут быть разной длины, как маленькие, размером меньше логического блока, так и большие, занимающие несколько логических блоков.Так как файлов обычно много, и требуется разобраться в мешанине данных (найти по имени нужный файл и нужную порцию данных в нем), а также снабдить файлы атрибутами-метаданными, часть логических блоков играет роль каталогов - списков пар (имя файла, индекс записи метаданных i-node) . В начале раздела располагается корневой каталог, который содержит ссылки на файлы и другие каталоги (содержащие ссылки на файлы и другие каталоги). Так образуется древовидная структура файловой системы.
Индекс i-node ссылается на запись метаданных вида, представленного на рисунке. Записи i-node включают в себя перечень атрибутов (размер в байтах, дата создания и модификации, права доступа) и список номеров логических блоков, в которых располагается соответствующий файл данных.
Учет и контроль свободных блоков на диске. Для этого используется таблица, где каждому блоку соответствует один бит. Поиск свободного блока осуществляется линейным просмотром этой таблицы. При занятии и освобождении блока делается соответствующая отметка в таблице.
Вывод:
На сегодняшний день существует множество работоспособных и надежных журналирующих файловых системы под различные ОС(Windows, MacOS, Linux и т.д.), которые можно использовать для сохранения целостности требуемых данных.
Литература:
1. http://www.freesource.info/wiki/ZhurnaliruemyeFajjlovyeSistemy
2. http://unix.vx9.ru/12/jurnfs.htm
3. http://ru.wikipedia.org/wiki/
4. http://offline.computerra.ru/2001/383/7270/