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

Иллюстрации

Показать все

Изобретение относится к системам резервирования данных. Техническим результатом является уменьшение задержки и потребления ширины полосы частот за счет того, что данные, необходимые для осуществления восстановления, доступны для клиента из глобального сетевого местоположения (облака), а также из одного или более одноранговых устройств. Предложена клиентская система, предназначенная для восстановления информации из сетевой системы резервирования, содержащая память и процессор, которые соответственно выполнены с возможностью хранить и исполнять команды. Заявленная система включает в себя разностный компонент, компонент определения местоположения, компонент восстановления. Разностный компонент сконфигурирован идентифицировать, для элемента данных, который должен быть восстановлен, одну или более частей элемента данных, которые являются разными между текущей версией элемента данных и целевой версией элемента данных, на основе как первой разности, вычисляемой в клиентской системе, между текущей версией элемента данных и целевой версией элемента данных, так и второй разности, вычисляемой в местоположении резервирования, которое является удаленным по отношению к клиентской системе, между текущей версией элемента данных и целевой версией элемента данных. 3 н. и 17 з.п. ф-лы, 12 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Фиг.2 - блок-схема системы, предназначенной для генерации резервной информации, в соответствии с различными аспектами.

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

Фиг.4 - блок-схема системы, предназначенной для выполнения основанного на сигнатуре различия, в соответствии с различными аспектами.

Фиг.5 - блок-схема системы, предназначенной для осуществления гибридного хранилища данных резервирования, основанного на облаке и одноранговой сети, в соответствии с различными аспектами.

Фиг.6 - блок-схема системы, предназначенной для проведения разностного восстановления в гибридной архитектуре, основанной на облаке и одноранговой сети, в соответствии с различными аспектами.

Фиг.7 иллюстрирует примерное осуществление сети, которое может быть использовано в связи с разными аспектами, описанными в настоящей заявке.

Фиг.8 - блок-схема последовательности этапов способа, предназначенного для выполнения разностного восстановления файла.

Фиг.9 - блок-схема последовательности этапов способа, предназначенного для проведения основанного на сигнатуре различия файла.

Фиг.10 - блок-схема последовательности этапов способа, предназначенного для получения сегментов файла из гибридной системы, основанной на одноранговой сети/облаке.

Фиг.11 - блок-схема вычислительной системы, в которой могут функционировать различные аспекты, описанные в настоящей заявке.

Фиг.12 иллюстрирует принципиальную блок-схему примерной сетевой вычислительной среды.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

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

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

Кроме того, заявленный объект изобретения может быть осуществлен как способ, устройство или промышленное изделие с использованием стандартного программирования и/или способов конструирования, чтобы создать программное обеспечение, программно-аппаратное обеспечение, аппаратное обеспечение или любую их комбинацию, чтобы управлять компьютером с возможностью осуществления раскрытых аспектов. Подразумевают, что понятие "изделие производства", как использовано в настоящей заявке, заключает в себе компьютерную программу, доступную из любого машиночитаемого устройства, носителя информации или носителей. Например, машиночитаемые носители могут включать в себя магнитные запоминающие устройства (например, жесткий диск, гибкий диск, магнитные ленты…), оптические диски (например, компакт-диск (CD), цифровой универсальный диск (DVD)…), смарт-карты и устройства флэш-памяти (например, карту, стержень, ключевой накопитель…), но не ограничены ими. Кроме того, следует понимать, что несущий сигнал может быть использован, чтобы переносить машиночитаемые электронные данные, такие как электронные данные, используемые при передаче и приеме электронной почты или при доступе к сети, такой как Internet или локальная сеть (LAN). Конечно, специалисты в данной области техники узнают, что многие модификации могут быть сделаны в эту конфигурацию, не выходя за рамки объема или сущности заявленного объекта изобретения.

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

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

