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

Изобретение относится к системам резервирования данных. Техническим результатом является уменьшение задержки и потребления ширины полосы частот за счет того, что данные, необходимые для осуществления восстановления, доступны для клиента из глобального сетевого местоположения (облака), а также из одного или более одноранговых устройств. Предложена клиентская система, предназначенная для восстановления информации из сетевой системы резервирования, содержащая память и процессор, которые соответственно выполнены с возможностью хранить и исполнять команды. Заявленная система включает в себя разностный компонент, компонент определения местоположения, компонент восстановления. Разностный компонент сконфигурирован идентифицировать, для элемента данных, который должен быть восстановлен, одну или более частей элемента данных, которые являются разными между текущей версией элемента данных и целевой версией элемента данных, на основе как первой разности, вычисляемой в клиентской системе, между текущей версией элемента данных и целевой версией элемента данных, так и второй разности, вычисляемой в местоположении резервирования, которое является удаленным по отношению к клиентской системе, между текущей версией элемента данных и целевой версией элемента данных. 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 блоков, которые могут быть использованы для того, чтобы получать и поддерживать множество блоков, соответствующих одному или более файлам или дельта-обновлениям в соответственные файлы. Файлы и/или обновления в них могут быть связаны, например, с одноранговым узлом 610 восстановления (например, как созданным с помощью компонента 510 сегментации и распределенным с помощью компонента 520 распределения сегментов). Кроме того, несмотря на то, что не проиллюстрировано в системе 600, одноранговый узел 610 восстановления может дополнительно или в качестве альтернативы включать в себя хранилище блоков, предназначенное для локального запоминания одного или более блоков, соответствующих файлам и/или дельта-обновлениям файлов, локально находящихся в одноранговом узле 610 восстановления.

В другом примере один или более одноранговых суперузлов 650 в системе 600 дополнительно могут включать в себя хранилище 652 блоков, а также индекс 654 блоков файла, который может обеспечивать главный перечень блоков файла, запомненных в системе 600, и их соответственные местоположения (например, как созданных с помощью компонента 522 индексирования). Несмотря на то, что индекс 654 блоков файла проиллюстрирован как расположенный в одноранговом суперузле 650 в системе 600, следует учитывать, что некоторые или все из индексов 654 блоков файлов, кроме того, или в качестве альтернативы, могли бы быть расположены в одном или более одноранговых узлах 610 и/или 640, а также в облачном хранилище 660 данных.

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

На основании местоположений, полученных с помощью компонента 622 поиска индексов, компонент 620 определения местоположения блоков и/или компонент 630 восстановления может вытянуть уникальные блоки из их соответствующих местоположений в хранилище (хранилищах) 642 или 652 блоков, хранилище 662 блоков и/или любом другом подходящем местоположении хранения данных в системе 600. После получения блоки могут затем быть объединены с неуникальными блоками, уже присутствующими в текущей версии информации, которую следует восстановить, чтобы восстановить желаемую версию. Таким образом, в одном примере с помощью проведения основанного на сигнатуре различия между текущей версией файла и версией файла, которую следует восстановить, восстановление может быть проведено с помощью вытягивания только битов или блоков, которые отличаются между версиями, независимо от инкрементальных обновлений. В одном примере можно определить (например, с помощью компонента 622 поиска по индексу или иначе), что один или более блоков уже локально присутствуют в одноранговом узле 610 восстановления (например, вследствие того, что блоки являются частью одного или более других файлов в одноранговом узле 610 восстановления). В таком случае могут быть использованы определенные локальные блоки вместо вытягивания блоков из одного или более местоположений в системе 600.

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

