RU2406118C2 - Method and system for synthetic backup and restoration of data - Google Patents

Method and system for synthetic backup and restoration of data Download PDF

Info

Publication number
RU2406118C2
RU2406118C2 RU2005129430/08A RU2005129430A RU2406118C2 RU 2406118 C2 RU2406118 C2 RU 2406118C2 RU 2005129430/08 A RU2005129430/08 A RU 2005129430/08A RU 2005129430 A RU2005129430 A RU 2005129430A RU 2406118 C2 RU2406118 C2 RU 2406118C2
Authority
RU
Russia
Prior art keywords
data
data set
backup
copy
shadow
Prior art date
Application number
RU2005129430/08A
Other languages
Russian (ru)
Other versions
RU2005129430A (en
Inventor
Брайан Т. БЕРКОВИЧ (US)
Брайан Т. БЕРКОВИЧ
ИНГЕН Кэтрин ВАН (US)
ИНГЕН Кэтрин ВАН
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
Priority claimed from US10/984,009 external-priority patent/US20050077237A1/en
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2005129430A publication Critical patent/RU2005129430A/en
Application granted granted Critical
Publication of RU2406118C2 publication Critical patent/RU2406118C2/en

Links

Images

Abstract

FIELD: information technology.
SUBSTANCE: first, full backup is performed to create a full dataset. Thereafter, incremental or differential datasets may be created by incremental or differential backups, respectively. When a new full dataset is needed, instead of performing a full backup, a previous full dataset may be combined with subsequent incremental or differential datasets to create the new full dataset. The new full dataset may be created on a computer other than the computer which hosts the data of the previous full dataset. The new full dataset may be used for offsite storage or to quickly restore data in the event of a failure or corruption of a computer's file system.
EFFECT: more efficient complete backup.
28 cl, 7 dwg

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Изобретение относится, в общем, к компьютерам, а более конкретно к резервному копированию и восстановлению данных.The invention relates generally to computers, and more particularly to data backup and recovery.

Уровень техникиState of the art

Выполнение полного резервного копирования данных на компьютере представляет собой весьма затратную задачу управления данными. Обычно она включает в себя составление перечня всех файлов в файловой системе компьютера и резервное копирование каждого из этих файлов в индивидуальном порядке. По причине случайного характера разброса этих файлов по файловой системе и значительных непроизводительных издержек, вызванных извлечением метаданных, связанных с файлами, составление перечня всех файлов при выполнении резервного копирования имеет тенденцию осуществляться очень медленно. Несмотря на затраты, большинство организаций выполняет полное резервное копирование на еженедельной основе как с целью ограничить время, необходимое для восстановления данных после чрезвычайного происшествия, так и в силу необходимости хранить наборы данных, созданные посредством этого резервного копирования, в другом месте на случай выхода из строя центра обработки данных (например, при пожаре, наводнении, землетрясениях).Performing a full backup of data on a computer is a very expensive data management task. Usually, it includes compiling a list of all files in the computer's file system and backing up each of these files individually. Due to the random nature of the scatter of these files on the file system and the significant overhead caused by extracting the metadata associated with the files, listing all files during backup tends to be very slow. Despite the costs, most organizations perform full backups on a weekly basis, both to limit the time required to recover data after an emergency and because of the need to store the data sets created through this backup in another place in case of failure data center (for example, in case of fire, flood, earthquake).

Между полными резервными копированиями может быть выполнено дифференциальное (основанное на фиксации различий) или инкрементное (основанное на фиксации приращений) резервное копирование для фиксации изменений, которые произошли между полными резервными копированиями. Наборы данных, созданные посредством как инкрементного, так и дифференциального резервного копирования, могут потреблять значительные ресурсы для сохранения различий между файловой системой в момент полного резервного копирования и в момент дифференциального резервного копирования. При инкрементном резервном копировании восстановление файлов на компьютере после чрезвычайного происшествия может занять существенно больше времени, поскольку может потребоваться восстановить набор данных, созданный посредством полного резервного копирования, а затем наборы данных, созданные посредством примененных к нему одного или более инкрементных резервных копирований.Between full backups, differential (based on fixing differences) or incremental (based on fixing increments) backups can be performed to record changes that occurred between full backups. Datasets created using both incremental and differential backups can consume significant resources to preserve differences between the file system at the time of a full backup and at the time of a differential backup. In incremental backups, recovering files on a computer after an emergency may take significantly longer, because it may be necessary to restore the data set created through a full backup, and then the data sets created using one or more incremental backups applied to it.

Существует потребность в способе и системе, которые позволяли бы быстро и эффективно осуществлять полное резервное копирование файловой системы, не оказывая при этом серьезного воздействия на производительность компьютера. В идеальном варианте такие способ и система должны также предоставлять эффективный механизм для восстановления файлов для компьютера в случае частичного или полного повреждения файловой системы компьютера.There is a need for a method and system that would make it possible to quickly and efficiently perform a full backup of a file system without seriously affecting computer performance. Ideally, such a method and system should also provide an effective mechanism for recovering files for a computer in the event of partial or complete damage to the file system of a computer.

Раскрытие изобретенияDisclosure of invention

Говоря коротко, настоящее изобретение предлагает способ и систему для резервного копирования и восстановления данных. Сначала выполняется полное резервное копирование для создания полного набора данных. После этого могут быть созданы инкрементные или дифференциальные наборы данных посредством инкрементного или дифференциального резервного копирования соответственно. Когда требуется новый полный набор данных, то вместо выполнения полного резервного копирования, предыдущий полный набор данных может быть объединен с последующими инкрементными или дифференциальными наборами данных, чем создается новый полный набор данных. Новый полный набор данных может быть создан на компьютере, отличном от компьютера, на котором размещены данные предыдущего полного набора данных. Новый полный набор данных может быть использован для хранения данных в другом месте или для быстрого восстановления данных в случае повреждения или порчи файловой системы компьютера.In short, the present invention provides a method and system for backing up and restoring data. First, a full backup is performed to create a complete set of data. After that, incremental or differential data sets can be created by incremental or differential backup, respectively. When a new complete data set is required, instead of performing a full backup, the previous full data set can be combined with subsequent incremental or differential data sets, thereby creating a new full data set. A new complete data set can be created on a computer other than the computer on which the data of the previous full data set is located. The new complete data set can be used to store data elsewhere or to quickly recover data in case of damage or corruption of the computer file system.

Согласно одному аспекту изобретения наборы данных хранятся в работающем в режиме «он-лайн» запоминающем устройстве, таком как жесткий магнитный диск.According to one aspect of the invention, the data sets are stored in an on-line storage device, such as a hard disk drive.

Согласно другому аспекту изобретения выполняется физическое резервное копирование, которое позволяет осуществить также резервное копирование «теневых» копий (точных дубликатов), содержащихся на томе.According to another aspect of the invention, a physical backup is performed, which also allows backing up of “shadow” copies (exact duplicates) contained in the volume.

Согласно другому аспекту изобретения наборы данных могут быть созданы с использованием дифференциального уплотнения, что позволяет эффективно сохранять множественные наборы данных на работающем в режиме «он-лайн» запоминающем устройстве.According to another aspect of the invention, data sets can be created using differential multiplexing, which allows efficient storage of multiple data sets on an on-line storage device.

Согласно другому аспекту изобретения фильтр файловой системы отслеживает, какие блоки или экстенты определенных файлов (например, больших файлов) в файловой системе изменились. При резервном копировании вместо того, чтобы копировать каждый большой файл, копируются только блоки или экстенты, которые изменились.According to another aspect of the invention, a file system filter keeps track of which blocks or extents of certain files (e.g., large files) in the file system have changed. When backing up, instead of backing up every large file, only the blocks or extents that have changed are backed up.

Согласно другому аспекту изобретения данные из набора данных могут быть считаны прикладной программой напрямую из набора данных, что делает возможным доступ к данным до или без восстановления набора данных.According to another aspect of the invention, data from a data set can be read by an application directly from the data set, which makes it possible to access data with or without restoring the data set.

Другие преимущества станут очевидны из нижеследующего подробного описания при рассмотрении его совместно с чертежами, перечень которых приводится ниже.Other advantages will become apparent from the following detailed description when considered in conjunction with the drawings, a list of which is given below.

Краткий перечень чертежейBrief List of Drawings

Фиг.1 - структурная схема, представляющая компьютерную систему, на которой может быть воплощено настоящее изобретение;Figure 1 is a block diagram representing a computer system on which the present invention may be embodied;

Фиг.2-4 - блок-схемы алгоритмов, представляющих в общем виде действия, которые могут происходить для выполнения синтетического (основанного на синтезе) полного резервного копирования в соответствии с различными аспектами данного изобретения;Figure 2-4 is a flowchart of algorithms representing in general terms the actions that can occur to perform synthetic (synthesis-based) full backups in accordance with various aspects of the present invention;

Фиг. 5 - блок-схема, отражающая аспекты механизма «теневой» копии, который использует способ копирования при записи, в соответствии с различными аспектами данного изобретения;FIG. 5 is a flowchart showing aspects of a shadow copy mechanism that uses a copy-on-write method in accordance with various aspects of the present invention;

Фиг. 6 - блок-схема алгоритма, представляющего в общем виде действия, которые могут происходить для выполнения физического резервного копирования в соответствии с различными аспектами данного изобретения; иFIG. 6 is a flowchart showing in general terms the actions that can occur to perform physical backups in accordance with various aspects of the present invention; and

Фиг. 7 - блок-схема, показывающая приводимую в качестве примера систему, в которой могут быть отслежены измененные экстенты, в соответствии с различными аспектами данного изобретения.FIG. 7 is a block diagram showing an exemplary system in which modified extents can be tracked in accordance with various aspects of the present invention.

Осуществление изобретенияThe implementation of the invention

Иллюстративная операционная средаIllustrative operating environment

На фиг.1 проиллюстрирован пример подходящей вычислительной системной среды (100), на которой может быть реализовано данное изобретение. Вычислительная системная среда (100) представляет собой только один пример подходящей вычислительной среды и не имеет своей целью предложить какое-либо ограничение в отношении объема использования или функциональных возможностей изобретения. Равным образом вычислительная среда (100) не должна толковаться как имеющая какую-либо зависимость или требование, относящиеся к какому-либо компоненту или сочетанию компонентов, проиллюстрированных в приводимой в качестве примера операционной среде (100).Figure 1 illustrates an example of a suitable computing system environment (100) on which the invention may be implemented. The computing system environment (100) is only one example of a suitable computing environment and is not intended to offer any limitation as to the scope of use or functionality of the invention. Likewise, computing environment (100) should not be construed as having any dependency or requirement relating to any component or combination of components illustrated in the example operating environment (100).

Изобретение способно работать и с многочисленными другими вычислительными системами, средами или конфигурациями общего или специального назначения. Примерами хорошо известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодны для использования с данным изобретением, включают в себя, но не в смысле ограничения, персональные компьютеры; компьютеры-серверы; переносные или портативные устройства; многопроцессорные системы; системы, основанные на микропроцессорах; блоки управления; программируемая бытовая радиоэлектронная аппаратура; сетевые персональные компьютеры (РС); мини-компьютеры; универсальные компьютеры; распределенные вычислительные среды, которые включают в себя любые из вышеописанных систем или устройств; и тому подобное.The invention is also capable of working with numerous other computing systems, environments, or general or special purpose configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with this invention include, but are not limited to, personal computers; server computers; portable or portable devices; multiprocessor systems; microprocessor based systems; control units; programmable household electronic equipment; network personal computers (PCs); mini computers; universal computers; distributed computing environments that include any of the above systems or devices; etc.

Изобретение может быть описано в общем контексте машиноисполняемых команд, таких как программные модули, исполняемые компьютером. Обычно программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., выполняющие конкретные задачи или реализующие определенные абстрактные типы данных. Изобретение также может быть практически реализовано в распределенных вычислительных средах, в которых задачи выполняются удаленными устройствами обработки данных, связанными через сеть связи. В распределенной вычислительной среде программные модули могут быть размещены как в локальных, так и в удаленных компьютерных носителях информации, включая запоминающие устройства.The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Typically, program modules include procedures, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media, including storage devices.

Согласно фиг.1 приводимая в качестве примера система для реализации изобретения содержит вычислительное устройство общего назначения в виде компьютера (110). Компоненты компьютера (110) могут содержать, но не в ограничительном смысле, процессор (120), системную память (130) и системную шину (121), которая соединяет различные компоненты системы, включая системную память, с процессором (120). Системная шина (121) может относиться к любому из нескольких типов структур шины, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующие любую из множества архитектур шины. В качестве примера, но не ограничения, такие архитектуры включают в себя шину архитектуры отраслевого стандарта (ISA), шину микроканальной архитектуры (МСА), усовершенствованную шину ISA (ЕISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI), также известную как мезонинная шина.1, an exemplary system for implementing the invention comprises a general-purpose computing device in the form of a computer (110). Computer components (110) may include, but are not limited to, a processor (120), system memory (130), and a system bus (121) that connects various system components, including system memory, to a processor (120). A system bus (121) may refer to any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, but not limitation, such architectures include an industry standard architecture bus (ISA), microchannel architecture bus (MCA), an enhanced ISA bus (EISA), a local VESA bus, and a peripheral interconnect bus Component (PCI), also known as the mezzanine bus.

Компьютер (110) обычно содержит разнообразные машиночитаемые носители информации. Машиночитаемые носители информации могут представлять собой любые доступные носители информации, к которым может осуществлять доступ компьютер (110), и включают в себя как энергозависимые, так и энергонезависимые носители информации, как съемные, так и несъемные носители информации. В качестве примера, но не ограничения, машиночитаемые носители информации могут включать в себя компьютерные носители информации и среды передачи данных. Компьютерные носители информации включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители информации, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ, RAM); постоянное запоминающее устройство (ПЗУ, ROM); электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ, EEPROM); флэш-память или память, использующую другую технологию; постоянное запоминающее устройство на компакт-диске (CD-ROM); универсальные цифровые диски (DVD) или другой оптический дисковый накопитель; магнитные кассеты; магнитную ленту; магнитный дисковый накопитель или другие магнитные запоминающие устройства; или любой другой носитель, который может быть использован для хранения необходимой информации и к которому может осуществлять доступ компьютер (100). Среды передачи данных обычно воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в сигнале, модулированном данными, таком как несущая или другой механизм переноса информации, и включают в себя любые среды доставки информации. Термин «сигнал, модулированный данными», означает сигнал, одна или более характеристик которого устанавливается или изменяется таким образом, чтобы обеспечить кодирование информации в сигнале. В качестве примера, но не ограничения, среды передачи данных включают в себя проводные среды, такие как проводная сеть или прямое кабельное соединение, и беспроводные среды, такие как акустическая, радиочастотная, инфракрасная и другие беспроводные среды. Комбинации любых упомянутых выше сред также должны быть включены в диапазон машиночитаемых носителей информации.Computer (110) typically contains a variety of computer-readable media. Computer-readable storage media can be any available storage media that can be accessed by a computer (110), and include both volatile and non-volatile storage media, both removable and non-removable media. By way of example, but not limitation, computer-readable storage media may include computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable storage media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, random access memory (RAM, RAM); read-only memory (ROM, ROM); electrically erasable programmable read-only memory (EEPROM, EEPROM); flash memory or memory using another technology; read-only memory on a compact disc (CD-ROM); universal digital disks (DVD) or other optical disk drive; magnetic cassettes; magnetic tape; magnetic disk drive or other magnetic storage devices; or any other medium that can be used to store the necessary information and which can be accessed by a computer (100). Communication media typically embody computer-readable instructions, data structures, program modules or other data in a data modulated signal, such as a carrier or other information transfer mechanism, and include any information delivery media. The term "data modulated signal" means a signal, one or more of whose characteristics is set or changed in such a way as to encode information in the signal. By way of example, but not limitation, communication media includes wired media such as a wired network or a direct cable connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media. Combinations of any of the media mentioned above should also be included in a range of computer-readable media.

