СПОСОБ И СИСТЕМА ХРАНЕНИЯ ДАННЫХ
DATA STORAGE METHOD AND SYSTEM

ОБЛАСТЬ ТЕХНИКИ
Заявленное техническое решение относится к области обработки данных, в частности к структурам для хранения и доступа к информации с множеством слоев целевого хранения информации.
УРОВЕНЬ ТЕХНИКИ
На текущий момент представленные на рынке решения позволяют выбирать тип системы хранения данных (СХД) на этапе установки программного обеспечения, например, такие решения как DropBox, Google Drive и т.п. В процессе работы с данными решениями изменить слой хранения данных «на лету» не представляется возможным или осуществляется сложно. Требуется выполнение определенной процедуры миграции данных, т.е. динамического перераспределения данных по слоям хранения, что в упомянутых решениях не предусмотрено.
Как правило, существующие решения для хранения данных представляют собой SAN (Storage area network) (блочные) [1] и NAS (Network Attached Storage) (файловые, сетевые) системы [2]. Основным недостатком является отсутствие функционала уровня EFSS (Enterprise File Sync and Share), которое позволяет динамически осуществлять управление множеством потоков информации на основании политик управления доступом к СХД и оптимизации маршрутов сохранения и загрузки данных.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Технической проблемой, решаемой с помощью заявленного решения, является расширение существующего функционала средств хранения данных с помощью обеспечения унифицированного доступа к СХД, объединенных в единую сеть, что позволит оптимально использовать аппаратные средства со снижением вычислительной нагрузки при обработке множества пользовательских запросов на получение или отправку файлов на СХД.
Технический результат заключается в обеспечении унифицированного управления множеством информационных потоков, содержащих пользовательские запросы на сохранение или отправку данных на целевые устройства хранения информации, определяемые сетевой политикой доступа и ускорении процесса запроса/обмена информацией.
Заявленное решение реализуется за счет системы хранения данных, которая содержит по меньшей мере один целевой слой хранения данных (ЦСХ), состоящий из по меньшей мере одного сервера и по меньшей мере одной СХД, причем ЦСХ содержит уникальный идентификатор (fs_id);
устройства пользователей, генерирующие запросы на управление данными, хранящимися или передаваемыми в ЦСХ, причем каждый запрос содержит один или более файлов, каждый из которых содержит уникальный идентификатор (file_id), или идентификатор доступа к файлу, хранящемуся в ЦСХ;
по меньшей мере один сервер управления метаданными, предназначенный для регистрации в сети серверов ЦСХ и обработки запросов на управление данными от устройств пользователей;
один или более маршрутизаторов для балансировки нагрузки на ЦСХ;
причем
каждый сервер ЦСХ содержит по меньшей мере уникальный идентификатор (srv_id) и адрес в сети передачи данных, и предназначен для обработки запросов на управление данными, генерируемыми устройствами пользователей, на основании набора политик управления типами данных;
СХД представляет собой одно или более устройств хранения данных, подключенных к одному или более упомянутых серверов ЦСХ, где каждое из устройств содержит уникальный идентификатор (stor_id) и предназначено для хранения и управления типом данных, соответствующим политике соответствующего сервера СХД;
сервер управления метаданными при обработке упомянутых запросов пользователей на основании идентификатора, содержащегося в пользовательском запросе, определяет соответствующее упомянутому запросу устройство для хранения информации в соответствующей ЦСХ и выполняет маршрутизацию для доступа пользователя к упомянутой ЦСХ.
В одном из частных вариантов реализации системы ЦСХ выбирается из группы: облачное хранилище с онлайн-доступом в сети Интернет, локальное хранилище в локальной сети или сети Интранет.
В другом частном варианте реализации системы устройства хранения данных СХД выбираются из группы: твердотельные устройства хранения данных (SSD), жесткий диск (HDD), накопители на флэш-памяти, рэйд-массив, оптические накопители (CD/DVD/MD/BlueRay), ленточные накопители (LTFS).
В другом частном варианте реализации системы политика управления файлами основывается по меньшей мере на правах доступа к ЦСХ.
В другом частном варианте реализации системы сервер ЦСХ связан с маршрутизатором по протоколу HTTP/HTTPS.
В другом частном варианте реализации системы набор политик включает в себя обработку информации пользовательских запросов, которая включает анализ уровня доступа пользователя и/или привязку пользователя к конкретной ЦСХ и/или сетевой адрес поступающего запроса и/или идентификатор файла пользовательского запроса.
Заявленное решение также реализуется за счет способа формирования структуры хранения данных, содержащий этапы, на которых:
формируют по меньшей мере один целевой слой хранения данных (ЦСХ), с помощью создания маршрута информационного обмена между по меньшей мере одним сервером и по меньшей мере одной системой хранения данных (СХД), причем СХД представляет собой одно или более устройств хранения данных;
при создании упомянутого маршрута информационного обмена осуществляют регистрацию в сети серверов ЦСХ и одной или более СХД с помощью сервера управления метаданными, который содержит базу данных идентификаторов, причем в ходе упомянутой регистрации каждому серверу ЦСХ присваивается уникальный идентификатор (srv_id) и IP адрес в сети, каждой СХД, связанной с упомянутым сервером ЦСХ, присваивается уникальный идентификатор (stor_id);
причем, для каждого сервера ЦСХ формируется политика управления, на основании которой для каждой СХД, подключенной к упомянутому серверу ЦСХ, формируется поддержка хранения и доступа определенного типа данных;
причем, сервер управления метаданными при обработке запросов, получаемых от устройств пользователей, где каждый запрос содержит один или более типов файлов, определяет соответствующее данному типу файла СХД в соответствующей ЦСХ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 иллюстрирует общую схему заявленной системы.
Фиг. 2 иллюстрирует структуру базы данных метасервера.
Фиг. 3 иллюстрирует блок-схему способа формирования ЦСХ.
Фиг. 4 иллюстрирует блок-схему этапов отправки файла в ЦСХ.
Фиг. 5 иллюстрирует блок-схему получения файла от ЦСХ.
Фиг. 6 иллюстрирует общую схему устройства, выполняющего функции элемента системы.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
На Фиг. 1 представлен общий вид заявленной системы (100) хранения данных. Система (100) содержит множество клиентов (110), которые формируют запросы на получение/передачу различных данных. Клиенты (110) осуществляют взаимодействие с помощью различных вычислительных устройств, таких как: мобильные телефоны, смартфоны, планшеты, тонкие клиенты, персональные компьютеры, ноутбуки, игровые приставки и т.п.
Запросы от клиентов (110) передаются на маршрутизатор (120), который также выполняет функцию балансировщика нагрузки. Запросы могут передаваться по таким протоколам как, например, HTTP/HTTPS. В качестве маршрутизатора и балансировщика нагрузки может использоваться, например, сервер Nginx (https://nginx.org/en/).
Маршрутизатор (120) осуществляет обмен данными для обработки пользовательских запросов с серверами ЦСХ (130-1)-(130-n). Каждый сервер (130) содержит определенный набор параметров его работы и связан с одной или более соответствующей СХД (160), подключенный через соответствующий плагин (программный модуль, реализующий взаимодействие с тем или иным типом СХД, например, плагин Amazon S3 протокола, плагин NFS, плагин CIFS и т.д.) (150). Сервера (130-1)-(130-n) содержат сведения о соответствующих адресах в сети передачи данных, например, Интернет, Интранет, в частности IP адреса, записи о пользователях, которым в соответствии с заданной политикой доступа (правами) разрешен доступ к соответствующей ЦСХ, и сведения о подключенных к серверу СХД (160).
Сервера (130-1)-(130-n) осуществляют обмен данными с маршрутизатором (120) посредством протоколов HTTP/HTTPS передачи данных.
Система (100) содержит также сервер обработки метазапросов или метасервер (140). Данный сервер (140) преимущественно предназначен для управления метаданными, регистрации в сети серверов (130) ЦСХ и обработки запросов на управления данными от устройств пользователей (110). Сервер (140) содержит базу метаданных (200), представленную на Фиг. 2).
База метасервера (200) содержит организацию записей для обмена информационными потоками запросов. База (200) состоит из модуля записей СХД (201), модуля записей информации о серверах (202), модуля записей информации о ЦСХ (203) и модуля записей информации о файлах (204). Каждый модуль содержит соответствующий идентификатор для идентификации в цепочке информационного обмена и информацию о соответствующих идентификаторах связанных модулей для организации процесса обмена/получения файлов при запросе пользователей (110). По соответствующим идентификаторам связанных модулей организуется процесс распознавания соответствующих политик доступа, типа файлов, соответствующих политике и маршрутизация доступа к ЦСХ.
Модуль СХД (201) содержит уникальный идентификатор (stor_id), который идентифицирует одно или более СХД (160), которое представляет собой устройство для хранения информации. Также, модуль (201) содержит информацию о типах СХД (160) и параметры их настроек.
Модуль серверов (202) содержит уникальный идентификатор серверов (130) в системе (100) (srv_id), с помощью которого осуществляется обработка информации соответствующим сервером, имя сервера и его адрес в сети.
Модули (201) и (202) связаны с модулем ЦСХ (203), который содержит информацию идентификатора слоя хранения информации (fs_id) и соответствующие данному слою идентификаторы СХД (stor_id) и сервера (srv_id), т.е. информацию для доступа к СХД (160) и соответствующему серверу (130), формирующими ЦСХ.
Модуль (204) содержит сведения об идентификаторах файлов (file_id), соответствующий идентификатору ЦСХ (fs_id) для одного или более типов файлов.
Согласно Фиг. 3 процесс (300) формирования ЦСХ осуществляется следующим образом. Для каждого сервера обработки информации (130-1)-(130-n) осуществляют его привязку в сети (301) с помощью регистрации в БД (200) метасервера (140). В ходе упомянутой регистрации для каждого сервера (130) формируется уникальный идентификатор srv_id. Один из параметров сервера - его IPv4 адрес в сети Интернет или в локальной сети. Именно этот адрес будет использован в процессе маршрутизации как целевой.
Далее на этапе (302) осуществляется привязка одной или более СХД (160) к соответствующему серверу, определенному на этапе (301), для чего осуществляется регистрация упомянутой СХД в БД (200) метасервера (140). Для каждой СХД создается уникальный идентификатор (stor_id). СХД определяется типом (файловая система, скорость передачи данных, защита данных, возможности хранения и т.п.), настройками (куда входят такие параметры, как точки монтирования, IP-адреса, логин, пароль доступа и т.п.).
Далее формируются политики доступа к ЦСХ (303), которые сохраняются на серверах метаинформации, как правило формирования маршрута для упомянутого ЦСХ. Политики доступа (набор политик) может включать в себя, но не ограничиваться: уровень доступа пользователя, привязку пользователя к конкретной ЦСХ, сетевой адрес поступающего запроса клиента (110), идентификатор файла пользовательского запроса. На каждое клиентское устройство (110) или группу устройств, объединенных единой сетью, например, корпоративной создается своя политика доступа, которая также может зависеть от типов файлов, отправляемых на ЦСХ или запрашиваемых от ЦСХ. Уровень доступа конкретного устройства, которое может быть привязано по соответствующему идентификатору и также зависеть от типа СХД и типа файлов.
Политика доступа также может быть привязана по биометрическому идентификатору пользовательского устройства, который генерируется и сохраняется на серверах метаинформации (140) для доступа к соответствующему ЦСХ.
СХД (160) могут выбираться из широко спектра средств для хранения информации, например, твердотельные устройства хранения данных (SSD), жесткий диск (HDD), накопители на флэш-памяти, рэйд-массив, оптические накопители (CD/DVD/MD/BlueRay), ленточные накопители (LTFS) и т.п.
В зависимости от типа СХД, она может быть физически подключена в режиме чтение/запись только к одному серверу (block-device с не-кластерной файловой системой) или к нескольким серверам (сетевые СХД, Amazon S3-совместимые и т.п.). В зависимости от числа подключений в режиме чтение/запись осуществляется дополнительная регистрация ЦСХ на метасервере (140), получается дополнительный идентификатор и, как следствие, дополнительный маршрут хранения.
Доступ к ЦСХ может осуществляться через сеть Интернет или локальную сеть. ЦСХ может представлять собой облачное хранилище с организацией доступа с помощью стандартных средств, например, WEB-браузер, или с помощью программного приложения, устанавливаемого на устройства клиентов (110).
После того как политики доступа заданы, формируется маршрут движения информационных потоков (304), который будет перенаправлять пользовательские запросы на соответствующую такому запросу ЦСХ. Соответствующая связка из сервера обработки данных и одной или более СХД (160) формирует ЦСХ. Формируется уникальный идентификатор ЦСХ fs_id. Именно этот идентификатор становится ключом маршрута хранения при определении ЦСХ в процессе передачи файла от/к клиенту (110). За счет связки записей в БД (200) метасервера (140) и установленных политик доступа, при обращении клиентов (110) к доступу к ЦСХ, по соответствующей связке сервера обработки данных (130) с подключенной к нему СХД (160), определяется маршрут для получения/отправки информации на упомянутое ЦСХ.
В качестве маршрутизатора и балансировщика нагрузки может использоваться, например, сервер Nginx. Рассмотрим пример настройки путей хранения.
По таблице File_storage определяем доступные ЦСХ: fs_id, srv_id. Для каждого ЦСХ по таблице Servers и полю srv_id определяем соответствующие IPv4 адреса серверов. Производим настройку Nginx:
В данном примере fs_id_1, fs_id_2, fs_id_3, fs_id_4 - это уникальные (UUID) идентификаторы ЦСХ, значения fs_id для соответствующих ЦСХ. А адреса в сети 192.168.10.0/24 - адреса соответствующих серверов.
На Фиг. 4 представлен пример работы способа обращения к ЦСХ для отправки на него файлов (400). Клиентское устройство (110) формируется запрос на отправку одного или более файлов (401). Перед непосредственной передачей данных, на основании пользовательского запроса (110) формируется запрос на создание объекта типа «загрузка» на любой из серверов (130) в кластере, передавая на сервер Метаинформацию о файле (402), которая включает, по меньшей мере имя целевого файла и его размер. На основании полученного запроса сервер (130), получивший запрос на создание объекта типа «загрузка», осуществляет обработку метаинформации (403), в частности для проверки политики управления хранения и прав доступа пользователя у направляемых файлов (404). Проверка осуществляется запросом политики доступа (404) на метасервере (140).
Сервер (130) получает конечный идентификатор соответствующей ЦСХ fs_id, на основании выполненного запроса. Если для соответствующего пользователя (110) заранее не определен ЦСХ - запрос идет к таблице компаний, и т.д. до тех пор, пока ЦСХ не будет определен. Хотя бы на одном из уровней: компания, группа, пользователь, тип файла - ЦСХ должен быть задан, что будет определяться политикой управления доступа, в противном случае в доступе к ЦСХ будет отказано (408).
В случае успешного предоставления права на создание «загрузки» (405), сервер (130) определяет ЦСХ (406). После получения конечного fs_id ЦСХ, производится создание записи в таблице Files - регистрация объекта типа «загрузка». При регистрации генерируется уникальный идентификатор объекта «загрузка», а в поле fs_id записывается определившееся ранее fs_id ЦСХ. Итогом создания объекта «загрузка» становится запись в таблице Files, в которой уже записано имя файла f_name.
В качестве ответа клиенту передается идентификатор объекта типа «загрузка» из таблицы Files и значение fs_id - UUID идентификатор ЦСХ.
После определения ЦСХ и соответствующего СХД (160), подключенной к ЦСХ, файлы пользовательского запроса передаются в соответствующую СХД (407). Запрос PUT на сохранение файла приходит от клиента (110), имея в заголовочной части HTTP запроса параметр «Х-Server-Select», установленный в значение fs_id ЦСХ.
Маршрутизатор нагрузки (120) на основании значения параметра «Х-Server-Select» осуществляет маршрутизацию запроса на соответствующий сервер (130), к которому подключена СХД (160) ЦСХ. Сервер (130), получивший запрос, по полученному fs_id в параметре «Х-Server-Select», определяет с помощью запроса к метасерверу (140) точное место хранения, используя fs_id для определения stor_id, и последующего сохранения файла на целевой СХД (160). По окончании сохранения файла, запись типа «загрузка» переводится в тип «файл», таким образом завершая процесс отправки и сохранения файла.
На Фиг. 5 представлен способ запроса данных с ЦСХ (500), в частности запрос клиентов (110) на скачивание файлов. Запросы пользователя (501) по получению списка файлов, папок, и т.п., которые могут быть охарактеризованы как запросы Метаинформации (502) - обрабатывается любым из серверов кластера (130) путем запроса к метасерверам (140) и последующего ответа пользователю (110). На этапе (503) сервер (130) определяет политики управления доступа к ЦСХ от соответствующего устройства клиента (110).
Если метасервер (140) определяет соответствующую ЦСХ для доступа к данным, то на запрос клиента, в частности обработка соответствующего идентификатора ЦСХ fs_id определяется сервер (130) и соответствующая СХД (160).
Следует рассмотреть запрос списка файлов в папке. В ответ на запрос, любой из серверов (130) возвращает пользователю массив объектов типа «файл». Для каждой записи типа файл указывается так же идентификатор ЦСХ.
Пример части JSON ответа сервера по списку файлов:
Далее определяется доступа к ЦСХ с помощью обработки соответствующего идентификатора fs_id. Клиент (110) присылает запрос GET, в котором указывает идентификатор файла и в заголовке запроса указывает параметр «Х-Server-Select», установленный в значение fs_id ЦСХ.
Маршрутизатор нагрузки (120) на основании значения параметра «Х-Server-Select» осуществляет маршрутизацию запроса на соответствующий сервер (130), к которому подключена СХД (160) ЦСХ, соответствующая запросу клиента (110) и определенной политике управления доступом (этап 506). Из примера настроек Nginx - в параметре «X-Server-Select» пришло значение «032019d0-cf70-438e-9e6e-7a94a6ef5f70». Если в конфигурационном файле Nginx будет запись вида:
To Nginx отправит данный запрос на сервер с IP адресом 192.168.10.1 в соответствии с настройками. В рамках полного решения мы будем разрабатывать свой собственный маршрутизатор HTTP-запросов.
Сервер (130), получивший запрос, по полученному fs_id в параметре «Х-Server-Select», определяет с помощью метасервера (140) точное место хранения запрашиваемых объектов, используя fs_id для определения stor_id, выполнив запрос SELECT к таблице File_storage в БД (200), и последующего считывания и передачи файла с целевой СХД (160) клиенту (507). Считывание файла осуществляет именно соответствующий сервер кластера (130), поскольку именно к нему подключена целевая СХД (160) (этап 508). Чтение с определенной СХД (160) осуществляется в соответствии с настройками ЦСХ, получаемых из таблицы Storages, по идентификатору stor_id, который, в свою очередь, получается из таблицы File_storages по ключу fs_id, полученном в запросе.
Упомянутые файлы, пересылаемые от клиентов (110) для хранения в ЦСХ и файлы, запрашиваемые от ЦСХ, могут представлять собой любой тип данных, в частности текст, мультимедиа файлы, презентации, 3D-модели, CAD-файлы, PDF, таблицы и т.п. Политика доступа к соответствующей СХД (160) может определяться в зависимости от типа файла, а также скорости обработки соответствующей информации, хранимой на ней, регламентом хранения информации по времени или другими политиками.
На Фиг. 6 представлен общий вид устройства (600), который применяется при реализации заявленного технического решения, в частности устройств клиентов (110), серверов (130), метасерверов (140).
Общая схема вычислительного устройства, реализующего ту или иную программную логику, необходимую для реализации процессов информационного обмена и маршрутизации информационных потоков, состоит из одно или более процессоров (601), ОЗУ (602), ПЗУ (603), средств В/В (604), устройств В/В (605) и средства сетевого доступа (606).
Процессор (601) выполняет основную вычислительную работу при реализации этапов способа в вышеуказанной системе для достижения необходимо технического эффекта.
Оперативная память (ОЗУ) (602) предназначена для хранения команд, исполняемых одним или более процессорами (601). Постоянное запоминающее устройство (ПЗУ) используется для хранения данных (603) и может представлять собой, например, жесткий диск (HDD), твердотельный накопитель (SSD), флэш-память (NAND-flash, EEPROM, Secure Digital и т.п.), оптический диск (CD, DVD, Blue Ray), мини диск или их совокупности.
Интерфейсы ввода/вывода (В/В) (604) представляют собой стандартные порты и средства сопряжения устройств и передачи данных, выбираемые исходя из необходимой конфигурации исполнения устройства (600), в частности: USB (2.0, 3.0, USB-C, micro, mini), Ethernet, PCI, AGP, COM, LPT, PS/2, SATA, Fire Wire, Lightning и т.п.
Устройства В/В (605) также выбираются из известного спектра различных устройств, например, клавиатура, тачпад, сенсорный дисплей, монитор, проектор, манипулятор мышь, джойстик, трекбол, световое перо, стилус, устройства вывода звука (колонки, наушники, встроенные динамики, зуммер) и т.п.
Средства сетевого доступа (606) выбираются из устройств, предназначенных для реализации процесса коммуникации между различными устройствами посредством проводной и/или беспроводной связи, в частности, таким устройствами могут быть: GSM модем, Wi-Fi приемопередатчик, Bluetooth или BLE модуль, GPS модуль, Глонасс модуль, NFC, Ethernet модуль и т.п.
Для серверов в состав устройств В/В и Средства сетевого доступа могут входить специализированные контроллеры подключения к СХД, например, FC НВА, iSCSI НВА, Ethernet, InfiniBand и т.п.
Компоненты устройства (600) сопряжены посредством общей шины передачи данных.
Представленное описание примеров осуществления заявленного технического решения раскрывают его предпочтительное воплощение и не должны трактоваться как ограничивающие иные, частные способы его реализации, которые обуславливаются объемом испрашиваемой правовой охраны и являются очевидными для специалистов данной области техники.
Источники информации
1. М. Rouse. Storage area network (SAN) //
http://searchstorage.techtarget.com/definition/storage-area-network-SAN
2. J Frew. 7 Reasons to Use a NAS for Data Storage & Backups // http://www.makeuseof.com/tag/7-reasons-to-use-a-nas-for-data-storage-backups/