В другом примере гибридная архитектура резервирования, основанная на Р2Р/облаке, системы 600 может быть использована, чтобы минимизировать задержку и/или ширину полосы частот, требуемые, чтобы восстановить один или более файлов в одноранговом узле 610 восстановления. Например, компонент 620 определения местоположения блоков может использовать компонент 624 анализа сети, который может анализировать систему 600 и облегчать вытягивание соответственных сегментов файла из маршрута наименьшего сопротивления через систему 600. Таким образом, например, в случае когда данный блок находится в хранилище 642 или 652 блоков в одноранговом узле 640 или одноранговом суперузле 650, а также в облачном хранилище 660 данных, предпочтение может быть дано вытягиванию блока сначала из ближайших узлов сети. В результате одноранговому узлу 640 и/или одноранговому суперузлу 650 могут быть назначены приоритеты относительно облачного хранилища 660 данных, чтобы минимизировать задержку и использование ширины полосы частот, связанное с осуществлением связи с облачным хранилищем 660 данных.

Кроме того, или в качестве альтернативы, компонент 624 анализа сети может анализировать доступность соответственных узлов в системе 600 относительно нагрузки сети и/или других факторов, чтобы облегчить интеллектуальный выбор узлов, из которых получают соответственные блоки. Таким образом, одноранговый узел 610 восстановления может быть сконфигурирован с возможностью получения с первой попытки множества блоков из машины однорангового узла 640 или однорангового суперузла 650, прибегая к помощи облачного хранилища 660 данных, только если никакие одноранговые узлы 640 и/или 650 с требуемым блоком (блоками) не являются доступными. В другом примере компонент 626 MLR может быть использован, чтобы облегчить автоматизацию процесса выбора узла сети, из которого получают блоки.

В альтернативном примере, несмотря на то, что компонент 624 анализа сети проиллюстрирован в системе 600 как связанный с одноранговым узлом 610 восстановления, можно понять, что одноранговый суперузел 650 и/или другой объект, из которого одноранговый узел 610 осуществляет доступ к индексу 654 блоков файла, может использовать аналогичный анализ сети для того, чтобы выбрать оптимальное местоположение для соответственных блоков из множества местоположений для соответственных блоков, указанных с помощью индекса 654 блоков файла. Если выбрано, такое местоположение(я) может быть затем предоставлено в одноранговый узел 610 восстановления.

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

Далее, ссылаясь на фиг.7, предоставлена схема 700, которая иллюстрирует примерное осуществление сети, которое может быть использовано в связи с различными аспектами, описанными в настоящей заявке. Как иллюстрирует схема 700, осуществление сети может использовать гибридную структуру, основанную на одноранговой сети и облаке, в которой провайдер 710 облачных сервисов взаимодействует с одним или более одноранговыми суперузлами 720 и одним или более одноранговыми узлами 730-740.

В соответствии с одним аспектом провайдер 710 облачных сервисов может быть использован для того, чтобы удаленно осуществлять один или более вычислительных сервисов из данного местоположения в сети/интерсети, связанной с одноранговым суперузлом (узлами) 720 и/или одноранговым узлом (узлами) 730-740 (например, Internet). Провайдер 710 облачных сервисов может брать начало из одного местоположения, или, в качестве альтернативы, провайдер 710 облачных сервисов может быть осуществлен как распределенный провайдер Internet сервисов. В одном примере провайдер 710 облачных сервисов может быть использован для того, чтобы предоставлять функциональные возможности резервирования в один или более одноранговых узлов 720-740, связанных с провайдером 710 облачных сервисов. Таким образом, провайдер 710 облачных сервисов может осуществлять сервис 712 резервирования и/или предоставлять ассоциированное хранилище 714 данных.

В одном примере хранилище 714 данных может взаимодействовать с клиентом 722 резервирования в одноранговом суперузле 720 и/или клиентами 732 или 742 резервирования в соответственных одноранговых узлах 730 или 740, чтобы служить в качестве центрального местоположения хранения данных для данных, находящихся в соответственных объектах 720-740 одноранговых узлов. Таким образом, провайдер 710 облачных сервисов через хранилище 714 данных может фактически служить в качестве оперативного "надежного депозитного ящика" для данных, находящихся в одноранговых узлах 720-740. Можно понять, что резервирование может быть проведено для любого подходящего типа (типов) информации, такой как файлы (например, документы, фотографии, аудио, видео и т.д.), системная информация и тому подобной. Кроме того, или в качестве альтернативы, может быть осуществлено распределенное сетевое хранилище данных таким образом, что одноранговый суперузел 720 и/или одноранговые узлы 730-740 также конфигурируются с возможностью включения в них соответственных хранилищ 724, 734 и/или 744 данных для резервирования данных, связанных с одной или более машинами в связанной локальной сети. В другом примере методы, такие как отмена дублирования, инкрементальное запоминание, и/или другие подходящие методы могут быть использованы, чтобы уменьшить объем пространства хранения данных, требуемого хранилищем 714, 724, 734 и/или 744 данных в одном или более соответствующих объектах в сети, представленной с помощью схемы 700, для осуществления сервиса резервирования на основе облака.