Системная память (130) включает в себя компьютерные носители информации в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ, ROM) (131) и оперативное запоминающее устройство (ОЗУ, RAM) (132). Обычно в ПЗУ (131) хранится базовая система (133) ввода/вывода (BIOS), содержащая базовые процедуры, способствующие передаче информации между элементами внутри компьютера (110), например, при запуске. ОЗУ (132) обычно содержит данные и/или программные модули, к которым можно осуществить доступ немедленно и/или которыми в текущий момент оперирует процессор (120). В качестве примера, но не ограничения, на фиг.1 проиллюстрированы операционная система (134), прикладные программы (135), другие программные модули (136) и данные (137) программ.System memory (130) includes computer storage media in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) (131) and random access memory (RAM, RAM) (132). Typically, the ROM (131) stores the basic input / output system (133) BIOS (Basic), containing basic procedures that facilitate the transfer of information between elements within the computer (110), for example, at startup. RAM (132) typically contains data and / or program modules that can be accessed immediately and / or which are currently being operated by processor (120). As an example, but not limitation, figure 1 illustrates the operating system (134), application programs (135), other program modules (136) and program data (137).

Компьютер (110) также может содержать другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. Исключительно в качестве примера, на фиг.1 проиллюстрированы накопитель (140) на жестких магнитных дисках, который осуществляет считывание с несъемных энергонезависимых магнитных носителей информации или запись на них; дисковод (151) для магнитного диска, который осуществляет считывание со съемного энергонезависимого магнитного диска (152) или запись на него; и дисковод (155) для оптического диска, который осуществляет считывание со съемного энергонезависимого оптического диска (156), такого как компакт-диск CD-ROM, или других оптических носителей информации или запись на них. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации, которые могут быть использованы в этой приводимой в качестве примера операционной среде, включают в себя, но не в ограничительном смысле, кассеты с магнитной лентой, карточки флэш-памяти, универсальные цифровые диски, цифровую видеомагнитофонную ленту, твердотельное ОЗУ, твердотельное ПЗУ и тому подобное. Накопитель (141) на жестких магнитных дисках обычно подсоединен к системной шине (121) посредством интерфейса несъемной памяти, такого как интерфейс (140), а дисковод (151) для магнитного диска и дисковод (155) для оптического диска обычно подсоединены к системной шине (121) посредством интерфейса съемной памяти, такого как интерфейс (150).The computer (110) may also contain other removable / non-removable, volatile / non-volatile computer storage media. By way of example only, FIG. 1 illustrates a hard disk drive (140) that reads from or writes to non-removable non-volatile magnetic storage media; a drive (151) for a magnetic disk that reads from or writes to a removable non-volatile magnetic disk (152); and an optical drive (155) that reads from, or writes to, a removable non-volatile optical disk (156), such as a CD-ROM, or other optical storage media. Other removable / non-removable, volatile / non-volatile computer storage media that can be used in this exemplary operating environment include, but are not limited to, magnetic tapes, flash memory cards, universal digital disks, digital VCR tape, solid state RAM, solid state ROM, and the like. A hard disk drive (141) is usually connected to the system bus (121) via a non-removable memory interface such as an interface (140), and a magnetic disk drive (151) and an optical disk drive (155) are usually connected to the system bus ( 121) via a removable memory interface such as an interface (150).

Дисководы и соответствующие им компьютерные носители информации, описанные выше и проиллюстрированные на фиг.1, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера (110). Например, на фиг.1 накопитель (141) на жестких магнитных дисках проиллюстрирован как хранящий операционную систему (144), прикладные программы (145), другие программные модули (146) и данные (147) программ. Следует отметить, что эти компоненты могут либо быть идентичными операционной системе (134), прикладным программам (135), другим программным модулям (136) и данным (137) программ, либо отличаться от них. Операционной системе (144), прикладным программам (145), другим программным модулям (146) и данным (147) программ даны здесь другие ссылочные позиции для того, чтобы проиллюстрировать тот факт, что, как минимум, они являются другими копиями. Пользователь может осуществлять ввод команд и информации в компьютер (20) посредством устройств ввода, таких как клавиатура (162), и координатно-указательное устройство (161), обычно обозначающее мышь, шаровой манипулятор или сенсорную панель. В число других устройств ввода (не показанных на чертеже) могут входить микрофон, джойстик, игровая панель, спутниковая антенна, сканер, сенсорный экран переносных персональных компьютеров (РС) или другой пишущий планшет или подобные им устройства. Часто эти и другие устройства ввода соединены с процессором (120) посредством интерфейса (160) пользовательского ввода, подсоединенного к системной шине, но они могут быть соединены с процессором посредством другого интерфейса и других структур шины, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Также к системной шине (121) посредством интерфейса, такого как видеоинтерфейс (190), подсоединен монитор (191) или другой тип устройства отображения. В дополнение к монитору компьютеры могут также содержать другие периферийные устройства вывода, такие как громкоговорители (197) и принтер (196), который может быть подсоединен посредством периферийного интерфейса (190) вывода.The drives and their corresponding computer storage media described above and illustrated in figure 1, provide storage of machine-readable instructions, data structures, program modules and other data for the computer (110). For example, in FIG. 1, a hard disk drive (141) is illustrated as storing an operating system (144), application programs (145), other program modules (146), and program data (147). It should be noted that these components can either be identical to the operating system (134), application programs (135), other program modules (136) and data (137) of the programs, or differ from them. The operating system (144), application programs (145), other program modules (146) and data (147) of the programs are given other reference numbers here in order to illustrate the fact that, at a minimum, they are other copies. The user can enter commands and information into the computer (20) through input devices such as a keyboard (162) and a pointing device (161), usually a mouse, trackball or touch pad. Other input devices (not shown in the drawing) may include a microphone, joystick, game pad, satellite dish, scanner, touch screen portable personal computers (PCs), or other writing tablet or similar devices. Often these and other input devices are connected to the processor (120) via a user input interface (160) connected to the system bus, but they can be connected to the processor via another interface and other bus structures, such as a parallel port, game port, or universal serial bus (USB). Also, a monitor (191) or other type of display device is connected to the system bus (121) through an interface such as a video interface (190). In addition to the monitor, computers can also contain other peripheral output devices, such as speakers (197) and a printer (196), which can be connected via the peripheral output interface (190).

Компьютер (110) может функционировать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер (180). Удаленный компьютер (180) может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер (РС), одноранговое устройство или другой узел общей сети, и обычно включает в себя многие или все элементы, описанные выше в отношении компьютера (110), хотя на фиг.1 проиллюстрировано только запоминающее устройство (181). Логические соединения, изображенные на фиг.1, включают в себя локальную сеть (LAN) (171) и глобальную сеть (WAN) (173), но могут также включать в себя и другие сети. Такие сетевые среды часто используются в офисах, компьютерных сетях масштаба предприятия, интрасетях и в сети Интернет.A computer (110) may operate in a network environment using logical connections to one or more remote computers, such as a remote computer (180). The remote computer (180) may be a personal computer, a server, a router, a network personal computer (PC), a peer-to-peer device, or another node in a shared network, and typically includes many or all of the elements described above with respect to the computer (110), although 1 illustrates only a storage device (181). The logical connections shown in FIG. 1 include a local area network (LAN) (171) and a wide area network (WAN) (173), but may also include other networks. Such networking environments are often used in offices, enterprise-wide computer networks, intranets, and the Internet.

