Data processing systems and methods, and devices
The data processing system integrates data backup and disaster recovery with tiering into a unified data backup chain, addressing resource waste in multi-copy technologies by optimizing storage efficiency and functionality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2023-02-07
- Publication Date
- 2026-07-06
Smart Images

Figure 0007885340000001 
Figure 0007885340000002 
Figure 0007885340000003
Abstract
Description
Technical Field
[0001] Cross - reference to Related Applications This application claims priority to Chinese Patent Application No. 202210135308.1, titled "SYSTEM AND METHOD FOR INTEGRATING DISASTER RECOVERY, BACKUP, AND TIERING", filed with the China National Intellectual Property Administration on February 14, 2022, and Chinese Patent Application No. 202210423419.2, titled "DATA PROCESSING SYSTEM AND METHOD, AND DEVICE", filed with the China National Intellectual Property Administration on April 21, 2022, the entire contents of which are incorporated herein by reference.
[0002] This application relates to the field of communication technologies, and more particularly, to data processing systems and methods, and devices.
Background Art
[0003] With the development of technology, in the field of storage, various data multi - copy technologies such as data disaster recovery backup, data tiered backup, and data backup have emerged.
[0004] Disaster recovery means that when a "disaster" occurs in a node within a storage system and that node cannot continue to provide services, another node that has performed a data disaster recovery backup can replace the node where the "disaster" occurred and continue to provide services. The disaster recovery mechanism requires nodes within the storage system to backup data copies for disaster recovery to another node.
[0005] Data tiering refers to the process of tiering data into hot data, warm data, and cold data based on how frequently it is accessed. Nodes in a storage system can back up copies of infrequently accessed data (such as warm and cold data) to remote nodes or cloud nodes, while keeping only the hot data locally. This backup method is called data tiering backup.
[0006] The aforementioned data backup refers to a common data backup, specifically, a node in a storage system can back up locally stored data to another node, creating a data copy on that node. If locally stored data is damaged or lost, the node can perform recovery using the data copy on the other node.
[0007] In the field of memory, different data multicopy technologies are independent of each other. Users need to use different multicopy technologies to achieve different technical objectives. For example, data copies are generated for disaster recovery, data tiering, and other purposes. Storing these copies occupies a large amount of memory resources. [Overview of the Initiative]
[0008] This application provides a data processing system, method, and device for solving the resource waste caused by multicopy technology. [Means for solving the problem]
[0009] According to a first aspect, one embodiment of the present application provides a data processing system. The data processing system includes a plurality of storage devices. Herein, a first storage device, a second storage device and a third storage device among the plurality of storage devices are used as illustrative examples.
[0010] In this data processing system, the first storage device has a data storage function and stores data copies. In the first storage device, the data copies are stored in the form of a data backup chain. The data backup chain records the data copies in the first storage device in a time series of backups.
[0011] The second storage device has a data access function. The second storage device can receive and process data access requests, which are used to request access to data. After receiving a data access request, the second storage device accesses the data in its storage space based on the data access request. The storage space of the second storage device refers to a cache that can be used by the second storage device to directly read data. The storage space may be a storage component of the second storage device, such as memory or a hard disk drive, or it may be storage software deployed on the second storage device, such as a file system, or it may be storage software deployed on another device.
[0012] In addition to processing data access requests, the second storage device may also perform data backups. When the second storage device performs data backups, it backs up the data in its storage space to the first storage device. Each time the second storage device backs up the data, it is used as one data copy in the data backup chain within the first storage device.
[0013] The data processing system also supports some or all of the following operations:
[0014] (1) Data disaster recovery If the second storage device fails, the third storage device can replace the failed second storage device, implement data access functionality, and process data access requests. When processing data access requests, the third storage device accesses a copy of the data in the first storage device based on the data access request. The data copy is backed up to the first storage device by the failed second storage device before the failure occurs.
[0015] (2) Data hierarchical structure When data tiering is implemented, data may be tiered into multiple types of data, such as low-level data and high-level data. The data tiering scheme is not limited in this embodiment of the application. For example, tiering may be based on data access frequency, where low-level data is data accessed below a threshold, and high-level data is data accessed above a threshold. In another example, tiering may be based on data type, where low-level data is audio type data and high-level data is picture type or video type data. The granularity of data tiering is not limited in this embodiment of the application. For example, data may be tiered by using blocks as the granularity, or data may be tiered by objects or files. In this embodiment of the application, an example is used in the description where low-level data is cold data and high-level data is hot data. The cold data processing scheme and the hot data processing scheme are also applicable to multiple types of data, such as low-level and high-level data, based on other data tiering schemes and granularities.
[0016] If cold data (low-level data) exists in the storage space of the second storage device, and the data copy backed up to the first storage device already contains the cold data, the second storage device deletes the cold data in its storage space and retains the hot data (high-level data) in the second storage device. The second storage device stores the location information of the cold data in its storage space, and this location information indicates the storage location of the cold data in the first storage device.
[0017] According to the aforementioned system, the storage devices within the data processing system implement not only data backup functionality but also data disaster recovery or data tiering functionality. If the data processing system is guaranteed to support various multi-copy technologies, data copies are stored in the form of only one data backup chain, and it is not necessary to store multiple data backup chains. In other words, multiple functions are implemented by storing only one set of copies, rather than storing each copy to implement each function. Therefore, the occupation of storage resources can be effectively reduced.
[0018] In possible implementations, if a second storage device fails to replace a second storage device in order to process a data access request, a third storage device may perform further data backups. The third storage device backs up the data in its storage space to the first storage device, and each time the data is backed up by the third storage device, it is used as one data copy in the data backup chain. In other words, when the third storage device processes a data access request, it backs up the data in its storage space to the first storage device.
[0019] According to the aforementioned system, if the second storage device implements a data disaster recovery function, the second storage device further performs data backups and ensures that the data stored by the second storage device can be stored in the first storage device when the second storage device processes a data access request.
[0020] In a possible implementation, for a failed second storage device in a data processing system, after the failure of the second storage device is corrected, the corrected second storage device can retrieve a data copy backed up by a third storage device from the data backup chain and use the retrieved data copy to restore the data in the storage space of the second storage device.
[0021] According to the aforementioned system, after the failure is corrected, the failed second storage device can recover the data in its storage space by using the data copy stored in the first storage device, ensuring that the second storage device can continue to support data access after the failure is corrected.
[0022] In possible implementations, after the second storage device converts cold data to hot data, the second storage device restores the data in its storage space by using the cold data in a data copy backed up to the first storage device. For example, the second storage device retrieves cold data from the first storage device and stores it in its storage space.
[0023] According to the aforementioned system, after the cold data is converted to hot data, the second storage device re-stores the hot data in the storage space of the second storage device, ensuring that the second storage device can efficiently access the hot data.
[0024] In a possible implementation form, when the data in the storage space of the second storage device is damaged or lost, the second storage device obtains a data copy from the data backup chain and uses the obtained data copy to recover the damaged or lost data.
[0025] According to the above system, since the second storage device is performing data backup, when the data in the storage space is damaged or lost, the second storage device uses the data copy in the first storage device to perform data recovery in time.
[0026] In a possible implementation form, when backing up the data in the storage space of the second storage device to the first storage device, the second storage device can back up the data copy in a full backup method. Specifically, the second storage device backs up the data in the storage space of the second storage device to the first storage device in a full data method, and the data backed up each time is used as one data copy in the data backup chain. In other words, the data backed up each time is all the data in the storage space. Alternatively, the second storage device may perform an incremental backup. Specifically, the second storage device backs up the data in the storage space of the second storage device to the first storage device in a data increment method, and the data backed up each time is used as one data copy in the data backup chain. In other words, the data backed up each time is the data written into the storage space after the previous backup.
[0027] According to the above system, the second storage device performs data backup in different backup methods. The backup method is flexible and applicable to various application scenarios.
[0028] In a possible implementation form, in a data processing system, the storage device may only have a data storage function. For example, the storage device is only configured to store data copies. The storage device may only have a data access function. For example, the storage device processes data access requests and implements a data disaster recovery or data tiering function. Alternatively, the storage device may have both a data storage device and a data access function.
[0029] The first storage device, the second storage device, and the third storage device described in the foregoing description are an example. The first storage device, the second storage device, and the third storage device may be expanded in the following forms.
[0030] 1. The first storage device, the second storage device, and the third storage device are different devices.
[0031] 2. The first storage device and the second storage device are the same device, and the third storage device is different from the second storage device.
[0032] 3. The first storage device and the third storage device are the same device, and the second storage device is different from the third storage device.
[0033] 4. The second storage device and the third storage device are the same device, and the first storage device is different from the third storage device.
[0034] If the second and third storage devices are the same device, it is understood that the device is logically divided into two parts, one part used to implement the functions of the third storage device and the other part used to implement the functions of the second storage device. The failure of the second storage device as described above is understood to mean that the part used to implement the functions of the second storage device has failed, while the part used to implement the functions of the third storage device is unaffected, i.e., there is no failure. For example, two virtual machines are both deployed on a single computing device, one virtual machine performs the operations of the second storage device as described above, and the other virtual machine performs the operations of the third storage device as described above. In the above description, the failure of the second storage device means that one of the virtual machines has failed.
[0035] 5. The first memory device, the second memory device, and the third memory device are the same device.
[0036] Furthermore, the fact that the first, second, and third storage devices are the same device is equivalent to the fact that the second and third storage devices are the same device. Specifically, one device is logically divided into three parts, and each of the three parts is used to implement the functions of the first, second, and third storage devices.
[0037] In possible implementations, a second storage device within the data processing system supports data access based on one or more protocols; that is, the received data access protocol is generated based on one or more protocols. These protocols include some or all of the following: POSIX, NFS, SMB, and HDFS.
[0038] According to the aforementioned system, the storage device can support multi-protocol data access, and as a result, the data processing system can be applied to multiple scenarios.
[0039] In possible implementations, storage devices within a data processing system may further possess data analysis capabilities. For example, a second storage device may retrieve a data copy or data within a data copy from a first storage device and perform analytical operations on the retrieved data copy or data within a data copy, which may include some or all of querying and statistical collection. Querying refers to requesting data that satisfies certain conditions. Statistical collection refers to collecting the amount of data that satisfies certain conditions through statistics.
[0040] According to the aforementioned system, data access instances have multiple functions, effectively extending the scope of application of the data processing system.
[0041] According to a second aspect, one embodiment of the present application provides a data processing method. The method is performed by a data access instance deployed on a storage device. For beneficial effects, please refer to the relevant description of the first aspect. To facilitate distinction between different data access instances deployed on one or more storage devices, a first data access instance and a second data access instance are used as examples for the purposes of this description. In the method, the first data access instance receives a data access request and accesses data in the storage space of the first data access instance based on the data access request. The storage space of the first data access instance is similar to the storage space of the second storage device described above and may be understood as a hardware component or as storage software such as a file system.
[0042] The first data access instance may further have a data backup function, in other words, the first data access instance backs up the data in its storage space to a storage device. The storage device stores data copies in the form of a data backup chain, which records the data copies backed up to the storage device in backup time series, and the data backed up each time by the first data access instance is used as one data copy in the data backup chain.
[0043] The data processing method further includes some or all of the following:
[0044] (1) Data disaster recovery If the first data access instance fails, the second data access instance replaces the first data access instance, implements the data access functionality, and processes data access requests. When processing a data access request, the second data access instance accesses a copy of the data in the storage device based on the data access request.
[0045] (2) Data hierarchical structure If cold data in the storage space of the first data access instance is already included in the data copy backed up to the storage device, the first data access instance deletes the cold data in its storage space. For example, the first data access instance stores location information for the cold data in its storage space, and this location information indicates the storage location of the cold data in the storage device.
[0046] In possible implementations, when the first data access instance is replaced, the second data access instance backs up the data in its own storage space to a storage device, and the data backed up each time by the second data access instance is used as a single data copy in the data backup chain. When the second data access instance replaces the first data access instance, the data in its storage space is the data stored in the second data access instance's storage space.
[0047] In a possible implementation, after a failure in the first data access instance is corrected, the first data access instance retrieves a data copy backed up by the second data access instance in the data backup chain, and uses the retrieved data copy to restore the data in the first data access instance's storage space.
[0048] In possible implementations, when the first data access instance converts cold data to hot data, the first data access instance restores the data in its own storage space by using the cold data in a data copy backed up on a storage device. For example, the first data access instance retrieves the cold data from the storage device and stores the cold data in its own storage space.
[0049] In possible implementations, if data in the storage space of the first data access instance is damaged or lost, the first data access instance recovers the damaged or lost data by obtaining further copies of the data from the data backup chain and using the obtained copies.
[0050] In possible implementations, when a first data access instance backs up data in its storage space to a storage device, some or all of the following methods are used:
[0051] (1) Incremental backup The first data access instance backs up the data in its storage space to a storage device using an incremental data backup method, and each time the data is backed up, it is used as a single data copy in the data backup chain.
[0052] (2) Full backup The first data access instance backs up the data in its storage space to a storage device in a full-data manner, and each time the data is backed up, it is used as a single data copy in the data backup chain.
[0053] In possible implementations, the deployment methods for the first and second data access instances are flexible. Several deployment methods are listed below.
[0054] 1. The first and second data access instances are deployed on devices other than storage devices. The device on which the first data access instance is deployed is different from the device on which the second data access instance is deployed.
[0055] 2. The first and second data access instances are deployed to devices other than storage devices. The device to which the first data access instance is deployed is the same device to which the second data access instance is deployed.
[0056] 3. The first and second data access instances are deployed on the storage device.
[0057] 4. The first data access instance is deployed on a storage device, and the second data access instance is deployed on a device other than a storage device.
[0058] 5. A second data access instance is deployed on the storage device, and the first data access instance is deployed on a device other than the storage device.
[0059] In possible implementations, the first data access instance is a virtual machine or container, and the second data access instance is also a virtual machine or container.
[0060] In possible implementations, data access requests are based on some or all of the following protocols: POSIX, NFS, SMB, and HDFS.
[0061] In possible implementations, a first data access instance retrieves a data copy or data within a data copy from a storage device, performs analytical operations on the retrieved data copy or data within a data copy, and the analytical operations include some or all of queries and statistical collection.
[0062] According to a third aspect, one embodiment of the present application provides a data processing method. The method is performed by a storage device. For beneficial effects, please refer to the relevant description of the first aspect. The storage device stores data copies in the form of a data backup chain, and the data backup chain records the data copies backed up to the storage device in backup chronological order. In this method,
[0063] Under the control of the first data access instance, the storage device backs up the data in the first data access instance's storage space to the storage device, and each time the data is backed up by the first data access instance, it is used as one data copy in the data backup chain. For example, the first data access instance sends a backup request to the storage device, which is used to request that data be backed up, and the backup request carries the data in the first data access instance's storage space. After the storage device receives the backup request, the storage device stores the data carried by the backup request as a data copy in the storage device based on the backup request.
[0064] If the first data access instance fails, the second data access instance is used as a disaster recovery instance for the first data access instance, and the storage device receives requests (e.g., data requests) from the second data access instance. Data requests are used to request data. In response to the request from the second data access instance, the storage device feeds back the data backed up by the first data access instance to the second data access instance, and the data is a data copy in the data backup chain or data within a data copy.
[0065] In possible implementations, under the control of a second data access instance, a storage device backs up data in the storage space of the second data access instance to the storage device, and the data backed up each time by the second data access instance is used as a single data copy in the data backup chain.
[0066] In possible implementations, if there is damaged or lost data in the storage space of the first data access instance, or after a failure in the first data access instance has been corrected, the first data access instance requests a copy of the data or the data in the copy from the storage device. The storage device then feeds back the data from the storage device to the first data access instance in response to the request.
[0067] In possible implementations, the data copy backed up to the storage device each time by the first data access instance is, All data in the storage space of the first data access instance, or Data written to the storage space of the first data access instance after the last backup, It is part or all of it.
[0068] In possible implementations, the deployment methods for the first data access instance, the second data access instance, and the storage device are flexible. Several deployment methods are listed below.
[0069] 1. The first and second data access instances are deployed on devices other than storage devices. The device on which the first data access instance is deployed is different from the device on which the second data access instance is deployed.
[0070] 2. The first and second data access instances are deployed to devices other than storage devices. The device to which the first data access instance is deployed is the same device to which the second data access instance is deployed.
[0071] 3. The first and second data access instances are deployed on the storage device.
[0072] 4. The first data access instance is deployed on a storage device, and the second data access instance is deployed on a device other than a storage device.
[0073] 5. A second data access instance is deployed on the storage device, and the first data access instance is deployed on a device other than the storage device.
[0074] According to a fourth aspect, an embodiment of the present application further provides a storage device having the functionality to implement the behavior of the storage device in the method instance of the third aspect. For beneficial effects, please refer to the description of the first aspect, which will not be repeated here. The functionality may be implemented by hardware or by running corresponding software in hardware. The hardware or software includes one or more units corresponding to the aforementioned functionality. In a possible design, the structure of a data access instance includes a storage unit and a processing unit. These units can perform the corresponding functionality in the method example of the third aspect. For details, please refer to the detailed description in the method example, which will not be repeated here.
[0075] According to a fifth aspect, one embodiment of the present application further provides a computing device comprising a processor and a memory device. The memory device stores computer program instructions, and the processor is coupled to the memory device, and the processor can invoke computer executable instructions stored in the memory device to execute the method of the second aspect and possible implementations of the second aspect, or the method of the third aspect and possible implementations of the third aspect.
[0076] According to a sixth aspect, the present application further provides a computer-readable storage medium that stores instructions. When the instructions are executed on a computer, the computer becomes capable of performing the methods in the second aspect and possible implementations of the second aspect, or the computer becomes capable of performing the methods in the third aspect and possible implementations of the third aspect.
[0077] According to a seventh aspect, the application further provides a computer program product including instructions. When the computer program product is executed on a computer, the computer becomes capable of performing the method of the second aspect and possible implementations of the second aspect, or the computer becomes capable of performing the method of the third aspect and possible implementations of the third aspect.
[0078] According to the eighth aspect, the present application further provides a computer chip connected to a storage device, the chip being configured to read and execute a software program stored in the storage device, and to perform the methods of the second aspect and possible implementations of the second aspect, or the methods of the third aspect and possible implementations of the third aspect. [Brief explanation of the drawing]
[0079] [Figure 1] This is a diagram illustrating the architecture of the data processing system according to this application. [Figure 2A] This figure shows the structure of the data backup chain according to this application. [Figure 2B] This figure shows the structure of the data backup chain according to this application. [Figure 2C] This figure shows the structure of the data backup chain according to this application. [Figure 3] This is a diagram of the data processing method according to this application. [Figure 4] This is a diagram of the data processing method according to this application. [Figure 5] This is a diagram of the data processing method according to this application. [Figure 6] This is a diagram showing the structure of a data access instance according to this application. [Figure 7] This is a diagram showing the structure of the computing device according to this application. [Modes for carrying out the invention]
[0080] Figure 1 shows a data processing system according to one embodiment of the present application. The data processing system includes a plurality of storage devices 100. Data access instances 200 can be deployed on some or all of the plurality of storage devices 100.
[0081] At least one of the multiple storage devices 100 may be configured to store data copies. A data copy is data that is backed up to the storage device 100 by a data access instance 200 deployed on the storage device in the data processing system. One data copy is data that is backed up to the storage device 100 at one time by a data access instance 200 deployed on the storage device in the data processing system. As shown in Figure 2A, in this embodiment of the application, the storage device 100 stores data copies in the form of a data backup chain. In other words, the storage device 100 establishes data copies backed up to the storage device 100 based on a backup time series. The data copies form a data backup chain based on the backup time. As time elapses, the data backup chain further records the data copies backed up to the storage device 100.
[0082] A storage device 100 configured to store data copies can store data in the storage space of the data access instance 200 in the data backup chain as data copies in the data backup chain, under the control of the data access instance 200.
[0083] The storage device 100 may, upon request from the data access instance 200, further feed back data or data copies in the data backup chain to the data access instance 200.
[0084] For example, a data access instance 200 backs up the data in its storage space to a storage device 100. If there is damaged or lost data in the storage space of the data access instance 200, the data access instance 200 requests a copy of the data backed up to the storage device 100, or the data within that copy, from the storage device. The requested copy of the data or the data is used to recover the damaged or lost data in the storage space of the data access instance 200.
[0085] In another example, if one data access instance 200 fails, another data access instance 200 acts as a disaster recovery instance for the failed data access instance 200, replacing it and implementing the data access functionality. When the data access instance 200 acting as a disaster recovery instance implements the data access functionality and needs to access data, it accesses a copy of the data that was backed up to the storage device 100 before the failed data access instance 200 failed. In other words, the data access instance 200 acting as a disaster recovery instance requests the storage device 100 for the copy of the data that was backed up to the storage device 100 by the failed data access instance 200, or the data within that copy.
[0086] In this embodiment of the present application, the length of the data backup chain is not limited. For example, the data backup chain may be infinitely long, extending indefinitely and recording an infinite number of data copies. In another example, the data backup chain may have a fixed length, and can only record a limited number of data copies. If the length of the data backup chain exceeds a certain length, the storage device 100 shortens the length of the data backup chain by deleting or merging data backups in the data backup chain.
[0087] In this case, the storage device 100 functions as a hardware device having a data storage function. The specific form of the storage device 100 is not limited to this embodiment of the present application and may be, for example, a hardware device such as a server, computer, laptop computer, or mobile terminal.
[0088] At least one of the multiple storage devices 100 can deploy a data access instance 200. In a data processing system, the data access instance 200 is an instance created by using data access as its primary function, and the data access instance 200 is understood as a software module such as a virtual machine or container. In this case, the storage device 100 functions as a hardware device having data processing capabilities. In this embodiment of the present application, the operations that can be performed by the data access instance 200 are understood as operations performed by the storage device 100 on which the data access instance 200 resides. The functionality of the data access instance 200 is understood as the functionality of the storage device 100 on which the data access instance 200 resides.
[0089] In this embodiment of the present application, one storage device 100 may have a data storage function, in other words, it may store data copies. The storage device 100 may further have a data processing function, in other words, it may deploy data access instances on the storage device 100.
[0090] In terms of structure, regardless of the format used by the data access instance 200, the data access instance 200 includes a processing module 210 and a storage space 220.
[0091] The processing module 210 is configured to implement data access (in other words, processing data access requests) and the main functions of the data access instance 200, such as data backup, data disaster recovery, data tiering, and data analysis. The processing module 210 may be a virtual processor or a module virtualized by a processor, or the processing module 210 may be a hardware component such as a processor.
[0092] The memory space 220 is a module configured to store data in the data access instance 200, and “memory space 220” is a module that the data access instance 200 can directly read and write data to. The memory space 220 may be a storage component such as memory, a hard disk drive, or a disk of the storage device 100 on which the data access instance 200 resides. Alternatively, the memory space 220 may be storage software used to store data, such as a file system deployed on the storage device 100 on which the data access instance 200 resides. Alternatively, the memory space 220 may be storage software used to store data, such as a file system deployed on another storage device 100. Any software or hardware module that enables the data access instance 200 to directly access data is applicable to this embodiment of the present application. Since the functionality of the data access instance 200 is understood as the functionality of the storage device 100 on which the data access instance 200 resides, the data access instance 200 is also understood as the memory space 220 of the storage device 100 on which the data access instance 200 resides.
[0093] In this embodiment of the present application, when writing data, the processing module 210 preferentially writes the data to the storage space 220 of the data access instance 200. When reading data, the processing module 210 preferentially reads the data from the storage space 220 of the data access instance 200. If the data to be read is not found in the storage space 220 of the data access instance 200, the processing module 210 reads the data from a data copy stored in the storage device 100.
[0094] Regarding functionality, any data access instance 200 has some or all of the following functions:
[0095] Function 1: Data access and processing of data access requests The data access instance 200 can receive data access requests used to request access to data, and can further process these data access requests, for example, to access data based on the data access requests. In this embodiment of the present application, the data access instance 200 supports data access requests of multiple protocols, in other words, data access requests are generated based on different protocols. For example, the protocols include, but are not limited to, the portable operating system interface (POSIX) protocol, network file system (NFS) protocol, server message block (SMB) protocol, and Hadoop distributed file system (HDFS) protocol.
[0096] The method by which the data access instance 200 accesses data based on a data access request varies depending on the type of data access request. If the data access request is a data write request used to request the writing of data, the data access instance 200 writes the data to its storage space 220 based on the data write request.
[0097] When a data access request is a data read request used to request the reading of data, if the data to be read is located in the storage space 220 of the data access instance 200, the data access instance 200 reads the data from its storage space 220 and feeds back the read data. If the data to be read is located in the storage device 100, the data access instance 200 reads the data from the storage device 100 and feeds back the read data.
[0098] Function 2: Data Backup The data access instance 200 backs up the data in its storage space 220 to the storage device 100, and each time the data is backed up by the data access instance 200, it is stored in the storage device 100 as a single data copy in the data backup chain.
[0099] Data access instance 200 performs data backups using some or all of the following methods:
[0100] Method 1: Full backup A full backup means that the backed-up data is all the data in the storage space 220 of data access instance 200. In other words, each time data is backed up by data access instance 200, it is all the data in the storage space 220 of data access instance 200. Any data copy in the data backup chain is all the data in the storage space 220 of data access instance 200 at the time the data copy is backed up.
[0101] Figure 2B shows an example of the configuration of a data backup chain in the case of a full backup. From Figure 2B, it can be seen that as the backup time progresses, the data of the first backup in Figure 2B includes data A, data B, and data C; the data of the second backup includes data A, data B, data C, and data D; the data of the third backup includes data A, data B, data C, data D, and data E; the data of the fourth backup includes data A, data B, data C, data D, data E, and data F; the amount of data in the data copy backed up to the storage device 100 each time increases, and the data backed up each time includes the data from the last backup.
[0102] Method 2: Incremental backup Incremental backup means that the backed-up data consists only of additional data newly written to the storage space 220 since the last backup. The data access instance 200 only needs to back up the data written to the storage space 220 since the last backup to the storage device 100 each time. Any data copy in the data backup chain is the data written to the storage space 220 between the backup time of the data copy and the backup time of the previous data backup.
[0103] Figure 2C shows an example of the configuration of a data backup chain in the case of incremental backups. From Figure 2C, it can be seen that as the backup time progresses, the data in the first backup in Figure 2B includes data A, data B, and data C, the data in the second backup includes data D, the data in the third backup includes data F and data E, and the data in the fourth backup includes data G. The data included in each data copy backed up to storage device 100 is different from the data in the previous backup.
[0104] The data access instance 200 may perform data backups using one of the methods described above, or a combination of these methods. For example, the data access instance 200 may perform a full backup the first time it performs a data backup, and then perform an incremental backup the next time it performs a data backup.
[0105] Function 3: Data Disaster Recovery If a data access instance 200 in the data processing system fails, in other words, if a data access instance 200 is unable to process data access requests, another data access instance 200 in the data processing system may replace the failed data access instance 200 to implement the data access function and process the data access requests, in other words, implement function 1. This other data access instance is called a disaster recovery instance. Alternatively, the other data access instance 200 may implement function 2, which is to back up the data in the storage space 220 of the other data access instance 200 to the storage device 100.
[0106] Function 4: Data hierarchical structure One method of data tiering is tiering based on the degree of coldness and hotness. For any data access instance 200, the data stored in the storage space 220 of the data access instance 200 is data that can be accessed subsequently, and the data access frequency of the data in the storage space 220 varies. Some data is accessed frequently during a particular period, while some data is accessed rarely or not at all during a particular period. In this embodiment of the present application, in order to effectively use the space of the storage space 220, some data with high data access frequency (high-level data) is stored in the storage space 220 of the data access instance 200. For some data with low data access frequency (low-level data), the storage space 220 does not retain this type of data, but only stores location information of this type of data, because this type of data is backed up to the storage device 100 as part of a data copy. Location information of a data type indicates the storage location of that type of data in the storage device 100.
[0107] In this embodiment of the present application, data is stratified based on data access frequency into hot data (hot data is frequently accessed, e.g., the data access frequency of hot data is greater than a threshold), warm data (warm data is accessed less frequently than hot data, e.g., the data access frequency of warm data is greater than 0 and less than a threshold), and cold data (cold data is rarely accessed, e.g., the data access frequency of cold data is equal to 0). Note that in this specification, the stratification of data into hot data, warm data, and cold data is used as an example. In actual applications, stratification based on data access frequency may be permitted at a finer or coarser granularity. In addition to stratification based on the degree of cold and hot, there may be other stratification methods, e.g., stratification based on data type, where audio data and video data are stratified at different levels, with audio data at a higher level than video data, or stratification based on user level, where VIP user data is at a higher level than general user data. In the three examples, tiering based on the degree of data being cold or hot typically uses blocks as the tiering granularity, without excluding file or object granularity; tiering based on audio and video data uses files as the granularity; and tiering based on VIP users and common users uses users as the granularity, with user-generated data being tiered.
[0108] If cold data exists in memory space 220 and the data copy backed up to memory device 100 already contains the cold data, the data access instance 200 deletes the cold data in memory space 220. The data access instance 200 stores the location information of the cold data in memory space 220. If the data access instance 200 finds that warm data exists in memory space 220, it deletes the warm data and stores the location information of the warm data.
[0109] When cold data is converted to hot data in storage space 220, the data access instance 200 restores the data in storage space 220 by using the cold data already backed up in the data copy in storage device 100. Based on the location information of the stored cold data, the data access instance 200 retrieves the cold data from storage device 100, stores the cold data (in this case, the cold data has been converted to hot data), and deletes the location information of the cold data. If the data access instance 200 detects that warm data has been converted to hot data in storage space 220, it restores the data in storage space 220 by using the warm data already backed up in the data copy in storage device 100. Based on the location information of the stored warm data, the data access instance 200 retrieves the warm data from storage device 100, stores the warm data, and deletes the location information of the warm data.
[0110] Function 5: Data Analysis The data access instance 200 performs analytical operations on data copies stored in the storage space 220 or the storage device 100. The analytical operations in this embodiment of the application include, but are not limited to, queries and statistical collection.
[0111] Query: Data access instance 200 queries data in storage space 220 or data copies stored in storage device 100 for data that meets certain conditions. For example, data access instance 200 queries data in storage space 220 for files with the same or similar file names. As another example, if the current version of file A.txt in storage space 220 is accidentally deleted, data access instance 200 queries the data in storage space 220 to determine if there is a historical version of file A.txt and restores the historical version of file A to the current version.
[0112] Statistics Collection: The data access instance 200 collects data that meets certain criteria from data in the storage space 220 or data copies stored on the storage device 100 through statistics. For example, the data access instance 200 collects files in the storage space 220 based on file size or file type through statistics. For example, if a large amount of storage space 220 is occupied, the data access instance 200 collects files created by each user through statistics and then optimizes the capacity of the storage space 220.
[0113] The following describes how the data access instance 200 implements the aforementioned functions in this embodiment of the present application, with reference to the attached drawings. (For the purposes of this specification, it may also be understood that the storage device 100 in which the data access instance 200 is deployed implements the aforementioned functions.)
[0114] (1) Data access and data backup Figure 3 shows a data processing method according to one embodiment of this application. This method includes the following steps.
[0115] Step 301: Data access instance 200 receives a data access request, which is used to request access to data.
[0116] When a user needs to access data, the user triggers the generation of a data access request, and data access instance 200 receives the data access request.
[0117] Once the data access instance 200 is deployed on the user's storage device 100, the user operates the storage device 100. For example, the user performs operations such as viewing files, inputting data, or transferring files on input / output devices (keyboard, mouse, display screen, etc.) connected to the storage device 100. After the storage device 100 detects the user's actions, a data access request is generated. The data access instance 200 deployed on the storage device 100 receives the data access request.
[0118] Once the data access instance 200 is deployed on the cloud storage device 100, the user establishes a connection to the cloud data access instance 200 by using a client deployed on the user's side. For example, the user interacts with the client to view files, enter data, or transfer files. After the client detects the user's interaction, a data access request is generated. The data access request carries the logical address of the data that the user needs to access. The client sends the data access request to the cloud data access instance 200.
[0119] In this embodiment of the present application, a data access request includes a data read request and a data write request. A data read request is used to request the reading of data, the data read request carries the logical address of the data, and the data used by the data read request to request the reading is the data stored at the logical address. A data write request is used to request the writing of data, the data write request carries the logical address of the data and the data to be written, and the data write request is used to request that the data to be written be stored at the location indicated by the logical address.
[0120] It should be noted that in this embodiment of the present application, the specific form of data access is not limited. For example, data access may be performed on a block level basis (in which case the data storage format for data in storage space 220 and data copies in the data backup chain is block storage), on a file level basis (in which case the data storage format for data in storage space 220 and data copies in the data backup chain is file storage), or on an object level basis (in which case the data storage format for data in storage space 220 and data copies in the data backup chain is object storage). The information carried in a data access request will differ depending on the specific form of data access.
[0121] In block-level data access, a data write request carries the data to be written, the logical unit number (LUN), the logical block addressing (LBA), and the data length. A data read request carries the logical unit number, the logical block number, and the data length of the data to be read. The logical unit number, logical block number, and data length are understood as the logical address of the data.
[0122] In file-level data access, a data write request carries the data to be written, the file path, and the offset. The file path is a string that points to the file, leveling up from the root directory. The offset indicates the offset within the file of the data to be written. A data read request carries the file path and offset of the data to be read. The offset indicates the offset within the file of the data to be read. The file path and offset are essentially understood as logical addresses of data; in other words, the file path and offset function the same as logical addresses of data and are the primary basis for data access.
[0123] In object-level based data access, a data write request carries the data to be written, the object identifier, and the offset, where the object identifier is the unique identifier of the object. The offset indicates the offset within the object of the data to be written. A data read request carries the object identifier and offset of the data to be read, where the offset indicates the offset within the object of the data to be read. The object identifier and offset are essentially understood as logical addresses of the data; in other words, the object identifier and offset have the same function as logical addresses of the data and are the primary basis of data access.
[0124] Step 302: Based on the data access request, the data access instance 200 accesses the data in its storage space 220.
[0125] After receiving a data access request, the data access instance 200 processes the data access request and accesses the data in the storage space 220 based on the data carried in the data access request.
[0126] In this embodiment of the present application, data access is primarily an operation that needs to be performed based on a data access request after the data access request has been received.
[0127] If the data access request is a data write request, the data access instance 200 stores the data to be written in the storage space 220. The location of the data to be written in the storage space 220 is the location indicated by the logical address carried in the data write request.
[0128] If the data access request is a data read request, the data access instance 200 queries the storage space 220 for data based on the logical address of the data carried in the data read request. If the data stored at the logical address is the data that needs to be read, the data access instance 200 retrieves the data directly and feeds it back to the user. If no data is stored at the logical address, the storage space 220 holds location information of the data that needs to be read, and the data access instance 200 retrieves the data from the storage device 100 based on the location information of the data, and then feeds the data back to the user after retrieving it.
[0129] Steps 301 and 302 are the processes by which the data access instance 200 processes data access requests. In addition to processing data access requests, the data access instance 200 can perform data backups periodically or irregularly. See steps 303 and 304 for details.
[0130] Step 303: The data access instance 200 backs up the data in the storage space 220 to the storage device 100. The data access instance 200 initiates a backup request to the storage device 200, which is used to request the storage device 100 to back up the data in the storage space 200. The backup request carries the data in the storage space 220 of the data access instance 200, i.e., the data backed up by the data access instance 200.
[0131] Here, we will use periodic data backups as an example for explanation. Data access instance 200 voluntarily performs data backups at the same intervals. When the backup time arrives, data access instance 200 sends a backup request to storage device 200 and sends the data in storage space 220 to storage device 100. If data access instance 200 performs data backups using a full backup method, when the backup time arrives, data access instance 200 sends all the data in storage space 220 to storage device 100 by using the backup request. If data access instance 200 performs data backups using an incremental backup method, when the backup time arrives, data access instance 200 sends the data newly written to storage space 220 since the last data backup to storage device 100 by using the backup request.
[0132] Aperiodic data backup means that the data access instance 200 performs data backups at different intervals. For example, multiple backup times within a day are pre-configured on the data access instance 200 side, with different intervals between these backup times. When a backup time arrives, the data access instance 200 performs one data backup. In another example, the data access instance 200 passively performs data backups when triggered by a user. For example, if a user needs to perform a data backup, the user sends a backup request to the data access instance 200 to request that it perform the data backup.
[0133] When data in memory space 220 is backed up to storage device 100, it should be noted that the data access instance not only backs up the data stored in memory space 220, but also backs up the data and its metadata to storage device 100. Data metadata is descriptive information about the data. For example, data metadata records the logical address of the data and modification information for the data.
[0134] Here, it is used as an example that data in storage space 220 is stored using a file storage method. When data access instance 200 performs a data backup, in addition to the backup file, the file system metadata is also backed up. The file system metadata describes the hierarchical relationship between directory and file description information within the file system (for example, information such as file iNode).
[0135] Step 304: After receiving a backup request from the data access instance 200, the storage device 100 adds the data backed up by the data access instance 200 as a data copy to the data backup chain.
[0136] When data backed up by data access instance 200 is written to the data backup chain, storage device 100 further marks the backup time of the backed-up data. The backup time may be included in the backup data by data access instance 200, or it may be determined by storage device 100 based on the time the backup was received.
[0137] The data backup chain only describes a method for establishing data copies; in other words, it should be noted that data copies are established in a backup time series. In this embodiment of the present application, the storage format of the data backup chain in the storage device 100 is not limited. For example, the data backup chain in the storage device 100 may be stored in the form of folders, where each folder contains multiple files, each file being a single data copy, and each file further marking the backup time of the data copy.
[0138] Step 305: The data access instance 200 recovers damaged or lost data in the storage space 220 by using a data copy in the data backup chain within the storage device 100. For example, if data in the storage space 220 of the data access instance 200 is damaged, the data access instance 200 sends a data request to the storage device 100. The data request is used to request the retrieval of the damaged data from the storage device 100. The data access instance 200 recovers the data in the storage space 220 by using the retrieved data. In another example, if data is lost in the storage space 220 of the data access instance 200, the data access instance 200 sends a data request to the storage device 100. The data request is used to request the retrieval of the lost data from the storage device 100. The data access instance 200 recovers the data in the storage space 220 by using the retrieved data.
[0139] Here, this is used as an example to illustrate data corruption. Data access instance 200 finds that the data in storage space 220 is corrupted; for example, data access instance 200 finds that the data is incomplete or the data is garbled. If data access instance 200 performs data backup using a full backup method, data access instance 200 obtains the last backed-up data copy in the data backup chain within storage device 100 from storage device 100 by using a data request. After obtaining the data copy, data access instance 200 obtains the complete data corresponding to the corrupted data from the data copy and replaces the corrupted data with the complete data. Data access instance 200 directly obtains the complete data corresponding to the corrupted data from the last backed-up data copy in the data backup chain by using a data request, and then replaces the corrupted data with the complete data. If data access instance 200 performs data backup using an incremental backup method, data access instance 200 first determines the time it took for the corrupted data to be written to storage space 220, and then calculates the backup time for the corrupted data based on the time it took for the corrupted data to be written to storage space 220. The backup time of the damaged data is typically the time of the most recent backup after the damaged data was written to the storage space 220. The data access instance 200 retrieves the complete data corresponding to the damaged data in the data copy at the backup time or in the data copy at the backup time from the data backup chain in the storage device 100 by using a data request, and then recovers the lost data in the storage space 220 by using the retrieved data.
[0140] The data recovery method in cases of data loss is the same as the data recovery method in cases of data corruption. For details, please refer to the explanation above, and we will not repeat the details here.
[0141] (2) Data disaster recovery Figure 4 shows a data processing method according to one embodiment of the present application. For simplicity of explanation, the two data access instances 200 in the data processing method are referred to as data access instance 200A and data access instance 200B, respectively. The method includes the following steps.
[0142] Step 401: If data access instance 200A fails, create data access instance 200B and use data access instance 200B as the disaster recovery instance.
[0143] If data access instance 200A fails (for example, if the device on which data access instance 200A resides is interrupted or a fire occurs), data access instance 200A cannot continue processing data access requests. To continue processing data access requests, data access instance 200B is created. The method of creating data access instance 200B is not limited to this embodiment of the present application. For example, a monitoring module is deployed in the data processing system and monitors the status of data access instance 200 in the data processing system. If the monitoring module determines that data access instance 200A has failed, the monitoring module creates data access instance 200B. In another example, background operations and maintenance personnel monitor the status of data access instance 200 and, after determining that data access instance 200A has failed, the operations and maintenance personnel manually create data access instance 200B.
[0144] Step 402: Data access instance 200B replaces data access instance 200A and receives data access requests.
[0145] Step 403: Data access instance 200B processes the data access request. For example, data access instance 200B reads data from storage device 100 based on the data access request, or data access instance 200B writes data to storage space 220B based on the data access request.
[0146] If the data access request is a data write request, the data access instance 200B stores the data to be written in its storage space 220B. The location of the data to be written in storage space 220B is the location indicated by the logical address carried in the data write request.
[0147] If the data access request is a data read request, the data access instance 200B queries the storage space 220B for data based on the logical address of the data carried in the data read request. If the data is not found, the data access instance 200B requests the data from the storage device 100 based on the logical address. The storage device 100 feeds the data back to the data access instance 200 in response to the request from the data access instance 200B. After retrieving the data from the storage device 100, the data access instance 200 feeds the data back to the user. If the data is found, the data access instance 200B directly retrieves the data from the storage space 220B and feeds that data back to the user.
[0148] Here, an example is used where data in storage space 220B is stored using a file storage method, and a data write request carries the data to be written, the file path, and the offset. Based on the file path, data access instance 200B finds the file to which the data needs to be written and writes the data to the file based on the offset. A data read request carries the file path and offset of the data to be read. Data access instance 200B queries storage space 220 for the file based on the file path. If the file is not found, data access instance 200B requests the data in the data copy from storage device 100 based on the file path. After retrieving the data from storage device 100, data access instance 200B feeds the data back to the user. If the file is found in storage space 220B, data access instance 200B retrieves the data directly from the file based on the offset and feeds the data back to the user.
[0149] From the above explanation, it can be seen that the way in which data access instance 200B processes data access requests is the same as the way in which data access instance 200 processes itself in step 302. The difference is that in step 302, when data access instance 200 stores data in memory space 220 and processes data access requests, data in memory space 220 is accessed preferentially, and data only needs to be retrieved from storage device 100 if no data is stored in memory space 220 (for example, only location information of the data is stored). However, in step 403, since data access instance 200B's memory space 220B does not store all the data in data access instance 200A's memory space 220A, when a data read request is processed, it may not be possible to find the data in memory space 220B. In this case, data access instance 200B needs to access a copy of the data in storage device 100 based on the data access request.
[0150] Step 404: Data access instance 200B backs up the data in storage space 220B to storage device 100.
[0151] Step 403 shows that data access instance 200B writes data to its storage space 220B, and that data access instance 200B performs data backup in the same manner as in step 303. For details on how data access instance 200B performs data backup, please refer to the related explanation in step 303. Details will not be repeated here.
[0152] Step 405: After the failure of data access instance 200A is corrected, data access instance 200A retrieves the data backed up by data access instance 200B from storage device 100 and restores the data in storage space 220A.
[0153] Data access instance 200A retrieves data backed up by data access instance 200B from the data backup chain of storage device 100. If data access instance 200B uses a full backup method, data access instance 200A retrieves the last data copy backed up by data access instance 200B in the data backup chain, stores the data copy in data access instance 200A's storage space 220A, and restores the data in storage space 220A. If data access instance 200B uses an incremental backup method, data access instance 200A retrieves all data copies backed up by data access instance 200B in the data backup chain, stores all retrieved data copies in data access instance 200A's storage space 220A, and restores the data in storage space 220A.
[0154] Step 406: Data access instance 200A continues to process data access requests, while data access instance 200B stops processing data access requests.
[0155] After data access instance 200A recovers the data from storage space 220A, data access instance 200A continues to process data access requests.
[0156] (3) Data hierarchical structure Figure 5 shows a data processing method according to one embodiment of the present application. Cold data and hot data are used as illustrative examples in this method. The method includes the following steps:
[0157] Step 501: Data access instance 200 discovers that cold data resides in storage space 220.
[0158] The data access instance 200 monitors the data access frequency of data in the storage space 220. For example, if it is found that the data access frequency of some data in the storage space 220 has decreased, such as when the data access frequency of that data has already fallen below the data access frequency of cold data, that data becomes cold data.
[0159] Step 502: The data access instance 200 deletes the cold data in the storage space 220. The data access instance 200 stores the location information of the cold data in the storage space 220. The location information of the cold data indicates the storage location of the cold data in the storage device 100.
[0160] If cold data exists in the storage space 220, the data access instance 200 first determines the location information of the cold data. If the data access instance 200 uses a full backup method when performing a data backup, the data access instance 200 determines the last backed-up data copy in the data backup chain of the storage device 100. The storage location of the cold data in the storage device 100 in the data copy is the location information of the cold data. If the data access instance 200 uses an incremental backup method when performing a data backup, the data access instance 200 determines the time when the cold data is written to the storage space 220 and queries the data backup chain of the storage device 100 for the last backed-up data copy after the cold data was written to the storage space 220. The storage location of the cold data in the storage device 100 in the data copy is the location information of the cold data.
[0161] The data access instance 200 obtains the location information of the cold data, deletes the cold data cached in the storage space 220, and retains the location information of the cold data.
[0162] Step 503: Data access instance 200 determines that cold data has been converted to hot data.
[0163] When data access instance 200 monitors the data access frequency of data in storage space 220, it can see that the data access frequency of some cold data in storage space 220 is increasing, and that the data access frequency of the cold data is already higher than that of the hot data. The cold data becomes hot data.
[0164] Step 504: The data access instance 200 retrieves the cold data from the storage device 100 based on the location information of the cold data.
[0165] Step 505: Data access instance 200 deletes the location information of the cold data and caches the cold data in storage space 220.
[0166] After retrieving the cold data, data access instance 200 writes the cold data to the location indicated by the logical address of the cold data, and then deletes the location information of the cold data.
[0167] In the embodiment shown in Figure 5, it should be noted that the storage methods for cold data and hot data in data tiering are described merely as examples. For warm data, the same storage method as for cold data may be used. The local data that the storage space 220 can store and the data that only has location information stored in the storage space 220 may differ depending on the data tiering method in data tiering. However, the principle of data tiering is the same; in other words, in data tiering, the storage space 220 of the data access instance 200 stores data with the highest possible data access frequency, and for data with a low data access frequency, the storage space 220 of the data access instance 200 stores only the location information of the data. In this way, the storage space of the storage space 220 of the data access instance 200 can be used effectively, and as a result, data with a high data access frequency is stored in the storage space 220 as much as possible.
[0168] Based on the same inventive concept as the method embodiments, embodiments of this application further provide a storage device. The storage device is configured to perform a method performed by the storage device in the method embodiments shown in Figures 3 to 5. For relevant features, please refer to the method embodiments described above, which will not be repeated in detail here. As shown in Figure 6, the storage device 600 includes a storage unit 601 and a processing unit 602.
[0169] The storage unit 601 is configured to store data copies in the form of a data backup chain, which records the data copies backed up to the storage device in backup chronological order.
[0170] The processing unit 602, under the control of the first data access instance, backs up the data in the storage space of the first data access instance to a storage device, and the data backed up each time by the first data access instance is used as one data copy in the data backup chain. If the first data access instance fails, it is configured to feed back the data backed up to the storage device by the first data access instance to the second data access instance based on a request from the second data access instance.
[0171] In possible implementations, under the control of the second data access instance, the processing unit 602 backs up the data in the second data access instance's storage space to a storage device, and the data backed up each time by the second data access instance is used as a single data copy in the data backup chain.
[0172] In possible implementations, if data in the storage space of the first data access instance is damaged or lost, the first data access instance sends a data request to the storage device. The processing unit 602, in response to the request from the first data access instance, feeds back data from the data backup chain to the first data access instance. The first data access instance recovers the damaged or lost data in storage space based on the data.
[0173] In possible implementations, the data copies within the storage device are some or all of the following:
[0174] (1) The first data access instance performs data backups by using incremental backups.
[0175] The data copy is the data written to the storage space of the first data access instance after the last backup.
[0176] (2) The first data access instance performs data backups by using full backups.
[0177] A data copy is all the data in the storage space of the first data access instance.
[0178] In possible implementations, the storage device, the first data access instance, or the second data access instance uses some or all of the following deployment methods:
[0179] The first data access instance is deployed on a storage device.
[0180] The second data access instance is deployed on a storage device.
[0181] It should be noted that in this embodiment of the present application, the division into units is merely an example and represents only a logical functional division. Other division methods may be used in actual implementations. The functional units in this embodiment may be integrated into a single processing unit, each unit may exist physically independently, or two or more units may be integrated into a single unit. The integrated unit may be implemented in hardware form or in the form of a software functional unit.
[0182] All or part of the embodiments described above may be implemented using software, hardware, firmware, or any combination thereof. When software is used to implement an embodiment, the embodiments described above may be implemented in whole or in part in the form of a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded into a computer and executed, all or part of the procedures or functions according to the embodiments of the present invention are generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions may be transmitted by wired means (e.g., coaxial cable, optical fiber, or digital subscriber line (DSL)) or wireless means (e.g., infrared, radio, or microwave) from one website, computer, server, or data center to another website, computer, server, or data center. Computer-readable storage media may be any available medium accessible by a computer, or a data storage device such as a server or data center that integrates one or more available media. Available media may be magnetic media (e.g., floppy disks, hard disk drives, or magnetic tapes), optical media (e.g., DVDs), or semiconductor media. Semiconductor media may be solid-state drives (SSDs).
[0183] In a simple embodiment, those skilled in the art will understand that the storage device in the embodiments shown in Figures 3 to 5 may be of the form shown in Figure 7.
[0184] As shown in Figure 7, the computing device 700 includes at least one processor 701, a storage device 702, and optionally a communication interface 703.
[0185] The storage device 702 may be a volatile storage device such as a random access storage device. Alternatively, the storage device may be a non-volatile storage device such as a read-only storage device, flash storage device, hard disk drive (HDD), solid-state drive (SSD), or physical disk. Alternatively, the storage device 702 may be any other medium that can be used to carry or store program code expected in the form of instructions or data structures and that can be accessed by a computer. However, it is not limited to these. The storage device 702 may be a combination of the memories described above.
[0186] In this embodiment of the present application, the specific connecting medium between the processor 701 and the storage device 702 is not limited.
[0187] The processor 701 may be a central processing unit (CPU), or it may be another general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), another programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, an artificial intelligence chip, or a system-on-a-chip. The general-purpose processor may be a microprocessor, any conventional processor, etc.
[0188] When communicating with another device, the processor 701 may perform data transmission via the communication interface 703, for example, by receiving a data request or backup request from a data access instance.
[0189] If the storage device is of the form shown in Figure 7, the processor 701 in Figure 7 may call computer executable instructions stored in the storage device 702, and may enable the computing device to perform the method executed by the storage device in any one of the above-described method embodiments.
[0190] Specifically, the functions / implementation processes of the storage unit and processing unit in Figure 6 may be implemented by the processor 701 in Figure 7 calling computer executable instructions stored in the storage device 702. Alternatively, the functions / implementation processes of the storage unit and processing unit in Figure 6 may be implemented by the processor 701 in Figure 7 calling computer executable instructions stored in the storage device 702, and the receiving or transmitting functions / implementation processes of the processing unit in Figure 6 may be implemented via the communication interface 703 in Figure 7.
[0191] Those skilled in the art will understand that embodiments of this application may be provided as methods, systems, or computer program products. Accordingly, this application may use certain forms of hardware-only embodiments, software-only embodiments, or embodiments combining software and hardware. Furthermore, this application may use the form of computer program products implemented on one or more computer-usable storage media (including, but not limited to, disk storage devices, CD-ROMs, optical storage devices, etc.) containing computer-usable program code.
[0192] This application will be described with reference to flowcharts and / or block diagrams of the methods, devices (systems), and computer program products described herein. It should be understood that computer program instructions may be used to implement each step and / or block in the flowcharts and / or block diagrams, as well as combinations of steps and / or blocks in the flowcharts and / or block diagrams. These computer program instructions may be provided to a processor of a general-purpose computer, a dedicated computer, an embedded processor, or any other programmable data processing device, which may generate a machine, as a result of instructions executed by the processor of the computer or any other programmable data processing device, which generates a device for implementing one or more steps in the flowchart and / or one or more blocks in the block diagram.
[0193] These computer program instructions may, alternatively, be stored in computer-readable memory that can indicate how a computer or any other programmable data processing device should operate in a particular manner, and as a result, the instructions stored in computer-readable memory generate an artifact that includes an instruction unit. The instruction unit implements one or more steps of a flowchart and / or a particular function of one or more blocks of a block diagram.
[0194] Alternatively, computer program instructions may be loaded onto a computer or another programmable data processing device, resulting in a series of operations and steps being executed on the computer or another programmable device to generate a computer implementation. Thus, instructions executed on the computer or another programmable device provide steps for implementing one or more steps in a flowchart and / or specific functions in one or more blocks in a block diagram.
[0195] It is clear that a person skilled in the art can make various modifications and variations to this application, provided they do not deviate from the scope of this application. In this case, if the modifications and changes made to this application fall within the scope of the claims of this application and the equivalent art, this application is intended to cover such modifications and changes. [Explanation of symbols]
[0196] 100 storage devices 200 data access instances 200A Data Access Instance 200B Data Access Instance 210 Processing Modules 220 Memory space 220A storage space 220B storage space 600 storage devices 601 Memory Unit 602 Processing Unit 700 Computing Devices 701 Processor 702 Storage device 703 Communication Interface
Claims
1. A data processing system, wherein the system A first storage device, which stores data copies in the form of a data backup chain, and the data backup chain is configured to record the data copies backed up to the first storage device in backup time chronological order, A second storage device configured to receive data access requests and access data in the storage space of a second storage device based on said data access requests, wherein the second storage device is further configured to back up the data in the storage space of the second storage device to the first storage device, and the data backed up each time by the second storage device is used as one data copy in the data backup chain, Equipped with, The data processing system further comprises a third storage device, wherein if the second storage device fails, the third storage device is configured to access the data copy in the first storage device based on the data access request, on behalf of the failed second storage device, in order to process the data access request, or The second storage device is further configured to delete the low-level data in the storage space of the second storage device if the low-level data in the storage space of the second storage device is already included in the data copy backed up to the first storage device. The data copies are stored in the data backup chain, and the functions of replacement (data disaster recovery), deletion (data tiering), and normal data backup are performed using the same data backup chain. Data processing system.
2. The system according to claim 1, wherein the third storage device is further configured to back up data in the storage space of the third storage device to the first storage device, and the data backed up each time by the third storage device is used as one data copy in the data backup chain.
3. The system according to claim 1 or 2, wherein, if the low-level data is converted to high-level data, the second storage device is further configured to restore the data in the storage space of the second storage device by using the low-level data backed up in the data copy in the first storage device.
4. The system according to claim 1 or 2, wherein if the data in the storage space of the second storage device is damaged or lost, the second storage device is further configured to recover the damaged or lost data by obtaining a copy of the data from the data backup chain and using the copy of the data.
5. When the data in the storage space of the second storage device is backed up to the first storage device, the second storage device, The data in the storage space of the second storage device is backed up to the first storage device using an incremental data method, and each time the data is backed up, it is used as one data copy in the data backup chain. The data in the storage space of the second storage device is backed up to the first storage device in a full-data manner, and each time the backed-up data is used as one data copy in the data backup chain. The system according to claim 1 or 2, configured as follows.
6. The first storage device, the second storage device, or the third storage device are The second storage device and the first storage device are the same device, or The third storage device and the first storage device are the same device. The system according to claim 1 or 2, which uses some or all of the deployment method.
7. The system according to claim 1 or 2, wherein the data access request is based on some or all of the following protocols: Portable Operating System Interface (POSIX) protocol, Network File System (NFS), Server Message Block (SMB) protocol, and Hadoop Distributed File System (HDFS) protocol.
8. The second memory device, The backup data copy is retrieved from the first storage device, and an analysis operation is performed on the data copy, the analysis operation being further configured to include queries and statistical collection. The system according to claim 1 or 2.
9. A data processing method performed by a data access instance deployed on a storage device, wherein the method is The steps include: receiving a data access request by a first data access instance and accessing data in the storage space of the first data access instance based on the data access request; A step of backing up the data in the storage space of the first data access instance to a storage device, wherein the storage device stores data copies in the form of a data backup chain, the data backup chain records the data copies backed up to the storage device in backup time series, and the data backed up each time by the first data access instance is used as one data copy in the data backup chain. Equipped with, The aforementioned data processing method is: (1) If the first data access instance fails, the second data access instance, on behalf of the failed first data access instance, accesses the copy of the data in the storage device based on the data access request in order to process the data access request, or (2) If the low-level data in the storage space of the first data access instance is already included in the data copy backed up to the storage device, the first data access instance deletes the low-level data in the storage space of the first data access instance. It further includes, in part or in whole, The data copies are stored in the data backup chain, and the functions of replacement (data disaster recovery), deletion (data tiering), and normal data backup are performed using the same data backup chain. Data processing method.
10. The method according to claim 9, further configured such that the second data access instance backs up data in the storage space of the second data access instance to the storage device, and the data backed up each time by the second data access instance is used as one data copy in the data backup chain.
11. The method according to claim 9 or 10, wherein, when the low-level data is converted to high-level data, the first data access instance is further configured to restore the data in the storage space of the first data access instance by using the low-level data backed up in the data copy in the storage device.
12. The storage device, the first data access instance, or the second data access instance are The first data access instance is deployed on the storage device, or The second data access instance is deployed on the storage device. The method according to claim 9 or 10, wherein some or all of the deployment method is used.
13. The method according to claim 9 or 10, wherein the data access request is based on some or all of the following protocols: the Portable Operating System Interface POSIX protocol, the Network File System NFS protocol, the Server Message Block SMB protocol, and the Hadoop Distributed File System HDFS protocol.
14. A data processing method performed by a processor coupled to a storage device, wherein the method is performed by the storage device, the storage device stores data copies in the form of a data backup chain, the data backup chain records the data copies backed up to the storage device in backup time series, data access instances are deployed on the storage device, and the method A step of backing up data in the storage space of a first data access instance to a storage device under the control of a first data access instance, wherein the data backed up each time by the first data access instance is used as one data copy in the data backup chain. If the first data access instance fails, the first data access instance provides feedback to the second data access instance based on a request from the second data access instance, wherein the second data access instance is a disaster recovery instance of the first data access instance. Equipped with, A data processing method characterized in that the aforementioned data copy is stored in the aforementioned data backup chain, and the functions of replacement (data disaster recovery), deletion (data tiering), and normal data backup are performed using the same aforementioned data backup chain.
15. The method described above is A step of backing up data in the storage space of the second data access instance to the storage device under the control of the second data access instance, wherein the data backed up each time by the second data access instance is used as one data copy in the data backup chain. The method according to claim 14, further comprising:
16. The method described above is A step of feeding back data in the storage device to the first data access instance in response to a request from the first data access instance, The method according to claim 14 or 15, further comprising:
17. The data that is backed up to the storage device each time by the first data access instance is All data in the storage space of the first data access instance, or Some or all of the data written to the storage space of the first data access instance after the last backup, The method according to claim 14 or 15.
18. The storage device, the first data access instance, or the second data access instance are The first data access instance is deployed on the storage device, or The second data access instance is deployed on the storage device. The method according to claim 14 or 15, wherein some or all of the deployment method is used.
19. A storage device comprising a storage unit and a processing unit, The storage unit is configured to store data copies in the form of a data backup chain, and the data backup chain is configured to record the data copies backed up to the storage device in backup time chronological order. The processing unit is further configured to back up data in the storage space of the first data access instance to the storage device under the control of the first data access instance, to use the data backed up each time by the first data access instance as one data copy in the data backup chain, and, in the event of a failure of the first data access instance, to feed back the data backed up to the storage device by the first data access instance to the second data access instance based on a request from the second data access instance. The data copies are stored in the data backup chain, and the functions of replacement (data disaster recovery), deletion (data tiering), and normal data backup are performed using the same data backup chain. A memory device.
20. The aforementioned processing unit Under the control of the second data access instance, the data in the storage space of the second data access instance is backed up to the storage device, and the data backed up each time by the second data access instance is used as one data copy in the data backup chain. The device according to claim 19, further configured as follows.
21. The aforementioned processing unit When a request is made for the first data access instance, the data in the storage device is fed back to the first data access instance. The device according to claim 19 or 20, further configured as follows.
22. The data copy that is backed up to the storage device each time by the first data access instance is All data in the storage space of the first data access instance, or Data written to the storage space of the first data access instance after the last backup, The device according to claim 19 or 20, which is part or all of the above.
23. The storage device, the first data access instance, or the second data access instance are The first data access instance is deployed on the storage device, or The second data access instance is deployed on the storage device. A device according to claim 19 or 20, which is part or all of the deployment method.