В соответствии с другим аспектом провайдер 710 облачных сервисов может взаимодействовать с одной или более машинами 720, 730 и/или 740 одноранговых узлов. Как проиллюстрировано на схеме 700, один или более одноранговых узлов 720 могут быть назначены в качестве одноранговых суперузлов и могут служить в качестве связи для взаимодействия между провайдером 710 облачных сервисов и одним или более одноранговыми узлами 730-740 в ассоциированной локальной сети. Несмотря на то, что не проиллюстрировано на фиг.7, следует учитывать, что любой подходящий одноранговый узел 730 и/или 740, а также назначенный одноранговый суперузел(ы) 720 могут непосредственно взаимодействовать с провайдером 710 облачных сервисов, как считается уместным. Таким образом, можно понять, что провайдер 710 облачных сервисов, одноранговый суперузел(ы) 720 и/или одноранговые узлы 730 или 740 могут связываться друг с другом в любое подходящее время, чтобы синхронизировать файлы, или другую информацию между соответственными объектами, проиллюстрированными схемой 700.

В одном примере одноранговый суперузел 720 может быть центральным объектом в сети, связанной с одноранговыми узлами 720-740, таким как сеть распространения контента (CDN), сервер предприятия, домашний сервер, и/или любым другим подходящим вычислительным устройством (устройствами), определенным как имеющее функциональную возможность для функционирования в качестве однорангового суперузла способом, описанным в настоящей заявке. Кроме стандартных функциональных возможностей однорангового узла, одноранговый суперузел(ы) 720 может быть ответственным за сбор, распределение и/или индексирование данных среди одноранговых узлов 720-740 в локальной сети. Например, одноранговый суперузел 720 может поддерживать индекс 726 хранилища данных, который может включать в себя идентификационные коды соответственных файлов и/или сегментов файлов, соответствующих одноранговым узлам 720-740, а также указатель(и) на соответственное местоположение(я) в сети и/или облачном хранилище 714 данных, где могут быть найдены файлы или их сегменты. Кроме того, или в качестве альтернативы, одноранговый суперузел может действовать в качестве шлюза между другими одноранговыми узлами 730-740 и провайдером 710 облачных сервисов, например, с помощью загрузки соответственных файлов провайдеру 710 облачных сервисов в назначенные периоды времени невысокой нагрузки с помощью компонента 728 выкладывания данных в облако. В другом примере одноранговый суперузел 720 может служить в качестве кэш-буфера для "горячих" или "холодных" данных, таких как данные, которые, наиболее вероятно, должны быть восстановлены, имеют копию, расположенную ближе к одноранговому узлу восстановления или инициирования, и в течение времени больше копий распределяют в "более холодные" части распределенной системы (например, хранилище 714 данных у провайдера 710 облачных сервисов).

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

Обращаясь к фиг.8, проиллюстрирован способ 800 выполнения разностного восстановления файла. В 802 идентифицируют локально доступную версию одного или более файлов и желаемую версию, в которую должны быть восстановлены один или более файлов. В 804 идентифицируют блоки в одном или более файлах, идентифицированных в 802, которые отличаются от локально доступной версии, в желаемую версию. Идентификацию в 804 выполняют, по меньшей мере, частично с помощью проведения различия между локально доступной версией и желаемой версией (например, с использованием разностного компонента 110). В 806 получают блоки, идентифицированные в 804 (например, с помощью компонента 120 местоположения блока и/или компонента 130 восстановления), из одного или более хранилищ данных (например, одноранговых узлов 532, одноранговых суперузлов 534 и/или облачного хранилища 536 данных). В 808 восстанавливают желаемую версию одного или более файлов, идентифицированных в 802, по меньшей мере, частично с помощью объединения блоков, полученных в 806, с одним или более блоками в локально доступной версии одного или более файлов.