При использовании в сетевой среде LAN компьютер (110) соединен с LAN (171) посредством сетевого интерфейса или адаптера (170). При использовании в сетевой среде WAN компьютер (110) обычно содержит модем (172) или другое средство для установления связи через сеть WAN (173), такую как сеть Интернет. Модем (172), который может быть внутренним или внешним, может быть подсоединен к системной шине (121) посредством интерфейса (160) пользовательского ввода или другого соответствующего механизма. В сетевой среде программные модули, изображенные в отношении компьютера (110), или их части могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, фиг.1 изображает удаленные прикладные программы (185) как размещенные на запоминающем устройстве (181). Следует понимать, что показанные сетевые соединения приводятся в качестве примера и могут быть использованы и другие средства установления линии связи между компьютерами.When used in a LAN network environment, the computer (110) is connected to the LAN (171) via a network interface or adapter (170). When used in a WAN network environment, a computer (110) typically comprises a modem (172) or other means for establishing communication through a WAN network (173), such as the Internet. The modem (172), which may be internal or external, may be connected to the system bus (121) via the user input interface (160) or other appropriate mechanism. In a networked environment, program modules depicted in relation to a computer (110), or parts thereof, may be stored in a remote storage device. By way of example, but not limitation, FIG. 1 depicts remote application programs (185) as being located on a storage device (181). It should be understood that the shown network connections are given as an example and other means of establishing a communication line between computers can be used.

Синтетическое полное резервное копированиеSynthetic full backup

Вместо того чтобы выполнять на периодической основе полное резервное копирование, полное резервное копирование может быть выполнено один раз, и после этого выполняется инкрементное или дифференциальное резервное копирование. Всякий раз, когда требуется новый полный набор данных (например, на еженедельной основе для сохранения данных в другом месте или в иных случаях), может быть выполнено синтетическое (основанное на синтезе) полное резервное копирование, использующее последний полный набор данных и либо дифференциальный набор данных, либо все инкрементные наборы данных, созданные после последнего полного набора данных. Синтетическое полное резервное копирование создает набор данных, который эквивалентен тому, что создало бы обыкновенное полное резервное копирование, если бы оно производилось в момент создания последнего набора данных, использованного для синтетического полного резервного копирования. Далее термин «полное резервное копирование» может относиться к обыкновенному полному резервному копированию и/или к синтетическому полному резервному копированию.Instead of performing full backups on a periodic basis, a full backup can be performed once, and then incremental or differential backups are performed. Whenever a new complete data set is required (for example, on a weekly basis to save data elsewhere or in other cases), a synthetic (synthesis-based) full backup can be performed using the last full data set and or a differential data set , or all incremental data sets created after the last complete data set. Synthetic full backup creates a dataset that is equivalent to what would create an ordinary full backup if it were made at the time the last dataset used for synthetic full backup was created. Further, the term “full backup” may refer to ordinary full backup and / or synthetic full backup.

Термин «полный набор данных» относится к представлению данных источника данных в некоторый момент времени. Источник данных может включать в себя том (например, для файловых данных), базу данных (например, для данных, хранимых в комплексном хранилище данных) или некоторые их комбинации. Полный набор данных может быть создан посредством выполнения обыкновенного полного резервного копирования, синтетического полного резервного копирования или физического полного резервного копирования.The term “complete data set” refers to the presentation of data from a data source at some point in time. A data source may include a volume (for example, for file data), a database (for example, for data stored in an integrated data warehouse), or some combination thereof. A complete dataset can be created by performing ordinary full backups, synthetic full backups, or physical full backups.

Дифференциальный набор данных создается посредством дифференциального резервного копирования и включает в себя различия между источником данных в момент последнего полного резервного копирования и источником данных в момент выполнения дифференциального резервного копирования. Инкрементный набор данных создается посредством инкрементного резервного копирования и включает в себя различия между источником данных в момент последнего резервного копирования (полного, дифференциального или инкрементного) и источником данных в момент выполнения инкрементного резервного копирования.A differential data set is created using differential backup and includes the differences between the data source at the time of the last full backup and the data source at the time the differential backup is performed. An incremental data set is created by incremental backups and includes the differences between the data source at the time of the last backup (full, differential or incremental) and the data source at the time the incremental backup is performed.

Ниже описывается алгоритм для осуществления слияния наборов данных, созданных посредством полного резервного копирования и дифференциального резервного копирования, в ходе синтетического полного резервного копирования. Этот алгоритм предполагает, что каждый набор данных отформатирован в ленточном формате Microsoft® (MTF), хотя данная методология применяется к наборам данных, отформатированным в любом формате, в котором имеется существующий или создаваемый каталог, перечисляющий содержимое наборов данных или, по меньшей мере, отклонения «дельта» от предыдущих полных, дифференциальных или инкрементных наборов данных.The following describes the algorithm for merging datasets created through full backups and differential backups during synthetic full backups. This algorithm assumes that each dataset is formatted in Microsoft ® tape format (MTF), although this methodology applies to datasets formatted in any format that has an existing or created directory listing the contents of the datasets or at least deviating Delta from previous complete, differential or incremental data sets.

В каждом наборе данных, созданных в формате MTF посредством полного, дифференциального или инкрементного резервного копирования, в заголовке набора данных появляется элемент для каждого файла или директории на томе. Далее для обозначения файла или директории или их обоих иногда используется термин «объект». В случае полного набора данных, созданного в формате MTF посредством полного резервного копирования, в полном наборе данных появляются все метаданные и данные для всех файлов и директорий на томе. В случае наборов данных, созданных в формате MTF посредством дифференциального или инкрементного резервного копирования, метаданные и данные для некоторого элемента могут появиться в наборе данных, созданных посредством дифференциального или инкрементного резервного копирования, только если объект был создан или изменен недавно по отношению к предыдущему набору данных, на котором основан этот дифференциальный или инкрементный набор данных. Формат MTF упорядочивает объекты в пределах набора данных в четко определенном порядке и гарантирует, что если некоторый объект F появляется в наборе данных, то все директории-предки (родители, прародители и т.д.) вплоть до корневой директории тома также перед этим появятся в этом наборе данных.In each data set created in MTF format by means of a full, differential or incremental backup, an element for each file or directory on the volume appears in the header of the data set. Further, the term “object” is sometimes used to refer to a file or directory or both of them. In the case of a complete dataset created in MTF format through a full backup, all metadata and data for all files and directories on the volume appear in the complete dataset. In the case of datasets created in MTF format by means of differential or incremental backups, metadata and data for a certain element can appear in a dataset created by differential or incremental backups only if the object was created or modified recently in relation to the previous dataset on which this differential or incremental data set is based. The MTF format organizes objects within a data set in a well-defined order and ensures that if some object F appears in a data set, then all ancestor directories (parents, grandparents, etc.) up to the root directory of the volume will also appear in this dataset.

Данные, связанные с объектом, в том значении, в котором они здесь используются, включают в себя контент (информационно значимое содержимое), связанный с этим объектом, в то время как метаданные, связанные с объектом, включают в себя любые атрибуты или другие данные, связанные с этим объектом.The data associated with the object, in the sense in which they are used here, includes the content (informationally meaningful content) associated with this object, while the metadata associated with the object includes any attributes or other data, associated with this object.

На фиг.2-4 приведены блок-схемы алгоритмов, представляющих в общем виде действия, которые могут происходить для выполнения полного синтетического резервного копирования в соответствии с различными аспектами данного изобретения. Согласно фиг. 2 на этапе 205 процесс начинается. На этапе 210 создается новый пустой набор данных. На этапе 215 указатели устанавливаются на первый элемент в каждом из наборов данных, которые вовлечены в слияние. Пусть В0 представляет собой указатель на самый поздний дифференциальный или инкрементный набор данных, указатели с В1 по ВN-1 представляют собой указатели на дифференциальные или инкрементные наборы данных, которые упорядочены во времени и являются непосредственно предшествующими более давними наборами данных, чем набор данных, указываемый указателем В0, а ВN представляет собой указатель, который указывает на последний полный набор данных. Алгоритм функционирует дальше следующим образом.Figure 2-4 shows a block diagram of algorithms representing in General terms the actions that can occur to perform a full synthetic backup in accordance with various aspects of the present invention. According to FIG. 2 at step 205, the process begins. At 210, a new empty data set is created. At step 215, the pointers are set to the first element in each of the data sets that are involved in the merge. Let B 0 be a pointer to the latest differential or incremental data set, pointers B 1 to B N-1 are pointers to differential or incremental data sets that are ordered in time and are immediately preceding older data sets than a data set indicated by pointer B 0 , and B N is a pointer that points to the last complete data set. The algorithm functions further as follows.

На этапе 215 указатель, связанный с каждым набором данных, присваивается первому элементу, связанному с этим набором данных. На этапе 220 каждый указатель продвигается, если это необходимо, пока элемент, связанный с указателем, не является либо равным, либо большим (по номеру), чем элемент, на который указывает указатель В0, что будет более подробно описано в связи с фиг. 3. Продвигать указатель может не требоваться в случае, если элемент, на который он уже указывает, больше чем или равен элементу, на который указывает указатель В0, или в случае, если указатель прошел последний элемент связанного с ним набора данных.At step 215, a pointer associated with each data set is assigned to the first element associated with this data set. At step 220, each pointer advances, if necessary, until the element associated with the pointer is either equal or greater (by number) than the element pointed to by pointer B 0 , which will be described in more detail in connection with FIG. 3. Advance of the pointer may not be necessary if the element that it already points to is greater than or equal to the element that the pointer B 0 points to, or if the pointer passed the last element of the data set associated with it.

На этапе 225 в новый набор данных добавляется информация из первого набора данных, который содержит метаданные и данные, как это более подробно описано в связи с фиг. 4. На этапе 230 указатель В0 продвигается для исследования следующего элемента, обнаруженного в наборе данных. На этапе 235, если В0 показывает, что достигнут конец его набора данных, то обработка заканчивается; в противном случае обработка осуществляет условный переход на этап 220.At step 225, information from the first data set is added to the new data set, which contains metadata and data, as described in more detail in connection with FIG. 4. At step 230, pointer B 0 advances to examine the next element found in the data set. At step 235, if B 0 indicates that the end of its data set has been reached, then processing ends; otherwise, the processing makes a conditional transition to step 220.

На фиг. 3 показана блок-схема алгоритма, представляющего в общем виде действия, которые корреспондируют этапу 220, показанному на фиг. 2, и которые могут происходить для продвижения указателей, указывающих на наборы данных, в соответствии с различными аспектами данного изобретения. Указатели, указывающие на каждый набор данных (не включая сюда указатель, связанный с В0), продвигаются, если это необходимо, пока они не больше или не равны элементу, указываемому указателем В0. Процесс начинается на этапе 305. На этапе 310 индексу (например, Х) присваивается значение «1» в качестве подготовки к выбору указателя В1. На этапе 315 выбирается указатель ВХ для исследования элемента, указываемого указателем ВХ. На этапе 320 производится определение того, является ли элемент в наборе данных, указываемом указателем ВХ, бóльшим или равным элементу в наборе данных, указываемом указателем В0, или указывает ли указатель ВХ на конец набора данных, связанного с ВХ. В случае если это так, обработка осуществляет условный переход на этап 330, на котором осуществляется приращение индекса для получения следующего указателя. В противном случае обработка осуществляет условный переход на этап 325, на котором указатель ВХ получает приращение с тем, чтобы указать следующий элемент из связанного с ним набора данных. Цикл, связанный с этапами 320 и 325, продолжает выполняться пока элемент, указываемый указателем ВХ, не больше или не равен элементу, указываемому указателем В0, или пока ВХ не укажет на конец набора данных, связанного с ВХ.In FIG. 3 is a flowchart showing in general terms the actions that correspond to step 220 of FIG. 2, and which may occur to advance pointers pointing to data sets, in accordance with various aspects of the present invention. Pointers pointing to each data set (not including the pointer associated with B 0 ) are promoted, if necessary, until they are greater than or equal to the element indicated by the B 0 pointer. The process begins at step 305. At step 310, the index (for example, X) is assigned the value “1” in preparation for selecting pointer B 1 . At step 315, pointer B X is selected to examine the item indicated by pointer B X. At 320, a determination is made whether the item in the data set indicated by pointer B X is greater than or equal to the item in the data set indicated by pointer B 0 , or whether the pointer B X points to the end of the data set associated with B X. If this is the case, the processing makes a conditional transition to step 330, where the index is incremented to obtain the next pointer. Otherwise, the processing proceeds conditionally to step 325, where the pointer B X is incremented so as to indicate the next element from the associated data set. The loop associated with steps 320 and 325 continues to run until the element indicated by pointer B X is not greater than or equal to the element indicated by pointer B 0 , or until B X indicates the end of the data set associated with B X.

