Общая файловая система журналов
Общая файловая система журналов ( CLFS ) — это подсистема журналирования общего назначения, доступная как для приложений режима ядра , так и для приложений пользовательского режима , для создания высокопроизводительных журналов транзакций . Он был представлен в Windows Server 2003 R2 и включен в более поздние операционные системы Windows . CLFS может использоваться как для регистрации данных , так и для регистрации событий . CLFS используется TxF и TxR для хранения изменений состояния транзакции до ее фиксации. Двоичные файлы журнала, созданные из CLFS, нельзя просмотреть ни одним встроенным инструментом Windows.
Обзор
[ редактировать ]Задача CLFS, как и любой другой системы регистрации транзакций, заключается в записи серии шагов, необходимых для какого-либо действия, чтобы их можно было либо точно воспроизвести в будущем для фиксации транзакции во вторичном хранилище, либо отменить, если потребуется. CLFS сначала маршалирует записи в буферах в памяти, а затем записывает их в файлы журналов на вторичном хранилище ( стабильный носитель в терминологии CLFS) для постоянного хранения. Время сброса данных на стабильный носитель контролируется встроенными политиками, но клиентское приложение CLFS может отменить это и принудительно выполнить сброс. CLFS позволяет настраивать форматы журналов, расширять и сокращать журналы в соответствии с определенными политиками, а также одновременно использовать несколько клиентских приложений. CLFS может хранить файлы журналов в любом месте файловой системы. [1]
CLFS определяет драйвера устройства интерфейс (DDI), через который драйверы физической системы хранения подключаются к API CLFS. Драйвер CLFS реализует алгоритм восстановления ARIES ; другие алгоритмы могут поддерживаться с помощью пользовательских драйверов. [1]
CLFS поддерживает как выделенные, так и мультиплексированные журналы. Выделенный журнал содержит один поток записей журнала, тогда как мультиплексированный журнал содержит несколько потоков, каждый из которых предназначен для отдельного приложения. Несмотря на то, что мультиплексированный журнал имеет несколько потоков, журналы сбрасываются в потоки последовательно, в одном пакете. CLFS может заранее выделить место для набора записей журнала (до того, как журналы будут фактически созданы), чтобы гарантировать, что операция не завершится сбоем из-за нехватки места для хранения. [1]
Запись журнала в потоке CLFS сначала помещается в блок ввода-вывода журнала в буфере системной памяти. Периодически блоки сбрасываются на стабильные устройства хранения. На устройстве хранения журнал содержит набор контейнеров , которые расположены последовательно, каждый из которых содержит несколько блоков ввода-вывода журналов. Новые записи журнала добавляются к текущему набору. Каждая запись идентифицируется порядковым номером журнала (LSN), возрастающим 32-битным порядковым номером. LSN и другие метаданные хранятся в заголовке записи. LSN кодирует идентификатор контейнера, смещение записи и идентификатор записи — эта информация используется для последующего доступа к записи журнала. Однако идентификаторы контейнеров являются логическими идентификаторами, они должны быть сопоставлены с физическими контейнерами. Сопоставление выполняется самой CLFS. [2]
Ссылки
[ редактировать ]- ^ Jump up to: а б с «Введение в общую файловую систему журналов» . MSDN . Проверено 8 января 2018 г.
- ^ «Стабильное хранилище CLFS» . MSDN . Проверено 8 января 2018 г.