В соответствии с одним аспектом система 100 может быть использована в связи с решением основанного на сети резервирования или решением оперативного резервирования (например, облачной системой резервирования, как описано более подробно ниже), которое запоминает резервную информацию из клиентской машины в одном или более удаленных местоположениях хранения данных. Традиционные решения оперативного резервирования работают с помощью поддержания множества файлов, полученных из клиента резервирования в различных точках во времени в удаленном местоположении хранения данных. Затем проводят восстановление с помощью извлечения одного или более файлов их местоположения хранения данных, как запрошено. Однако можно понять, что восстановление информации из системы оперативного резервирования таким способом может потреблять чрезмерное количество времени и/или ширины полосы частот, связанной с извлечением полных файлов из хранилища данных оперативного резервирования. Кроме того, можно понять, что такие системы обычно извлекают полные файлы для операций восстановления даже в случаях, когда, например, небольшая часть данных в данном файле изменена между текущей версией, хранимой в клиенте, и желаемой версией в удаленном местоположении. Например, такие системы в некоторых случаях конфигурируют с возможностью извлечения полного файла, когда текущая версия файла в клиенте и версия, которую следует извлечь, отличаются только в имени и/или метаданных.

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

Таким образом, чтобы обеспечить увеличенную эффективность и требования более низкого потребления времени и ширины полосы частот в связи с восстановлением из удаленно запомненной резервной информации, система 100 может облегчить разностное восстановление информации. Более конкретно, когда пользователь желает восстановить предыдущую версию одного или более файлов, может быть использован разностный компонент 110, чтобы проводить различие между желаемой версией и текущей версией, запомненной в настоящий момент в пользовательской машине. В соответствии с одним аспектом вместо инвертирования процесса инкрементального разностного обновления, использованного в течение времени существования файла (файлов) и всех связанных резервных копий, разностный компонент 110 вместо этого может использовать множество сигнатур и/или других указателей, чтобы определять только уникальные сегменты или блоки, которые присутствуют между желаемой версией и текущей версией, без требования реверсирования любых инкрементальных процессов.

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

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

В соответствии с дополнительным аспектом, после того как компонент 120 местоположения блока идентифицирует местоположения соответственных уникальных блоков, соответствующих данному файлу, может быть использован компонент 130 восстановления, чтобы вытянуть идентифицированные блоки из местоположений, данных с помощью компонента 120 местоположения блока, и восстановить желаемую версию файла на основании извлеченных блоков. В одном примере местоположения, в которых компонент 130 восстановления извлекает соответственные идентифицированные блоки, могут быть установлены с помощью компонента 120 местоположения блока. В качестве альтернативы, компонент 120 местоположения блока может предоставить список местоположений, в которых находятся один или более данных блоков, на основании которого компонент 130 восстановления может выбрать местоположение, из которого извлечь блок (блоки) автоматизированным способом на основании соображений доступности, нагрузки, ширины полосы частот и/или других подходящих факторов. Например, компонент 120 местоположения блока может обеспечить компонент 130 восстановления одним или более одноранговыми узлами, в которых находятся данные блоки, а также соответствующим местоположением в облачной системе хранения данных в Internet, и компонент 130 восстановления может извлечь блок (блоки) с акцентом на использование машин одноранговых узлов, когда осуществимо, чтобы сохранить ширину полосы частот и уменьшить задержку.

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

Теперь, обращаясь к фиг.2, проиллюстрирована система 200, предназначенная для генерации резервной информации, в соответствии с различными аспектами. Как проиллюстрировано на фиг.2, система 200 может включать в себя компонент 210 резервирования, который может генерировать и облегчать запоминание резервных копий файлов, моментальных снимков систем и/или другой информации, связанной с клиентской машиной резервирования. В одном примере компонент 210 резервирования может находиться в машине, в которой находится клиентская информация, которую следует резервировать, и/или работать из этой машины. Кроме того, или в качестве альтернативы, компонент 210 резервирования может находиться в отдельном вычислительном устройстве (например, в качестве удаленно выполняемого компонента). В одном примере компонент 210 резервирования может быть использован, чтобы резервировать множество файлов и/или другую информацию с регулярными интервалами во времени после инициализации одного или более событий (например, модификации файла) и/или на основании любых других подходящих критериев активации.