На этапе 335 производится определение того, больше ли индекс (например, Х), чем количество указателей (например, N). Если это так, то все указатели были исследованы и продвинуты, и обработка осуществляет условный переход на этап 340, на котором процесс возвращается к вызывающему процессу. Если же нет, то обработка осуществляет условный переход на этап 315, на котором выбирается следующий указатель.At step 335, a determination is made whether the index (e.g., X) is greater than the number of pointers (e.g., N). If so, then all the pointers have been researched and advanced, and the processing proceeds conditionally to step 340, where the process returns to the calling process. If not, then the processing proceeds conditionally to step 315, at which the next pointer is selected.

На фиг. 4 показана блок-схема алгоритма, представляющего в общем виде действия, которые соответствуют этапу 225, показанному на фиг. 2, и которые могут выполняться для обнаружения самого позднего элемента набора данных для включения в новый набор данных в соответствии с различными аспектами изобретения. Процесс начинается на этапе 405. На этапе 410 индексу (например, Х) присваивается значение ноль в качестве подготовки к выбору указателя на набор данных, созданный посредством самого позднего резервного копирования. На этапе 415 выбирается указатель ВХ для исследования элемента, указываемого этим указателем. На этапе 420 производится определение того, содержит ли элемент, указываемый указателем ВХ, метаданные и данные для этого элемента. Если элемент, указываемый указателем ВХ, содержит метаданные и данные, то обработка осуществляет условный переход на этап 430, на котором этот элемент и метаданные и данные добавляются в новый набор данных. В противном случае обработка осуществляет условный переход на этап 425, где индекс (например, Х) получает приращение на этапе 425, и на этапе 415 выбирается следующий указатель. Действия, представленные на этапах 415-425, повторяются до тех пор, пока не найден самый поздний набор данных с элементом, содержащим данные и метаданные.In FIG. 4 is a flowchart showing in general terms the actions that correspond to step 225 shown in FIG. 2, and which may be performed to detect the latest element of a data set to be included in a new data set in accordance with various aspects of the invention. The process begins at step 405. At step 410, an index (eg, X) is assigned a value of zero in preparation for selecting a pointer to a data set created by the latest backup. At step 415, a pointer B X is selected to examine the item indicated by that pointer. At 420, a determination is made as to whether the element indicated by pointer B X contains metadata and data for that element. If the element indicated by pointer B X contains metadata and data, then the processing proceeds conditionally to step 430, where this element and metadata and data are added to the new data set. Otherwise, the processing proceeds conditionally to step 425, where the index (for example, X) is incremented at step 425, and at step 415, the next pointer is selected. The steps in steps 415-425 are repeated until the latest dataset is found with the item containing the data and metadata.

Следует отметить, что в случае формата MTF, если набор данных содержит элемент для объекта, но не содержит метаданных или данных, то это означает, что каждый предыдущий набор данных содержит такой элемент для этого объекта, пока некоторый набор данных не будет содержать также данные и метаданные для этого объекта.It should be noted that in the case of MTF format, if the data set contains an element for the object but does not contain metadata or data, then this means that each previous data set contains such an element for this object until some data set contains also data and metadata for this object.

Вышеописанный алгоритм может быть использован дляThe above algorithm can be used to

• слияния полного набора данных с наиболее поздним дифференциальным набором данных, основанным на этом полном наборе данных;• merging the complete data set with the latest differential data set based on this complete data set;

• слияния полного набора данных с каждым инкрементным набором данных, созданным после полного набора данных (например, для использования в случае, если выполняется только инкрементное резервное копирование); или• merging the complete data set with each incremental data set created after the full data set (for example, for use if only incremental backups are performed); or

• слияния полного набора данных с наиболее поздним дифференциальным набором данных, основанным на этом полном наборе данных, и с каждым инкрементным набором данных, основанным на этом дифференциальном наборе данных (например, для использования в случае, если выполняются как дифференциальные, так и инкрементные резервные копирования).• merging the complete dataset with the latest differential dataset based on this complete dataset and with each incremental dataset based on this differential dataset (for example, for use when both differential and incremental backups are performed )

Как было отмечено выше, вышеописанный алгоритм был рассмотрен на основе формата MTF. Следует, однако, признать, что этот алгоритм, не выходя за рамки сущности и объема настоящего изобретения, может быть легко модифицирован таким образом, чтобы учитывать и другие форматы в той мере, в какой каждый инкрементный или дифференциальный набор данных включает в себя способ определения того, какие объекты были удалены из предыдущего набора данных и какие объекты были изменены или добавлены в предыдущий набор данных.As noted above, the above algorithm was considered based on the MTF format. However, it should be recognized that this algorithm, without going beyond the essence and scope of the present invention, can be easily modified so as to take into account other formats to the extent that each incremental or differential data set includes a method for determining which objects were deleted from the previous data set and which objects were changed or added to the previous data set.

Хотя описанный выше алгоритм может быть использован для слияния наборов данных, которые расположены либо на диске, либо на ленте, на практике он, возможно, наиболее эффективен в случае, когда все инкрементные/дифференциальные наборы данных и полный набор данных, слияние которых осуществляется, располагаются на диске.Although the algorithm described above can be used to merge datasets that are located either on disk or on tape, in practice it is probably most effective when all incremental / differential datasets and the complete dataset that are merged are located on disk.

Кроме того, описанный выше алгоритм может быть обобщен до многопроходного слияния, но непроизводительные издержки, связанные со множеством проходов, могут сделать этот алгоритм менее интересным для практического применения. Поскольку лента относится к носителям информации с последовательным доступом, то для того, чтобы все наборы данных были открытыми одновременно, может потребоваться сравнительно большое количество накопителей на магнитной ленте (например, один накопитель на набор данных), и это может быть реализовано наилучшим образом при отсутствии совместного расположения наборов данных (то есть один и только один подлежащий слиянию набор данных на носитель информации).In addition, the algorithm described above can be generalized to multi-pass merging, but the overhead associated with multiple passes can make this algorithm less interesting for practical use. Since the tape refers to sequential-access storage media, in order for all data sets to be open at the same time, a relatively large number of magnetic tape drives (for example, one drive per data set) may be required, and this can be best implemented in the absence of joint arrangement of data sets (i.e., one and only one data set to be merged onto a storage medium).

Наконец, чтобы разгрузить производственный компьютер от обработки слияний, для выполнения обработки слияний может быть использован отдельный компьютер для резервного копирования. Следует признать, что это имеет много преимуществ, включая освобождение производственного компьютера для производственных целей.Finally, to offload the production computer from merge processing, a separate backup computer can be used to perform merge processing. Admittedly, this has many advantages, including freeing up a production computer for production purposes.

Физическое резервное копирование и восстановлениеPhysical backup and recovery

Одна из проблем, присущих существующей технологии выполнения полного резервного копирования, заключается в том, что отсутствует связь между логическими объектами, резервное копирование которых осуществляется, и физическим представлением этих объектов на диске. Эта проблема может быть решена посредством использования «теневой» копии. «Теневая» копия представляет собой «моментальный снимок» одного тома. В логическом плане «теневая» копия представляет собой точный дубликат тома в данный момент времени, даже если этот том при создании «теневой» копии может и не быть полностью скопированным (например, посредством способа копирования при записи). «Теневая» копия может рассматриваться операционной системой и любыми исполняемыми приложениями как отдельный том. Например, «теневая» копия может иметь атрибуты: устройство тома, имя тома, букву, обозначающую дисковод, точку установки и любые другие атрибуты реального тома. В дополнение к этому, «теневая» копия может экспонироваться через сетевой удаленный путь доступа, такой как сетевая доля (иногда именуемая просто «долей»), связанный с ней, который делает возможным доступ из сети к части или всем данным, содержащимся внутри «теневой» копии.One of the problems inherent in the existing technology for performing full backups is that there is no connection between the logical objects that are backed up and the physical representation of these objects on disk. This problem can be solved by using a shadow copy. A “shadow” copy is a “snapshot” of one volume. Logically, a “shadow” copy is an exact duplicate of a volume at a given time, even if this volume may not be fully copied when creating a “shadow” copy (for example, using the copy-on-write method). A “shadow” copy can be considered by the operating system and any executable applications as a separate volume. For example, a “shadow” copy can have attributes: volume device, volume name, letter indicating the drive, installation point, and any other attributes of the real volume. In addition, a “shadow” copy can be exposed through a network remote access path, such as a network share (sometimes referred to simply as a “share”) associated with it, which makes it possible to access from the network to a part or all of the data contained within the “shadow” " copies.

«Теневая» копия может быть создана посредством различных хорошо известных технологий, включая копирование при записи, расщепленное зеркальное копирование, специализированные аппаратные средства, которые создают копию самого диска, и другие способы и системы, известные специалистам в данной области техники.A “shadow” copy can be created using various well-known technologies, including copy-on-write, split-mirror copying, specialized hardware that creates a copy of the disc itself, and other methods and systems known to those skilled in the art.

Технология «теневой» копии может для реализации «теневых» копий способом копирования при записи использовать дифференциальную (фиксирующую различия) область. Дифференциальная область устанавливает соответствие блоков на томе с содержимым этих блоков на момент времени, когда была создана «теневая» копия. Технология различий в технологии «теневой» копии может функционировать на уровне физических блоков, а не на уровне объектов (файла или директории).The technology of “shadow” copies can use a differential (fixing differences) region to implement “shadow” copies by copying during recording. The differential region establishes the correspondence of the blocks on the volume with the contents of these blocks at the time when the “shadow” copy was created. The technology of differences in the technology of the “shadow” copy can function at the level of physical blocks, and not at the level of objects (file or directory).

Например, согласно фиг. 5, в случае копирования при записи драйвер может разделить диск на экстенты. Экстент относится к ряду примыкающих друг к другу блоков на носителях информации и может различаться в зависимости от приложения. Например, одно приложение может разделить диск на экстенты, имеющие один размер, в то время как другое приложение может разделить диск на экстенты, имеющие другой размер.For example, as shown in FIG. 5, in the case of copying during recording, the driver can split the disk into extents. Extent refers to a number of adjacent blocks on the storage media and may vary depending on the application. For example, one application can split a disk into extents having one size, while another application can split a disk into extents having a different size.

Если некоторый блок на диске изменяется после создания «теневой» копии, то прежде чем блок будет изменен, экстент, содержащий этот блок (например, экстент (506)) копируется в место на запоминающем устройстве (например, экстент (507)), расположенное в дифференциальной области (515). Для конкретной «теневой» копии экстент копируется только первый раз, когда изменяется какой-либо блок внутри экстента. Когда принят запрос на информацию, содержащуюся в «теневой» копии, сначала проводится проверка, имеющая целью определить, изменился ли этот блок в оригинальном томе (например, посредством проверки того, имеется ли экстент, содержащий этот блок, в дифференциальной области (515)). Если блок не изменился, то извлекаются и возвращаются данные из оригинального тома. Если блок изменился, то извлекаются и возвращаются данные из дифференциальной области (515). Следует отметить, что если блок перезаписан теми же данными, то экстент, содержащий этот блок, не записывается в дифференциальную область (515).If some block on the disk changes after creating a shadow copy, then before the block is changed, the extent containing this block (for example, extent (506)) is copied to a place on the storage device (for example, extent (507)) located in differential region (515). For a specific “shadow” copy, the extent is only copied for the first time when a block inside the extent changes. When a request for information contained in a “shadow” copy is accepted, a check is first carried out to determine whether this block has changed in the original volume (for example, by checking whether there is an extent containing this block in the differential domain (515)) . If the block has not changed, data is retrieved and returned from the original volume. If the block has changed, then data from the differential region (515) is retrieved and returned. It should be noted that if a block is overwritten with the same data, then the extent containing this block is not written to the differential region (515).