Теперь, обращаясь к фиг.9, предоставлена блок-схема последовательности этапов способа 900, предназначенного для проведения основанного на сигнатуре различия файла. В 902 идентифицируют одну или более сигнатур (например, сигнатуру 424), соответствующих соответственным блокам в текущей версии файла. В 904 принимают одну или более сигнатур (например, из источника 410 сигнатур), которые соответствуют соответственным блокам в желаемой версии, в которую должен быть восстановлен файл, идентифицированный в 902. В 906 идентифицируют один или более блоков, которые являются уникальными между текущей версией файла и желаемой версией файла, с помощью сравнения сигнатур, идентифицированных в 902 и 904 (например, с помощью компонента 422 сравнения). В 908 получают уникальные блоки, идентифицированные в 906, из одного или более связанных хранилищ блоков.

Фиг.10 иллюстрирует способ 1000, предназначенный для получения сегментов файла из гибридной системы, основанной на одноранговой сети/облаке. В 1002 идентифицируют множество сегментов файла, которые следует получить из множества одноранговых узлов (например, одноранговых узлов 610 или 640 и/или однорангового суперузла 650) и/или местоположения облачного хранения данных (например, облачное хранилище 660 данных) в сети. В 1004 выбирают одно или более местоположений в сети, чтобы получить соответственные сегменты файла (например, с помощью компонента 620 определения местоположения блоков) в зависимости от нагрузки сети, доступности местоположения, задержки сети и/или использования ширины полосы частот (например, как определено с помощью компонента 624 анализа сети). В 1006 получают сегменты файла из местоположений, выбранных в 1004.

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

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

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

Компьютер обычно включает в себя множество машиночитаемых носителей. Машиночитаемые носители могут быть любыми доступными носителями, доступ к которым может быть осуществлен с помощью компьютера, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и несменные носители. В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные носители хранения и носители связи. Компьютерные носители хранения могут включать в себя как энергозависимые, так и энергонезависимые носители, сменные и несменные носители, осуществленные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерный носитель хранения включает в себя RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровой универсальный диск (DVD) или другое запоминающее устройство на оптическом диске, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске, или другие устройства магнитной памяти, или любой другой носитель, который может быть использован, чтобы хранить желаемую информацию, и доступ к которому может быть осуществлен с помощью компьютера, но не ограничен ими.

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

Опять со ссылкой на фиг.11, иллюстративная среда 1100, предназначенная для осуществления различных аспектов, описанных в настоящей заявке, включает в себя компьютер 1102, причем компьютер 1102 включает в себя устройство 1104 обработки, системную память 1106 и системную шину 1108. Системная шина 1106 соединяется с компонентами системы, включая системную память 1106 с устройством 1104 обработки, но не ограничена этим. Устройство 1104 обработки может быть любым из коммерчески доступных процессоров. Сдвоенные микропроцессоры и другие многопроцессорные архитектуры также могут быть использованы в качестве устройства 1104 обработки.

Системная шина 1108 может быть любой из нескольких типов структуры шины, которая дополнительно может взаимно соединяться с шиной памяти (с контроллером памяти или без него), периферийной шиной и локальной шиной, использующих любую из множества коммерчески доступных архитектур шин. Системная память 1106 включает в себя память, доступную только по чтению (ROM) 1110, и память произвольного доступа (RAM) 1112. Базовую систему ввода/вывода (BIOS) хранят в энергонезависимой памяти 1110, такой как ROM, EPROM, EEPROM, эта BIOS содержит базовые подпрограммы, которые помогают переносить информацию между элементами в компьютере 1102, такую как во время запуска. RAM 1112 также может включать в себя высокоскоростную RAM, такую как статичная RAM для кэширования данных.

