Кодирование данных Azure


Исследователи разработали математический инструмент, который уменьшает объем пространства, необходимого для хранения данных в центрах обработки данных.

Исследовательская группа Microsoft работала вместе с членами группы хранения Windows Azure над разработкой инструмента, который сокращает объем пространства, необходимого для хранения данных, и, таким образом, снижает стоимость хранения этих данных.

Работа началась с загадки, связанной с желанием клиентов, хранящих данные в облаке, быть уверенными в том, что их данные безопасны. Самый простой способ обеспечить целостность данных-это дублировать их, причем классические три полные копии обычно используются для обеспечения безопасности данных даже в случае сбоев сервера. Накладные расходы, связанные с наличием трех копий, очевидно, связаны с высокими затратами на хранение. Команда Microsoft рассмотрела альтернативу кодирования данных для создания сокращенного описания, которое можно было бы собрать и доставить пользователю.

Кодирование данных для удаления дубликатов вряд ли является новаторским, но команда Microsoft применила инновационный подход. В настоящее время хранилище Windows Azure конденсирует сохраненные данные с помощью метода, называемого “кодирование ленивого стирания”, которое происходит в фоновом режиме. Когда фрагмент данных (называемый экстентом) открывается и заполняется, сохраняются три его копии. Когда он запечатан и центр обработки данных имеет запасную емкость, кодирование стирания запускается в фоновом режиме.

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

Один из методов, используемых для кодирования стирания, называется кодированием Рида-Соломона. Это было использовано в космической программе США для уменьшения ошибок связи, а также использовалось при кодировании на компакт-дисках. Код Рида-Соломона описывается с точки зрения количества фрагментов данных и четности, поэтому код Рида—Соломона 6+3 преобразует три копии данных в девять фрагментов-шесть данных и три четности, каждый из которых в шесть раз превышает размер исходных данных. Это приводит к сокращению объема данных вдвое, что позволяет сэкономить половину серверов.

Недостатком кодирования является тот факт, что серверам требуется время для повторной сборки данных из кода, особенно если данные должны быть восстановлены из фрагментов в случае сбоев оборудования. Цель нового подхода состоит в том, чтобы сократить время и затраты на выполнение поиска данных, особенно во время сбоев оборудования. Команда также хотела улучшить сжатие данных, и, хотя они рассматривали более радикальные конфигурации Рида-Соломона, они решили работать над новым подходом, называемым Локальными кодами реконструкции (LRC). Это позволяет восстанавливать данные быстрее, чем при использовании кодов Рида-Соломона, поскольку для воссоздания исходных данных в большинстве моделей сбоев требуется прочитать только половину числа фрагментов данных.

“Локальный” в названии метода кодирования относится к концепции, согласно которой в случае отключения фрагмента из-за такого события, как сбой сервера, код, необходимый для восстановления данных, доступен, а не распространяется по серверам центра обработки данных.

LRCs хорош в отношении долговечности данных — фрагмент данных может иметь три сбоя и все равно быть восстановлен со 100-процентной точностью, а также быстрее восстанавливается. Он также использует меньше места, чем Рид-Соломон, обеспечивая сокращение на 14 процентов.

Работа исследователей была удостоена награды за лучшую работу на Ежегодной технической конференции USENIX 2012 года по кодированию стирания в хранилище Windows Azure.  Глядя за пределы центра обработки данных, команда говорит, что одним из применений этой техники будет использование флэш-устройств, устройств, созданных путем объединения нескольких накопителей флэш-памяти. LRC может повысить эффективность флэш-устройств при очистке старых или неиспользуемых данных.


Добавить комментарий