Для того чтобы осуществить резервное копирование «теневой» копии, сохраняют схему соответствия физических блоков оригинального тома экстентам дифференциальной области. Один способ осуществления резервного копирования как тома, так и любых «теневых» копий, продолжающих существовать на нем, заключается в том, чтобы выполнить физическое (выполняемое на физическом (в отличие от логического) уровне) резервное копирование этого тома. Термин «физическое резервное копирование» относится к копированию физических блоков, связанных с томом, вместо выполнения пообъектного резервного копирования. Следует отметить, что блоки в пустых экстентах при физическом резервном копировании могут копироваться или могут не копироваться. Приложение, осуществляющее резервное копирование, может сохранять побитовое отображение или другое указание на то, какие экстенты были пусты, а какие не были пусты в наборе данных, созданном посредством резервного копирования. Следует признать, что отказ от копирования пустых экстентов обычно приводит к тому, что набор данных, созданный посредством физического резервного копирования, будет меньше.In order to back up the “shadow” copy, the scheme of correspondence of the physical blocks of the original volume to the extents of the differential domain is saved. One way to back up both a volume and any shadow copies that continue to exist on it is to perform physical (performed at the physical (as opposed to logical) level) backing up this volume. The term “physical backup” refers to backing up physical blocks associated with a volume, instead of performing object-by-side backups. It should be noted that blocks in empty extents during physical backups may or may not be backed up. The backup application may save a bitmap or other indication of which extents were empty and which were not empty in the data set created by the backup. Admittedly, refusing to copy empty extents usually results in a smaller set of data created through physical backups.

Хотя различные аспекты изобретения были описаны в связи с технологиями получения «теневых» копий способом копирования при записи, могут также использоваться и другие технологии «теневых» копий, и это не выходит за рамки сущности или объема данного изобретения.Although various aspects of the invention have been described in connection with techniques for producing “shadow” copies by a copy-on-write method, other shadow copy technologies may also be used, and this is not beyond the scope or scope of the present invention.

На фиг. 6 показана блок-схема алгоритма, представляющего в общем виде действия, которые могут происходить для выполнения физического резервного копирования в соответствии с различными аспектами данного изобретения. Всякий раз, когда дифференциальные области, используемые для продолжающих существовать «теневых» копий, располагаются совместно с оригинальным томом, выполнение физического резервного копирования будет сохранять эти «теневые» копии, также как и этот том. В этом случае резервное копирование может быть осуществлено следующим образом.In FIG. 6 is a flowchart showing in general terms the actions that may occur to perform physical backups in accordance with various aspects of the present invention. Whenever the differential areas used for persisting shadow copies are shared with the original volume, performing a physical backup will keep these shadow copies, as well as this volume. In this case, the backup can be carried out as follows.

На этапе 605 процесс начинается. На этапе 610 создается резервная «теневая» копия тома, вовлеченного в резервное копирование. Эта резервная «теневая» копия может быть удалена, как только будет завершено резервное копирование. Следует отметить, что создание резервной «теневой» копии (вместо попытки скопировать блоки с тома напрямую) может быть выполнено с целью получения непротиворечивого и стабильного образа тома.At 605, the process begins. At step 610, a backup “shadow” copy of the volume involved in the backup is created. This shadow backup can be deleted as soon as the backup is complete. It should be noted that the creation of a backup “shadow” copy (instead of trying to copy blocks from the volume directly) can be performed in order to obtain a consistent and stable image of the volume.

На этапе 615 «теневая» копия открывается как неструктурированный том, то есть как файл, представляющий физические блоки, лежащие в основе «теневой» копии.At step 615, the shadow copy is opened as an unstructured volume, that is, as a file representing the physical blocks underlying the shadow copy.

На этапе 620 осуществляется резервное копирование «теневой» копии в порядке следования блоков.At block 620, a shadow copy is backed up in the order of the blocks.

Всякий раз, когда дифференциальные области, используемые для продолжающих существовать «теневых» копий, не располагаются совместно с оригинальным томом, резервное копирование как тома, содержащего дифференциальные области, так и оригинального тома осуществляется вместе. Это может быть выполнено посредством получения «теневых» копий обоих томов в одно и то же время и затем осуществления доступа к этим «теневым» копиям с целью создания набора данных. Приводимые в качестве примера способ и система для получения таких «теневых» копий описаны в патенте США № 6647473, права на который принадлежат правообладателю по настоящему изобретению и который включен в настоящее описание посредством ссылки.Whenever the differential areas used for the shadow copies that continue to exist do not reside with the original volume, both the volume containing the differential areas and the original volume are backed up together. This can be done by obtaining “shadow” copies of both volumes at the same time and then accessing these “shadow” copies in order to create a data set. An exemplary method and system for making such “shadow” copies is described in US Pat. No. 6,647,473, the rights of which are owned by the copyright holder of the present invention and which is incorporated herein by reference.

Физическое резервное копирование имеет несколько важных атрибутов.Physical backup has several important attributes.

• Это резервное копирование будет, главным образом, выполняться как осуществляемое по спирали считывание диска. Некоторый произвольный доступ возможен к блокам, которые изменяются после того, как на этапе 610, описанном выше, создана «теневая» копия, но, в общем, резервное копирование будет существенно более быстрым, чем было бы возможно при осуществлении обыкновенного полного резервного копирования.• This backup will mainly be performed as a spiral read of a disc. Some random access is possible to blocks that change after a “shadow” copy is created at step 610 described above, but, in general, the backup will be significantly faster than would be possible with an ordinary full backup.

• Это резервное копирование не несет бремя описанных выше непроизводительных издержек по обработке файлов, связанных с получением объектов и связанных с ними метаданных. Таким образом, резервное копирование может требовать значительно меньше работы компьютера, резервирование данных которого осуществляется.• This backup does not bear the burden of the overhead described above for processing files associated with retrieving objects and associated metadata. Thus, the backup may require significantly less work of the computer, the data backup of which is carried out.

• При восстановлении набора данных, созданного посредством физического резервного копирования, восстановленный том будет иметь содержимое тома на момент времени, когда была выполнена (например, на этапе 610) «теневая» копия рассматриваемого тома, и всех продолжавших существовать «теневых» копий, которые были на томе на тот момент времени.• When restoring a dataset created by physical backup, the restored volume will have the contents of the volume at the time when the “shadow” copy of the volume in question and all the “shadow” copies that were still existed were executed (for example, at step 610) on the volume at that point in time.

Набор данных, созданный посредством физического резервного копирования, может быть также использован для быстрого восстановления в сочетании с обычным чередованием резервного копирования, включающим в себя дифференциальное и/или инкрементное резервное копирование. Набор данных, созданный посредством физического резервного копирования, может рассматриваться как полный набор данных, и набор данных, созданный посредством дифференциального или инкрементного резервного копирования, может ссылаться на набор данных, созданный посредством физического резервного копирования. В этом случае последующий инкрементный или дифференциальный набор данных может быть восстановлен посредством восстановления сначала набора данных, созданного посредством физического резервного копирования, а затем применения любых последующих дифференциальных и инкрементных наборов данных.A dataset created through physical backups can also be used for quick recovery in combination with regular backup striping, which includes differential and / or incremental backups. A dataset created by physical backup can be considered as a complete dataset, and a dataset created by differential or incremental backup can refer to a dataset created by physical backup. In this case, the subsequent incremental or differential data set can be restored by first recovering the data set created by physical backup, and then applying any subsequent differential and incremental data sets.

В дополнение к этому, после применения каждого дифференциального или инкрементного набора данных могут быть созданы дополнительные «теневые» копии. Создание этих дополнительных «теневых» копий может позволить быстро вернуться к состоянию диска, представленному любой из этих «теневых» копий, так что том может быть восстановлен до состояния, имеющего столько же неиспорченных данных, сколько имелось в наличии на томе в момент, непосредственно предшествующий губительной утрате или порче тома.In addition to this, after applying each differential or incremental data set, additional shadow copies can be created. Creating these additional shadow copies can quickly return to the disk state represented by any of these shadow copies, so that the volume can be restored to a state that has as many unspoiled data as was available on the volume at the moment immediately preceding fatal loss or damage to the volume.

Также следует отметить, что в случае, когда полный набор данных создан посредством физического полного резервного копирования, скорость восстановления может быть существенно более быстрой, чем в случае, когда восстанавливается набор данных, созданный посредством резервного копирования, отличного от физического, поскольку это восстановление может быть выполнено посредством записи блоков, осуществляемой по спирали, а не пообъектным способом.It should also be noted that in the case when the complete data set was created through physical full backup, the recovery speed can be significantly faster than in the case when the data set created through the backup other than physical is restored, since this recovery can be performed by recording blocks carried out in a spiral, and not in an object-based manner.

Дифференциальное уплотнение полных наборов данныхDifferential Compression of Complete Datasets

Обычно источник данных от недели к неделе существенным образом не изменяется. Более того, имеются определенные типы источников данных, где ожидается возникновение очень небольших изменений. Эти источники данных включают в себя:Typically, the data source does not change significantly from week to week. Moreover, there are certain types of data sources where very small changes are expected. These data sources include:

• Источники данных, связанные с операционной системой (ОС), которые включают в себя двоичные коды операционной системы и постоянное состояние системных служб.• Data sources associated with the operating system (OS), which include the binary codes of the operating system and the constant state of the system services.

• Источники данных, которые включают в себя доступные только для чтения базы данных или хранилища файлов, такие, как те, что используются для создания расписаний групповых мероприятий и для систем управления документооборотом, где осуществляется резервное копирование базы данных назначений, контактов и управления документооборотом. Эти источники данных меняются по мере того, как изменяются документы или определенные объекты (например, контакты, календарь и расписание).• Data sources, which include read-only databases or file vaults, such as those used to create group event schedules and workflow management systems that back up appointments, contacts, and workflow management databases. These data sources change as documents or specific objects (for example, contacts, calendar, and schedule) change.

Поскольку затраты на поддержание в режиме «он-лайн» полного набора данных относительно высоки (то есть примерно равны размеру тома, резервное копирование которого осуществляется), способность уплотнять полные наборы данных с тем, чтобы воспользоваться медленным характером их изменения, является полезной и может позволить, используя тот же объем памяти, поддерживать в режиме «он-лайн» намного больше полных наборов данных.Since the cost of maintaining the complete data set online is relatively high (that is, approximately equal to the size of the volume being backed up), the ability to compact complete data sets in order to take advantage of the slow nature of their change is useful and can allow using the same amount of memory, maintain on-line much more complete data sets.

Для осуществления дифференциального (то есть основанного на фиксации различий) уплотнения при резервном копировании могут быть использованы две технологии:To implement differential (i.e. based on fixing differences) compaction during backup, two technologies can be used:

• Использование для осуществления уплотнения технологии «теневой» копии, что будет более подробно описано ниже. Эта технология показывает очень хорошие результаты для наборов данных, где содержимое изменяется в блоках, которые обычно остаются в том же самом месте и позиционно не перемещаются по разным местам.• The use of shadow copy technology for compaction, which will be described in more detail below. This technology shows very good results for datasets, where the content changes in blocks that usually remain in the same place and do not move positionally to different places.

