Развертывание транзакционной NTFS
Транзакционная NTFS (TxF), как и большинство механизмов транзакций, зависит от правильного порядка операций записи данных. Для обеспечения правильного порядка записи требуется явное управление кэшированием данных. Чтобы удовлетворить это требование, TxF требует, чтобы диски реализовали механизмы управления кэшированием, которые являются частью стандартных интерфейсов дисков, таких как SCSI, SATA и ATA.
Механизм управления кэшированием, используемый TxF, является флагом, известным как функция force unit Access (FUA). Этот флаг указывает, что диск должен записать данные в стабильное хранилище мультимедиа перед завершением. В некоторых критических точках транзакции TxF необходимо выдать FUA, чтобы гарантировать, что некоторые контрольные данные, необходимые для успешного отката транзакции, не будут потеряны в случае сбоя питания.
Диски серверного класса (SCSI и Fibre Channel) обычно поддерживают флаг FUA. Начиная с Vista, Windows поддерживает флаг FUA только для дисков SCSI и Fibre Channel.
На товарных дисках (ATA,SATA/USB) TxF имеет периоды уязвимости, в течение которых сбой питания диска может привести к тому, что TxF не может правильно откатить транзакцию, оставляя данные в несогласованном состоянии, если кэш записи диска не отключен.
Некоторые адаптеры шины узла (HBA) и контроллеры хранилища (например, raid-системы) имеют встроенные кэши с поддержкой батареи. Так как эти устройства сохраняют кэшированные данные в случае сбоя питания, все подключенные к ним диски не должны учитывать флаг FUA. Кроме того, диск, источник питания которого защищен с помощью источника бесперебойного питания (ИП), не должен учитывать флаг FUA. Это связано с тем, что ИББ будет поддерживать питание достаточно долго, чтобы диск сбрасывал свой кэш на носитель.
Отключение кэша записи диска устраняет требование к диску соблюдать флаг FUA. Вы можете отключить кэширование записи на диске, выпустив на диск управляющий код IOCTL_DISK_SET_CACHE_INFORMATION . Состояние кэша записи (включение и отключение) будет сохраняться при перезагрузке системы. Выполнение этого кода управления будет иметь очень значительные последствия для производительности для всех операций ввода-вывода, выданных этому диску, что, скорее всего, будет заметно снижением производительности. Перед развертыванием следует тщательно продумать использование этого кода элемента управления.
Примечание
Чтобы TxF был способен обеспечить постоянную защиту целостности данных из-за сбоев питания, система должна соответствовать по крайней мере одному из следующих критериев:
- Используйте диски серверного класса (SCSI, Fibre Channel).
- Убедитесь, что диски подключены к адаптеру HBA с поддержкой батареи.
- Используйте контроллер хранилища (например, RAID-систему) в качестве устройства хранения.
- Убедитесь, что питание к диску защищено С помощью И UPS.
- Убедитесь, что функция кэширования записи на диске отключена.