De manière générale, en réponse directe à votre question, je ne connais pas de grandes marques de disques SATA pour lesquelles le disque lui-même a eu des bogues relatifs au bon fonctionnement avec la mise en cache d'écriture activée. Autrement dit, du point de vue du lecteur uniquement, le lecteur fait ce qu'il est censé faire du point de vue de la mise en cache. Je voudrais également noter que même lorsque la mise en cache d'écriture est activée, le délai entre l'écriture sur disque du câble SATA et le support rotatif physiquement mis à jour est toujours très court (~ 50 à 100 ms en général). Ce n'est pas comme si les données du cache sales resteraient là pendant des secondes à la fois ..... le lecteur essaie continuellement d'obtenir des données sales du cachesur le support physique dès que possible. Ce n'est pas seulement une question de sécurité des données, mais une question d'être prêt à accepter les futures écritures sans délai (c.-à-d. Écrire des publications).
Le problème qui se pose lorsque la mise en cache est activée est que l'ordre d'écriture sur le lecteur via le câble SATA et l'ordre d'écriture sur le support rotatif ne sont pas les mêmes. Cela ne peut jamais causer de problème À MOINS QUE vous n'ayez une panne de courant ou une panne du système avant que tout le contenu du cache ne parvienne sur le disque. Pourquoi? ->
Le problème qui peut survenir ici est relatif à la robustesse des transactions du système de fichiers et / ou du contenu du fichier de base de données pour ces écritures perdues hors service. En effet, ces écritures potentiellement perdues dans le désordre peuvent théoriquement corrompre l'intégrité de la logique de transaction qui aurait autrement été garantie par les écritures de disque se produisant dans un ordre très spécifique sur le support.
Maintenant, bien sûr, les concepteurs du système de fichiers, des bases de données, des contrôleurs RAID, etc. sont conscients (ou devraient certainement être conscients) de ce phénomène par rapport à la mise en cache d'écriture. La mise en cache en écriture est extrêmement souhaitable du point de vue des performances dans la plupart des scénarios d'E / S de type à accès aléatoire. En fait, disposer de la mise en cache d'écriture est un élément clé pour pouvoir tirer un avantage réel de la mise en file d'attente de commandes native plus avancée ( NCQ)) qui est pris en charge sur les nouveaux SATA et les dernières générations d'implémentations PATA. Ainsi, pour garantir l'ordre des supports physiques à certains moments critiques, le système de fichiers et / ou l'application, etc. peut spécifiquement demander un vidage des caches d'écriture sur les supports. À la fin de cette demande de synchronisation - tout ce qui attend des tampons de fichiers (potentiellement), de la mise en cache du disque du système d'exploitation, de la mise en cache du disque physique, etc. Autrement dit, cela se produit correctement si les programmeurs effectuent le (s) bon (s) appel (s) en haut ET chaque élément de cette chaîne de couches logicielles et matérielles a fait son travail correctement. c'est-à-dire: il n'y a aucun bogue à cet égard dans le lecteur, les contrôleurs RAID, les pilotes de disque, les caches du système d'exploitation, le système de fichiers, le moteur de base de données, etc. C'est beaucoup de logiciels qui doivent tous fonctionner parfaitement. De plus, la vérification de l'exactitude à cet égard est très difficile car dans presque toutes les situations, l'ordre d'écriture n'a pas d'importance du tout .... et les scénarios de panne de courant et de crash sont des tests difficiles à construire. Donc, au final, "désactiver la mise en cache d'écriture" sur une ou plusieurs des différentes couches et / ou significations de ce terme ... a la réputation de "corriger" certains types de problèmes. En effet, la désactivation des comportements de mise en cache d'écriture du contrôleur RAID ou des caches de disque du système d'exploitation, ou du lecteur, etc. évite un ou plusieurs bogues dans le système ..... et la source d'un tel savoir. et les scénarios de panne de courant et de crash sont des tests difficiles à construire. Donc, au final, "désactiver la mise en cache d'écriture" sur une ou plusieurs des différentes couches et / ou significations de ce terme ... a la réputation de "corriger" certains types de problèmes. En effet, la désactivation des comportements de mise en cache d'écriture du contrôleur RAID ou des caches de disque du système d'exploitation, ou du lecteur, etc. évite un ou plusieurs bogues dans le système ..... et la source d'un tel savoir. et les scénarios de panne de courant et de crash sont des tests difficiles à construire. Donc, au final, "désactiver la mise en cache d'écriture" sur une ou plusieurs des différentes couches et / ou significations de ce terme ... a la réputation de "corriger" certains types de problèmes. En effet, la désactivation des comportements de mise en cache d'écriture du contrôleur RAID ou des caches de disque du système d'exploitation, ou du lecteur, etc. évite un ou plusieurs bogues dans le système ..... et la source d'un tel savoir.
Quoi qu'il en soit, revenons au cœur de la question: sous SATA, la gestion spécifique de toutes les commandes de lecture / écriture sur disque et les commandes de vidage du cache sont bien définies par les spécifications SATA . De plus, les fabricants de disques doivent disposer d'une documentation détaillée pour chaque modèle de disque ou famille de disques décrivant leur mise en œuvre et leur conformité à ces règles, comme cet exemple pour les disques Seagate Barracuda . En particulier, voir les détails des CARACTÉRISTIQUES DU SATA SETLa commande qui contrôle le mode de fonctionnement du lecteur et en particulier l'option 82h peut être utilisée pour désactiver la mise en cache du disque au niveau du lecteur car la valeur par défaut est certainement la mise en cache d'écriture activée sur tous les lecteurs que je connais. Si vous vouliez vraiment désactiver le cache, cette commande doit être exécutée au début de chaque réinitialisation ou mise sous tension du lecteur et est généralement sous le contrôle des pilotes de disque de votre système d'exploitation. Vous pourriez être en mesure d'encourager votre pilote de système d'exploitation à définir ce mode via une chose de type IOCTL et / ou paramètre de registre, mais cela varie considérablement.