Partilhar via


Implantando NTFS transacional

O NTFS transacional (TxF), como a maioria dos mecanismos de transação, depende da ordenação correta das gravações de dados. Garantir a ordenação de gravação adequada requer controle explícito do cache de dados. Para atender a esse requisito, o TxF requer que os drives de disco implementem os mecanismos de controle de cache que fazem parte de interfaces de drive padronizadas, como SCSI, SATA e ATA.

O mecanismo de controle de cache usado pelo TxF é um sinalizador conhecido como a função Force Unit Access (FUA). Esse indicador especifica que a unidade deve escrever os dados no armazenamento de mídia estável antes de sinalizar a conclusão. Em certos pontos críticos dentro de uma transação, a TxF precisa emitir um FUA para garantir que alguns dados de controle necessários para reverter com êxito uma transação não sejam perdidos se ocorrer uma falha de energia.

As unidades de disco de classe de servidor (SCSI e Fiber Channel) geralmente suportam o sinalizador FUA. A partir do Vista, o Windows suporta o sinalizador FUA apenas para discos SCSI e Fiber Channel.

Em unidades comuns (ATA/SATA/USB), o TxF tem períodos de vulnerabilidade durante os quais uma falha de energia na unidade pode resultar na incapacidade do TxF reverter corretamente a transação, deixando os dados inconsistentes, a menos que o cache de gravação da unidade esteja desativado.

Alguns HBAs (Host Bus Adapters, adaptadores de barramento de host) e controladores de armazenamento (por exemplo, sistemas RAID) têm caches com bateria reserva. Como esses dispositivos preservam os dados armazenados em cache se ocorrer uma falha de energia, os discos conectados a eles não precisam honrar a bandeira FUA. Além disso, um disco cuja fonte de alimentação é protegida por uma fonte de alimentação ininterrupta (UPS) não precisa honrar a bandeira FUA. Isso ocorre porque o no-break manterá a energia por tempo suficiente para que o disco libere seu cache para a mídia.

A desativação do cache de gravação de uma unidade elimina a necessidade de que a unidade respeite o sinalizador FUA. Você pode desativar o cache de gravação de um disco emitindo o código de controle IOCTL_DISK_SET_CACHE_INFORMATION para o disco. O estado do cache de gravação (ativado/desativado) será preservado nas reinicializações do sistema. A emissão desse código de controle terá consequências de desempenho muito significativas para todas as E/S emitidas para esse disco, o que provavelmente será uma degradação de desempenho percetível. O uso desse código de controle deve ser cuidadosamente considerado antes da implantação.

Observação

Para que a TxF seja capaz de proteger consistentemente a integridade dos seus dados através de falhas de energia, o sistema deve satisfazer pelo menos um dos seguintes critérios:

  • Use discos de classe de servidor (SCSI, Fiber Channel).
  • Verifique se os discos estão conectados a um HBA de cache alimentado por bateria.
  • Use um controlador de armazenamento (por exemplo, sistema RAID) como dispositivo de armazenamento.
  • Certifique-se de que a alimentação do disco está protegida por uma UPS.
  • Verifique se o recurso de cache de gravação do disco está desativado.