• Использование алгоритма дифференциального уплотнения, который способен находить различия в наборах данных, где одни и те же данные могут появляться в различное время в различных местах. Приводимые в качестве примера алгоритмы дифференциального уплотнения описаны в заявках на патенты США, имеющих порядковые номера 10/825753 и 10/844893, которые обе имеют своим правообладателем правообладателя по настоящему изобретению и включены в настоящее описание посредством ссылки.• Using a differential compression algorithm that is able to find differences in data sets, where the same data may appear at different times in different places. Exemplary differential compression algorithms are described in US Patent Applications Serial Nos. 10/825753 and 10/844893, both of which are copyright holders of the present invention and are incorporated herein by reference.

При использовании технологии «теневой» копии в одном варианте осуществления изобретения новое полное резервное копирование может быть выполнено следующим образом:Using shadow copy technology in one embodiment of the invention, a new full backup can be performed as follows:

1. Создание постоянной «теневой» копии тома, содержащего набор данных.1. Create a permanent “shadow” copy of the volume containing the data set.

2. Перезапись на место оригинального набора данных на оригинальном томе нового полного набора данных или нового синтетического полного набора данных, которые описаны в связи с фиг.2-4.2. Overwriting in place of the original data set on the original volume of the new full data set or new synthetic full data set, which are described in connection with figure 2-4.

3. Переименование оригинального набора данных в новый набор данных.3. Rename the original dataset to a new dataset.

В другом варианте осуществления изобретения новое полное резервное копирование может быть выполнено следующим образом:In another embodiment of the invention, a new full backup can be performed as follows:

1. Создание постоянной "теневой" копии тома, содержащего набор данных.1. Creating a permanent "shadow" copy of the volume containing the data set.

2. Создание нового полного набора данных или нового синтетического полного набора данных, которые описаны в связи с фиг.2-4, на томе, отличном от тома, содержащего оригинальный том.2. Creating a new complete data set or a new synthetic complete data set, which are described in connection with FIGS. 2-4, on a volume other than the volume containing the original volume.

3. Перезапись на место оригинального набора данных нового набора данных.3. Overwrite the original data set with the new data set.

4. Переименование оригинального набора данных в новый набор данных.4. Rename the original dataset to a new dataset.

5. Удаление нового набора данных на другом томе.5. Deleting a new dataset on another volume.

При перезаписи на место оригинального набора данных нового набора данных описанная выше технология «теневой» копии помещает экстенты, содержащие блоки, содержимое которых изменилось (между оригинальным и новым наборами данных), в область различий. Изменение имени с имени оригинального набора данных на имя нового набора данных приводит к тому, что экстенты, содержащие блоки с метаданными, касающимися оригинального набора данных, изменяются и помещаются в область различий. Это позволяет программе осуществлять доступ к новому набору данных либо к оригинальному набору данных (через "теневую" копию). Следует признать, что при использовании технологии, описанной выше, дополнительное место на диске, необходимое для нового полного набора данных, может просто содержать экстенты, измененные между прошлым полным набором данных и новым полным набором данных.When a new dataset is overwritten in place of the original dataset, the shadow copy technology described above places extents containing blocks whose contents have changed (between the original and the new datasets) in the difference area. Changing the name from the name of the original data set to the name of the new data set causes the extents containing blocks with metadata relating to the original data set to be changed and placed in the area of differences. This allows the program to access a new dataset or the original dataset (via a “shadow” copy). Admittedly, using the technology described above, the extra disk space required for a new complete data set may simply contain extents changed between the previous full data set and the new full data set.

Новое резервное копирование может быть выполнено с использованием удаленного дифференциального уплотнения следующим образом:A new backup can be performed using remote differential compression as follows:

1. Создание нового синтетического полного набора данных, который описан в связи с фиг.2-4.1. The creation of a new synthetic complete data set, which is described in connection with figure 2-4.

2. Применение одного из приводимых в качестве примера алгоритмов удаленного уплотнения, описанных выше, к оригинальному полному набору данных и синтетическому полному набору данных, созданному на этапе 1, с целью создания дифференциально уплотненного набора данных.2. The application of one of the remote compression algorithms cited as an example described above to the original complete data set and the synthetic complete data set created in step 1 in order to create a differentially compressed data set.

3. Удаление нового набора данных и переименование файла дифференциального уплотнения, дающее ему имя нового набора данных.3. Delete the new dataset and rename the differential summarization file, giving it the name of the new dataset.

После того как с использованием удаленного дифференциального уплотнения создан дифференциально уплотненный набор данных, полный набор данных может быть получен посредством применения дифференциального уплотненного файла к предыдущему полному набору данных.After a differentially compacted data set is created using remote differential compression, the complete data set can be obtained by applying the differential compressed file to the previous complete data set.

Вычисление дельты (отклонения) для резервного копирования больших файлов данныхDelta calculation (backup) for backing up large data files

Дифференциальное или инкрементное резервное копирование может быть выполнено посредством исследования каждого объекта, находящегося на запоминающем устройстве, с целью проверить, изменился ли данный объект с момента предыдущего резервного копирования, на котором основывается это дифференциальное или инкрементное резервное копирование. Определение того, изменился ли объект, может быть выполнено, например, посредством проверки времени последней модификации объекта. Если определено, что объект изменился, то в набор данных может быть скопирован весь объект. Копирование всего объекта в инкрементный или дифференциальный набор данных всякий раз, когда изменяется какая-либо часть этого объекта, может представлять собой затрату значительных ресурсов в случае больших объектов, таких как базы данных и хранилища электронной почты, которые часто изменяются, но в которых в действительности изменяется только малая часть объекта.Differential or incremental backups can be performed by examining each object located on the storage device in order to check whether the given object has changed since the previous backup on which this differential or incremental backup is based. Determining whether an object has changed can be performed, for example, by checking the time of the last modification of the object. If it is determined that the object has changed, then the entire object can be copied to the dataset. Copying an entire object to an incremental or differential dataset whenever any part of this object changes can be a waste of significant resources for large objects, such as databases and email storage, which often change, but in reality only a small part of the object changes.

В одном варианте осуществления изобретения производится отслеживание тех экстентов в объекте, которые действительно изменились с момента последнего резервного копирования, таким образом, что может быть осуществлено их резервное копирование при выполнении инкрементного или дифференциального резервного копирования. Отслеживание этих экстентов может быть выполнено при помощи фильтра файловой системы, который отслеживает изменения в больших файлах (например, в любых файлах, размер которых превышает 16 мегабайтов) на томах в компьютере. Размер файлов, отслеживаемых фильтром файловой системы, может быть задан при предварительном конфигурировании или может выбираться.In one embodiment of the invention, tracking is carried out of those extents in the object that have really changed since the last backup, so that they can be backed up when performing incremental or differential backups. These extents can be tracked using a file system filter that tracks changes to large files (for example, any files that are larger than 16 megabytes) on volumes on the computer. The size of files monitored by the file system filter can be set during pre-configuration or can be selected.

Фильтр файловой системы может сохранять в постоянном хранилище, связанном с томом, следующую информацию:A file system filter can store the following information in the persistent storage associated with a volume:

• Путь доступа к объекту, который был изменен.• The access path to the object that has been modified.

• Набор экстентов в объекте, которые изменились.• A set of extents in an object that have changed.

В одном варианте осуществления изобретения фильтр файловой системы отслеживает набор блоков, которые изменились в объекте, а не набор экстентов, которые изменились.In one embodiment of the invention, the file system filter tracks the set of blocks that have changed in the object, and not the set of extents that have changed.

Фиг. 7 представляет собой блок-схему, показывающую приводимую в качестве примера систему, в которой могут быть отслежены измененные экстенты, в соответствии с различными аспектами данного изобретения. Операционная система (705) может принимать запросы на запись в файловую систему (715). Такие запросы передаются через фильтр (710) файловой системы. Если фильтр (710) файловой системы определяет, что любые изменения в экстентах некоторого файла должны быть отслежены, то он сохраняет информацию о том, какие экстенты изменились, в постоянном хранилище (720).FIG. 7 is a block diagram showing an exemplary system in which modified extents can be tracked in accordance with various aspects of the present invention. The operating system (705) may receive write requests to the file system (715). Such requests are transmitted through a file system filter (710). If the file system filter (710) determines that any changes in the extents of a certain file should be tracked, then it stores information about which extents has changed in the permanent storage (720).

В случае схемы инкрементного резервного копирования постоянное хранилище, в котором отслеживаются эти экстенты, может возвращаться в исходное состояние всякий раз, когда выполнено инкрементное или полное резервное копирование, так, чтобы отслеживались изменения с момента каждого предыдущего резервного копирования. Если же используется схема дифференциального резервного копирования, то постоянное хранилище, в котором отслеживаются эти экстенты, может возвращаться в исходное состояние всякий раз, когда выполнено новое полное резервное копирование.In the case of an incremental backup scheme, the persistent storage in which these extents are tracked can return to its original state whenever an incremental or full backup is performed so that changes are monitored from the time of each previous backup. If the differential backup scheme is used, then the persistent storage in which these extents are tracked can return to its original state whenever a new full backup is performed.

Дифференциальное или инкрементное резервное копирование может использовать это постоянное хранилище следующим образом. Если в постоянном хранилище появляется объект, то способом дифференциального или инкрементного резервного копирования может быть просто осуществлено резервное копирование:Differential or incremental backups can use this persistent storage as follows. If an object appears in the persistent storage, then the backup can be performed simply by differential or incremental backup:

списка экстентов в этом объекте, которые изменились; иa list of extents in this object that have changed; and

содержимого этих экстентов в том же порядке, в котором они появляются в списке.The contents of these extents in the same order in which they appear in the list.

Для воссоздания объекта на основе набора инкрементных наборов данных и полного набора данных или на основе дифференциального набора данных и полного набора данных могут быть выполнены следующие действия:To recreate an object based on a set of incremental data sets and a complete data set or based on a differential data set and a full data set, the following actions can be performed:

1. Проводимое для каждого экстента в этом объекте обнаружение наиболее позднего набора данных, имеющего этот экстент в своем списке экстентов, которые изменились, или имеющего полный набор данных этого объекта; и1. Conducted for each extent in this object, the discovery of the latest data set that has this extent in its list of extents that have changed, or has a complete data set of this object; and

2. Копирование этого экстента из этого набора данных и переход к следующему экстенту.2. Copy this extent from this dataset and move on to the next extent.

В одном варианте осуществления изобретения могут вестись два списка экстентов для того, чтобы поддерживать схему полного, дифференциального и инкрементного резервного копирования. Фильтр файловой системы производит отслеживание того, изменился ли каждый объект-кандидат (например, обладающий достаточным размером или другим критерием), в двух списках посредством:In one embodiment, two extent lists may be maintained in order to support a full, differential, and incremental backup scheme. The file system filter monitors whether each candidate object (for example, having sufficient size or another criterion) has changed in two lists by:

• Ведения списка экстентов, которые изменились в этих объектах с того момента, когда было выполнено последнее полное резервное копирование; и• Maintain a list of extents that have changed in these objects since the last full backup was performed; and

• Ведения списка экстентов, которые изменились в этих объектах с того момента, когда было выполнено последнее дифференциальное или инкрементное резервное копирование.• Maintain a list of extents that have changed in these objects since the last differential or incremental backup.

Дифференциальный набор данных может быть создан с использованием первого списка экстентов, в то время как инкрементный набор данных может быть создан с использованием второго списка экстентов. Второй список может обнуляться всякий раз, когда выполнено инкрементное или дифференциальное резервное копирование. Первый список может обнуляться, когда выполнено полное резервное копирование.A differential data set can be created using the first list of extents, while an incremental data set can be created using the second list of extents. The second list can be reset whenever an incremental or differential backup is performed. The first list can be zeroed when a full backup is made.

Считывание данных напрямую из набора данныхReading data directly from a dataset