В соответствии с одним аспектом резервирование файла может быть проведено инкрементальным способом с помощью компонента 210 резервирования для того, чтобы уменьшить ширину полосы частот и/или пространство хранения данных, требуемые для осуществления системы 200. Это может быть выполнено, например, с помощью первого разделения файла, который следует резервировать, на соответственные сегменты файла (например, блоки, фрагменты и т.д.) с использованием компонента 212 сегментации. В одном примере сегментация или фрагментация файла может быть выполнена с помощью компонента 212 сегментации способом, который облегчает отмену дублирования соответственных сегментов файла. Например, в конкретном не ограничивающем примере, проиллюстрированном с помощью системы 300 на фиг.3, компонент 310 сегментации может разделить первую версию файла (например, версию А 302) на множество равномерных и/или неравномерных блоков, обозначенных на фиг.3 как А1-А4. Затем после обнаружения модификации в файл (например, в версию В 304) компонент 310 сегментации может повторно сегментировать файл способом, совместимым с сегментацией версии А 302, таким образом, что любые блоки в файле, которые отличаются по положению из версии А 302 в версию В 304, являются без труда идентифицируемыми. Например, как проиллюстрировано на фиг.3, версия В 304 содержит один блок, обозначенный в версии В 304 как В1, который изменен из версии А 302 в версию В 304.

После обнаружения уникальных блоков в обновленной версии файла компонент 310 сегментации (и аналогично компонент 212 сегментации в системе 200) может облегчить инкрементальное запоминание новых и/или измененных блоков, соответствующих файлу, а также другой информации, относящейся к изменениям между соответственными версиями файла. Как дополнительно иллюстрирует система 300, эти обновления, в целом упоминаемые в настоящей заявке как инкрементальные или дельта-обновления, также могут быть выполнены, чтобы облегчить запоминание информации, относящейся к добавлению новых блоков файла (например, добавлению блока С1 в версии С 306), удалению блоков файла (например, удалению блока А4 в версии D 308), и/или любой другой подходящей операции и/или модификации файла.

Возвращаясь к системе 200 на фиг.2, после генерации блоков или сегментов, соответствующих файлу, различные блоки, соответствующие соответственным файлам и/или обновлениям файлов, могут быть предоставлены в компонент 214 распределения сегментов. Компонент 214 распределения сегментов, в свою очередь, может распределять блоки среди одного или более хранилищ 220 сегментов в одном или более местоположениях хранения данных в сети. Хранилища 220 сегментов могут быть связаны, например, с машинами одноранговых узлов в локальной сети, облачным сервисом хранения данных и/или другим подходящим местоположением хранения данных, основывающимся на основе Internet, и/или любым другим местом хранения данных. Методы, предназначенные для распределения информации среди местоположений хранения данных сети, описаны более подробно ниже.

В соответствии с одним аспектом компонент 216 генерации сигнатуры дополнительно может быть использован с помощью компонента 210 резервирования, чтобы генерировать информацию сигнатуры, соответствующую одному или более файлам и/или их версиям как сегментированным с помощью компонента 212 сегментации. Например, как проиллюстрировано с помощью схемы 300 на фиг.3, компонент 320 генерации сигнатуры может быть использован, чтобы генерировать соответствующие сигнатуры 322-328, соответствующие соответственным версиям 302-308 конкретного файла. Кроме того, или в качестве альтернативы, сигнатуры, сгенерированные с помощью компонента 216 генерации сигнатуры, могут соответствовать одному из следующего: блокам, группам блоков (например, блокам в файле и/или инкрементальному обновлению в файл), полным файлам, и/или версиям файлов, и/или любой другой подходящей группировке. В качестве конкретного не ограничивающего примера соответственные блоки могут быть предварительно сконфигурированы в равномерный размер (например, 4 килобайта (kb)), и соответственные сигнатуры могут быть сконфигурированы таким образом, чтобы представлять предварительно определенное равномерное число блоков (например, 12). Однако следует учитывать, что может быть использован любой подходящий размер блока и/или структура сигнатур.

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

