Разработка формата хранения графических данных в отказоустойчивых распределенных информационных системах

А.Н. Кокоулин, Е.Л. Кон

Пермский национальный исследовательский политехнический университет

РАЗРАБОТКА ФОРМАТА ХРАНЕНИЯ ГРАФИЧЕСКИХ ДАННЫХ В ОТКАЗОУСТОЙЧИВЫХ РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ

Предлагается и исследуется принцип эффективного хранения графической информации в распределенных системах на основе М,К-пороговых схем. Главными особенностями предлагаемой системы хранения являются способ разбиения растрового изображения на блоки и способы обеспечения отказоустойчивости. Клиентское приложение способно самостоятельно формировать изображение в нужном разрешении и качестве (глубине цвета) из блоков, распределенных по сетевым хранилищам. Таким образом, балансируется загруженность узлов хранения и снижается избыточность трафика в сети. Для обеспечения гарантированного доступа клиентских приложений к информации при вероятной перегруженности или отказах узлов и каналов передачи данных реализуются алгоритмы восстановления, использующие коды Рида—Соломона, Хемминга, а также алгоритмы восстановления, допускающие потерю малозначимой информации. Использование разных алгоритмов сжатия и восстановления информации для блоков, относящихся к разным группам, определяется значимостью этих блоков. Соответственно, степень сжатия и избыточность защиты изменяются адаптивно, благодаря чему более эффективно используются дисковое пространство узлов хранения и пропускная способность сетей связи.

Разработке распределенных отказоустойчивых систем хранения информации (РОСХИ) посвящено множество публикаций. В русскоязычных источниках такие схемы именуются Ж,К-пороговыми схемами [1], в зарубежных источниках описываются ЬИ-схемы [2]. Обозначенный в вышеупомянутых источниках подход с разбиением данных на блоки и избыточным распределением этих блоков по удаленным хранилищам является безусловно эффективным, но эффективным для

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

Рассмотрим особенности хранения растровой графической информации. В первую очередь данные графического изображения имеют четкую двухмерную структуру, в которой каждой точке (пикселю) соответствует показатель цветности. Этот показатель состоит, как правило, из нескольких цветовых компонент, каждая из которых кодируется числом определенного размера (количество бит для записи). Широко используемые форматы, такие как JPEG, GIF, используют 8 бит на канал (на компоненту), форматы для хранения высококачественных изображений, например, PNG, TIFF, DNG, принципиально позволяют кодировать цветовые компоненты числами до 64 бит.

Таким образом, изображение может быть представлено в виде массива не связанных между собой чисел, что принципиально не препятствует разбиению изображения на блоки. Во-вторых, в подавляющем большинстве случаев, графические данные содержат очень большую избыточность, связанную как с особенностями человеческого зрения, так и со статистическими свойствами изображений, и для веб-ориентированных приложений используются форматы хранения данных, поддерживающие сжатие данных с потерями и без потерь. В-третьих, все существующие форматы данных ориентированы на хранение изображения как единого файла, что обосновано исторически локальностью хранилищ. При этом неэффективно решаются задачи предоставления изображения в требуемом для клиента качестве и разрешении. Решается эта задача либо хранением нескольких независимых копий изображения в разном качестве на удаленном ресурсе, либо передачей избыточной информации на сторону клиента. Проиллюстрировать данный факт можно на примере веб-ресурса, доступ к которому получают два клиента: первый - на коммуникаторе (КПК) с разрешением экрана 320x240 пикселей и цветностью 64К цветов с использованием медленного GPRS-канала и второй клиент - на стационарном ПК с высокоскоростным интернет-каналом. Браузер первого клиента преобразует в конечном итоге изображение к размерам, сравнимым с размерами экрана и соответствующей цветностью и пониженным качеством. Но для этого в течение десятков секунд по его медленному

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

Рассмотрим некоторые из принципов модифицируемой авторами РОСХИ, организуемой по NK-схеме:

1. Разбиение информации на блоки и распределенное хранение. Несжатые растровые данные должны быть разбиты на блоки нескольких уровней в соответствии с размером и глубиной цвета исходного изображения, а именно: выделяются блоки базового уровня, хранящие «прореженные» пикселы, и на основе которых можно восстановить изображение в минимальном разрешении и цветности. В число базовых блоков также включены блоки, позволяющие восстановить изображение в минимальном разрешении, но с максимально доступной глубиной цвета (thumbnail изображения). Изображение, полученное при объединении всех блоков базового уровня, предоставляет «реперные» пиксели для верхних уровней, поэтому в блоках базового уровня целесообразно выбирать алгоритмы сжатия без потерь. Блоки последующих уровней содержат пиксели, размещающиеся вокруг «реперных» и, соответственно, расчитываются с их учетом по интерполирующим формулам. На основе базовых блоков и блоков первого уровня получается уже увеличенное изображение. На верхних уровнях целесообразно использовать алгоритмы сжатия с потерями, что значительно сократит размеры блоков (адаптивная схема сжатия). В итоге задача обслуживания запроса клиента на получение изображения с заказанным качеством сводится к подбору необходимого и достаточного комплекта из базовых блоков и блоков высших уровней. Второе достоинство подхода состоит в том, что изображение можно отображать на экране плавно, по мере получения соответствующих блоков.

