Как обеспечить достоверность данных на SSD при внезапном отключении питания?

15 Окт 2016

Как обеспечить достоверность данных на SSD при внезапном отключению питания?

В отличие от жестких магнитных дисков, которые в состоянии после обес­точивания обеспечить кратковременное питание своих чипов за счет ге­не­рации, утилизирующей инерцию вращения блинов, проблема ус­той­чи­вос­ти к сбоям энергоснабжения твердотельных накопителей должна решаться ина­че. Один из таких подходов детально анализиру­ет­ся на китайском сайте Ac­Fun. Рассмотрим основные идеи статьи в кон­тек­сте функциональных осо­бенностей полупроводниковых ком­по­нен­тов SSD-накопителей.

 

В чем проблема?

Интеллектуализация подсистем хранения данных делает возможным асинхронное выполнение дисковых опе­ра­ций в фоновом режиме с минимальной утилизацией центрального процессора. Технологии, связанные с буфери­за­ци­ей ввода-вывода, в частности отложенная запись играют важную роль в обеспечении производительности mass storage устройств.

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

В этом контексте, под термином оперативная память может подразумеваться каждое из следующих транзитных звеньев передачи информации.

  1. Оперативная память компьютера, доступная центральному процессору, а также хост-контроллеру дисков в режиме bus-master.
  2. Оперативная память, находящаяся на платах высокоуровневых контроллеров SCSI и RAID, снабженных собственными процессорами ввода-вывода.
  3. Оперативная память, установленная на плате электроники HDD или SSD диска.

Для современных накопителей, снабженных автономными процессорами и функционирующими под управлением собственных встроенных ОС, информацией, подлежащей сохранению перед отключением питания, являются не только пользовательские данные, но и собственная управляющая информация накопителя, например таблицы, оп­ре­деляющие соответствие между логически адресуемыми секторами (LBA) и физическими адресами за­по­ми­на­ю­щей Flash матрицы SSD.

Анализ трех перечисленных аспектов выходит за рамки статьи, поэтому сосредоточимся на частном случае тре­тье­го пункта, а именно процессах, происходящих внутри твердотельного накопителя.

Теория

Познание умножает печали, а для проектирования надежного устройства разработчик должен быть пессимистом. Поэтому моделировать стоит ситуацию, когда источник бесперебойного питания не справился со своими обязан­но­стя­ми, и питание SSD-диска внезапно отключилось, несмотря на странность такого сценария для серверов. До­пус­тим, в момент аварии в микросхемах DRAM на плате электроники жесткого диска имеются данные, которые тре­буется переписать в энергонезависимую Flash-память, иначе произойдет потеря пользовательской инфор­ма­ции или разрушение контекста устройства.

Каких-либо предупреждающих сигналов SATA-интерфейс не предусматривает, поэтому накопитель самостоятель­но детектирует снижение напряжения питания на линии +5 вольт до некоторого порогового значения. Вопрос оп­ти­маль­ного выбора порога достоин отдельной статьи, ведь при низком пороге, реакция на аварию может про­изо­йти слишком поздно, а при высоком пороге возможны ложные срабатывания механизма защиты.

Компонентная сторона и сторона пайки твердотельного накопителя, выполненного на контроллере PC29AS21CA0 совместной разработки Intel и HGST
Рис 1. Компонентная сторона и сторона пайки твердотельного накопителя,
выполненного на контроллере PC29AS21CA0 совместной разработки Intel и HGST

Очевидно, накопитель необходимо снабдить датчиком, который зафиксировав понижение напряжения питания до критического уровня, сгенерирует сигнал аварии для автономного микроконтроллера. Это приводит к ос­та­нов­ке текущих выполняемых операций и запуску процедуры переноса данных из DRAM в Flash.

Чипы DDR3 SDRAM производства Micron могут устанавливаться вместо элементов памяти Samsung K4B4G0846B
Рис 2. Чипы DDR3 SDRAM производства Micron могут устанавливаться вместо элементов памяти Samsung K4B4G0846B

Напомним, процесс идет во внезапно отключенной системе, питаемой остаточным зарядом сглаживающих кон­ден­са­то­ров, поэтому вероятность успешного сохранения информации определяется величиной накопленной энер­гии и рациональностью ее применения.

Практика

Необычное решение, позволяющее оптимизировать использование ёмкостного заряда, применено в анон­си­ро­ван­ных SSD-накопителях Intel. Напомним, разъем питания SATA располагает линией +12 вольт, применение ко­то­рой типично для жестких дисков формата 3.5 дюйма. В то время как большинство HDD и SSD формата 2.5 дюйма, используют только напряжение +5 вольт.

Можно ли применить «забытую» линию +12 вольт как дополнительный источник остаточной энергии? Чтобы от­ве­тить на этот вопрос, промоделируем процессы в отключаемой системе. Для упрощения рассуждений, условно при­мем, что падение напряжения на линиях +5V и +12V происходит равномерно.

Итак, после двукратного снижения напряжения, на линии +5V получим +2.5V, что уже непригодно для питания на­ко­пителя. В тот же момент времени, согласно принятой модели, на линии +12V должно присутствовать на­пря­же­ние около 6V. Так как в нашем случае каждая миллисекунда на учете, этим фактом разумно воспользоваться.

Цепь +12V используется для резервного питания накопителя
Рис. 3 Цепь +12V используется для резервного питания накопителя

Согласно блок-схеме (Рис.3) цепь питания SSD-диска, дополненная накопительными конденсаторами, снабжена электронными ключами, позволяющими принимать энергию как от линии +5V, так и от линии +12V. Детектор на­пря­жения, запускающий аварийное сохранение данных, использует линию +5V, которая является основной.

Фотография печатной платы устройства подтверждает использование линии +12V
Рис. 4 Фотография печатной платы устройства подтверждает использование линии +12V

Оптимальным исполнительным механизмом для осуществления коммутации, являются ключи на основе MOSFET-транзисторов. Управление коммутацией осуществляет Power Rail Controller. В данном примере такой контроллер реализован на микросхемах TPS2412 разработки Texas Instruments.

Задачей контроллера является эмуляция диодной развязки с целью динамического выбора линии питания, на ко­то­рой присутствует более высокое напряжение (концепция Redundant Power Supplies).

Реализация дублированного питания с применением микросхем TPS2412: концепция диодной развязки реализуется с помощью электронного коммутатора
Рис. 5 Реализация дублированного питания с применением микросхем TPS2412:
концепция диодной развязки реализуется с помощью электронного коммутатора

По сравнению с простейшей цепью развязки на двух полупроводниковых диодах, рассмотренное решение обес­пе­чи­ва­ет существенно меньшее прямое падение напряжения, а это означает продление интервала, в течение ко­то­ро­го можно использовать остаточный заряд сглаживающих емкостей. В конечном счете, вероятность успешного завершения переноса данных DRAM-Flash, повышается.

Резюме

Рассмотренное решение является компромиссом между надежностью и стоимостью. Правильное позициони­ро­ва­ние такой технологии подразумевает ее использование как одного из дополнительных факторов многоуровневой аварийной защиты, вероятность применения которой сравнительно низка.

В типичной ситуации, даже в случае разряда батареи UPS, в компьютер будет заблаговременно передано со­об­ще­ние о предстоящем отключении электропитания. В этом случае система располагает достаточным запасом вре­ме­ни для корректного завершения сеанса под управлением ОС, в том числе программного инициирования переноса содержимого DRAM-Flash до отключения электропитания.