Как иллюстрирует фиг.4, разностный компонент 420 может иметь связанную с ним сигнатуру 424, соответствующую текущей версии файла, который следует восстановить, и/или иначе может быть сконфигурирован с возможностью получения этой сигнатуры 424. После определения того, что желательно восстановить файл обратно в данную предыдущую версию, источник 410 сигнатуры может предоставить соответствующую сигнатуру, связанную с желаемой версией. На основании сигнатур, связанных с обеими версиями, компонент 422 сравнения затем может сравнить соответственные сигнатуры, чтобы получить идентификационные коды блоков, которые являются уникальными среди желаемой версии и текущей версии. Таким образом, можно понять, что в одном примере компонент 422 сравнения может выполнять основанное на сигнатуре различие, чтобы определять идентификационные коды соответственных уникальных блоков, которые требуются для успешного восстановления данного файла. В другом примере источник 410 сигнатуры может быть связан с устройством, с которым связан разностный компонент 420, и/или другим подходящим устройством (например, провайдером облачных сервисов, одноранговым узлом или одноранговым суперузлом и т.д.). В качестве не ограничивающего примера, источник 410 сигнатур может быть осуществлен как индекс перечня версий, который отслеживает соответственные версии информации в связанной системе и их соответствующие сигнатуры. В одном примере такой индекс может быть распределен по множеству местоположений сети, таких как одноранговые узлы, одноранговые суперузлы или местоположения облачного хранения данных в ассоциированной системе. Однако следует учитывать, что такое осуществление является только примером осуществления, которое может быть использовано, и что, если явно не указано иначе, подразумевают, что прилагаемая к настоящему описанию формула изобретения не ограничена таким осуществлением.

Теперь, обращаясь к фиг.5, проиллюстрирована система 500, предназначенная для осуществления гибридного хранилища данных резервирования, основанного на облаке и одноранговой сети, в соответствии с различными аспектами. Как иллюстрирует фиг.5, система 500 может включать в себя компонент 510 сегментации, который может генерировать сегменты или блоки файла, соответствующие файлу и/или соответственным его версиям, как описано выше. В одном примере блоки, сгенерированные с помощью компонента 510 сегментации, могут быть предоставлены в компонент 520 распределения сегментов, который может предоставлять соответственные блоки в одно или более ассоциированных местоположений хранения данных.

В соответствии с одним аспектом гибридная архитектура, основанная на одноранговой сети (Р2Р) и облаке, может быть использована с помощью системы 500 таким образом, что компонент 520 распределения сегментов может составлять порции данных, используемые для проведения операции восстановления, и/или связанных с ними сигнатур, доступных в одном или более надежных одноранговых узлах, таких как одноранговый узел(ы) 532 и/или одноранговый суперузел(ы) 534, а также в одном или более местоположениях 536 облачного хранения данных. Как дополнительно проиллюстрировано в системе 500, одноранговый узел(ы) 532, одноранговый суперузел(ы) 534 и/или облачное хранилище 536 дополнительно могут действовать с возможностью передачи сегментов файла, сигнатур и/или другой информации между собой. Кроме того, можно понять, что компонент 510 сегментации, компонент 520 распределения сегментов и/или любой другой компонент системы 500 дополнительно мог бы быть связан с одним или более одноранговыми узлами 532, одноранговыми суперузлами 534 или объектами, связанными с облачным хранилищем 536. Дополнительная подробность относительно методов, с помощью которых могут быть использованы одноранговые узлы 532, одноранговые суперузлы 534 и облачные хранилища 536 данных, а также дополнительные подробности относительно функции таких объектов в гибридной архитектуре предоставлены ниже.