2. Реализация отказоустойчивости. Отказ системы хранения на выдачу блока может произойти в трех случаях: сервер перегружен выполнением других запросов, сервер офлайн, нужный блок не найден на сервере. Все это приводит к большим временным задержкам при обработке запроса, и в итоге может привести к разрушению изображения. Поэтому при реализации проекта предлагаются два варианта обеспечения отказоустойчивости: классическое кодирование информации помехоустойчивыми кодами с хранением избыточных символов по принципу Ж,К-схем и восстановление с потерями, другими словами, восстановление информации по степени значимости. Первый вариант рекомендуется применять для надежного хранения блоков базовых и нижних уровней, т.е. для восстановления тех пикселей, которые участвуют в расчетах пикселей последующих уровней, и где малейшая неточность может привести к ощутимому ухудшению качества изображения. Второй вариант призван уменьшить общую избыточность помехоустойчивой защиты на верхних уровнях, т.е. в тех пикселах, где шумы и размытости будут незаметны. Алгоритмы восстановления с потерями находятся в стадии разработки, они основываются на принципах фильтрации и выделения значимой части пикселов в соответствии с допустимым значением ошибки [3, 4].

3. Сервисы распределенного ресурса и протоколы передачи данных. Принцип работы ЖД-пороговой схемы по обеспечению доступности данных заключается в хранении (Ж-К) избыточных блоков и К информационных, чтобы по любым К блокам можно было восстановить информацию в исходном виде. Взаимодействие клиентского приложения и сервера ведется в диалоговом режиме, если клиент не может получить какой-нибудь блок I с узла хранения, он может запросить другой блок 3 с любого из N узлов и включить механизм восстановления, сводящийся к декодированию кода Рида-Соломона или другого помехоустойчивого кода. Проблема заключается в том, что на запрос блока 3 тратится время, сравнимое с получением первой порции из К - 1 блоков, завершившейся успешно. Авторами прорабатывается модификация поведения Ж,К-системы, в которой избыточная информация прикреплена к информационным блокам и передается по следующему алгоритму: при выполнении запроса на К блоков, серверы «выталкивают» в сеть только информационную часть этих блоков и «замирают», не разрывая соединения, на некоторый тайм-аут. В случае получения клиентом всех блоков без ошибок он сам разрывает соединение с серверами, избегая

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

Авторы считают, что в данной работе новым результатом является предложенный принцип построения распределенной отказоустойчивой системы хранения растровой графической информации. Дальнейшие исследования могут быть расширены на многопотоковое видеовещание с выделением быстрых базовых аудио- и видеопотоков, обеспечивающих передачу видео в низком качестве, и более медленных потоков верхнего уровня, которые, в совокупности с базовыми, обеспечат передачу высококачественного видеоматериала. К моменту публикации доклада авторы планируют создать действующий прототип системы хранения изображений с открытым доступом, состоящей из веб-сервера, обеспечивающего возможность поблочного хранения изображений в распределенных хранилищах, и клиентской части в виде браузера (Mozilla Firefox), оснащенного возможностью просмотра изображений в виде надстройки (plug-in, addon).

Библиографический список

1. Петров В.А. Моделирование переноса и поиска данных в децентрализованной распределенной системе, использующей N-k-схему хранения информации: дис. канд. физ.-мат. наук: 05.13.18. [Место защиты: Моск. физ.-техн. ин-т (гос. ун-т)]. - М., 2008. - 112 с.

2. Litwin W., Moussa R., Schwarz T.J.E. LH*RS: a highly available distributed data storage. - URL: http://portal.acm.org/citation.cfm?id=1316816.

3. Кокоулин А.Н. Методы и алгоритмы повышения надежности хранения информации на магнитных дисках в системах RAID // Вестник Казанского государственного технического университета им. А.Н. Туполева. - Казань: Изд-во КГТУ, 2007. - № 2. - С. 72-76.

4. Кокоулин А.Н. Эффективные алгоритмы кодирования и исправления ошибок в отказоустойчивых системах // Информационные технологии моделирования и управления / Перм. гос. техн. ун-т. -2007. - № 3(37). - С. 348-354.

Получено 09.09.2011