Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 1,006

ALGORITHM FOR DISTRIBUTED DATA STORAGE SOFTWARE SOLUTIONS FOR AUTOMATION OF SMALL AND MEDIUM ENTERPRISES IN CLOUD

Totmelina N.L. 1 Anashkin R.V. 1 Kiryanov A.A. 1 Sirotkin V.Yu. 1
1 "SmarTel" Ltd
The questions related to the development of distributed caching storage system based on high-journaled non-relational data store such as "key-value» Redis for experimental prototype software for the automation of small and medium-sized businesses in the cloud, allowing stored data exchange between the actors and the use the available resources of workstations. The results of process simulation of distributed storage and file sharing on the example of two identical transport simulation models: the distributed data storage based on network file systems such as NFS and models of distributed caching data warehouse using Redis, used for modeling CAD AnyLogicProffesional. The developed algorithm for distributed data storage using a journaling storage.
simulation
network file system such as NFS
storage Redis
distributed storage systems and data processing
cloud computing
algorithm of distributed file storage

Введение

По опубликованным в первом квартале 2012 г. данным совместного исследования EdgeStrategies и Microsoft, наиболее перспективными потребителями облачных услуг в России являются представители среднего и малого бизнеса (далее – СМБ) – 52 % опрошенных считают, что в ближайшее время облачные платформы и технологии станут основой ИТ-инфраструктуры их компаний [1]. При этом в сегменте СМБ наиболее популярны облачные сервисы финансового и бухгалтерского учета (22 % респондентов); облачные инструменты удаленной совместной работы занимают второе место (17 % респондентов); примерно одинаковы по популярности бизнес-почта, бизнес-аналитика, резервное копирование и хранение данных [2].

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

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

Материалы и методы исследования

Фундаментом рассматриваемого облачного программного решения является механизм распределённого хранения данных на имеющихся незадействованных вычислительных мощностях, в частности, с использованием свободного дискового пространства рабочих станций предприятия. При разработке алгоритмических и программных решений применены технологии виртуализации, позволяющие реализовать предоставление ресурса физической емкости нескольких разнородных накопителей информации (устройств и систем хранения) в виде единого хранилища данных (виртуального или логического пула), управление которым осуществляется централизованно. Структура системы хранения инкапсулирована, скрыта, при этом обеспечен прозрачный доступ к образующим её отдельным гетерогенным устройствам независимо от их технических особенностей и территориального расположения.

Теоретические исследования существующих облачных программных решений для построения систем распределенного хранения и обработки данных показали, что применение для этих целей кэширующего высокопроизводительного нереляционного журналируемого хранилища данных типа «ключ-значение» Redis обеспечивает скорость доступа к непосредственному носителю информации в сотни раз большую при чтении и в тысячи раз большую при записи, чем аналогичные решения на основе сетевой файловой системы типа NFS. При этом, как и решения на основе NFS, Redis использует ресурсы хранения на жестких дисках. Высокая скорость работы Redis обеспечивается за счет того, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов. Таким образом, при использовании Redis существует вероятность потерять результаты нескольких последних запросов, однако, потерь можно избежать через избыточность, т.к. Redis поддерживает неблокирующую master-slave репликацию на несколько узлов [3]. Таким образом, поскольку использование такого рода кэширующей распределенной системы хранения данных позволяет обеспечить доступ к оперативным данным со скоростью обращения к ОЗУ рабочих станций, участвующих в хранении, то можно предположить, что это позволит увеличить производительность электронного документооборота компании за счет обеспечения высокоскоростного доступа к оперативным документам.

В целях оптимизации разрабатываемых алгоритмов и программных решений для автоматизации деятельности субъектов малого и среднего предпринимательства в облаке, позволяющих обмениваться хранимыми данными между субъектами и использовать свободные ресурсы хранения данных рабочих станций [4,5], осуществлено имитационное моделирование процесса распределенного хранения и обмена файлами и разработаны две транспортно идентичные имитационные модели: модель распределенного хранилища данных на основе сетевой файловой системы типа NFS (рис.1) и модель распределенного кэширующего хранилища данных с использованием Redis (рис. 2). Для моделирования обмена данными использованы инструменты многоподходного имитационного моделирования САПРAnyLogicProffesional, предназначенной для разработки сложных имитационных моделей (включая модели из IT-сферы).

Рис. 1. Имитационная модель распределенного хранилища данных на основе сетевой файловой системы типа NFS