Компьютер 1102 дополнительно включает в себя внутренний накопитель 1114 на жестком диске (HDD) (например, EIDE, SATA), этот внутренний накопитель 1114 на жестком диске также может быть сконфигурирован для внешнего использования в подходящем корпусе (не изображен) как накопитель на магнитном гибком диске (FDD) 1116 (например, чтобы считывать из сменной дискеты 1118 или записывать на нее) и накопитель 1120 на оптическом диске (например, считывающий диск 1122 CD-ROM, или чтобы считывать из другого оптического носителя высокой емкости или записывать на него, например, DVD). Накопитель 1114 на жестком диске, накопитель 1116 на магнитном диске и накопитель 1120 на оптическом диске могут быть соединены с системной шиной 1108 с помощью интерфейса 1124 накопителя на жестком диске, интерфейса 1126 накопителя на магнитном диске и интерфейса 1128 накопителя на оптическом диске соответственно. Интерфейс 1124 для внешних осуществлений накопителей включает в себя, по меньшей мере, одну или обе из технологий интерфейса, универсальную последовательную шину (USB) и IEEE-1394. Другие технологии внешнего соединения накопителей находятся в рамках рассмотрения раскрытия объекта изобретения.

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

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

Пользователь может вводить команды и информацию в компьютер 1102 посредством одного или более проводных/беспроводных устройств ввода, например клавиатуры 1138 и устройства указывания, такого как мышь 1140. Другие устройства вывода (не изображены) могут включать в себя микрофон, инфракрасное удаленное устройство управления, джойстик, игровую клавишную панель, перо, сенсорный экран или тому подобные. Эти и другие устройства ввода часто соединены с устройством 1104 обработки посредством интерфейса 1142 устройства ввода, которое связано с системной шиной 1108, но могут быть соединены с помощью других интерфейсов, таких как параллельный порт, последовательный порт, порт IEEE-1394, игровой порт, порт USB, инфракрасный интерфейс и т.д.

Монитор 1144 или другой тип устройства отображения также соединен с системной шиной 1108 с помощью интерфейса, такого как видеоадаптер 1146. Кроме монитора 1144 компьютер обычно включает в себя другие периферийные устройства вывода (не изображены), такие как громкоговорители, принтеры и т.д.

Компьютер 1102 может работать в сетевой среде с использованием логических соединений с помощью проводной и/или беспроводной связи с одним или более компьютерами, такими как удаленный компьютер (компьютеры) 1148. Удаленный компьютер (компьютеры) 1148 может быть рабочей станцией, серверным компьютером, маршрутизатором, персональным компьютером, портативным компьютером, микропроцессорным развлекательным бытовым электронным оборудованием, устройством однорангового узла или другим обычным сетевым узлом и обычно включает в себя многие или все из элементов, описанных относительно компьютера 1102, несмотря на то, что для целей краткости проиллюстрировано только устройство памяти/запоминающее устройство 1150. Изображенные логические соединения включают в себя возможности связи с локальной сетью (LAN) 1152 и/или большими сетями, например глобальной сетью (WAN) 1154. Такие сетевые среды LAN и WAN являются рядовыми в офисах, компаниях и облегчают компьютерные сети масштаба предприятия, такие как интрасети, все из которых могут быть соединены с глобальной сетью связи, например Internet.

При использовании в сетевой среде LAN компьютер 1102 соединен с локальной сетью 1152 посредством проводного и/или беспроводного интерфейса или адаптера 1156 сети связи. Адаптер 1156 может облегчать проводную или беспроводную связь с LAN 1152, которая также может включать в себя беспроводный порт доступа, расположенный в ней для связи с беспроводным адаптером 1156.

При использовании в сетевой среде WAN компьютер 1102 может включать в себя модем 1158 или может быть соединен сервером связи в WAN 1154, или имеет другое средство для установления связи через WAN 1154, такое как через Internet. Модем 1158, который может быть внутренним или внешним и проводным или беспроводным устройством, соединен с системной шиной 1108 с помощью интерфейса 1142 последовательного порта. В сетевой среде программные модули, изображенные относительно компьютера 1102, или их части могут быть запомнены в удаленном устройстве памяти/удаленном запоминающем устройстве 1150. Будет понятно, что изображенные сетевые соединения являются иллюстративными, и может быть использовано другое средство установления линии связи между компьютерами.

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