Многие приложения (например, электронная почта, управление документооборотом, активная директория и тому подобное) сохраняют объекты в базе данных. Часто представляется желательным восстановить конкретные наборы объектов из базы данных вместо того, чтобы восстанавливать всю базу данных. Так часто обстоит дело в случае, когда производится восстановление после ошибки пользователя, например, когда пользователь случайно удаляет документы или сообщения электронной почты, которые пользователь удалять не намеревался. Например, очень часто восстанавливается содержимое почтовых ящиков из базы данных электронной почты и индивидуальные документы из системы управления документооборотом.Many applications (for example, e-mail, document management, active directory, etc.) store objects in a database. It often seems desirable to restore specific sets of objects from the database instead of restoring the entire database. This is often the case when recovering from a user error is performed, for example, when the user accidentally deletes documents or e-mail messages that the user did not intend to delete. For example, the contents of mailboxes from the email database and individual documents from the document management system are often restored.

Обычно эти виды объектов могут быть восстановлены посредством выделения места под всю базу данных, восстановления всей базы данных по состоянию на тот момент времени, когда объекты, подлежащие восстановлению, были в требуемом состоянии (например, не удаленными или не измененными), и использования затем приложения (например, системы электронной почты, системы управления документооборотом или другого подходящего приложения) для установки базы данных и извлечения из нее требуемых объектов.Typically, these types of objects can be restored by allocating space for the entire database, restoring the entire database at the point in time when the objects to be restored were in the required state (for example, not deleted or not changed), and then using the application (for example, e-mail systems, document management systems, or other suitable application) for installing the database and extracting the required objects from it.

При расположении набора данных на диске может отсутствовать необходимость восстанавливать этот набор данных на диске перед осуществлением доступа к требуемым объектам через соответствующие приложения. Вместо этого приложение может осуществлять доступ к файлам напрямую в том виде, в котором они хранятся в наборе данных. Если набор данных, созданный физическим резервным копированием, хранится в виде копии тома (в противоположность формату MTF), то набор данных может быть установлен непосредственно как том после удаления в этом наборе данных любого заголовка или завершающей части.When a data set is located on a disk, it may not be necessary to restore this data set on a disk before accessing the required objects through appropriate applications. Instead, an application can access files directly in the form in which they are stored in the data set. If the dataset created by the physical backup is stored as a copy of the volume (as opposed to the MTF format), then the dataset can be installed directly as the volume after deleting any header or trailing part in this dataset.

Если набор данных хранится в формате MTF (или в некотором другом архивном формате), то фильтр файловой системы может выполнить следующие действия:If the data set is stored in MTF format (or in some other archive format), then the file system filter can perform the following actions:

• Экспонировать этот набор данных как том и разрешить доступ к этому тому. Дать этому тому другое имя или открыть доступ к нему через адрес, отличный от адреса оригинального тома в пространстве имен локального компьютера;• Expose this data set as a volume and allow access to this volume. Give this volume a different name or open access to it through an address different from the address of the original volume in the namespace of the local computer;

• Выполнить поиск с целью обнаружения соответствующего файла базы данных, содержащегося в этом наборе данных, при попытке приложения открыть этот файл базы данных через этот экспонируемый том. Следует отметить, что поскольку набор данных выглядит как том (например, благодаря использованию фильтра файловой системы), каждый файл и директория в этом томе (а следовательно, и в наборе данных) могут быть открыты напрямую;• Perform a search to find the corresponding database file contained in this data set when an application tries to open this database file through this exposed volume. It should be noted that since the data set looks like a volume (for example, due to the use of a file system filter), each file and directory in this volume (and therefore in the data set) can be opened directly;

• Позволить считывание метаданных напрямую из этого тома и позволить считывание данных объекта с использованием обыкновенных примитивов ввода/вывода файловой системы; и• Allow reading metadata directly from this volume and allow reading object data using ordinary file system I / O primitives; and

• Сохранить свойство этого набора данных, заключающееся в его доступности только для чтения, посредством выполнения операций копирования при записи (в случае, когда приложение пытается записать данные в этот том) по отдельному адресу. Это может быть полезно для поддержки приложения, не поддерживающего установку с доступом только для чтения, такого как сервер или клиент электронной почты.• Save the property of this data set, which consists in its read-only accessibility, by performing copy operations on writing (in the case when the application is trying to write data to this volume) to a separate address. This can be useful to support an application that does not support read-only installation, such as a server or email client.

Фильтр файловой системы может использовать работающий в режиме «он-лайн» каталог, связанный с набором данных, который устанавливает соответствие каждого объекта в наборе данных и соответствующего смещения в созданном томе. Этот каталог может быть создан для наборов данных, которые не хранят в себе каталога. Например, когда открывают объект в томе, может быть произведен поиск этого объекта в работающем в режиме «он-лайн» каталоге, и может быть найдено смещение в наборе данных.A file system filter can use an on-line directory associated with a data set that establishes the correspondence of each object in the data set and the corresponding offset in the created volume. This directory can be created for datasets that do not store a directory. For example, when you open an object in a volume, a search can be made for this object in the online directory and an offset can be found in the data set.

Заголовки, расположенные по адресу смещения, могут быть использованы для извлечения метаданных для объекта и для установления соответствия между смещениями, указывающими на объект, и смещениями, указывающими на данные для этого объекта. Любые операции чтения, производимые над объектом, могут иметь своим результатом соответствующую операцию чтения, производимую над набором данных по вычисленному адресу смещения, основанному на этом установленном соответствии.The headers located at the offset address can be used to extract metadata for the object and to establish a correspondence between the offsets pointing to the object and offsets pointing to the data for this object. Any read operations performed on an object can result in a corresponding read operation performed on the data set at the calculated offset address based on this established correspondence.

Для наборов данных, хранящихся в формате MTF или в формате, отличном от MTF, в случае, если набор данных создан посредством инкрементного или дифференциального резервного копирования, фильтр файловой системы может рассматривать этот набор данных и любые другие наборы данных, на которых он основан, как устройство. Для получения информации, относящейся к объекту, может быть проведен поиск в этом устройстве с наборами данных с целью найти наиболее поздний набор данных, содержащий информацию. Перед разрешением доступа к тому, основанному на группе наборов данных, созданных посредством резервных копирований, может быть создан работающий в режиме «он-лайн» каталог для того, чтобы установить соответствие объектов с их соответствующими местами расположения в пределах наборов данных.For datasets stored in MTF format or in a format other than MTF, if the dataset is created by incremental or differential backup, the file system filter can consider this dataset and any other datasets on which it is based, as device. To obtain information related to the object, a search can be performed on this device with data sets in order to find the latest data set containing information. Before allowing access to a volume based on a group of data sets created through backups, an online catalog can be created in order to establish the correspondence of objects with their respective locations within the data sets.

Как можно увидеть из вышеприведенного подробного описания, предлагается усовершенствованный способ и система для создания, восстановления и использования наборов данных, связанных с резервным копированием. Хотя изобретение допускает различные модификации и альтернативные конструкции, определенные иллюстративные варианты его осуществления показаны на чертежах и были подробно описаны выше. Следует понимать, однако, что не следует ограничивать изобретение конкретными описанными формами, но, напротив, подразумевается распространение его действия на все модификации, альтернативные конструкции и эквиваленты, соответствующие сущности и объему изобретения.As can be seen from the above detailed description, an improved method and system for creating, restoring and using data sets associated with backup is proposed. Although the invention is subject to various modifications and alternative designs, certain illustrative embodiments thereof are shown in the drawings and have been described in detail above. It should be understood, however, that the invention should not be limited to the specific forms described, but, on the contrary, it is intended to extend its effect to all modifications, alternative designs and equivalents corresponding to the essence and scope of the invention.

Claims (28)

