De um modo geral, em resposta direta à sua pergunta, não conheço nenhuma das principais marcas de unidades SATA de que a própria unidade teve erros em relação à operação adequada com o cache de gravação ativado. Ou seja, somente da perspectiva da unidade, a unidade faz o que deve fazer da perspectiva do armazenamento em cache. Eu também observaria que, mesmo quando o cache de gravação está ativado, o atraso de uma gravação em disco no cabo SATA para a mídia rotativa fisicamente atualizada ainda é muito curto (~ 50 a 100ms normalmente). Não é como se os dados do cache sujo estivessem parados por alguns segundos ... a unidade está tentando continuamente obter dados sujos do cachena mídia física assim que possível. Não se trata apenas de segurança de dados, mas de estar pronto para aceitar gravações futuras sem demora (por exemplo, postagem de gravação).
O problema que surge quando o armazenamento em cache está ativado é que a ordem de gravação na unidade pelo cabo SATA e a ordem de gravação na mídia rotativa não são as mesmas. Isso nunca pode causar um problema, a menos que você tenha uma falta de energia ou uma falha no sistema antes que todo o conteúdo do cache chegue ao disco. Por quê? ->
O problema que pode surgir aqui é relativo à robustez da transação do sistema de arquivos e / ou do conteúdo do arquivo de banco de dados para essas gravações perdidas fora de ordem. De fato, aquelas gravações potencialmente perdidas fora de ordem podem teoricamente corromper a integridade da lógica da transação que, de outra forma, seria garantida pelas gravações em disco que ocorrem em uma ordem muito específica para a mídia.
Agora, é claro, os projetistas do sistema de arquivos, bancos de dados, controladores RAID etc. estão cientes (ou certamente devem estar cientes) desse fenômeno em relação ao cache de gravação. O cache de gravação é extremamente desejável do ponto de vista de desempenho na maioria dos cenários de E / S de acesso aleatório. De fato, ter o cache de gravação disponível é um elemento-chave para poder ter algum benefício real para o mais avançado Native Command Queuing ( NCQ)) que é suportado em SATA mais recente e nas últimas gerações de implementações de PATA. Portanto, para garantir o pedido à mídia física em determinados momentos críticos, o sistema de arquivos e / ou o aplicativo etc. podem solicitar especificamente uma liberação dos caches de gravação para a mídia. Na conclusão dessa solicitação de sincronização - tudo o que está pendente de (potencialmente) buffers de arquivo, cache do disco do SO, cache físico do disco etc. está na mídia de acordo com o design do sistema de transações nas operações críticas certas. Ou seja, isso acontece corretamente se os programadores fizerem as chamadas corretas no topo E todos os elementos dessa cadeia de camadas de software e hardware fizeram seu trabalho corretamente. ou seja: não há erros nesse sentido na unidade, nos controladores RAID, nos drivers de disco, nos caches do SO, no sistema de arquivos, no mecanismo de banco de dados etc. É um monte de software que tudo precisa funcionar exatamente da maneira certa. Além disso, verificar a correção a esse respeito é muito difícil, porque em quase todas as situações normalmente a ordem de gravação não importa ... e os cenários de falha de energia e falha são testes difíceis de construir. Portanto, no final, "desativando o cache de gravação" em uma ou mais das várias camadas e / ou significados deste termo ... tem a reputação de "corrigir" certos tipos de problemas. De fato, desligar os comportamentos de armazenamento em cache de gravação do controlador RAID ou dos caches de disco do sistema operacional, ou da unidade etc. está evitando um ou mais erros no sistema ..... e a origem desse conhecimento. e cenários de falha de energia e falha são testes difíceis de construir. Portanto, no final, "desativando o cache de gravação" em uma ou mais das várias camadas e / ou significados deste termo ... tem a reputação de "corrigir" certos tipos de problemas. De fato, desligar os comportamentos de armazenamento em cache de gravação do controlador RAID ou dos caches de disco do sistema operacional, ou da unidade etc. está evitando um ou mais erros no sistema ..... e a origem desse conhecimento. e cenários de falha de energia e falha são testes difíceis de construir. Portanto, no final, "desativando o cache de gravação" em uma ou mais das várias camadas e / ou significados deste termo ... tem a reputação de "corrigir" certos tipos de problemas. De fato, desligar os comportamentos de armazenamento em cache de gravação do controlador RAID ou dos caches de disco do sistema operacional, ou da unidade etc. está evitando um ou mais erros no sistema ..... e a origem desse conhecimento.
De qualquer forma, voltando ao cerne da questão: no SATA, o tratamento específico de todos os comandos de leitura / gravação de disco e os comandos de cache de descarga são bem definidos pelas especificações SATA . Além disso, os fabricantes de unidades devem ter documentação detalhada para cada modelo ou família de unidades, descrevendo sua implementação e conformidade com essas regras, como neste exemplo para unidades Seagate Barracuda . Em particular, ver detalhes das SATA funções definirO comando que controla o modo operacional da unidade e, especificamente, a opção 82h pode ser usado para desativar o cache do disco no nível da unidade, porque o padrão é certamente o cache de gravação ativado em todas as unidades que eu conheço. Se você realmente deseja desativar o cache, esse comando deve ser executado no início de cada reinicialização ou inicialização de cada unidade e geralmente está sob o controle dos drivers de disco do seu sistema operacional. Você pode incentivar o driver do SO a definir esse modo por meio de um tipo de IOCTL e / ou de Configuração do Registro, mas isso varia muito.