Cross-backup application diskless data migration
The cross-backup application diskless data migration method addresses the inefficiencies of traditional data migration by using a migration engine to map and transfer data as a virtual file system, ensuring efficient and cost-effective migration between backup environments with different software.
Patent Information
- Application Number
- CN202010774937.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-08
- Filing Date
- 2020-08-04
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2040-08-04
AI Technical Summary
Existing data migration methods require intermediate storage disks or staging areas, which are costly and inefficient, especially when migrating data between backup environments with different backup application software, and are impractical for entities with long data retention requirements.
A method and system for cross-backup application diskless data migration that utilizes a migration engine to identify and map legacy backup data to a common format, presenting it as a virtual file system, allowing direct transfer to a new backup environment without intermediate storage, using application-specific commands to manage data retention and encryption.
Enables seamless data migration between backup environments with different software without the need for intermediate storage, reducing costs and infrastructure requirements, while maintaining data integrity and retention policies.
Smart Images

Figure CN112346909B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to data migration, and more particularly to cross-backup application diskless data migration. Background Art
[0002] Data migration is the process of data selection, preparation, extraction and conversion, and permanent transfer from one computer storage system to another. Additionally, verification of the integrity of the migrated data and decommissioning of old data storage are considered part of the overall data migration process. Data migration is a consideration for any system implementation, upgrade, or combination. Typically, data migration is performed in as automated a manner as possible to free up human resources from tedious tasks. Data migration occurs for a variety of reasons, including replacement, maintenance, or upgrade of servers or storage devices, application migration, site consolidation, and disaster recovery. Summary of the invention
[0003] According to one embodiment, a computer-implemented method for cross-backup application diskless data migration is provided. Legacy data backups that can be migrated are identified in a legacy backup environment. Application-specific information about the legacy data that can be migrated is received. The application-specific information is filtered to indicate only legacy backup data that represents the expected migration type that must be migrated. The application-specific information corresponding to the application-specific information that must be migrated is presented in a virtual file system installed in the operating system, so that the application-specific information is treated as live local data. A backup of the virtual file system installed in the operating system is performed. According to other embodiments, a computer system and a computer program product for cross-backup application diskless data migration are provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Figure 1 A pictorial representation of a network of data processing systems implementing the illustrative embodiments is shown;
[0005] Figure 2 is a diagram of a data processing system that implements an illustrative embodiment;
[0006] Figure 3 is a diagram showing an example of a cross-backup application diskless data migration system according to an illustrative embodiment; and
[0007] Figure 4A-4B is a flow chart illustrating a cross-backup application diskless data migration process according to an illustrative embodiment. DETAILED DESCRIPTION
[0008] The present invention may be a system, method and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to execute aspects of the present invention.
[0009] A computer-readable storage medium may be a tangible device that can retain and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be understood as being a transient signal in itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable) or an electrical signal transmitted by wire.
[0010] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within each computing / processing device.
[0011] The computer-readable program instructions for performing the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, for integrated circuits, or source code or object code or similar programming languages written in any combination of one or more programming languages (including object-oriented programming languages such as Smalltalk, C++, etc. and procedural programming languages such as "C" programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection may be established with an external computer (for example, via the Internet using an Internet service provider). In some embodiments, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions to personalize the electronic circuits by utilizing the state information of the computer-readable program instructions to perform aspects of the present invention.
[0012] Various aspects of the present invention are described herein with reference to the flowcharts and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present invention. It will be understood that each frame of the flowchart illustration and / or block diagram and the combination of frames in the flowchart illustration and / or block diagram can be implemented by computer-readable program instructions.
[0013] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in the flowchart and / or block diagram or box. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0014] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing device or other device so that a series of operating steps are performed on the computer, other programmable device or other device to produce an implemented computer processing process, so that the instructions executed on the computer, other programmable device or other device implement the functions / actions specified in the flowchart and / or block diagram blocks.
[0015] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations of possible implementations of the systems, methods and computer program products according to various embodiments of the present invention. In this regard, each box in the flowchart or block diagram may represent a module, fragment or portion of an instruction, which includes one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the box may not occur in the order indicated in the figure. For example, two boxes displayed in succession can actually be completed as a step, in a partially or fully time-overlapping manner, at the same time, substantially at the same time, or sometimes the boxes can be executed in the opposite order, depending on the functional involvement. It should also be noted that each box illustrated in the block diagram and / or flowchart and the combination of boxes in the block diagram and / or flowchart can be implemented by a dedicated hardware-based system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.
[0016] Referring now to the drawings, and in particular to the Figure 1-3 , provides a diagram of a data processing environment in which an illustrative embodiment may be implemented. It should be understood that Figure 1-3 This is meant to be an example only and is not intended to assert or imply any limitation with regard to the environments in which different embodiments may be implemented, as many modifications to the described environments are possible.
[0017] Figure 1 A graphical representation of a network of data processing systems implementing an illustrative embodiment is shown. Network data processing system 100 is a network of computers, data processing systems, and other devices in which the illustrative embodiments may be implemented. Network data processing system 100 includes network 102, which is a medium for providing communication links between computers, data processing systems, and other devices connected together within network data processing system 100. Network 102 may include connections such as wired communication links, wireless communication links, and fiber optic cables.
[0018] In the depicted example, the migration server 104, the old backup server 106, and the new backup server 108 and the storage 110 are connected to the network 102. The migration server 104, the old backup server 106, and the new backup server 108 can be, for example, server computers with high-speed connections to the network 102. In addition, the old backup server 106 and the new backup server 108 provide data backup services for one or more entities, such as enterprises, organizations, agencies, institutions, etc., which can be regulated by state and / or federal laws regarding the management and security of stored data. Moreover, the old backup server 106 and the new backup server 108 can each represent a server cluster located in a different data center. Alternatively, the old backup server 106 and the new backup server 108 can each represent a computing node in a different cloud environment.
[0019] In this example, the old backup server is being decommissioned, and the data backups stored in the old backup server 106 are to be migrated to the new backup server 108. It is noted that the backup software of the old backup server 106 and the backup software of the new backup server 108 are different (e.g., different proprietary software developed by different software or service providers). The migration server 104 controls the process of migrating the data backups from the old backup server 104 to the new backup server 108. The migration server 104 applies a cross-backup application diskless data migration process to migrate the data backups from the old backup server 106 to the new backup server 108 as a virtual file system installed on the operating system of the migration server 104. In this way, the programs running on the migration server 104 treat the virtual file server (i.e., the information corresponding to the data backup) as real-time local data. As a result, the migration server 104 does not require an intermediate storage disk or storage disk group to migrate the data backups. In addition, it is noted that the operating system of the migration server 104 is the same or similar to the operating system of the old backup server 106. In turn, the migration server maps the data backups to a common data format.
[0020] Client 112, client 114, and client 116 are also connected to network 102. Clients 112, 114, and 116 are clients of old backup server 106 and new backup server 108. In this example, clients 112, 114, and 116 are shown as desktop or personal computers having a communication connection to network 102. However, it should be noted that clients 112, 114, and 116 are merely examples and may represent other types of data processing systems, such as network computers, laptop computers, handheld computers, smart phones, smart televisions, etc. Users of clients 112, 114, and 116 may use clients 112, 114, and 116 to submit read requests for data files stored on old backup server 106 and new backup server 108.
[0021] The memory 110 is a network storage device capable of storing any data type in a structured or unstructured format. In addition, the memory 110 may represent multiple network storage devices. Further, the memory 110 may be used for identification and network addresses of multiple backup servers, identification and network addresses of multiple client devices, identification of multiple users, multiple different data backups, etc. Moreover, the memory 110 may store other data types, such as authorization or credential data, which may include, for example, user names, passwords, biometric data associated with system administrators and users.
[0022] In addition, it should be noted that network data processing system 100 may include any number of additional servers, clients, storage devices, and other devices not shown in the figure. Program code located in network data processing system 100 may be stored in a computer-readable storage medium and may be downloaded to a computer or other data processing device for use. For example, program code may be stored in a computer-readable storage medium located in migration server 104 and downloaded to legacy backup server 106 via network 102 for use on legacy backup server 106.
[0023] In the depicted example, network data processing system 100 may be implemented as a number of different types of communications networks such as the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a telecommunications network, or any combination thereof. Figure 1 This is merely an example and not intended to be an architectural limitation of the different illustrative embodiments.
[0024] Reference now Figure 2 , shows a diagram of a data processing system according to an illustrative embodiment. Data processing system 200 is a computer (e.g. Figure 1 104) in which computer readable program code or instructions for implementing the illustrative embodiments may be located. In this illustrative example, data processing system 200 includes communications fabric 202 that provides communications between processor unit 204, memory 206, persistent storage 208, communications unit 210, input / output (I / O) unit 212, and display 214.
[0025] Processor unit 204 serves to execute instructions for software applications and programs that may be loaded into memory 206. Processor unit 204 may be a set of one or more hardware processor devices or may be a multi-core processor, depending on the particular implementation.
[0026] Memory 206 and permanent storage 208 are examples of storage devices 216. A computer-readable storage device is any hardware capable of temporarily storing and / or storing information, such as, but not limited to, data, computer-readable program code in a functional format, and / or other suitable information on a persistent basis. In addition, a computer-readable storage device does not include a propagation medium. In these examples, memory 206 may be, for example, a random access memory (RAM) or any other suitable volatile or non-volatile storage device. Persistent storage 208 may take various forms, depending on the particular implementation. For example, permanent storage 208 may include one or more devices. For example, permanent storage 208 may be a hard drive, a solid-state drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination thereof. The medium used by permanent storage 208 may be removable. For example, a removable hard drive may store permanent storage 208.
[0027] In this example, persistent storage 208 stores migration engine 218, old backup client 220, new backup client 222, and operating system 224. However, it should be noted that even though migration engine 218 is shown as residing in persistent storage 208, in an alternative illustrative embodiment, migration engine 218 may be a separate component of data processing system 200. For example, migration engine 218 may be a hardware element coupled to communications fabric 202 or a combination of software and hardware elements.
[0028] The migration engine 218 uses cross-backup application diskless data migration to control the process of migrating data backup from the old backup server in the old backup environment to the new backup server in the new backup environment. The migration engine 218 uses the old backup client 220 to use application-specific commands and application interfaces corresponding to the backup software imported into the old backup server to determine the data backup that can be migrated to the new backup server, and then obtains the qualified data backup from the old backup server. The old backup client 220 directly passes the obtained data backup to the read process of the new backup client 222 without using the intermediate storage disk as a landing area or temporary storage area. The migration engine 218 uses the new backup client 222 to write the backup data to the new backup server using application-specific commands and application interfaces corresponding to the backup software imported into the new backup server.
[0029] The operating system 224 may be any type of operating system capable of creating a virtual file system 226. In addition, the operating system 224 is the same or the same type as the operating system on the legacy backup server. Each virtual file system in the virtual file system 226 represents information (e.g., metadata) corresponding to a different data backup obtained from the legacy backup server. The migration engine 218 mounts the virtual file system 226 (i.e., information corresponding to different data backups rather than real data backups) to the operating system 224 so that the legacy backup client 220 and the new backup client 222 can view the information as real-time local data.
[0030] The old backup server 228 represents the identifier of the old backup server, for example, Figure 1 The old backup server 106 is deactivated and has the stored data backup migrated to the new backup server. The old backup application 230 represents the identification of the type of backup software imported into the old backup server 228. The new backup server 232 represents the new backup server (e.g., Figure 1 200 and 210. The new backup application 234 represents an identifier of a new backup server 108 that stores data backups migrated from the old backup server 228. The new backup application 234 represents an identifier of the type of backup software imported into the new backup server. It should be noted that the old backup application 230 and the new backup application 234 represent different types of proprietary backup software that write data to storage in different formats.
[0031] In this example, communications unit 210 provides communication with other computers, data processing systems, and devices via a network (e.g., Figure 1 Communication unit 210 may provide communications using physical and wireless network links. Physical communication links may utilize, for example, wires, cables, universal serial buses, or any other physical technology to establish a physical communication link for data processing system 200. Wireless communication links may utilize, for example, short wave, high frequency, ultra high frequency, microwave, wireless fidelity (Wi-Fi), technology, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), second generation (2G), third generation (3G), fourth generation (4G), 4G Long Term Evolution (LTE), LTE Advanced, fifth generation (5G), or any other wireless communication technology or standard to establish a wireless communication link for the data processing system 200.
[0032] Input / output unit 212 allows for input and output of data to and from other devices that may be connected to data processing system 200. For example, input / output unit 212 may provide a link for user input through a keypad, keyboard, mouse, microphone, and / or some other suitable input device. Display 214 provides, for example, a mechanism for displaying information to a user and may include touch screen functionality to allow a user to make on-screen selections through a user interface or input data.
[0033] Instructions for the operating system, applications, and / or programs may be located in storage devices 216, which communicate with processor unit 204 via communications fabric 202. In this illustrative example, the instructions are in a functional format located in persistent storage 208. These instructions may be imported into storage 206 for execution by processor unit 204. The processes of various embodiments may be performed by processor unit 204 using computer-implemented instructions, which may be located in a memory, such as memory 206. These program instructions are referred to as program code, computer usable program code or computer readable program code, which may be read and executed by a processor in processor unit 204. In various embodiments, the program instructions may be embodied in different physical computer-readable storage media, such as memory 206 or persistent storage 208.
[0034] Program code 236 is located in a functional format on a computer readable medium 238, which computer readable storage medium is selectively removable and can be imported or transferred to data processing system 200 to be executed by processor unit 204. Program code 236 and computer readable medium 238 constitute computer program product 240. In one embodiment, computer readable medium 238 may be a computer readable storage medium 242 or a computer readable signal medium 244. Computer readable storage medium 242 may include, for example, an optical or magnetic disk that is inserted or placed in a drive or other device that is part of permanent storage 208 to be transferred to a storage device (e.g., a hard drive) that is part of permanent storage 208. Computer readable storage medium 242 may also take the form of permanent storage, such as a hard drive, thumb drive, or flash memory connected to data processing system 200. In some examples, computer readable storage medium 242 may not be removable from data processing system 200.
[0035] Alternatively, program code 236 may be transmitted to data processing system 200 using computer readable signal media 244. Computer readable signal media 244 may be, for example, a data signal that propagates and contains program code 236. For example, computer readable signal media 244 may be an electromagnetic signal, an optical signal, and / or any other suitable type of signal. These signals may be sent via a communication link such as a wireless communication link, a fiber optic cable, a coaxial cable, an electrical wire, and / or any other suitable type of communication link. In other words, in the illustrative examples, the communication link and / or connection may be physical or wireless. Computer readable media may also take the form of non-tangible media, such as a communication link or wireless transmission containing program code.
[0036] In some exemplary embodiments, program code 236 may be downloaded to persistent storage 208 over a network from another device or data processing system via computer readable signal media 244 for use in data processing system 200. For example, program code stored in a computer readable storage medium of a data processing system may be downloaded from the data processing system to data processing system 200 over a network. The data processing system providing program code 236 may be a server computer, a client computer, or other device capable of storing and transmitting program code 236.
[0037] The different components illustrated for data processing system 200 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. Different illustrative embodiments that may be implemented in a data processing system include elements in addition to, or in place of, those shown in the data processing system. Figure 2 Other elements shown may be different from the illustrative examples shown. Any hardware device or system capable of executing program code may be used to implement different embodiments. As an example, data processing system 200 may include organic components combined with inorganic components and / or may be composed entirely of organic components other than humans. For example, a storage device may be composed of an organic semiconductor.
[0038] As another example, a computer-readable storage device in data processing system 200 is any hardware device that can store data. Memory 206, persistent storage 208, and computer-readable storage media 242 are examples of physical storage devices in a tangible form.
[0039] In another example, a bus system can be used to implement the communication structure 202, and can include one or more buses, such as a system bus or an input / output bus. Of course, the bus system can be implemented using any suitable type of architecture that provides data transmission between different components or devices attached to the bus system. In addition, the communication unit can include one or more devices for sending and receiving data, such as a modem or a network adapter. In addition, the memory can be, for example, a memory 206 or a cache, which can be found in an interface and a memory controller hub that may be present in the communication structure 202.
[0040] Most commercial data backup software on the market today writes data to backup storage in a proprietary format that can only be understood by the application software of the supplier or service provider. This makes it very challenging to switch between backup applications or related service providers. In some examples, customers can choose to leave their old backup environment "as is" and wait for the data backup to expire (for example, the time limit required to keep the data backup expires). However, this approach is not applicable to entities with longer data retention requirements in years, as is often the case for conventional entities (for example, healthcare providers, financial institutions, educational entities, government agencies, etc.). Keeping the old backup environment online requires continuing to pay software license fees for the old backup application software and for the maintenance and potential replacement of physical equipment for the backup environment that is no longer in use. Another method used by the old backup application software is to perform a series of restores from the old backup environment to a landing area or staging area (for example, a storage disk), and then run a backup on the new backup environment to transfer data from the landing area or staging area to the new backup environment. This approach requires the use of significant intermediary infrastructure and can be tedious to arrange and manage.
[0041] The exemplary embodiment provides an alternative method of data migration that does not require staging or landing a storage disk to place a data backup and then backing up the data again. Instead, the exemplary embodiment utilizes the application interface and / or the native client function of the customer environment to obtain information about the data backup in the old backup environment. The illustrative embodiment represents these data backups as virtual file systems installed in an operating system similar to the operating system of the old backup server in the original old backup environment. These virtual file systems can be backed up to the new backup environment by the new backup application software, and due to the read request issued for a single file in the virtual file system, the data is obtained from the old backup environment and the data is passed to the new backup application software in the new backup environment in memory for protection. The backup job that ingests the data to the new backup environment is configured by the data preservation, which is mapped to the remaining retention period of the data in the old backup environment. By installing the data on the client system, any encryption algorithm used to protect the data is taken into account. For example, the client encryption process can decrypt the data on the client side, while the hardware or native server-side encryption process can decrypt the data before presenting it to the client.
[0042] The illustrative embodiments utilize several hardware and software elements, such as a legacy backup environment, a new backup environment, and backup clients, to perform cross-backup application diskless data migration. The legacy backup environment is an existing backup environment that includes one or more legacy backup servers and legacy backup application software, which is migrated from and contains existing data backups that must be migrated to the new backup environment. The new backup environment includes one or more new backup servers and new backup application software, which is a new backup environment to be migrated to and will be used to store customer data backups. The backup clients include legacy backup clients and new backup clients located at the migration server of the customer environment, which receive legacy data backups from the legacy backup environment and receive or will receive data backups from the new backup environment.
[0043] Further, the illustrative embodiment utilizes a new element (i.e., a migration engine) located on a migration server of a client environment. Migration engine A queries the legacy backup environment to identify what backup data is contained in the legacy backup environment. Once the migration engine determines what backup data is contained in the migration backup environment, the migration engine maps the backup data to a common format and filters the backup data to represent the type of data migration expected (e.g., migrating one full image of the legacy backup server every month, migrating all available backup data restore points, or similar). In this way, the migration engine generates a mapped and filtered view that lists all data files that can be restored within a given mapping point. A mapping point is how the migration engine represents a data backup as a virtual file system. Each virtual file system represents a different historical data backup. The migration engine mounts the virtual file system to be read only within the operating system of the migration server. The operating system of the migration server is the same or similar to the operating system of the legacy backup server. When attempting to read specific data of the virtual file system, the migration engine initiates a request to the legacy backup client to perform a restore of the specific data file. However, instead of writing data files to disk as in a traditional restore process, the illustrative embodiments directly pass incoming data files corresponding to the restore request to the read process of the new backup client, which safely consumes no disk storage and uses only a small portion of memory for cache performance.
[0044] To ensure that data backup retention in the new backup environment is properly established, the migration engine also interacts with the new backup application software in the new backup environment to initiate data backup jobs, so that each mapping point (i.e., virtual file system) is dynamically retained to align with the remaining retention period of the data backup in the old backup environment, unless a user-requested or replaced retention period is used.
[0045] In some cases, it may not be possible or practical to use a legacy backup client. These examples include: when the legacy backup environment has been decommissioned, but the data backups in the decommissioned legacy backup environment are still retained; when the customer does not want to place a migration engine on each migration server, or the like. To handle these examples, the illustrative embodiments may use a single client with a legacy backup client installed, which is reconfigured after each iteration to represent a different production system. Whether the reconfiguration is automated depends on the process of the legacy backup application software in the legacy backup environment.
[0046] As a result, the illustrative embodiments require zero reconfiguration or special integration in an existing customer environment. The illustrative embodiments avoid having to consider the target data format of the new backup environment by presenting the legacy backup data as a virtual file system on the customer migration server. The illustrative embodiments migrate the data backups from the legacy backup server to the new backup server, which requires converting the data backups from the format of the legacy backup application software to a different format used by the new backup application software by mapping the data backups to a common data format on the customer migration server.
[0047] Thus, the illustrative embodiments provide one or more technical solutions to the technical problem of migrating data backups from an old backup environment to a new backup environment with different backup application software without using an intermediate storage disk as a landing zone or staging area. As a result, these one or more technical solutions provide technical effects and practical applications in the field of data migration.
[0048] Reference now Figure 3 , shows a cross-backup application diskless data migration system according to an illustrative embodiment. The cross-backup application diskless data migration system 300 can be in a data processing system network (eg, Figure 1 The cross-backup application diskless data migration system 300 is a system of hardware or software components for migrating data backups from an old backup environment to a new backup environment with different backup application software without using an intermediate storage disk as a landing zone or staging area.
[0049] In this example, cross-backup application diskless data migration system 300 includes customer environment 203, old backup environment 304, and new backup environment 306. Customer environment 302 includes customer migration server 308. However, it should be noted that customer environment 203 may include more migration servers than shown. Customer migration server 308 may be, for example, Figure 1 The client migration server 308 includes a migration engine 310, a legacy backup client 312, a new backup client 314, and an operating system 316. The legacy backup environment 304 includes a legacy backup 318 and storage 320. However, it should be noted that the legacy backup environment 304 may include more backup servers and storage than shown. The legacy backup server 318 may be, for example, Figure 1 The old backup server 106. The old backup server 318 includes the old backup application 322. The new backup environment 306 includes a new backup server 324 and a memory 326. However, it should be noted that the new backup environment 306 may include more backup servers than shown. The new backup server 324 may be, for example, Figure 1The new backup server 324 includes a new backup application 328. It should be noted that the new backup application 328 is a different proprietary software than the old backup application 322 and writes data to the memory 326 in a different data format.
[0050] At 330, the customer migration server 308 uses the migration engine 310 to query the legacy backup client 312 to identify legacy data backups that can be migrated from the legacy backup server 319 to the new backup server 324. The migration engine 310 queries the legacy backup client 312 using application-specific commands and application interfaces corresponding to the legacy backup application 322. Additionally, at 332, if necessary, the migration engine 310 directly queries the legacy backup server 318 to determine data backup retention periods for the legacy backups that can be migrated.
[0051] At 334, the legacy backup client 312 responds with information specific to the application regarding the legacy data backups that can be migrated. In other words, the legacy backup client 312 is building an inventory of backup data that exists on the legacy backup server 318. At 336, the migration engine 310 maps the legacy data backups that can be migrated to a common data format. In addition, the migration engine 310 filters the legacy data backups to indicate only the legacy backup data that must be migrated that represents the expected type of migration being performed. The migration engine 310 can filter the legacy data backups based on, for example, business rules, regulatory rules, or the like. For example, filtering can migrate a complete image of the legacy backup server 318 only once per historical month.
[0052] At 338, the migration engine 310 presents the old backup data that must be migrated as a virtual file system 340. The migration engine 310 installs the virtual file system 340 into the operating system so that the new backup client 310 will see the virtual file system as real-time local data. It is noted that the operating system 316 is a type of operating system that allows the creation of virtual file systems. Further, the migration engine 310 populates the virtual file system 340 with information or metadata (e.g., a complete directory or file structure) about the old historical backup data that must be migrated. In other words, the actual old backup data is not within the virtual file system 340.
[0053] At 342, the new backup client 314 performs a backup of the virtual file system 340. In response to receiving a read request for a specific data file on the virtual file system 340, the new backup client 314 pulls information corresponding to the specific data file from the virtual file system 340. The new backup client 314 provides the information pulled from the virtual file system 340 corresponding to the specific data file to be read to the old backup client 312. The old backup client 312 obtains the specific data file from the old backup server 318 based on the information pulled from the virtual file system 340. The old backup client 312 directly passes the specific data file obtained from the old backup server 318 to the read process of the new backup client 314 without using a storage disk.
[0054] At 344, the new backup client 314 writes the specific data file obtained from the old backup server 318 to the new backup server 324. Furthermore, the new backup client 314 sets a retention period for the specific data file on the new backup server 324, which is the same as the remaining retention period of the specific data file on the old backup server 318. Furthermore, at 346, if there is a need to migrate backup data for an old backup server that no longer exists, or if the customer wishes to run the migration engine on a single customer server, the migration engine reconfigures the old backup client 312 to repeat the process for each set of original backup data on each old backup server or stopped backup server.
[0055] Reference now Figure 4A-4B , shows a flowchart of a process of cross-backup application diskless data migration according to an illustrative embodiment. Figure 4A-4B The process can be performed on a computer (e.g. Figure 1 Server 104, Figure 2 data processing system 200, or Figure 3 The client migration server 308) is implemented on the client migration server 308).
[0056] The process begins when the computer uses commands and application interfaces specific to the legacy backup application to query the legacy backup environment to identify legacy data backups that can be migrated to the new backup environment (step 402). In addition, the computer queries the legacy backup environment to determine data retention periods for the legacy data backups that can be migrated (step 404). Thereafter, the computer receives legacy backup application-specific information about the legacy data backups that can be migrated and a data retention period corresponding to the legacy data backup based on the query from the legacy backup environment (step 406).
[0057] The computer maps the received legacy backup application-specific information about the legacy data backup to the common data format (step 408). Further, the computer filters the received legacy backup application-specific information mapped to the common data format to indicate only the migration backup data that must be migrated and represents the desired migration type (step 410). The computer presents the received legacy backup application-specific information corresponding to the legacy backup data that must be migrated as a virtual file system installed to the operating system of the computer, so that the computer regards the received legacy backup application-specific information as real-time local data (step 412).
[0058] The computer determines whether a read request for a single data file on the virtual file system has been received (step 416). If the computer determines that a read request for a single data file on the virtual file system has not been received, step 416 has no output, and the process returns to step 416, where the computer waits for a read request. If the computer determines that a read request for a single data file on the virtual file system has been received, the output of step 416 is yes, and the computer pulls out information corresponding to the single data file from the virtual file system (step 418).
[0059] Thereafter, the computer obtains the single data file from the old backup environment based on the information corresponding to the single data file pulled from the virtual file system (step 420). The computer passes the single data file directly to the computer's read process (step 422). The computer then writes the single data file to the new backup environment according to the computer's read process (step 424). The computer sets the shelf life of the single computing file in the new backup environment to be the same as the remaining shelf life of the single data file in the old backup environment (step 426). The process then terminates.
[0060] Therefore, the illustrative embodiments of the present invention provide a computer-implemented method, computer system, and computer program product for cross-backup application diskless data migration. Descriptions of various embodiments of the present invention have been given for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements existing on the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for migrating data, include: identifying in a legacy backup environment legacy data backups that can be migrated, wherein the legacy data backups are generated in the legacy backup environment by a legacy file-level backup application; receiving application-specific information about the legacy data backup that can be migrated, wherein the application-specific information is received from a legacy backup client program of the legacy backup environment in response to a query sent to the legacy backup client program, and wherein the application-specific information includes application-specific commands and an application-specific interface; filtering the application-specific information to indicate only legacy backup data that must be migrated that represents a desired migration type; presenting the application-specific information corresponding to the legacy backup data that must be migrated as a virtual file system installed within an operating system so that the application-specific information is viewed as real-time local data; and The backup data indicated by the filter is migrated to a new backup environment by performing a file-level backup of the virtual file system installed in the operating system, wherein the backup reads files in the backup data indicated by the filter from the virtual file system and stores the read files in the backup data in the new backup environment, wherein the file-level backup includes a read process of directly passing a single data file from the old backup client program to a new backup client program in the new backup environment without consuming disk storage at all.
2. The method according to claim 1, further comprising: include: Prior to said filtering the application-specific information, said application-specific information about said legacy data backup is mapped into a common data format to present said desired migration type.
3. The method according to claim 1, further comprising: include: The old backup environment is queried to determine the data retention period of the old data backup that can be migrated.
4. The method according to claim 1, further comprising: include: Determining whether a read request for the single data file on the virtual file system is received; In response to determining that the read request for the single data file on the virtual file system is received, pulling information corresponding to the single data file from the virtual file system; as well as The single data file is retrieved from the legacy backup environment based on the information corresponding to the single data file pulled from the virtual file system.
5. The method according to claim 4, further comprising: include: The single data file is written to the new backup environment according to the reading process of the new backup client program.
6. The method according to claim 5, include: The preservation period of the single data file in the new backup environment is set to be the same as the remaining preservation period of the single data file in the old backup environment.
7. The method according to claim 1, in, The virtual file system is mounted to the operating system as read-only, and the operating system is similar to the operating system of the legacy backup environment.
8. The method of claim 1, wherein the virtual file system represents a historical data backup.
9. The method of claim 1, wherein the legacy data backups are filtered based on regulatory rules.
10. The method of claim 1, wherein the legacy backup environment and the new backup environment are executable on a same data processing system.
11. A system for migrating data, include: Bus system; a storage device connected to the bus system, wherein the storage device stores program instructions; as well as a processor connected to the bus system, wherein the processor executes the program instructions to: identifying in a legacy backup environment legacy data backups that can be migrated, wherein the legacy data backups are generated in the legacy backup environment by a legacy file-level backup application; receiving application-specific information about the legacy data backup that can be migrated, wherein the application-specific information is received from a legacy backup client program of the legacy backup environment in response to a query sent to the legacy backup client program, and wherein the application-specific information includes application-specific commands and an application-specific interface; filtering the application-specific information to indicate only legacy backup data that must be migrated that represents a desired migration type; presenting the application-specific information corresponding to the legacy backup data that must be migrated as a virtual file system installed within an operating system so that the application-specific information is viewed as real-time local data; as well as The backup data indicated by the filter is migrated to a new backup environment by performing a file-level backup of the virtual file system installed in the operating system, wherein the backup reads files in the backup data indicated by the filter from the virtual file system and stores the read files in the backup data in the new backup environment, wherein the file-level backup includes a read process of directly passing a single data file from the old backup client program to a new backup client program in the new backup environment without consuming disk storage at all.
12. A computer program product, the computer program product include: A computer-readable storage medium having program instructions embodied therewith, the program instructions being executable by a computer to cause the computer to perform a method comprising: identifying in a legacy backup environment legacy data backups that can be migrated, wherein the legacy data backups are generated in the legacy backup environment by a legacy file-level backup application; receiving application-specific information about the legacy data backup that can be migrated, wherein the application-specific information is received from a legacy backup client program of the legacy backup environment in response to a query sent to the legacy backup client program, and wherein the application-specific information includes application-specific commands and an application-specific interface; filtering the application-specific information to indicate only legacy backup data that must be migrated that represents a desired migration type; presenting the application-specific information corresponding to the legacy backup data that must be migrated as a virtual file system installed within an operating system so that the application-specific information is viewed as real-time local data; and The backup data indicated by the filter is migrated to a new backup environment by performing a backup of the virtual file system installed in the operating system, wherein the backup reads files in the backup data indicated by the filter from the virtual file system and stores the read files in the backup data in the new backup environment, wherein the file-level backup includes a read process of directly passing a single data file from the old backup client program to a new backup client program in the new backup environment without consuming disk storage at all.
13. The computer program product according to claim 12, further comprising: include: Prior to said filtering the application-specific information, said application-specific information about said legacy data backup is mapped into a common data format to present said desired migration type.
14. The computer program product according to claim 12, further comprising: include: The old backup environment is queried to determine the data retention period of the old data backup that can be migrated.
15. The computer program product according to claim 12, further comprising: include: Determining whether a read request for the single data file on the virtual file system is received; In response to determining that the read request for the single data file on the virtual file system is received, pulling information corresponding to the single data file from the virtual file system; as well as The single data file is retrieved from the legacy backup environment based on the information corresponding to the single data file pulled from the virtual file system.
16. The computer program product according to claim 15, further comprising: include: The single data file is written to the new backup environment according to the reading process of the new backup client program.
17. The computer program product according to claim 16, include: The preservation period of the single data file in the new backup environment is set to be the same as the remaining preservation period of the single data file in the old backup environment.
18. The computer program product of claim 12, wherein the legacy backup environment and the new backup environment are operable on a same data processing system.
19. The computer program product according to claim 12, in, The virtual file system is mounted to the operating system as read-only, and wherein the operating system is similar to the operating system of the legacy backup environment.
20. The computer program product of claim 12, wherein the virtual file system represents a historical data backup.