На схеме модели (см. рис. 1) представлены источник-генератор заявок на чтение/запись данных и получающий терминатор заявок. Слева направо вторым и предпоследним элементами являются операторы формирования стэков протоколов транспортного уровня TCP/IP. Коммутаторы – элементы физической транспортировки данных в локальной сети предприятий. Адресация при распределении заявок происходит в элементе распределения. Сам адрес назначается сервером каталогизации сетевой файловой системы типа NFS. Каждый из элементов распределенного хранения представлен как консолидированный объект типа service, объединяющий в себе элементы очереди-стэка, задержки – функции записи/чтения, и блока хранения.

На рис. 2 представлена имитационная модель хранилища транспортно идентичная хранилищу на основе NFS, но с использованием кэширующего хранилища Redis.

Рис. 2. Имитационная модель распределенного хранилища данных с использованием Redis

На рис. 3 представлена укрупненная модель узла сетевого хранилища, организованного с использованием Redis.

Рис. 3. Укрупненная модель узла хранилища, организованного с использованием Redis

На рис. 2–3 обозначено хранилище ОЗУ и показана связь, позволяющая при переполнении хранилища ОЗУ осуществить передачу запроса в хранилище, реализованное на жестком диске.

Результаты исследования и их обсуждение

Результаты расчетов и имитационного моделирования процесса распределенного хранения файлов для обеих моделей сетевого хранилища при установленном моделируемом времени 60 мс приведены на рис. 4-5. Горизонтальная ось гистограммы – количество генерируемых заявок в тысячах, вертикальная ось – среднее время обслуживания одной заявки в микросекундах.

Рис. 4. Гистограмма результатов расчетного моделирования системы распределенного хранения на основе топологии NFS

Рис. 5. Гистограмма результатов расчетного моделирования системы распределенного хранения на основе топологии с использованием Redis

График на рис. 6 представляет собой дифференцированные значения результатов моделирования для хранилищ на основе NFS и Redis.

Рис. 6. Дифференцированные значения результатов моделирования для хранилищ на основе NFS и Redis

При анализе полученных результатов на графике (рис. 6) выделено несколько характерных участков, в частности:

а) на отрезке от 1 до 8 тысяч заявок в минуту наблюдается относительный рост скорости обслуживания заявок за счет использования кэша жестких дисков;

б) на отрезке от 9 до 13 тысяч заявок в минуту наблюдается значительный рост производительности, обусловленный переполнением кэша жестких дисков;

в) на отрезке от 13 до 17 тысяч заявок в минуту наблюдается стабилизация высокого прироста производительности;

г) на отрезке от 17 до 20 тысяч заявок в минуту наблюдается падение производительности в результате переполнения ОЗУ используемого Redis;

д) на отрезке от 21 тысяч заявок в минуту и более производительность уравнивается, что обусловлено прекращением эффективного использования ОЗУ Redis’ом.

Таким образом, становится очевидным, что использование топологии хранилища данных на основе Redis для организации системы распределенного хранения обеспечивает прирост производительности при скорости генерации заявок не более 20 тысяч заявок в минуту.

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

1) уровень виртуальной файловой системы (FUSE – файловая система в пространстве пользователя, платформа построения виртуальной файловой системы, реализована в виде модуля для ядер UNIX-подобных операционных систем с открытым исходным кодом и относится к свободному программному обеспечению);

2) уровень описания структуры и распределения объектов файловой системы (rdfs), реализованный на базе сервера реляционной БД MySQL;

3) уровень хранения (система распределенного хранения на основе топологии с использованием Redis).

Если проводить аналогию с традиционной файловой системой, то можно отметить, что файлы пользователей хранятся в хранилище на основе топологии Redis, а таблица распределения файлов – в БД MySQL.

Алгоритм идентификации и обработки отказа при записи файла показан на рис. 7.

Рис. 7. Алгоритм идентификации и обработки отказа при записи файла

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

Рис. 8. Алгоритм распределенного хранения для сетевого хранилища на основе Redis

Заключение

Таким образом, использование кэширующей распределенной системы хранения данных на основе высокопроизводительного нереляционного журналируемого хранилища данных типа «ключ-значение» Redis позволяет обеспечить доступ к оперативным данным со скоростью обращения к ОЗУ рабочих станций, участвующих в хранении, что позволит увеличить производительность электронного документооборота компании за счет высокоскоростного доступа к оперативным документам.

В статье использованы материалы, полученные в ходе НИР, выполняемой при финансовой поддержке Минобрнауки России в рамках ФЦП «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007–2013 годы» (госконтракт №14.514.11.4003).

Рецензенты:

Марсов Вадим Израилевич, д-р техн. наук, профессор кафедры «Автоматизация производственных процессов» Московского автомобильно-дорожного государственного технического университета, г. Москва.

Суминов Игорь Вячеславович, д-р техн. наук, профессор, проректор по научной работе, ФГБОУ ВПО «МАТИ-РГТУ» им. К. Э. Циолковского, г. Москва.