Вообще говоря, в прямом ответе на ваш вопрос я не знаю ни о каких основных марках дисков SATA, в которых сам диск имел ошибки относительно правильной работы с включенным кэшированием записи. То есть, только с точки зрения накопителя, накопитель делает то, что должен делать с точки зрения кэширования. Я хотел бы также отметить , что даже если кэширование записи будет включена, что задержка с диска записи на кабель SATA к вращающимся СМИ физически обновляемых до сих пор очень мало (~ 50 до 100 мс типично). Не похоже, что грязные данные кеша будут просто сидеть несколько секунд за раз ..... накопитель постоянно пытается извлечь грязные данные из кешана физический носитель, как только это возможно. Это не просто вопрос безопасности данных, это вопрос готовности принять будущие записи без каких-либо задержек (то есть: запись записи).
Проблема, которая возникает, когда включено кэширование, заключается в том, что порядок записи на диск по кабелю SATA и порядок записи на вращающийся носитель не совпадают. Это никогда не может вызвать проблемы, если только у вас нет потери питания или сбоя системы до того, как все содержимое кэша попадет на диск. Почему? ->
Здесь может возникнуть проблема, связанная с устойчивостью транзакций файловой системы и / или содержимого файла базы данных к этим потерянным операциям записи. Фактически, те записи, которые были потенциально потеряны из-за неправильного порядка, теоретически могут нарушить целостность логики транзакций, которая в противном случае была бы гарантирована записью на диск в совершенно определенном порядке для носителя.
Теперь, конечно, разработчики файловой системы, баз данных, контроллеров RAID и т. Д. Знают (или наверняка должны знать) об этом явлении относительно кэширования записи. Кэширование записи крайне желательно с точки зрения производительности в большинстве сценариев ввода-вывода с произвольным доступом. Фактически, наличие доступного кэширования записи является ключевым элементом возможности получить реальную выгоду от более продвинутой Native Command Queuing ( NCQ).), который поддерживается в более новых SATA и последних нескольких реализациях PATA. Таким образом, чтобы гарантировать порядок на физическом носителе в такие критические моменты времени, файловая система и / или приложение и т. Д. Могут, в частности, запрашивать сброс кэшей записи на носитель. По завершении этого запроса на синхронизацию - все ожидающие от (потенциально) файловых буферов, кэширования диска ОС, кэширования физического диска и т. Д. Фактически отсутствуют на носителе в соответствии с проектом системы транзакций при правильных критических операциях. То есть это происходит правильно, если программисты делают правильный вызов (ы) вверху И каждый элемент этой цепочки программных и аппаратных уровней выполнил свою работу правильно. то есть: в этом отношении нет ошибок в приводе, контроллерах RAID, драйверах дисков, кэшах ОС, файловой системе, ядре базы данных и т. д. Это много программного обеспечения, которое должно работать правильно. Кроме того, проверка правильности в этом отношении очень трудна, потому что почти в любой ситуации обычно порядок записи вообще не имеет значения ... а сценарии сбоя питания и сбоя представляют собой сложные тесты для построения. Итак, в конце концов «отключение кэширования записи» на одном или нескольких различных уровнях и / или значениях этого термина… имеет репутацию «исправления» определенных видов проблем. По сути, отключение режима кэширования записи контроллера RAID, дисковых кешей ОС, диска и т. Д. Позволяет избежать одной или нескольких ошибок в системе ... и источника таких знаний. и сценарии сбоя питания и сбоя представляют собой сложные тесты для построения. Итак, в конце концов «отключение кэширования записи» на одном или нескольких различных уровнях и / или значениях этого термина… имеет репутацию «исправления» определенных видов проблем. По сути, отключение режима кэширования записи контроллера RAID, дисковых кешей ОС, диска и т. Д. Позволяет избежать одной или нескольких ошибок в системе ... и источника таких знаний. и сценарии сбоя питания и сбоя представляют собой сложные тесты для построения. Итак, в конце концов «отключение кэширования записи» на одном или нескольких различных уровнях и / или значениях этого термина… имеет репутацию «исправления» определенных видов проблем. По сути, отключение режима кэширования записи контроллера RAID, дисковых кешей ОС, диска и т. Д. Позволяет избежать одной или нескольких ошибок в системе ... и источника таких знаний.
В любом случае, возвращаясь к сути вопроса: в SATA специфическая обработка всех команд чтения / записи на диск и команд очистки кеша хорошо определяется спецификациями SATA . Кроме того, производители накопителей должны иметь подробную документацию для каждой модели накопителя или семейства накопителей, описывающую их реализацию и соответствие этим правилам, как в этом примере для накопителей Seagate Barracuda . В частности, смотрите подробности ОСОБЕННОСТИ SATA SETКоманда, управляющая режимом работы накопителя, и, в частности, опция 82h, может быть использована для отключения кэширования диска на уровне накопителя, поскольку по умолчанию определенно включено кэширование записи на всех накопителях, о которых я знаю. Если вы действительно хотели отключить кэш, эта команда должна выполняться при запуске каждого сброса диска или при включении питания и обычно находится под контролем драйверов дисков для вашей операционной системы. Возможно, вам удастся побудить драйвер ОС установить этот режим с помощью параметра типа IOCTL и / или параметра реестра, но это сильно варьируется.