В соответствии с другим аспектом компонент 520 распределения сегментов может включать в себя компонент 522 индексации и/или иначе может быть связан с этим компонентом, который может поддерживать индекс, который перечисляет соответственные зависимости отображения между блоками, сгенерированными с помощью компонента 510 сегментации, и соответствующими местоположениями, в которые распределены блоки. В одном примере этот индекс может быть распределен вместе с блоками, представленными в нем, в один или более одноранговых узлов 532, одноранговых суперузлов 534 или местоположений облачного хранения 536 данных. Можно понять, что весь индекс может быть распределен в одно или более местоположений или что сам индекс может быть сегментирован и распределен среди множества местоположений.

В соответствии с дополнительным аспектом компонент 520 распределения сегментов дополнительно выборочно может включать в себя компонент 524 анализатора сети, который может анализировать вычислительную сеть, связанную с системой 500, чтобы определять одно или более местоположений, чтобы распределять соответственные блоки, индексы, сегменты индексов или тому подобное. В одном примере компонент 524 анализатора сети может выбрать одно или более мест назначений для информации, которую следует распределять, на основании нагрузки сети, доступности местоположений хранения данных (например, на основании уровней активности устройства, статуса включенного питания или выключенного питания, доступного пространства хранения данных в соответственных местоположениях и т.д.) или тому подобного. Это может быть выполнено, например, для того, чтобы сбалансировать доступность различных данных в оптимальном местоположении.

Как дополнительно иллюстрирует система 500, компонент 526 машинного обучения и логических выводов (MLR) дополнительно может быть использован с помощью компонента 524 анализатора сети, чтобы облегчить интеллектуальный автоматизированный выбор местоположений хранения данных для соответственной информации. В одном примере компонент 526 MLR может использовать любой подходящий искусственный интеллект (AI), машинное обучение и/или другой алгоритм (алгоритмы), обычно известные в данной области техники. Как использовано в этом описании, понятие "интеллектуальность" относится к способности делать выводы и делать заключения, например делать вывод о текущем или будущем состоянии системы на основании существующей информации о системе. Искусственный интеллект может быть использован для того, чтобы идентифицировать конкретный контекст или действие или генерировать вероятность распределения конкретных состояний системы без вмешательства человека. Искусственный интеллект полагается на применение усовершенствованных математических алгоритмов (например, деревьев решений, нейронных сетей, регрессионного анализа, кластерного анализа, обобщенного алгоритма и усиленного обучения) к множеству доступных данных (информации) в системе. Например, одна или более из многочисленных методологий может быть использована для обучения из данных, а затем заключения выводов из моделей, составленных таким образом, например скрытых моделей Маркова (НММ), и связанной модели фототипической зависимости, более обобщенных вероятностных графических моделей, таких как сети Байеса, например, созданные с помощью поиска структуры с использованием счета или аппроксимации модели Байеса, линейного классификатора, такого как машины векторов поддержки (SVM), нелинейного классификатора, такого как способы, упомянутые как методологии "нейронные сети", методологии нечеткой логики, и других подходов (которые выполняют слияние данных и т.д.) в соответствии с осуществлением различных автоматизированных аспектов, описанных в настоящей заявке.

Ссылаясь на фиг.6, проиллюстрирована система 600, предназначенная для проведения разностного восстановления в гибридной архитектуре резервирования, основанной на облаке и одноранговой сети, в соответствии с различными аспектами. Как иллюстрирует система 600, может быть использована гибридная архитектура резервирования, основанная на Р2Р/облаке, причем резервные данные, соответствующие одному или более вычислительным устройствам, распределяют среди одной или более машин 610 или 640 одноранговых узлов и/или одной или более машин 650 одноранговых суперузлов уровня, а также одного или более местоположений 660 облачного хранения данных.

В одном примере машины 640 одноранговых узлов могут включать в себя соответственные хранилища 642 блоков, которые могут быть использованы для того, чтобы получать и подд