Wi-Fi, или беспроводное высококачественное воспроизведение, является беспроводной технологией, аналогичной технологии, используемой в сотовом телефоне, которая дает возможность устройству посылать и принимать данные везде в диапазоне базовой станции. Сети Wi-Fi используют технологии радиосвязи IEEE-802.11 (a, b, g и т.д.), чтобы обеспечивать безопасную, надежную и быструю беспроводную возможность связи. Сеть Wi-Fi может быть использована для того, чтобы соединять компьютеры друг с другом, с Internet и с проводными сетями (которые используют IEEE-802.3 или Ethernet). Сети Wi-Fi работают, например, в нелицензированных радиодиапазонах 2,4 и 5 ГГц со скоростью передачи данных 13 Мб/сек (802.11а) или 54 Мб/сек (802.11b), или с изделиями, которые содержат оба диапазона (двухдиапазонными). Таким образом, сети, использующие беспроводную технологию Wi-Fi, могут обеспечивать реальную производительность, аналогичную проводной сети Ethernet 10BaseT.

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

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

Система 1200 также включает в себя один или более серверов 1204. Сервер (серверы) 1204 также может быть аппаратным обеспечением и/или программным обеспечением (например, потоками, процессами, вычислительными устройствами). В одном примере серверы 1204 могут размещать потоки, чтобы выполнять преобразования с помощью использования одного или более признаков, описанных в настоящей заявке. Одна возможная связь между клиентом 1202 и сервером 1204 может быть в виде пакета данных, адаптированного быть передаваемым между двумя или более компьютерными процессами. Пакет данных может включать в себя, например, идентификационный файл и/или связанную контекстуальную информацию. Система 1200 включает в себя инфраструктуру 1206 связи (например, глобальную сеть связи, такую как Internet), которая может быть использована, чтобы облегчить связь между клиентом (клиентами) 1202 и сервером (серверами) 1204.

Связь может быть облегчена с помощью проводной (включая волоконно-оптическую) и/или беспроводной технологии. Клиент (клиенты) 1202 оперативно соединен с одним или более хранилищами 1208 данных клиента, которые могут быть использованы, чтобы запоминать информацию локально в клиенте (клиентах) 1202 (например, идентификационный файл (файлы) и/или связанную контекстуальную информацию). Аналогично сервер (серверы) 1204 оперативно соединен с одним или более хранилищами 1210 данных сервера, которые могут быть использованы, чтобы запоминать информацию локально в серверах 1204.

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

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

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

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

2. Клиентская система по п.1, в которой разностный компонент дополнительно сконфигурирован идентифицировать упомянутые одну или более частей, по меньшей мере, частично путем сравнения соответственных сигнатур части, относящихся к частям текущей версии элемента данных, и соответственных сигнатур части, относящихся к частям целевой версии элемента данных.

3. Клиентская система по п.1, в которой компонент определения местоположения содержит компонент поиска по индексу, который сконфигурирован осуществлять поиск упомянутого множества местоположений сети исходя из индекса, который размещен в предварительно определенном местоположении сети.

4. Клиентская система по п.3, в которой индекс содержит перечень из упомянутых одной или более частей элемента данных и указателей на, по меньшей мере, одно местоположение для каждой из этих одной или более частей.

5. Клиентская система по п.1, в которой упомянутое множество местоположений сети также включает в себя местоположение удаленного устройства, подсоединенного к клиентской системе через глобальную сеть, и, по меньшей мере, одно из:
местоположения локального устройства однорангового узла, которое подсоединено к клиентской системе через локальную сеть и которое выполнено с возможностью хранить упомянутые одну или более частей элемента данных, и
местоположения локального устройства однорангового суперузла, которое подсоединено к клиентской системе через локальную сеть и которое выполнено с возможностью хранить упомянутые одну или более частей элемента данных, а также индекс, включающий в себя перечень из этих одной или более частей и указателей на, по меньшей мере, одно местоположение для каждой из упомянутых одной или более частей.

