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

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

Info

Publication number
RU2531869C2
RU2531869C2 RU2011139997/08A RU2011139997A RU2531869C2 RU 2531869 C2 RU2531869 C2 RU 2531869C2 RU 2011139997/08 A RU2011139997/08 A RU 2011139997/08A RU 2011139997 A RU2011139997 A RU 2011139997A RU 2531869 C2 RU2531869 C2 RU 2531869C2
Authority
RU
Russia
Prior art keywords
network
version
file
peer
data
Prior art date
Application number
RU2011139997/08A
Other languages
English (en)
Other versions
RU2011139997A (ru
Inventor
Элисса Э. МЕРФИ
Джон Д. МЕР
Нэвджот ВИРК
Лара М. СОСНОСКИ
Джеймс Р. ХЭМИЛТОН
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2011139997A publication Critical patent/RU2011139997A/ru
Application granted granted Critical
Publication of RU2531869C2 publication Critical patent/RU2531869C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

УРОВЕНЬ ТЕХНИКИ
Так как вычислительные устройства становятся более распространенными и широко используемыми среди обычного населения, объем данных, генерируемых и используемых с помощью таких устройств, быстро увеличился. Например, последние достижения в технологии вычисления и запоминания данных дали возможность даже устройствам со значительно ограниченным форм-фактором запоминать и обрабатывать большие объемы информации для множества приложений, в которых требуются данные, таких как редактирование документа, обработка мультимедиа и тому подобных. Кроме того, последние достижения в технологии связи могут давать возможность вычислительным устройствам передавать данные с высокой степенью скорости. Эти достижения дали в результате, помимо других технологий, осуществление распределенных вычислительных сервисов, которые могут быть проведены, например, с использованием вычислительных устройств в множестве местоположений в сети. Кроме того, такие достижения дали возможность осуществления сервисов, таких как основанное на сети резервирование, которое позволяет пользователю вычислительного устройства поддерживать одну или более резервных копий данных, связанных с вычислительным устройством, в удаленном местоположении в сети.
Существующие решения резервирования системы и/или данных дают возможность пользователю хранить резервную информацию в местоположении и/или на носителе отдельно от своего первоначального источника. Таким образом, например, данные из вычислительного устройства могут быть зарезервированы из накопителя на жестком диске на внешний носитель, такой как ленточный накопитель, внешний накопитель на жестком диске или тому подобный. Однако в осуществлении основанного на сети резервирования и/или других решений, которые могут быть использованы, чтобы обеспечить физически удаленные местоположения для хранения резервных данных, затраты и сложность, связанные с передачей и восстановлением пользовательских данных между пользовательской машиной и удаленным местоположением хранения данных, по существу могут ограничить полезность системы резервирования. Например, в случае когда резервные данные сохраняются в удаленном местоположении сети, данные, связанные с соответственными версиями первоначальной копии файла и/или образа системы, могут быть переданы в удаленное хранилище данных, где соответственные версии позже могут быть извлечены для восстановления. Однако в таком примере значительный объем данных обычно передают через сеть, таким образом потребляя дорогую ширину полосы частот. В виду вышеупомянутого было бы желательно осуществлять методы основанного на сети резервирования с улучшенной эффективностью.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Следующее представляет упрощенную сущность заявленного объекта изобретения для того, чтобы предоставить основное понимание некоторых аспектов заявленного объекта изобретения. Эта сущность не является широким обзором заявленного объекта изобретения. Она не предназначена ни идентифицировать ключевые или критические элементы заявленного объекта изобретения, ни очерчивать рамки объема заявленного объекта изобретения. Ее единственной целью является представить некоторые концепции заявленного объекта изобретения в упрощенной форме в качестве вступления к более подробному описанию, которое представлено позже.
В настоящей заявке предоставлены системы и методологии, которые облегчают высокоэффективные методы восстановления для систем основанного на сети резервирования. Основанный на разностях анализ может быть использован таким образом, что для данного восстановления конкретной версии элемента, который следует восстановить, вычисляют новую полную разность между одним или более удаленными местоположениями резервирования и клиентом резервирования до передачи данных через сеть. Разность может быть вычислена как в клиенте резервирования, так и в удаленном местоположении резервирования, например, с помощью сравнения сигнатур, соответствующих текущей версии элемента, который следует восстановить, расположенного в клиенте резервирования и желаемой версией, расположенной в удаленном местоположении резервирования. На основании вычисленной разности передача может быть проведена только для блоков, определенных как уникальные между текущей версией элемента и его желаемой версией, таким образом уменьшая задержку восстановления, а также потребляемую ширину полосы частот сети. После получения уникальные блоки, полученные из удаленного местоположения резервирования, затем могут быть объединены с не уникальными блоками, присутствующими в текущей версии элемента, уже расположенного в клиенте резервирования, чтобы получить полностью восстановленную версию.
В соответствии с одним аспектом может быть использована гибридная архитектура, в которой сигнатуры и/или данные, необходимые, чтобы проводить восстановление, могут быть сделаны доступными клиенту резервирования из глобального местоположения в сети или интерсети (например, "облака"), а также из одной или более машин одноранговых узлов сети, связанных с машиной, на которой расположен клиент резервирования. Таким образом, клиент резервирования может получить некоторую или всю информацию, необходимую для выполнения восстановления, либо из облака, либо близлежащего однорангового узла, таким образом дополнительно уменьшая задержку и потребление ширины полосы частот. В одном примере выбор местоположений, которые следует использовать для хранения и/или извлечения резервной информации, может быть проведен интеллектуальным и автоматизированным способом на основании факторов, таких как доступность местоположений сети, относительная нагрузка, топология сети и тому подобных.
Следующее описание и прилагаемые чертежи подробно приводят определенные иллюстративные аспекты заявленного объекта изобретения. Однако эти аспекты являются указывающими только некоторые из различных способов, в которых могут быть использованы принципы заявленного объекта изобретения, и подразумевают, что заявленный объект изобретения включает в себя все такие аспекты и их эквиваленты. Другие преимущества и отличительные признаки заявленного объекта изобретения станут понятными из следующего подробного описания заявленного объекта изобретения при рассмотрении совместно с чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.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.
То, что описано выше, включает в себя примеры заявленного объекта изобретения. Конечно, невозможно описать каждую возможную комбинацию компонентов или методологий для целей описания заявленного объекта изобретения, но обычный специалист в данной области техники может узнать, что возможны многие дополнительные комбинации и перестановки. Таким образом, подразумевают, что подробное описание заключает в себе все такие изменения, модификации и варианты, которые находятся в рамках сущности и объема прилагаемой формулы изобретения.
В частности, и относительно различных функций, выполняемых с помощью вышеописанных компонентов, устройств, схем, систем и тому подобного, подразумевают, что понятия (включая ссылку на "средство"), использованные, чтобы описывать такие компоненты, соответствуют, если не указано иначе, любому компоненту, который выполняет заданную функцию описанного компонента (например, функционального эквивалента), даже если не структурного эквивалента раскрытой структуры, которая выполняет функцию в иллюстративных аспектах, проиллюстрированных в настоящей заявке. В этом отношении также можно узнать, что описанные аспекты включают в себя систему, а также машиночитаемый носитель, имеющий машиноисполняемые команды, предназначенные для выполнения действий и/или событий различных способов.
Кроме того, несмотря на то, что конкретный признак может быть раскрыт только относительно одного из осуществлений, такой признак может быть объединен с одним или более другими признаками других осуществлений, как может быть желательным или выгодным для любого данного или конкретного приложения. Кроме того, в том смысле, в котором понятия "включает" и "включающий" и их варианты использованы либо в подробном описании, либо в формуле изобретения, подразумевают, что такие понятия являются включающими, в некотором смысле подобными понятию "содержащий".

Claims (20)

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. Машиночитаемый носитель, на котором сохранены команды, которые при их исполнении компьютерным устройством предписывают компьютерному устройству действовать в качестве системы, предназначенной для восстановления информации из гибридной системы резервирования, основанной на одноранговой сети/облаке, причем данная система содержит:
средство для выполнения основанного на сигнатуре сравнения между блоками локально доступной версии файла и соответствующими блоками целевой версии файла и для идентификации, по меньшей мере, одного блока целевой версии файла, который не является идентично соответствующим какому-либо блоку локально доступной версии файла, на основе как упомянутого основанного на сигнатуре сравнения, так и другого основанного на сигнатуре сравнения, которое было вычислено в удаленном местоположении резервирования;
средство для определения множества сетевых устройств, на которых упомянутый, по меньшей мере, один блок целевой версии файла является доступным для извлечения, и для выбора одного из упомянутого определенного множества сетевых устройств в качестве источника для данного, по меньшей мере, одного блока целевой версии файла, причем это множество сетевых устройств включает в себя, по меньшей мере, одно устройство провайдера облачных сервисов; и
средство для получения упомянутого, по меньшей мере, одного блока целевой версии файла из выбранного одного из упомянутого определенного множества сетевых устройств и для объединения упомянутого, по меньшей мере, одного блока целевой версии файла с одним или более блоками локально доступной версии файла, чтобы восстановить целевую версию файла.
RU2011139997/08A 2009-04-03 2010-03-26 Разностные восстановления файла и системы из одноранговых узлов сети и облака RU2531869C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/417,992 US8805953B2 (en) 2009-04-03 2009-04-03 Differential file and system restores from peers and the cloud
US12/417,992 2009-04-03
PCT/US2010/028957 WO2010114777A2 (en) 2009-04-03 2010-03-26 Differential file and system restores from peers and the cloud

Publications (2)

Publication Number Publication Date
RU2011139997A RU2011139997A (ru) 2013-04-20
RU2531869C2 true RU2531869C2 (ru) 2014-10-27

Family

ID=42827026

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011139997/08A RU2531869C2 (ru) 2009-04-03 2010-03-26 Разностные восстановления файла и системы из одноранговых узлов сети и облака

Country Status (12)

Country Link
US (1) US8805953B2 (ru)
EP (1) EP2414933A4 (ru)
JP (1) JP5559867B2 (ru)
KR (1) KR101626186B1 (ru)
CN (1) CN102388361B (ru)
AU (1) AU2010232795B2 (ru)
BR (1) BRPI1014698A2 (ru)
CA (1) CA2756085C (ru)
MX (1) MX2011010287A (ru)
RU (1) RU2531869C2 (ru)
TW (1) TWI474164B (ru)
WO (1) WO2010114777A2 (ru)

Families Citing this family (359)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6746483B1 (en) * 2000-03-16 2004-06-08 Smith & Nephew, Inc. Sheaths for implantable fixation devices
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US8533169B1 (en) 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8250030B2 (en) 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US8068433B2 (en) * 2007-11-26 2011-11-29 Microsoft Corporation Low power operation of networked devices
US8074014B2 (en) * 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8510577B2 (en) * 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US8874534B2 (en) * 2009-08-14 2014-10-28 Ic Manage, Inc. File state subset satellites to provide block-based version control
US20140222758A1 (en) * 2009-08-14 2014-08-07 Ic Manage, Inc. Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store
WO2011021909A2 (en) 2009-08-21 2011-02-24 Samsung Electronics Co., Ltd. Method and apparatus for providing contents via network, method and apparatus for receiving contents via network, and method and apparatus for backing up data via network, backup data providing device, and backup system
US8433682B2 (en) 2009-12-31 2013-04-30 Commvault Systems, Inc. Systems and methods for analyzing snapshots
EP2519872A4 (en) 2009-12-31 2015-08-26 Commvault Systems Inc SYSTEMS AND METHOD FOR IMPLEMENTING DATA MANAGEMENT OPERATIONS USING SNAPSHOTS
US9684563B1 (en) * 2010-01-04 2017-06-20 Veritas Technologies Llc Techniques for backup management
US10387927B2 (en) 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9235399B2 (en) 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US9256899B2 (en) 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
US9100396B2 (en) 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US9262643B2 (en) 2010-02-22 2016-02-16 Sookasa Inc. Encrypting files within a cloud computing environment
US8977661B2 (en) * 2010-02-22 2015-03-10 Sookasa Inc. System, method and computer readable medium for file management
US8370672B2 (en) * 2010-02-26 2013-02-05 Microsoft Corporation Reducing power consumption of distributed storage systems
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US20110246721A1 (en) * 2010-03-31 2011-10-06 Sony Corporation Method and apparatus for providing automatic synchronization appliance
US9417969B2 (en) * 2010-05-13 2016-08-16 Sony Corporation Distributed network backup of multimedia files
US8707087B2 (en) * 2010-05-18 2014-04-22 Dell Products L.P. Restoration of an image backup using information on other information handling systems
US9083762B2 (en) * 2010-05-28 2015-07-14 Greg Saunders System and method for providing hybrid on demand services to a work unit
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8650159B1 (en) * 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
US8713265B1 (en) * 2010-09-21 2014-04-29 Western Digital Technologies, Inc. Visual indicator of online backup
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
CN103180842B (zh) * 2010-10-28 2016-03-09 Sk电信有限公司 云计算系统和用于该云计算系统的数据同步方法
US8583599B2 (en) * 2010-11-29 2013-11-12 Ca, Inc. Reducing data duplication in cloud storage
US8688645B2 (en) * 2010-11-30 2014-04-01 Netapp, Inc. Incremental restore of data between storage systems having dissimilar storage operating systems associated therewith
US8656454B2 (en) 2010-12-01 2014-02-18 Microsoft Corporation Data store including a file location attribute
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8316057B2 (en) * 2010-12-17 2012-11-20 International Business Machines Corporation Restoring deduplicated data objects from sequential backup devices
US10346430B2 (en) 2010-12-23 2019-07-09 Mongodb, Inc. System and method for determining consensus within a distributed database
US11544288B2 (en) * 2010-12-23 2023-01-03 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10262050B2 (en) 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US11615115B2 (en) 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9280550B1 (en) * 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US9037597B2 (en) * 2011-01-10 2015-05-19 International Business Machines Corporation Verifying file versions in a networked computing environment
US8676763B2 (en) 2011-02-08 2014-03-18 International Business Machines Corporation Remote data protection in a networked storage computing environment
US9225791B2 (en) * 2011-02-28 2015-12-29 Red Hat, Inc. Staged data migration between data sources and cloud-based storage network
US9384199B2 (en) 2011-03-31 2016-07-05 Microsoft Technology Licensing, Llc Distributed file system
US8868859B2 (en) * 2011-06-03 2014-10-21 Apple Inc. Methods and apparatus for multi-source restore
US20130138615A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Synchronizing updates across cluster filesystems
US9152659B2 (en) * 2011-12-30 2015-10-06 Bmc Software, Inc. Systems and methods for migrating database data
KR101429334B1 (ko) * 2012-02-02 2014-08-12 충북대학교 산학협력단 P2p 네트워크 환경에서 모바일 피어 검색을 위한 연속 범위 질의 처리 방법
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US8468139B1 (en) 2012-07-16 2013-06-18 Dell Products L.P. Acceleration of cloud-based migration/backup through pre-population
US11403317B2 (en) 2012-07-26 2022-08-02 Mongodb, Inc. Aggregation framework system architecture and method
US11544284B2 (en) 2012-07-26 2023-01-03 Mongodb, Inc. Aggregation framework system architecture and method
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN107704198B (zh) * 2012-12-17 2020-01-31 联想(北京)有限公司 信息处理的方法及电子设备
US9165001B1 (en) * 2012-12-19 2015-10-20 Emc Corporation Multi stream deduplicated backup of collaboration server data
US9015122B2 (en) * 2012-12-21 2015-04-21 Zetta, Inc. Systems and methods for minimizing network bandwidth for replication/back up
US9373001B2 (en) 2012-12-26 2016-06-21 Barracuda Networks, Inc. Distributed encryption and access control scheme in a cloud environment
TWI489889B (zh) 2012-12-28 2015-06-21 Ind Tech Res Inst 內容遞送網路及同儕網路之流量控制方法及系統
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
JP2014164614A (ja) * 2013-02-26 2014-09-08 Sony Corp 情報処理装置および方法、並びにプログラム
US20140250077A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Deduplication vault storage seeding
US8874527B2 (en) 2013-03-01 2014-10-28 Storagecraft Technology Corporation Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US8738577B1 (en) 2013-03-01 2014-05-27 Storagecraft Technology Corporation Change tracking for multiphase deduplication
US8682870B1 (en) 2013-03-01 2014-03-25 Storagecraft Technology Corporation Defragmentation during multiphase deduplication
US8732135B1 (en) * 2013-03-01 2014-05-20 Storagecraft Technology Corporation Restoring a backup from a deduplication vault storage
US9594643B2 (en) * 2013-03-06 2017-03-14 Quest Software Inc. Handling restores in an incremental backup storage system
US10191823B2 (en) 2014-03-11 2019-01-29 Cloudendure Ltd. System and method for restoring original machines from replicated machines in a secondary computing environment
US9582386B2 (en) 2013-03-15 2017-02-28 Cloudendure, Ltd. System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
US10157107B2 (en) 2013-07-03 2018-12-18 Catalogic Software, Inc. Data backup and progressive restoration using data chunks in cloud storage and a data cache
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
CN104754007A (zh) * 2013-12-26 2015-07-01 伊姆西公司 用于管理网络附加存储的方法和装置
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US8751454B1 (en) 2014-01-28 2014-06-10 Storagecraft Technology Corporation Virtual defragmentation in a deduplication vault
JP6269174B2 (ja) * 2014-03-05 2018-01-31 富士通株式会社 データ処理プログラム、データ処理装置及びデータ処理方法
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US10911537B1 (en) * 2014-12-31 2021-02-02 Acronis International Gmbh Increasing speed of synchronization and restore
CN104572354A (zh) * 2015-01-22 2015-04-29 上海迈微软件科技有限公司 基于恢复服务的操作系统备份和恢复的方法及其设备
EP3248101B1 (en) * 2015-01-23 2021-12-08 ServiceNow, Inc. Distributed computing system with resource managed database cloning
CN104639629A (zh) * 2015-01-30 2015-05-20 英华达(上海)科技有限公司 一种在客户端和云端进行文件的比较方法及比较系统
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US10311150B2 (en) 2015-04-10 2019-06-04 Commvault Systems, Inc. Using a Unix-based file system to manage and serve clones to windows-based computing clients
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US9588691B2 (en) * 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US10673623B2 (en) 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US20170193003A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. Redundant and robust distributed deduplication data storage system
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10133639B2 (en) * 2016-02-10 2018-11-20 International Business Machines Corporation Privacy protection of media files for automatic cloud backup systems
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
JP6638489B2 (ja) * 2016-03-14 2020-01-29 オムロン株式会社 中継装置、中継装置の制御方法、制御プログラム、および記録媒体
US11995315B2 (en) 2016-03-16 2024-05-28 Pure Storage, Inc. Converting data formats in a storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10671496B2 (en) 2016-05-31 2020-06-02 Mongodb, Inc. Method and apparatus for reading and writing committed data
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US9946617B2 (en) * 2016-06-06 2018-04-17 International Business Machines Corporation Optimized recovery in data replication environments
US10621050B2 (en) 2016-06-27 2020-04-14 Mongodb, Inc. Method and apparatus for restoring data from snapshots
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US10437730B2 (en) 2016-08-22 2019-10-08 International Business Machines Corporation Read cache synchronization in data replication environments
US11290519B2 (en) * 2016-08-22 2022-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Method for enabling a communication device to receive a partial modification of a resource
US10572245B1 (en) 2016-08-30 2020-02-25 Amazon Technologies, Inc. Identifying versions of running programs using signatures derived from object files
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10666707B2 (en) * 2017-01-11 2020-05-26 Microsoft Technology Licensing, Llc Nonconsecutive file downloading
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10264054B2 (en) 2017-02-10 2019-04-16 International Business Machines Corporation Predictive device to device file transfer system for local cloud storage files
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US12056383B2 (en) 2017-03-10 2024-08-06 Pure Storage, Inc. Edge management service
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11249671B2 (en) * 2017-04-28 2022-02-15 Netapp, Inc. Methods for improved data replication across hybrid cloud volumes using data tagging and devices thereof
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11593036B2 (en) 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
US12061822B1 (en) 2017-06-12 2024-08-13 Pure Storage, Inc. Utilizing volume-level policies in a storage system
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
WO2018231350A1 (en) 2017-06-12 2018-12-20 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US12086650B2 (en) 2017-06-12 2024-09-10 Pure Storage, Inc. Workload placement based on carbon emissions
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US12086651B2 (en) 2017-06-12 2024-09-10 Pure Storage, Inc. Migrating workloads using active disaster recovery
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10635632B2 (en) 2017-08-29 2020-04-28 Cohesity, Inc. Snapshot archive management
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US11321192B2 (en) * 2017-09-07 2022-05-03 Cohesity, Inc. Restoration of specified content from an archive
US11874805B2 (en) 2017-09-07 2024-01-16 Cohesity, Inc. Remotely mounted file system with stubs
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US12067466B2 (en) 2017-10-19 2024-08-20 Pure Storage, Inc. Artificial intelligence and machine learning hyperscale infrastructure
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10671435B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Data transformation caching in an artificial intelligence infrastructure
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US11972134B2 (en) 2018-03-05 2024-04-30 Pure Storage, Inc. Resource utilization using normalized input/output (‘I/O’) operations
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US12066900B2 (en) 2018-03-15 2024-08-20 Pure Storage, Inc. Managing disaster recovery to cloud computing environment
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US12086431B1 (en) 2018-05-21 2024-09-10 Pure Storage, Inc. Selective communication protocol layering for synchronous replication
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US10992598B2 (en) 2018-05-21 2021-04-27 Pure Storage, Inc. Synchronously replicating when a mediation service becomes unavailable
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
JP7248267B2 (ja) * 2018-06-06 2023-03-29 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム
CN108874590A (zh) * 2018-06-16 2018-11-23 武汉商启网络信息有限公司 一种云主机自动备份与恢复的系统
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US12026381B2 (en) 2018-10-26 2024-07-02 Pure Storage, Inc. Preserving identities and policies across replication
US12026061B1 (en) 2018-11-18 2024-07-02 Pure Storage, Inc. Restoring a cloud-based storage system to a selected state
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US12026060B1 (en) 2018-11-18 2024-07-02 Pure Storage, Inc. Reverting between codified states in a cloud-based storage system
US11023179B2 (en) 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US12001355B1 (en) 2019-05-24 2024-06-04 Pure Storage, Inc. Chunked memory efficient storage data transfers
CN110362429B (zh) * 2019-07-12 2021-08-06 优刻得科技股份有限公司 数据库的连续数据保护方法、系统、设备和介质
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11550514B2 (en) 2019-07-18 2023-01-10 Pure Storage, Inc. Efficient transfers between tiers of a virtual storage system
TWI711288B (zh) * 2019-08-27 2020-11-21 中華電信股份有限公司 異地備份方法
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11625416B1 (en) 2019-09-13 2023-04-11 Pure Storage, Inc. Uniform model for distinct types of data replication
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US12045252B2 (en) 2019-09-13 2024-07-23 Pure Storage, Inc. Providing quality of service (QoS) for replicating datasets
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
KR102427418B1 (ko) * 2019-09-27 2022-08-01 주식회사 데이타커맨드 백업 데이터 합성 장치 및 방법
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
CN112685225B (zh) * 2019-10-18 2024-06-18 伊姆西Ip控股有限责任公司 用于传输数据的方法、设备和计算机程序产品
US10715524B1 (en) * 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11930112B1 (en) 2019-12-06 2024-03-12 Pure Storage, Inc. Multi-path end-to-end encryption in a storage system
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
CN111309388B (zh) * 2020-02-03 2023-07-21 杭州迪普科技股份有限公司 设备的系统软件版本的自动回滚系统及其方法
US12014065B2 (en) 2020-02-11 2024-06-18 Pure Storage, Inc. Multi-cloud orchestration as-a-service
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US12038881B2 (en) 2020-03-25 2024-07-16 Pure Storage, Inc. Replica transitions for file storage
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11422733B2 (en) * 2020-06-29 2022-08-23 EMC IP Holding Company LLC Incremental replication between foreign system dataset stores
US11831773B1 (en) 2020-06-29 2023-11-28 Amazon Technologies, Inc. Secured database restoration across service regions
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US12079222B1 (en) 2020-09-04 2024-09-03 Pure Storage, Inc. Enabling data portability between systems
US11487701B2 (en) 2020-09-24 2022-11-01 Cohesity, Inc. Incremental access requests for portions of files from a cloud archival storage tier
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US12086649B2 (en) 2021-05-12 2024-09-10 Pure Storage, Inc. Rebalancing in a fleet of storage systems using data science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US12001300B2 (en) 2022-01-04 2024-06-04 Pure Storage, Inc. Assessing protection for storage resources
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
RU2192039C2 (ru) * 1996-10-29 2002-10-27 Чейенн Софтвэа Интернэшнл Сэйлс Корп. Исполнительная программа регенерации для вспомогательной программы резервного копирования

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US6366930B1 (en) * 1996-04-12 2002-04-02 Computer Associates Think, Inc. Intelligent data inventory & asset management systems method and apparatus
KR970076238A (ko) * 1996-05-23 1997-12-12 포만 제프리 엘 클라이언트 데이타 화일의 다수의 복사본을 생성하고 관리하는 서버, 방법 및 그 프로그램 제품
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6367029B1 (en) * 1998-11-03 2002-04-02 Sun Microsystems, Inc. File server system tolerant to software and hardware failures
GB2353611B (en) * 1999-08-24 2004-03-17 Ibm Disk image backup/restore with data preparation phase
US7574496B2 (en) * 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US7257584B2 (en) * 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US6990666B2 (en) * 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US6993539B2 (en) * 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US7139808B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Method and apparatus for bandwidth-efficient and storage-efficient backups
US7334124B2 (en) * 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
CA2497306A1 (en) * 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for integrating primary data storage with local and remote data protection
US7203711B2 (en) * 2003-05-22 2007-04-10 Einstein's Elephant, Inc. Systems and methods for distributed content storage and management
US7275177B2 (en) * 2003-06-25 2007-09-25 Emc Corporation Data recovery with internet protocol replication with or without full resync
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
US20050015416A1 (en) * 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
US7257257B2 (en) * 2003-08-19 2007-08-14 Intel Corporation Method and apparatus for differential, bandwidth-efficient and storage-efficient backups
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7315930B2 (en) * 2003-10-30 2008-01-01 Hewlett-Packard Development Company, L.P. Method of selecting heuristic class for data placement
US7383463B2 (en) * 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
JP2005301497A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd ストレージ管理装置、リストア方法及びそのプログラム
JP2005301464A (ja) 2004-04-08 2005-10-27 Hitachi Ltd バックアップ方法ならびにバックアップシステム
US7555531B2 (en) * 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US8108429B2 (en) * 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US7461100B2 (en) * 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7330997B1 (en) * 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup
US7979404B2 (en) * 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data
US8364633B2 (en) * 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US20060212439A1 (en) * 2005-03-21 2006-09-21 Microsoft Corporation System and method of efficient data backup in a networking environment
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
WO2007017857A1 (en) * 2005-04-15 2007-02-15 Zak Dechovich Accelerated computer recovery
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
AU2006299819B2 (en) * 2005-10-12 2011-02-10 Carbonite Gmbh Method and system for data backup
US7653668B1 (en) * 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US20070136200A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Backup broker for private, integral and affordable distributed storage
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US7529785B1 (en) * 2006-02-28 2009-05-05 Symantec Corporation Efficient backups using dynamically shared storage pools in peer-to-peer networks
US20070214198A1 (en) * 2006-03-10 2007-09-13 Nathan Fontenot Allowing state restoration using differential backing objects
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
EP2021926A4 (en) * 2006-05-05 2009-07-15 Hybir Inc SYSTEM FOR SAVING INCREMENTAL AND COMPLETE COMPUTER-BASED FILE FILES BASED ON THE GROUP, PROCESS AND APPARATUS
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
CA2668076A1 (en) * 2006-10-31 2008-05-08 Rebit, Inc. System for automatically shadowing data and file directory structures for a plurality of network-connected computers using a network-atached memory
US7734669B2 (en) * 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of data
US7685189B2 (en) * 2006-12-27 2010-03-23 Microsoft Corporation Optimizing backup and recovery utilizing change tracking
JP2008197745A (ja) * 2007-02-08 2008-08-28 Hitachi Ltd ストレージ仮想化システムにおける記憶制御装置
US8874518B2 (en) * 2007-06-06 2014-10-28 International Business Machines Corporation System, method and program product for backing up data
ATE519159T1 (de) * 2007-06-08 2011-08-15 Apple Inc Auf anwendungen basierendes backup-restore von elektronischen informationen
JP2009070143A (ja) * 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
US8190836B1 (en) * 2008-04-30 2012-05-29 Network Appliance, Inc. Saving multiple snapshots without duplicating common blocks to protect the entire contents of a volume
US8108502B2 (en) * 2008-07-24 2012-01-31 Symform, Inc. Storage device for use in a shared community storage network
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
US8566362B2 (en) * 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
RU2192039C2 (ru) * 1996-10-29 2002-10-27 Чейенн Софтвэа Интернэшнл Сэйлс Корп. Исполнительная программа регенерации для вспомогательной программы резервного копирования

Also Published As

Publication number Publication date
CN102388361A (zh) 2012-03-21
JP5559867B2 (ja) 2014-07-23
AU2010232795A1 (en) 2011-10-20
KR101626186B1 (ko) 2016-05-31
CN102388361B (zh) 2015-02-25
US20100257142A1 (en) 2010-10-07
KR20120027132A (ko) 2012-03-21
RU2011139997A (ru) 2013-04-20
EP2414933A4 (en) 2012-11-14
JP2012523044A (ja) 2012-09-27
CA2756085C (en) 2017-04-25
EP2414933A2 (en) 2012-02-08
TWI474164B (zh) 2015-02-21
TW201040713A (en) 2010-11-16
WO2010114777A2 (en) 2010-10-07
BRPI1014698A2 (pt) 2019-04-16
WO2010114777A3 (en) 2011-02-03
MX2011010287A (es) 2011-10-19
CA2756085A1 (en) 2010-10-07
US8805953B2 (en) 2014-08-12
AU2010232795B2 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
RU2531869C2 (ru) Разностные восстановления файла и системы из одноранговых узлов сети и облака
US8769049B2 (en) Intelligent tiers of backup data
US8769055B2 (en) Distributed backup and versioning
US8261126B2 (en) Bare metal machine recovery from the cloud
US9792306B1 (en) Data transfer between dissimilar deduplication systems
US20100257403A1 (en) Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US20100318759A1 (en) Distributed rdc chunk store
US11151030B1 (en) Method for prediction of the duration of garbage collection for backup storage systems
US20100332549A1 (en) Recipes for rebuilding files
US20170123678A1 (en) Garbage Collection for Reference Sets in Flash Storage Systems
US11741060B2 (en) Methods and systems for scalable deduplication
US20240256568A1 (en) Leveraging Snapshots Of Remote Datasets In The Cloud
US9128823B1 (en) Synthetic data generation for backups of block-based storage
US9529812B1 (en) Timestamp handling for partitioned directories
Latesh Kumar et al. Novel approach: Deduplication for backup systems using data block size
US10481813B1 (en) Device and method for extending cache operational lifetime

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150410

MM4A The patent is invalid due to non-payment of fees

Effective date: 20200327