СИСТЕМА ХРАНЕНИЯ ДАННЫХ В СООТВЕТСТВИИ С ПРОФИЛЕМ ХРАНЕНИЯ ДАННЫХ
DATA STORAGE SYSTEM ACCORDING TO DATA STORAGE PROFILE

Область техники
[0001] Изобретение относится к области вычислительной техники, более конкретно, к средствам для распределенного хранения данных.
Уровень техники
[0002] В настоящее время существует множество систем распределенного хранения данных. Одним из примеров таких систем является система распределенного децентрализованного хранения данных и их извлечения, описанная в US 2012/0096127 A1. Известная система обеспечивает распределенное децентрализованное хранение и поиск данных в расширяемой среде SOAP. Система предусматривает получение битового потока, разделение битового потока на множество фрагментов, вычисление хеш-значений для каждого из множества фрагментов, где каждое хеш-значение задается на основе конкатенации идентификатора битового потока, передачу множества сообщений о хранении фрагментов, передачу, по меньшей мере частично, основанную на консультации с локальной таблицей маршрутизации первого узла процессора, чтобы определить, соответствует ли адрес узла процессора получателя соседнему сетевому узлу первого узла процессора, узел процессора получателя, содержащий службу хранилища фрагментов, которая делит полученный фрагмент на множество фрагментов, кодирует фрагмент в проверочный блок и передает проверочный блок службе хранилища фрагментов.
[0003] Однако известному решению присущи недостатки. Недостаток известного решения заключается в низкой надежности хранения данных, поскольку известное решение несмотря на использование нескольких запоминающих устройств, не использует технологию хранения данных в соответствии с их профилем. Более того, в известном решении в связи с вышесказанным низкий уровень защиты данных, поскольку в нем не используются параметры хранения данных.
Раскрытие изобретения
[0004] Задачей изобретения является устранение указанных выше недостатков.
[0005] Техническим результатом при этом является повышение надежности хранения данных с одновременным повышением уровня защиты данных в соответствии с профилем хранения данных.
[0006] Для достижения технического результата предложена система хранения данных в соответствии с профилем хранения данных, содержащая: вычислительное устройство пользователя, выполненное с возможностью передачи данных на удаленные серверы для их последующего сохранения в устройствах хранения данных, при этом вычислительное устройство пользователя создает профиль хранения данных, в соответствии с которым определяются параметры хранения данных в упомянутых устройствах хранения данных; при этом, вычислительное устройство пользователя при создании упомянутого профиля выполнено с возможностью: а) преобразования данных, подлежащих сохранению в упомянутых устройствах хранения данных, в хеш-строку посредством алгоритма хеширования в соответствии с профилем хранения данных, где при выполнении алгоритма хеширования данным присваивается значение хеширования; б) формирования пакета передачи данных для передачи данных упомянутым устройствам хранения данных, где сформированный пакет содержит сетевые адреса сетевых интерфейсов удаленных серверов и значение хеширования в соответствии с профилем хранения данных; и в) приема от упомянутых устройств хранения данных пакета данных с последующим извлечением данных из упомянутого пакета данных и обратным преобразованием данных из хеш-строки в соответствии с профилем хранения данных; по меньшей мере, один внешний мультиплексор, выполненный с возможностью приема от вычислительного устройства пользователя пакета данных в соответствии с профилем хранения данных и их передачи, по меньшей мере, первой внутренней сетевой карте, а также с возможностью приема от первой внутренней сетевой карты пакета данных в соответствии с профилем хранения данных и их передачи вычислительному устройству пользователя; первую внутреннюю сетевую карту, выполненную с возможностью приема от упомянутого мультиплексора пакета данных в соответствии с профилем хранения данных и его передачи сетевому интерфейсу, по меньшей мере, одного удаленного сервера и приема от упомянутого сетевого интерфейса пакета данных с его последующей передачей упомянутому мультиплексору в соответствии с профилем хранения данных; по меньшей мере, два удаленных сервера, выполненных с возможностью приема от первой внутренней сетевой карты пакета данных в соответствии с профилем хранения данных и его передачи первому или второму устройству хранения данных, и с возможностью приема от упомянутых первого или второго устройства хранения пакета данных в соответствии с профилем хранения данных с его последующей передачей первой внутренней сетевой карте; при этом каждый удаленный сервер содержит: i) процессор, выполненный с возможностью генерирования управляющих инструкций в ответ на машиночитаемые команды, принятые от памяти; ii) память, выполненная с возможностью хранения машиночитаемых команд и соединенная с упомянутым процессором; iii) контроллер памяти, выполненный с возможностью управления устройством хранения данных для сохранения данных в соответствии с профилем хранения данных; iv) блок ввода-вывода, выполненный с возможностью передачи команд управления упомянутому процессору, и приема от упомянутого процессора результатов обработанных им команд; и v) сетевой интерфейс приема и передачи данных, выполненный с возможностью приема данных от первой внутренней сетевой карты и передачи к первой внутренней сетевой карте, при этом первый удаленный сервер соединен с первым устройством хранения данных, и второй удаленный сервер соединен со вторым устройством хранения данных, первое и второе устройства хранения данных, выполненных с возможностью хранения данных в соответствии с профилем хранения данных.
[0007] Дополнительно каждый из упомянутых удаленных серверов содержит второй сетевой интерфейс приема и передачи данных.
[0008] Дополнительно система содержит вторую внутреннюю сетевую карту, выполненную с возможностью подключения к упомянутому второму сетевому интерфейсу, приема и передачи пакетов данных в соответствии с профилем хранения данных, при этом вторая внутренняя сетевая карта выполнена с возможностью распределения нагрузки между несколькими каналами вместе с первой внутренней сетевой картой при возникновении перегруженности сети и/или для резервирования сетевых подключений.
[0009] Дополнительно данные, в соответствии с профилем хранения данных, делятся, по меньшей мере, на две части, где каждая часть содержит свой сетевой адрес сетевого интерфейса удаленного сервера для последующей передачи упомянутому серверу и сохранения в устройстве хранения данных.
[0010] Дополнительно первое устройство хранения данных выполнено с возможностью сохранения первой части данных, а второе устройство хранения данных выполнено с возможностью сохранения второй части данных в соответствии с параметрами хранения данных, заданными в профиле хранения данных.
[0011] Дополнительно контроллер памяти является SATA-контроллером или ATA-контроллером.
[0012] Очевидно, что как предыдущее общее описание, так и последующее подробное описание даны лишь для примера и пояснения и не являются ограничениями данного изобретения.
Краткое описание чертежей
[0013] Фиг. 1 – схематичное изображение системы хранения данных в соответствии с профилем хранения данных.
Осуществление изобретения
[0014] Различные аспекты или признаки, описанные в данном документе, могут быть реализованы как система, устройство или изделие с помощью стандартных программно-аппаратных средств. Термин «изделие» при использовании в данном документе имеет намерением содержать в себе вычислительную программу, доступную из любого машиночитаемого устройства, носителя или среды. Например, машиночитаемые носители могут включать в себя, но не только, магнитные устройства хранения (к примеру, жёсткий диск, гибкий диск, магнитную ленту и т.д.), оптические диски (к примеру, компакт-диск (CD), универсальный цифровой диск (DVD), смарт-карты и устройства флэш-памяти (к примеру, EPROM, карточка, карта, флэш-диск и т.д.). Дополнительно различные носители хранения, описанные в данном документе, могут представлять одно или более устройств и/или других машиночитаемых носителей для хранения информации. Термин «машиночитаемый носитель» может включать в себя, без ограничений, беспроводные каналы и различные другие носители, допускающие хранение, размещение и/или перенос команд(ы) и/или данных. Данные в заявленном решении могут передаваться между устройствами с помощью шин данных, с помощью стандартных сетевых средств обмена данными (например, CAN, Ethernet, Token Ring), с помощью обмена данными через общую оперативную память, с помощью обмена данными через файл в файловой системе, с помощью интегральных схем обмена данными по шинам данных, с помощью использования систем управления баз данных и т.д. Конкретный способ обмена данными между компонентами устройства не влияет на суть данного изобретения.
[0015] Следует принимать во внимание, что память, входящая в состав устройств в данном документе, может быть энергозависимыми запоминающими устройствами или энергонезависимыми запоминающими устройствами, либо может включать в себя и энергозависимое, и энергонезависимое запоминающее устройство. В качестве иллюстрации, но не ограничения, память может включать в себя постоянное запоминающее устройство (ROM), программируемое ROM (PROM), электрически программируемое ROM (EPROM), электрически стираемое PROM (EEPROM), флэш-память (SSD), жесткий диск (HDD), компакт-диск (CD), DVD-диск. Энергозависимое запоминающее устройство может включать в себя синхронное RAM (SRAM), динамическое RAM (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), улучшенное SDRAM (ESDRAM), Synchlink DRAM (SLDRAM) и direct Rambus RAM (DRRAM).
[0016] Следует принимать во внимание, что память в данном документе, может быть энергозависимыми запоминающими устройствами или энергонезависимыми запоминающими устройствами, либо может включать в себя и энергозависимое, и энергонезависимое запоминающее устройство. В качестве иллюстрации, но не ограничения, память может включать в себя постоянное запоминающее устройство (ROM), программируемое ROM (PROM), электрически программируемое ROM (EPROM), электрически стираемое PROM (EEPROM), флэш-память (SSD), жесткий диск (HDD), компакт-диск (CD), DVD-диск. Энергозависимое запоминающее устройство может включать в себя синхронное RAM (SRAM), динамическое RAM (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), улучшенное SDRAM (ESDRAM), Synchlink DRAM (SLDRAM) и direct Rambus RAM (DRRAM).
[0017] Схематическое изображение заявленной системы 100 хранения данных в соответствии с профилем хранения данных показано на фиг. 1. Система 100 содержит вычислительное устройство 101 пользователя, по меньшей мере, один внешний мультиплексор 102, первая внутренняя сетевая карта 103a, по меньшей мере, два удаленных сервера 104а, 104b, первое 110а и второе 110b устройства хранения данных. При этом упомянутые вычислительное устройство 101 пользователя, по меньшей мере, один внешний мультиплексор 102, первая внутренняя сетевая карта 103a, по меньшей мере, два удаленных сервера 104а, 104b, первое 110а и второе 110b устройства хранения данных соединены между собой двухсторонней связью посредством сети 111 приёма-передачи данных. Данная сеть может быть, как проводной сетью приёма-передачи данных, так и беспроводной сетью приёма-передачи данных. Каждый из упомянутых серверов 104а, 104b содержит сетевой интерфейс 105а, 105b, процессор 107а, 107b, память 108а, 108b, контроллер памяти 109а, 109b и блок 112а, 112b ввода-вывода. В дополнительной реализации система 100 может содержать вторую внутреннюю сетевую карту 103b, а каждый из упомянутых серверов 104а, 104b может содержать второй сетевой интерфейс 112а, 112b. Необходимо отметить, что упомянутых серверов может быть более двух, а указание на наличие двух серверов дано лишь для общего понимания данного технического решения.
[0018] Вычислительное устройство 101 пользователя выполнено с возможностью передачи данных на удаленные серверы 104а, 104b для их последующего сохранения в устройствах 110а и 110b хранения данных. Вычислительное устройство 101 пользователя выполнено с возможностью создания профиля хранения данных, в соответствии с которым определяются параметры хранения данных в упомянутых устройствах 110а и 110b хранения данных. Также вычислительное устройство 101 пользователя при создании упомянутого профиля выполнено с возможностью: преобразования данных, подлежащих сохранению в упомянутых устройствах хранения данных, в хеш-строку посредством алгоритма хеширования в соответствии с профилем хранения данных, формирования пакета передачи данных для передачи данных упомянутым устройствам хранения данных и приема от упомянутых устройств хранения данных пакета данных с последующим извлечением данных из упомянутого пакета данных и обратным преобразованием данных из хеш-строки в соответствии с профилем хранения данных. При упомянутом выполнении алгоритма хеширования данным присваивается значение хеширования. При этом сформированный пакет содержит сетевые адреса сетевых интерфейсов удаленных серверов 104а, 104b и значение хеширования в соответствии с профилем хранения данных.
[0019] Данные, в соответствии с профилем хранения данных, делятся, по меньшей мере, на две части. Каждая часть содержит свой сетевой адрес сетевого интерфейса 105а, 105b удаленного сервера 104а, 104b для последующей передачи упомянутому серверу и сохранения в устройстве 110а, 110b хранения данных. Под параметрами, в контексте данного технического решения, могут подразумеваться индексы данных, данные о местоположении их хранения, метаданные о признаках и свойствах сохраняемых данных, информация о формате данных и т.д.
[0020] По меньшей мере, один внешний мультиплексор 102 выполнен с возможностью приема от вычислительного устройства 101 пользователя пакета данных в соответствии с профилем хранения данных и их передачи, по меньшей мере, первой внутренней сетевой карте 103а. Также мультиплексор 102 выполнен с возможностью приема от первой внутренней сетевой карты 103а пакета данных в соответствии с профилем хранения данных и их передачи вычислительному устройству 101 пользователя. Специалисту в данной области техники очевидно, что мультиплексор 102 также может выполнять функции демултиплексора для обратного преобразования пакета данных.
[0021] Первая внутренняя сетевая карта 103а выполнена с возможностью приема от упомянутого мультиплексора 102 пакета данных в соответствии с профилем хранения данных и его передачи сетевому интерфейсу 105а, по меньшей мере, одного удаленного сервера 104а и приема от упомянутого сетевого интерфейса 105а пакета данных с его последующей передачей упомянутому мультиплексору 102 в соответствии с профилем хранения данных. Также необходимо отметить, что сетевая карта 103а может быть выполнена с возможностью передачи упомянутого пакета данных сетевым интерфейсам 105а, 105b, по меньшей мере, двух удаленных серверов 104а, 104b и приема от упомянутых сетевых интерфейсов 105а, 105b пакетов данных с их последующей передачей упомянутому мультиплексору 102 в соответствии с профилем хранения данных.
[0022] По меньшей мере, два удаленных сервера 104а, 104b выполнены с возможностью приема от первой внутренней сетевой карты 103а пакета данных в соответствии с профилем хранения данных и его передачи первому 110а или второму 110b устройству хранения данных. Также сервера 104а, 104b выполнены с возможностью приема от упомянутых первого 110а или второго 110b устройства хранения пакета данных в соответствии с профилем хранения данных с его последующей передачей первой внутренней сетевой карте 103а. Каждый из упомянутых серверов содержит: процессор 107а, 107b, выполненный с возможностью генерирования управляющих инструкций в ответ на машиночитаемые команды, принятые от памяти 108а, 108b, память 108а, 108b, выполненную с возможностью хранения машиночитаемых команд и соединенную с упомянутым процессором 107а, 107b, контроллер 109а, 109b памяти, выполненный с возможностью управления устройством 110а, 110b хранения данных для сохранения данных в соответствии с профилем хранения данных, блок 112а, 112b ввода-вывода, выполненный с возможностью передачи команд управления упомянутому процессору 107а, 107b, и приема от упомянутого процессора 107а, 107b результатов обработанных им команд, и сетевой интерфейс 105а, 105b приема и передачи данных, выполненный с возможностью приема данных от первой внутренней сетевой карты 103а и передачи к первой внутренней сетевой карте 103а. Необходимо отметить, что первый удаленный сервер 104а соединен с первым устройством 110а хранения данных, а второй удаленный сервер 104b соединен со вторым устройством 110b хранения данных. Альтернативно, каждый из упомянутых серверов 104а, 104b может содержать второй сетевой интерфейс 106а, 106b приема и передачи данных, выполненный с возможностью приема данных от второй внутренней сетевой карты 103b и их передачи ко второй внутренней сетевой карте 103b. Альтернативно, каждый из упомянутых контроллеров 109а, 109b памяти может являться является SATA-контроллером или ATA-контроллером.
[0023] В вышеупомянутой альтернативе вторая внутренняя сетевая карта 103b выполнена с возможностью подключения к упомянутому второму сетевому интерфейсу 106а, 106b, приема и передачи пакетов данных в соответствии с профилем хранения данных. Вторая внутренняя сетевая карта 103b выполнена с возможностью распределения нагрузки между несколькими каналами вместе с первой внутренней сетевой картой 103а при возникновении перегруженности сети и/или для резервирования сетевых подключений.
[0024] Первое 110а и второе 110b устройства хранения данных выполнены с возможностью хранения данных в соответствии с профилем хранения данных. Первое устройство 110а хранения данных выполнено с возможностью сохранения первой части данных, а второе устройство 110b хранения данных выполнено с возможностью сохранения второй части данных в соответствии с параметрами хранения данных, заданными в профиле хранения данных.
[0025] Далее будет приведен пример реализации данного решения. На начальном этапе клиентском устройстве выполняется программа хранения. Программа хранения выполняется в соответствии с версией клиентской программы и параметрами хранения в целом. Далее пользователь выбирает данные для хранения в системе. После того, когда пользователь выбрал данные, которые необходимо сохранить, происходит преобразование данных в определенную хэш-строку и выполняется алгоритм хеширования. Вычисленное алгоритмом хеширования значение хеширования является необратимым и поэтому является эффективным подходом к защите данных и идентификационной информации. Затем пользовательским устройством 101 назначается профиль хранения. После назначения профиля, программа хранения определяет одно или несколько мест хранения в соответствии с профилем хранения. Профиль хранения и идентификационный(е) адрес(а) получателя могут быть записаны перед хешированием в пакеты данных. Затем пакеты данных передаются на один или несколько серверов хранения (104а, 104b), соответствующих назначенным местам хранения, которые, в свою очередь, осуществляют сохранение упомянутых данных в устройствах хранения 110а и/или 110b. В случае необходимости, пользовательское устройство 101 может осуществить обратный режим загрузки данных от упомянутых устройств хранения 110а и/или 110b.
[0026] Упомянутые серверы (104а, 104b) могут реализовать подход распределенного хранения. Программа хранения, выполняемая на пользовательском устройстве 101, используется для выбора профиля хранения и определение места хранения. В профиле хранения записываются параметры хранения. По профилю можно определить топологию сети, имеющей внешние мультиплексоры и/или демультиплексоры, внутренние устройства коммутации и устройства хранения данных. Программа хранения, выполняемая пользовательским устройством 101, также позволяет пользователю извлекать данные, хранящиеся в соответствии с индексами, которые формируются в процессе хранения, таким образом, что в дальнейшем данные по ним могут быть найдены.
[0027] Хотя данное изобретение было показано и описано со ссылкой на определенные варианты его осуществления, специалистам в данной области техники будет понятно, что различные изменения и модификации могут быть сделаны в нем, не покидая фактический объем изобретения. Следовательно, описанные варианты осуществления имеют намерение охватывать все подобные преобразования, модификации и разновидности, которые попадают под сущность и объем прилагаемой формулы изобретения.