6. Клиентская система по п.5, в которой компонент определения местоположения дополнительно сконфигурирован выбирать одно из упомянутых определенных местоположений сети на основе, по меньшей мере, частично назначения местоположению локального устройства однорангового узла или устройства однорангового суперузла более высокого приоритета, чем местоположению удаленного устройства.

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

8. Клиентская система по п.1, в которой устройства в каждом из упомянутого множества местоположений сети выполнены с возможностью хранения элементов данных и одного или более инкрементальных обновлений для элементов данных.

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

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

11. Клиентская система по п.1, в которой элемент данных, который должен быть восстановлен, представляет собой образ системы.

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

13. Способ по п.12, в котором при упомянутой идентификации сегментов сравнивают сигнатуры, связанные с сегментами целевой версии файла, с сигнатурами, связанными с соответствующими сегментами локально доступной версии файла.

14. Способ по п.12, в котором при упомянутом получении каждого идентифицированного сегмента:
получают первый идентифицированный сегмент из первого сетевого хранилища данных и
получают второй идентифицированный сегмент из второго сетевого хранилища данных, причем первое сетевое хранилище данных отличается от второго сетевого хранилища данных.

15. Способ по п.12, в котором сетевые хранилища данных включают в себя:
основывающееся на облаке сетевое хранилище данных провайдера облачных сервисов, причем это основывающееся на облаке сетевое хранилище данных подсоединено к вычислительному устройству через глобальную сеть;
локальное сетевое хранилище данных однорангового узла, которое подсоединено к вычислительному устройству через локальную сеть и выполнено с возможностью хранения резервных копий сегментов;
локальное сетевое хранилище данных однорангового суперузла, которое подсоединено к вычислительному устройству через локальную сеть и выполнено с возможностью хранения резервных копий сегментов, а также индекса, который включает в себя перечень из резервных копий сегментов и указателей на сетевые хранилища данных, из которых резервные копии сегментов могут быть извлечены.

16. Способ по п.15, в котором при упомянутом выборе одного сетевого хранилища данных:
применяют первый уровень предпочтения к локальному сетевому хранилищу данных однорангового узла и локальному сетевому хранилищу данных однорангового суперузла; и
применяют первый уровень предпочтения к основывающемуся на облаке сетевому хранилищу данных, при этом первый уровень предпочтения показывает приоритет над вторым уровнем предпочтения.

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

18. Способ по п.12, в котором при упомянутом восстановлении данных объединяют полученные сегменты целевой версии файла с сегментами локально доступной версии файла.

19. Способ по п.12, в котором файл представляет собой часть образа системы или образ системы.

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



 

Похожие патенты:

Изобретение относится к вычислительной технике а, именно к способу восстановления данных в системе управления базами данных - СУБД. Техническим результатом является повышение точности восстановления данных в базах данных (БД) СУБД до последнего по времени согласованного состояния БД, не требуя при восстановлении дополнительного объема оперативной и внешней памяти под журнализацию.

Изобретение относится к антивирусным системам для обнаружения вредоносных объектов, загружаемых через пиринговые сети. .

Изобретение относится к вычислительной технике. .

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

Изобретение относится к обрабатывающему устройству и к способу самоуправления обрабатывающего устройства. .

Изобретение относится к способам определения ошибочного использования памяти. .

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

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

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

Изобретение относится к технологиям кэширования. Техническим результатом является повышение точности кэширования за счет учета взаимосвязей между пользователями.

Изобретение относится к вычислительным системам на основе микропроцессоров с динамической памятью. .

Изобретение относится к операциям кэширования в процессоре, в частности относится к определению политики кэширования. .

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

Изобретение относится к средствам обработки полей переменной длины с битовой адресацией в ЭВМ, в частности для контроллеров оперативной памяти со словной организацией.

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

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

Изобретение относится к системе автоматизации со средством управления автоматизации, периферийным блоком и системой шины, а также к способу управления подобной системой автоматизации.

Изобретение относится к вычислительной технике. Технический результат заключается в увеличении надежности хранения данных.

Изобретение относится к вычислительной технике. .
Наверх