Déploiement de NTFS transactionnel
Transactional NTFS (TxF), comme la plupart des mécanismes de transaction, dépend de l’ordre correct des écritures de données. Pour garantir un ordre d’écriture correct, un contrôle explicite de la mise en cache des données est nécessaire. Pour répondre à cette exigence, TxF exige que les lecteurs de disque implémentent les mécanismes de contrôle de mise en cache qui font partie des interfaces de lecteur standardisées telles que SCSI, SATA et ATA.
Le mécanisme de contrôle de mise en cache utilisé par TxF est un indicateur connu sous le nom de fonction Force Unit Access (FUA). Cet indicateur spécifie que le lecteur doit écrire les données dans un stockage multimédia stable avant la fin de la signalisation. À certains points critiques d’une transaction, TxF doit émettre un FUA pour s’assurer que certaines données de contrôle nécessaires à la restauration réussie d’une transaction ne sont pas perdues en cas de panne d’alimentation.
Les lecteurs de disque de classe serveur (SCSI et Fibre Channel) prennent généralement en charge l’indicateur FUA. À compter de Vista, Windows prend en charge l’indicateur FUA uniquement pour les disques SCSI et Fibre Channel.
Sur les lecteurs de base (ATA/SATA/USB), TxF présente des périodes de vulnérabilité au cours desquelles une panne d’alimentation du lecteur peut entraîner l’incapacité de TxF à restaurer correctement la transaction, ce qui laisse les données dans un état incohérent, sauf si le cache d’écriture du lecteur est désactivé.
Certains adaptateurs de bus hôte (HBA) et contrôleurs de stockage (par exemple, les systèmes RAID) ont des caches intégrés avec batterie. Étant donné que ces appareils conservent les données mises en cache en cas de panne d’alimentation, les disques qui y sont connectés ne sont pas requis pour respecter l’indicateur FUA. En outre, un disque dont l’alimentation est protégée par une alimentation sans interruption (UPS) n’a pas besoin d’honorer l’indicateur FUA. Cela est dû au fait que l’OND maintient l’alimentation suffisamment longtemps pour que le disque vide son cache sur le support.
La désactivation du cache d’écriture d’un lecteur élimine la nécessité pour le lecteur d’honorer l’indicateur FUA. Vous pouvez désactiver la mise en cache d’écriture d’un disque en émettant le code de contrôle IOCTL_DISK_SET_CACHE_INFORMATION sur le disque. L’état du cache d’écriture (activé/désactivé) sera conservé entre les redémarrages du système. L’émission de ce code de contrôle aura des conséquences très importantes sur les performances pour toutes les E/S émises sur ce disque, ce qui sera probablement une dégradation notable des performances. L’utilisation de ce code de contrôle doit être soigneusement envisagée avant le déploiement.
Notes
Pour que TxF puisse protéger de manière cohérente l’intégrité de vos données par le biais de pannes d’alimentation, le système doit satisfaire à au moins l’un des critères suivants :
- Utilisez des disques de classe serveur (SCSI, Fibre Channel).
- Assurez-vous que les disques sont connectés à un adaptateur HBA de mise en cache avec batterie.
- Utilisez un contrôleur de stockage (par exemple, un système RAID) comme périphérique de stockage.
- Vérifiez que l’alimentation du disque est protégée par un ondeur.
- Vérifiez que la fonctionnalité de mise en cache en écriture du disque est désactivée.