Причиной потери данных в накопителях Samsung оказалась ошибка в Linux

Пятница, 31 июля 2015 г.

Следите за нами в ВКонтакте, Телеграм'e и Twitter'e

SSD-накопители Samsung оказались не виноваты в потере данных на серверах с операционной системой Linux. Ошибка, как выяснил корейский вендор, на самом деле находится в открытом ядре.

Реабилитация Samsung

Причиной потери данных на машинах с Linux оказалась ошибка в ядре операционной системы — а именно, в неправильном взаимодействии между драйвером RAID и драйвером SCSI/ATA, объяснили в компании Samsung Electronics, которую изначально посчитали виновной в возникновении проблемы.

В июне 2015 г. калифорнийская Algoli сообщила, что обнаружила проблему в SSD-накопителях Samsung SM843TN и PM853T, моделях серии Samsung SSD 840 Pro и модели серии Samsung SSD 850 Pro емкостью 512 ГБ.

Обнаружение проблемы

Специалисты Algoli выявили проблему после того, как в их дата-центре стал срабатывать механизм защиты от потери данных, и некоторые серверы стали переходить в режим только чтения. В процессе проверки данных на SSD-накопителях выяснилось, что последние 512 байт файлов были заменены последовательностями нулей, а файлы размером менее 512 байт были заменены нулями полностью.

В конечном счете специалисты Algoli выяснили, что сбои происходят на серверах с определенной конфигурацией аппаратного обеспечения — в частности, оснащенных SSD-накопителями одного и того же производителя — Samsung. Виновной в замещении актуальных данных на нули была признана команда TRIM, которая позволяет операционной системе уведомить SSD-накопитель о том, какие блоки уже не содержат информации и их можно считать пустыми.


SSD-накопители Samsung оказались ни при чем

Отрицание вины

В июле 2015 г. инженеры компании Samsung сообщили, что в этой ситуации нет вины компании, и что проблема находится в ядре Linux. Тогда же вендор пообещал выпустить патч для ядра, устраняющий проблему.

Суть проблемы

В компании пояснили суть проблемы. Дело в том, что когда драйвер RAID в ядре Linux получает задачу выполнить последовательность операций чтения или записи, он создает отдельные буферы в памяти для каждой из операций. При выполнении же команды TRIM драйвером SCSI/ATA используется только один буфер.

В теории это не должно вызывать проблем, но на практике при некотором стечении обстоятельств возникает ошибка «race condition» («состояние гонки») — когда конечное значение начинает зависеть от последовательности неконтролируемых событий. При появлении очереди команд TRIM, первая команда выполняется правильно, но одна из последующих может случайно очистить буфер до того, как будет завершена предыдущая операция. Именно это и привело к появлению нулей вместо данных на SSD-накопителях в дата-центре компании Algoli.

Патч

Samsung передала патч сообществу Linux и, пока он не будет включен в очередную сборку, рекомендовала пользователям с линейной, RAID 0 или RAID 10 конфигурациями, использующими SSD-накопители с интерфейсом SATA, полностью отключить работу TRIM. Конфигурации с RAID 1 проблема не затрагивает.

Совместное расследование

Примечательно, что Samsung принимала активное участие в расследовании проблемы сразу после того, как к ней обратились представители Algoli. Однако после выводов Algoli о том, что виноваты накопители Samsung, прошел целый месяц перед тем, как корейский вендор пришел к выводу, что его устройства здесь ни при чем.

Следите за нами в ВКонтакте, Телеграм'e и Twitter'e


Просмотров: 487
Рубрика: Hi-Tech


Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003