1. Способ полного резервного копирования файловой системы, при этом способ реализуется в вычислительной системе и содержит этапы, на которых:
выполняют обыкновенное полное резервное копирование файловой системы, причем файловая система включает в себя данные, и обыкновенное полное резервное копирование использует файловую систему с целью создать первый полный набор данных в момент времени создания, и упомянутое обыкновенное полное резервное копирование представляет собой первое полное резервное копирование;
вслед за выполнением обыкновенного полного резервного копирования выполняют частичное резервное копирование с целью создать второй набор данных после изменений в файловой системе, таких, что первый полный набор данных становится устаревшим, причем второй набор данных включает в себя только часть данных файловой системы, включающую части файловой системы, изменившиеся с момента обыкновенного полного резервного копирования, при этом выполнение частичного резервного копирования с целью создать второй набор данных содержит для файлов, размер которых превышает заданный размер, копирование измененных экстентов в файле, превышающем упомянутый заданный размер, таким образом, что во второй набор данных включаются не целый файл, а изменения в упомянутом файле; и
выполняют операцию синтетического полного резервного копирования путем объединения первого полного набора данных обыкновенного полного резервного копирования со вторым набором данных для создания первого синтетического полного набора данных файловой системы, причем первый синтетический полный набор данных является эквивалентом того, что создало бы обыкновенное полное резервное копирование, выполняемое в момент создания первого полного набора данных и синтетическое полное резервное копирование создает полный набор данных, основываясь на предыдущих резервных копированиях, а не на файловой системе;
периодически выполняют операцию синтетического полного резервного копирования для создания второго синтетического полного набора данных файловой системы с учетом любых изменений в ней и таким образом, что упомянутое первое полное резервное копирование представляет собой единственное обыкновенное резервное копирование, выполняемое для создания полного набора данных.
1. A method for fully backing up a file system, the method being implemented in a computer system and comprising the steps of:
performing an ordinary full backup of the file system, the file system including data, and the ordinary full backup using the file system to create the first complete set of data at the time of creation, and said ordinary full backup is the first full backup;
after performing an ordinary full backup, a partial backup is performed to create a second data set after changes in the file system, such that the first full data set becomes obsolete, and the second data set includes only part of the file system data, including parts of the file system that have changed since the ordinary full backup, while performing a partial backup in order to create a second data set contains for files, The dimensions of which exceed a predetermined size, copy changed extents in the file exceeds said predetermined size, so that the whole file is not included in the second data set, and changes in said file; and
perform a synthetic full backup operation by combining the first full complete ordinary backup data set with the second data set to create the first synthetic full file set data set, the first synthetic full data set being the equivalent of creating an ordinary full backup performed in the moment the first complete dataset is created and the synthetic full backup creates a complete dataset, the basics Using previous backups rather than the file system
the synthetic full backup operation is periodically performed to create a second synthetic complete data set of the file system, taking into account any changes in it, and such that the first full backup is the only ordinary backup performed to create the complete data set.
2. Способ по п.1, в котором выполнение обыкновенного полного резервного копирования включает в себя копирование данных на работающее в режиме «он-лайн» запоминающее устройство.2. The method according to claim 1, in which the implementation of an ordinary full backup includes copying data to an online storage device. 3. Способ по п.1, в котором работающее в режиме «он-лайн» запоминающее устройство содержит жесткий магнитный диск.3. The method of claim 1, wherein the on-line storage device comprises a hard magnetic disk. 4. Способ по п.2, в котором данные содержат объекты, каждый из которых связан с метаданными, и в котором данные копируются на работающее в режиме «он-лайн» запоминающее устройство посредством получения метаданных, связанных с каждым объектом, и копирования объекта и связанных с ним метаданных на работающее в режиме «он-лайн» запоминающее устройство.4. The method according to claim 2, in which the data contains objects, each of which is associated with metadata, and in which the data is copied to an on-line storage device by obtaining metadata associated with each object and copying the object and associated metadata to an on-line storage device. 5. Способ по п.2, в котором файловая система содержит том и в котором копирование данных на работающее в режиме «он-лайн» запоминающее устройство включает в себя создание «теневой» копии тома и копирование "теневой" копии на работающее в режиме «он-лайн» запоминающее устройство.5. The method according to claim 2, in which the file system contains a volume and in which copying data to an on-line storage device includes creating a “shadow” copy of the volume and copying the “shadow” copy to the working in " on-line "storage device. 6. Способ по п.5, в котором «теневая» копия сохраняется на указанном томе.6. The method according to claim 5, in which the "shadow" copy is stored on the specified volume. 7. Способ по п.5, в котором «теневая» копия сохраняется на указанном томе и на другом томе.7. The method according to claim 5, in which the "shadow" copy is stored on the specified volume and on another volume. 8. Способ по п.2, в котором файловая система содержит том, включающий в себя «теневую» копию, и в котором данные, связанные с «теневой» копией, сохраняются во время каждого резервного копирования.8. The method according to claim 2, in which the file system contains a volume including a “shadow” copy, and in which data associated with the “shadow” copy is stored during each backup. 9. Способ по п.8, в котором данные, связанные с «теневой» копией, сохраняются посредством копирования физических блоков указанного тома при выполнении каждого резервного копирования.9. The method of claim 8, in which the data associated with the “shadow” copy is stored by copying the physical blocks of the specified volume during each backup. 10. Способ по п.8, дополнительно содержащий восстановление второго полного набора данных и данных, связанных с «теневой» копией, сохраненных в нем, осуществляемое таким образом, что «теневая» копия доступна обычным образом.10. The method of claim 8, further comprising restoring a second complete set of data and data associated with the shadow copy stored in it, such that the shadow copy is accessible in the usual manner. 11. Способ по п.1, в котором данные хранятся в запоминающем устройстве, разделенном на блоки, и в котором первое резервное копирование и последующее резервное копирование выполняются посредством физического резервного копирования запоминающего устройства.11. The method according to claim 1, in which the data is stored in a storage device, divided into blocks, and in which the first backup and subsequent backups are performed by means of a physical backup of the storage device. 12. Способ по п.11, в котором физическое резервное копирование выполняется посредством открытия файла, в состав которого входят все блоки, подлежащие резервному копированию, и копирования блоков, подлежащих резервному копированию.12. The method according to claim 11, in which the physical backup is performed by opening the file, which includes all the blocks to be backed up, and copying the blocks to be backed up. 13. Способ по п.11, дополнительно содержащий восстановление первого полного набора данных посредством физического восстановления, включающего в себя открытие первого полного набора данных как файла и последовательное копирование блоков в первом полном наборе данных в запоминающее устройство восстановления.13. The method according to claim 11, further comprising restoring the first complete data set through physical recovery, including opening the first complete data set as a file and sequentially copying the blocks in the first complete data set to a recovery storage device. 14. Способ по п.13, дополнительно содержащий применение части данных файловой системы, включенных во второй набор данных, к содержимому запоминающего устройства восстановления.14. The method of claim 13, further comprising applying a portion of the file system data included in the second data set to the contents of the recovery storage device. 15. Способ по п.1, в котором данные содержат блоки и в котором выполнение последующего резервного копирования включает в себя уплотнение части данных.15. The method according to claim 1, in which the data contains blocks and in which the subsequent backup includes the compaction of a piece of data. 16. Способ по п.15, в котором уплотнение части данных включает в себя помещение любых блоков, данные в которых изменились, в область различий.16. The method according to clause 15, in which the compression of the data part includes the placement of any blocks in which data has changed, in the area of differences. 17. Способ по п.16, в котором блоки, данные в которых изменились, помещаются в область различий посредством действия механизма «теневой» копии.17. The method according to clause 16, in which the blocks, the data in which changed, are placed in the area of differences through the action of the mechanism of the "shadow" copy. 18. Способ по п.17, в котором множественные полные наборы данных представлены на запоминающем устройстве как множественные «теневые» копии, созданные посредством механизма «теневой» копии.18. The method according to 17, in which multiple complete data sets are presented on the storage device as multiple "shadow" copies created by the mechanism of the "shadow" copy. 19. Способ по п.15, в котором уплотнение части данных включает в себя применение алгоритма дифференциального уплотнения.19. The method according to clause 15, in which the compression of the data part includes the application of a differential compression algorithm. 20. Способ по п.1, в котором выполнение частичного резервного копирования файловой системы с целью создать второй набор данных включает в себя копирование других объектов, которые изменились, но не отслеживаются, посредством копирования всех блоков, связанных с этими другими объектами, во второй набор данных.20. The method according to claim 1, wherein performing a partial backup of the file system to create a second data set includes copying other objects that have changed but are not being tracked by copying all the blocks associated with these other objects to the second set data. 21. Способ по п.1, в котором упомянутые данные представляют собой набор данных в ленточном формате Microsoft (MTF).21. The method according to claim 1, wherein said data is a Microsoft tape format (MTF) dataset. 22. Способ по п.1, в котором выполнение частичного резервного копирования с целью создать второй набор данных содержит, если определено, что блок на диске должен быть изменен, копирование экстента, содержащего упомянутый блок, в дифференциальную область перед изменением упомянутого блока на диске.22. The method according to claim 1, wherein performing a partial backup to create a second data set comprises, if it is determined that the block on the disk should be changed, copying the extent containing the block to the differential region before changing the block on the disk. 23. Способ по п.1, в котором выполнение частичного резервного копирования с целью создать второй набор данных содержит этапы, на которых:
возвращают в исходное состояние постоянного хранилища фильтра каждый раз, когда выполняется частичное резервное копирование файловой системы;
определяют размер каждого файла в файловой системе;
для каждого файла в файловой системе, который имеет размер, меньший, чем упомянутый заданный размер, используют соответствующее время последнего изменения для определения, изменился ли данный объект;
для каждого файла в файловой системе, который имеет размер, меньший, чем упомянутый заданный размер, и который изменился, копируют весь объект во второй набор данных;
для каждого файла в файловой системе, который имеет размер, превышающий упомянутый заданный размер, отслеживают экстенты в файле, используя фильтр, который сохраняет в постоянном хранилище следующее:
путь к файлу, который был изменен;
список набора экстентов в упомянутом файле, которые изменились;
содержимое экстентов в упомянутом наборе экстентов в том порядке, в котором они встречаются в упомянутом списке набора экстентов.
23. The method according to claim 1, wherein performing a partial backup in order to create a second data set comprises the steps of:
returning to the initial state of the filter persistent storage each time a partial backup of the file system is performed;
determine the size of each file in the file system;
for each file in the file system that has a size smaller than the specified size, use the corresponding time of the last change to determine whether this object has changed;
for each file in the file system that has a size smaller than the specified size and which has changed, copy the entire object to a second data set;
for each file in the file system that is larger than the specified size, the extents in the file are tracked using a filter that stores the following in persistent storage:
path to the file that was changed;
a list of the extent set in the file that has changed;
the contents of the extents in said extent set in the order in which they appear in said extent set list.
24. Машиночитаемый носитель для использования в вычислительной среде, при этом упомянутый машиночитаемый носитель содержит машиночитаемые инструкции которые при выполнении их компьютером приводят к реализации компьютером способа по любому одному из пп.1-23.24. A computer-readable medium for use in a computing environment, wherein said computer-readable medium comprises machine-readable instructions which, when executed by a computer, lead to the computer implementing the method according to any one of claims 1 to 23. 25. Способ полного резервного копирования тома файловой системы, содержащий
создание и поддержание «теневой» копии тома, которая включает в себя первый полный набор данных, при этом «теневая» копия представляет собой логический дубликат этого тома по состоянию на некоторый момент времени;
создание второго полного набора данных этого тома;
перезапись на место первого полного набора данных второго полного набора данных при том, что «теневая» копия поддерживается;
удаление второго полного набора данных;
переименование первого полного набора данных во второй полный набор данных и
осуществление доступа к первому полному набору данных через «теневую» копию.
25. A method for fully backing up a file system volume, comprising
creation and maintenance of a “shadow” copy of the volume, which includes the first complete set of data, while the “shadow” copy is a logical duplicate of this volume at a certain point in time;
Create a second complete dataset for this volume
rewriting in place of the first complete data set of the second full data set while the “shadow” copy is supported;
deletion of the second complete data set;
renaming the first complete data set to a second complete data set and
access to the first complete data set through a “shadow” copy.
26. Способ по п.25, дополнительно содержащий осуществление доступа ко второму полному набору данных в томе.26. The method of claim 25, further comprising accessing a second complete data set in the volume. 27. Способ по п.25, дополнительно содержащий этап, на котором определяют различия между первым и вторым полными наборами данных, причем различия между первым и вторым полными наборами данных сохраняются в области различий, связанной с «теневой» копией.27. The method of claim 25, further comprising determining the differences between the first and second full data sets, the differences between the first and second full data sets being stored in the area of differences associated with the shadow copy. 28. Машиночитаемый носитель для использования в вычислительной среде, при этом упомянутый машиночитаемый носитель содержит машиночитаемые инструкции, которые при выполнении их компьютером приводят к реализации компьютером способа по любому одному из пп.25-27. 28. A computer-readable medium for use in a computing environment, wherein said computer-readable medium contains machine-readable instructions that, when executed by a computer, result in the computer implementing the method according to any one of claims 25 to 27.
RU2005129430/08A 2004-09-22 2005-09-21 Method and system for synthetic backup and restoration of data RU2406118C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/984,009 2004-09-22
US10/984,009 US20050077237A1 (en) 2000-10-30 2004-11-08 Method for recovering a disposal trench with a biomat slime, and method for operating a waste treatment vessel

Publications (2)

Publication Number Publication Date
RU2005129430A RU2005129430A (en) 2007-04-10
RU2406118C2 true RU2406118C2 (en) 2010-12-10

Family

ID=38006736

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005129430/08A RU2406118C2 (en) 2004-09-22 2005-09-21 Method and system for synthetic backup and restoration of data

Country Status (1)

Country Link
RU (1) RU2406118C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2613028C2 (en) * 2014-08-27 2017-03-14 Сяоми Инк. Method and device for file backup
RU2646309C1 (en) * 2017-04-17 2018-03-02 Алексей Николаевич Бегаев Backup method
RU2665307C2 (en) * 2013-03-14 2018-08-28 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Recovery of application from snapshot

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2665307C2 (en) * 2013-03-14 2018-08-28 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Recovery of application from snapshot
RU2613028C2 (en) * 2014-08-27 2017-03-14 Сяоми Инк. Method and device for file backup
RU2646309C1 (en) * 2017-04-17 2018-03-02 Алексей Николаевич Бегаев Backup method

Also Published As

Publication number Publication date
RU2005129430A (en) 2007-04-10

Similar Documents

Publication Publication Date Title
US7756833B2 (en) Method and system for synthetic backup and restore
US6023710A (en) System and method for long-term administration of archival storage
JP5274772B2 (en) System and method for maintaining temporal data in data storage
US8055864B2 (en) Efficient hierarchical storage management of a file system with snapshots
US6871271B2 (en) Incrementally restoring a mass storage device to a prior state
US8548965B2 (en) Changed files list with time buckets for efficient storage management
US8965850B2 (en) Method of and system for merging, storing and retrieving incremental backup data
JP4160933B2 (en) Fast restore of file system usage on very large file systems
US8874517B2 (en) Summarizing file system operations with a file system journal
US7873601B1 (en) Backup of incremental metadata in block based backup systems
EP2329377B1 (en) Using a snapshot as a data source
US8433863B1 (en) Hybrid method for incremental backup of structured and unstructured files
US7650341B1 (en) Data backup/recovery
US6938056B2 (en) System and method for restoring a file system from backups in the presence of deletions
EP1503290B1 (en) Transaction consistent copy-on-write database
US9043280B1 (en) System and method to repair file system metadata
US8015155B2 (en) Non-disruptive backup copy in a database online reorganization environment
RU2406118C2 (en) Method and system for synthetic backup and restoration of data
US11977454B2 (en) Leveraging metadata of a deduplication storage system to perform an efficient restore of backup data
Maes Comparison of contemporary file systems

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20140922