Method, electronic device and computer program product for processing data

By introducing the NVMe-oF protocol into the cloud storage system, assigning a controller to each disk, and redirecting access requests when the access engine is unavailable, the problem of data loss caused by storage server shutdown is solved, resulting in more stable data access capabilities and an improved user experience.

CN115220640BActive Publication Date: 2026-03-27EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-15
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

In cloud storage systems, when storage servers are shut down, all disks immediately become inaccessible, leading to data loss and a large amount of data recovery/rebalancing operations, which imposes a huge overhead on the system.

Method used

The Network Protocol Specification for High-Speed ​​Non-Volatile Storage Interface (NVMe-oF) is introduced, a controller is assigned to each disk, queue pairs are created through the access engine, and access requests are redirected to the available access engine of the second disk management device when the access engine of the first disk management device is unavailable.

Benefits of technology

It enables effective data access even when the access engine is unavailable, improving system stability and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115220640B_ABST
    Figure CN115220640B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to a method, an electronic device and a computer program product for processing data. The method comprises receiving, at a first disk management device in a storage system, an access request for accessing data in a plurality of disks associated with the storage system. The method further comprises determining whether a first access engine in the first disk management device for accessing the plurality of disks is available. The method further comprises redirecting the access request to a second disk management device in the storage system if it is determined that the first access engine is not available, a second access engine in the second disk management device being available for accessing the plurality of disks. With the method, efficient data access can be made in the case that the access engine of the disk management device is not available, a more stable access capability is achieved, and the user experience is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present disclosure relate to the field of data processing, and more particularly, to a method, an electronic device and a computer program product for processing data. BACKGROUND

[0002] With the development of storage technology, more and more data is stored into a storage system, resulting in higher and higher requirements for the access performance of the storage system. In addition, network-based storage systems emerge compared with local storage systems. The network-based storage system can be used to store more data and information for users to access.

[0003] In the network-based storage system, cloud storage has been developed in recent years as a form of cloud service. Cloud storage is a cloud service with data storage as the core. In the use process, the user does not need to understand the management and operation of the storage device, and only needs to access the data of the cloud storage through the application software. However, there are still many problems to be solved in the implementation process of the cloud storage. SUMMARY

[0004] Embodiments of the present disclosure provide a method, an electronic device and a computer program product for processing data.

[0005] According to a first aspect of the present disclosure, a method for processing data is provided. The method comprises receiving, at a first disk management device in a storage system, an access request for accessing data in a plurality of disks associated with the storage system. The method further comprises determining whether a first access engine in the first disk management device for accessing the plurality of disks is available. The method further comprises redirecting the access request to a second disk management device in the storage system if it is determined that the first access engine is not available, a second access engine in the second disk management device being available for accessing the plurality of disks.

[0006] According to a second aspect of the present disclosure, an electronic device is provided. The electronic device comprises at least one processor; and a memory coupled to the at least one processor and having stored therein instructions that, when executed by the at least one processor, cause the device to perform actions comprising receiving, at a first disk management device in a storage system, an access request for accessing data in a plurality of disks associated with the storage system; determining whether a first access engine in the first disk management device for accessing the plurality of disks is available; and redirecting the access request to a second disk management device in the storage system if it is determined that the first access engine is not available, a second access engine in the second disk management device being available for accessing the plurality of disks.

[0007] According to a third aspect of the present disclosure, there is provided a computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions that, when executed, cause a machine to perform the steps of the method of the first aspect of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0008] The above and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings in which like reference characters refer to like parts throughout the several views.

[0009] Figure 1 FIG. 1 illustrates a schematic diagram of an example environment 100 in which devices and / or methods according to embodiments of the present disclosure can be implemented;

[0010] Figure 2 FIG. 3 illustrates a flowchart of a method 300 for processing data according to embodiments of the present disclosure;

[0011] Figure 3 FIG. 3 illustrates a schematic diagram of an example environment 300 in which an access engine is not available according to embodiments of the present disclosure;

[0012] Figure 4 FIG. 4 illustrates a schematic block diagram of an example device 400 suitable for use in implementing embodiments of the present disclosure.

[0013] In the various drawings, like or corresponding reference numbers refer to like or corresponding parts. DETAILED DESCRIPTION

[0014] Embodiments of the present disclosure will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the present disclosure are shown. Like numbers refer to like elements throughout. The present disclosure may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art.

[0015] In the description of embodiments of the present disclosure, the term "including" and its derivatives, shall be understood as comprising but not limited to. The term "based on" shall be understood as "based, at least in part, on". The term "one embodiment" or "an embodiment" shall be understood as "at least one embodiment". The term "first", "second", and the like, can refer to different or same objects. Other explicit or implicit definitions can also be included below.

[0016] The principles of the present disclosure will now be described with reference to several example embodiments illustrated in the drawings. While the preferred embodiments of the present disclosure are shown in the drawings, it is understood that the embodiments are merely for the purpose of better illustrating the present disclosure and are not intended to limit the scope of the present disclosure in any way.

[0017] In a cloud storage system, a plurality of disk management devices are included, each of which includes a manager and a local storage server. The manager can be, for example, a data service component. The manager can be used to send I / O requests to the storage servers in the plurality of disk management devices. While the storage servers in each disk management device are only used to manage a plurality of local disks connected to the disk management device. In this process, the storage server is responsible for providing the received sent I / O request to the target disk in the plurality of disks connected to the disk management device. Then each I / O request is executed on the target disk.

[0018] On each disk management device, the storage server communicates with the disk management device using the Transmission Control Protocol (TCP).

[0019] However, in the current architecture, if a storage server is closed for some reason, all the disks at that disk management device will be immediately inaccessible. Therefore, all the data stored on these disks will be considered lost, which will result in many data protection operations such as data recovery / rebalancing and bring great overhead to the entire system.

[0020] To solve the above problem, the network protocol specification based on the high-speed non-volatile storage interface (Non-Volatile Memory Express over Fabrics, NVMEoF) is introduced into the cloud storage system. In the basic structure of NVMe-oF, a controller is assigned to each disk, which processes command encapsulation sent from the host within the disk management device.

[0021] Each access engine acts as a host in the basic structure of NVMe-oF, which is used to create a queue pair connected to each controller on the disk. The access engine is, for example, a Non-Volatile Memory express (NVMe) engine. At this time, the access engine receives data access requests from the data service, and then sends the data access requests to the corresponding disk. Compared with the storage server, the access engine can access all the disks in the storage system.

[0022] However, if the access engine in a disk management device terminates, although the disks associated with that device remain visible to the storage system and accessible from other disk management devices, the access engine on that device will lose its connection to each disk because it has stopped providing service. Therefore, all I / O requests generated by the manager of that disk management device will fail. For example, if a client sends a request to that disk management device, all requests will fail.

[0023] To address at least the aforementioned and other potential problems, embodiments of this disclosure propose a method for processing data. In this method, an access request for accessing data in multiple disks associated with the storage system is received at a first disk management device in the storage system. It is then determined whether a first access engine in the first disk management device for accessing the multiple disks is available. If the first access engine is determined to be unavailable, the access request is redirected to a second disk management device in the storage system, where a second access engine is available for accessing the multiple disks. This method enables effective data access even when the access engine of a disk management device is unavailable, achieving more stable access capabilities and improving the user experience.

[0024] The embodiments of this disclosure will now be described in further detail with reference to the accompanying drawings. Figure 1 A block diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown. It should be understood that the example environment 100 is described for illustrative purposes only and does not imply any limitation on the scope of the present disclosure.

[0025] like Figure 1 As shown, the example environment 100 includes disk management devices 102-1, 102-2, ..., 102-K, where K is a positive integer. For ease of description, the above disk management devices can also be collectively referred to as disk management device 102.

[0026] Disk management device 102 includes, but is not limited to, personal computers, server computers, handheld or laptop devices, mobile devices (such as mobile phones, personal digital assistants (PDAs), media players, etc.), multiprocessor systems, consumer electronics, minicomputers, mainframe computers, and distributed computing environments that include any of the above systems or devices.

[0027] Each disk management device 102 includes a manager and an access engine. For example, disk management device 102-1 includes manager 104-1 and access engine 106-1, disk management device 102-2 includes manager 104-2 and access engine 106-2, and disk management device 102-K includes manager 104-K and access engine 106-K. For ease of description, manager 104-1, manager 104-2, and manager 104-K can be collectively referred to as manager 104, and access engine 106-1, access engine 106-2, and access engine 106-K can be collectively referred to as access engine 106.

[0028] In system 100, there can be N disks at each disk management device, where N is a positive integer. For example, there are disk 108-01, disk 108-02, …, disk 108-0N at disk management device 102-1, disk 108-11, disk 108-12, …, disk 108-1N at disk management device 102-2, and disk 108-K1, disk 108-K2, …, disk 108-KN at disk management device 102-K. For ease of description, disk 108-01, disk 108-02, disk 108-0N, disk 108-11, disk 108-12, disk 108-1N, disk 108-K1, disk 108-K2, and disk 108-KN can be collectively referred to as disk 108.

[0029] Figure 1 The example of having N disks at each disk management device is merely an example, and is not a specific limitation of the present disclosure. The number of disks at each disk management device can be different, and can be any suitable number.

[0030] Manager 104 can be configured to receive an access request from a user or a redirected access request from another disk management device.

[0031] In some embodiments, manager 104 determines whether the access request is an access request from a user or a redirected access request from another disk management device based on a type of access request identifier set in the received access request. In some embodiments, manager 104 determines whether the access request is an access request from a user or a redirected access request from another disk management device based on whether an identifier of another disk management device is included in the received access request. The above examples are merely used to describe the present disclosure, and are not specific limitations of the present disclosure. Those skilled in the art can set any suitable way to distinguish whether an access request is from a user or from another disk management device.

[0032] If the access request is a redirected access request from another disk management device, it can be directly determined that the first access engine 106 is available, and the access operation is performed through the first access engine 106.

[0033] If the access request is from a user, it is necessary to detect whether the first access engine 106 in the first disk management device 102 for accessing the disk is available. In some embodiments, the manager 104 can monitor the status of the local access engine and the access engines of other disk management devices. If the access engine is not available, its status flag is set to not available. Therefore, it can be determined whether the access engine is available by detecting the status flag of the access engine. In some embodiments, the manager 104 can obtain a list of the access engines that are not available and a list of the access engines that are available. Then it is determined whether the access engine is available by looking up from the above lists. The above examples are only used to describe the present disclosure, but not to limit the present disclosure. Any suitable way can be set by those skilled in the art to determine whether the access engine is available.

[0034] In addition, the manager 104 also updates the received access request from the user. Alternatively or additionally, the update of the access request can also include adjusting the format of the access request.

[0035] The update of the access request is described below in combination with the access request being a write request or a read request. In one example, the received access request is a read request from a user. The read request includes the identification of the user and the identification of the file to be read. The manager 104 obtains a list of the stored files and the corresponding storage locations, including the disk identification and the storage location in the disk. Then the manager 104 looks up the storage location corresponding to the file identification to be read from the list. Then the obtained storage location is added to the read request to obtain an updated read request. For example, the storage location is added to the read request to generate an updated read request or the file identification in the read request is replaced by the storage location to generate an updated read request. The above examples are only used to describe the present disclosure, but not to limit the present disclosure.

[0036] In another example, the received access request is a write request from a user. The write request from the user includes the identification of the user and the identification of the file to be written and the data. The manager 104 obtains the disks available for storing the data from the plurality of disks. Then the disk identification is added to the write request to generate an updated write request. Alternatively or additionally, in order to ensure that the data is recoverable, a plurality of write requests corresponding to the updated write request can also be generated, each of which includes the same file data but assigns a different disk identification for storage to form a plurality of backups of the stored file data. The above examples are only used to describe the present disclosure, but not to limit the present disclosure.

[0037] In some embodiments, the manager 104 first determines whether the first access engine 106 is available after receiving the access request of the user, and if not, updates the access request. The updated access request is then redirected to the second management device. If the first access engine 106 is available, the updated access request is sent directly to the first access engine for processing after the update of the access request.

[0038] In some embodiments, the manager 104 first updates the access request after receiving the access request of the user, and then determines whether the first access engine 106 is available. If available, the updated access request is sent to the first access engine for processing, and if not, the updated access request is redirected to the second management device.

[0039] In some embodiments, the manager 104, after receiving the access request of the user, does not update the access request if it is determined that the first access engine is not available, but is directly redirected to the second disk management device. If it is determined that the first access engine is available, the access request is updated. The updated access request is then sent to the first access engine. The above examples are only used to describe the present disclosure, but not to limit the present disclosure.

[0040] In some embodiments, when the first access engine is not available, the manager 104 also needs to determine the available management engine and its corresponding disk management device. Then one of the disk management devices is selected as the second disk management device for redirection of the access request. The manager of the second disk management device receiving the redirected access request sends the received redirected updated access request to its access engine to perform the access operation. After the access operation is successful, the corresponding information is returned from the second management device to the first management device.

[0041] In some embodiments, the redirected access request received by the first disk management device is an updated access request. In some embodiments, the redirected access request received by the first disk management device includes an updated access request and an un-updated access request. Then the two kinds of redirected access requests are distinguished according to the identification information. When the redirected access request is an updated access request, the processing of the access request is directly performed, and if the redirected access request is an un-updated access request, the access request is updated, and then the operation of the updated access request is performed. The above examples are only used to describe the present disclosure, but not to limit the present disclosure.

[0042] Through the above method, effective data access can be performed when the access engine of the disk management device is not available, the access capability is more stable, and the user experience is improved.

[0043] The above is described in combination with Figure 1A block diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is described. The following discussion Figure 2 A flowchart of a method 200 for processing data according to embodiments of the present disclosure is described. The method 200 can be performed at the disk management device 102 in the storage system 100 and any suitable computing device. Figure 1

[0044] As shown in FIG. 1, the storage system 100 includes a plurality of disk management devices 102 and a plurality of disks 104. The disk management devices 102 are configured to manage the disks 104. The disk management devices 102 can be configured to manage the disks 104 in the same way or in different ways. The disk management devices 102 can be configured to manage the disks 104 in the same way or in different ways. The disk management devices 102 can be configured to manage the disks 104 in the same way or in different ways. Figure 2 As shown in FIG. 2, at block 202, at a first disk management device 102 in the storage system, an access request for accessing data in a plurality of disks associated with the storage system is received. The first disk management device 102 can be configured to receive the access request sent thereto by a user or the access request redirected to the first disk management device 102 from another management device.

[0045] At block 204, the first disk management device 102 determines whether a first access engine 106 in the first disk management device 102 for accessing the plurality of disks is available. After the access request is received by the first disk management device 102, it is necessary to determine whether the access engine within the disk management device can be utilized to access the plurality of disks in the storage system.

[0046] In some embodiments, the disk management device 102 obtains the status information of the first access engine, for example, a status table of the access engines of the respective disk management devices in the storage system is stored in the disk management device 102. The status information of the first access engine is determined according to the status table. Alternatively or additionally, an application for monitoring the status of the access engine is provided in the disk management device 102. If it is determined that the status information indicates that the first access engine is malfunctioning, it is determined that the first access engine is unavailable. If the first access engine is not indicated to be malfunctioning, it is indicated that the first access engine is available. In this way, it can be quickly determined whether the access engine is available.

[0047] In some embodiments, the disk management device 102 can determine the workload of the first access engine 106. The workload of the first access engine 106 is then compared with a threshold workload. If the workload exceeds the threshold workload, it is determined that the first access engine is unavailable. If the workload does not exceed the threshold workload, it is determined that the first access engine is available. In this way, it can be quickly determined whether the access engine is available according to the workload.

[0048] In some embodiments, it can be determined whether the first access engine is malfunctioning first. The determination of the workload is made when the first access engine is not malfunctioning. Only when the first access engine is not malfunctioning and the workload is within the threshold workload, it is determined that the first access engine is available, otherwise it is determined that the first access engine is unavailable. The above examples are only used to describe the present disclosure, but not to limit the present disclosure. Those skilled in the art can set any suitable way to determine whether the access engine is available.​

[0049] In some embodiments, it can be determined whether the access request is a redirected access request from the other disk management device or an access request from the user by accessing the type of the access request or whether the identification of the other disk management device is included in the access request.

[0050] In one example, if it is determined that the identification of the third disk management device in the storage system is included in the access request, it indicates that the access request is a redirected access request from the other disk management device, and if the identification of the third disk management device is not included, it indicates that the access request is an access request from the user. In another example, the type of the access request identifies whether the access request is a redirected access request from the other disk management device or an access request from the user. The above examples are only used to describe the present disclosure, and are not specific limitations of the present disclosure. Those skilled in the art can set any suitable way to determine whether the access request is a redirected access request or an access request from the user.

[0051] When the access request is a redirected access request, it can be determined that the first access engine is available. In the above manner, it can be quickly determined whether the first access engine is available. When the access request is an access request from the user, it is necessary to determine whether the first access engine is available.

[0052] At block 206, if it is determined that the first access engine is not available, the first disk management device 102 redirects the access request to a second disk management device in the storage system, and a second access engine in the second disk management device is available to access the plurality of disks.

[0053] Figure 3 A schematic diagram of an example environment 300 in which an access engine is not available is shown in accordance with an embodiment of the present disclosure. As shown in the example environment 300, the access engine 106-2 in the disk management device 102-2 is not available, and therefore the disk 108 cannot be accessed by the access engine 106-2. Therefore, the access request received by the disk management device 102 is redirected to one of the disk management devices connected thereto. Figure 3

[0054] Returning to FIG. 2, if it is determined that the first access engine is available, the access request can be updated, and then the access request is processed by the first access engine. Figure 2

[0055] ​​In some embodiments, the access request is an access request from a user and the first access engine 106 is determined to be unavailable, the first disk management device 102 determines a group of disk management devices in the storage system that have access engines available to access the plurality of disks. The first disk management device then selects one disk management device from the group of disk management devices as the second disk management device. In this way, the second disk management device for processing the access request can be quickly determined.

[0056] In some embodiments, the received access request is a read request from a user, the read request includes an identification of a file to be read. At this time, the first disk management device 102 obtains a mapping relationship between the identification of the stored file and the storage location of the stored file. For example, a list of stored file identifications and corresponding storage locations is obtained. The first disk management device 102 then looks up the identification of the target stored file corresponding to the identification of the file to be read from the mapping relationship. The read request is updated by adding the target storage location corresponding to the identification of the target stored file to the read request. The updated read request is then redirected to the second disk management device. In this way, the read request can be quickly redirected to the second disk management device for processing.

[0057] In some embodiments, the received access request is a write request from a user, the write request includes data to be written to a file. The first disk management device 102 determines a storage location from the plurality of disks that is available to store the data to be written to the file. The write request is then updated by adding the storage location to the write request. The first disk management device 102 redirects the updated write request to the second disk management device. In this way, the write request can be quickly redirected to the second disk management device for processing.

[0058] In some embodiments, the first disk management device 102 determines whether the first access engine is available after updating the access request from the user as described above. If not available, the updated access request is redirected to the second disk management device for processing. If available, the first access engine is directly used for access processing.

[0059] In some embodiments, if the first access engine is not available, the access request obtained from the user can be directly redirected to the second disk management device, and then the update of the access request is performed in the second disk management device. The above examples are only used to describe the present disclosure, and are not specific limitations of the present disclosure.

[0060] In some embodiments, if the redirected access request received by the first disk management device is not an updated access request, the first disk management device performs an update operation on the access request. Then the access operation is performed through the first access engine. If it is an updated access request, the access operation is directly performed through the first access engine. The above example is only used to describe the present disclosure, and is not a specific limitation of the present disclosure.

[0061] Through the above method, effective data access can be performed in the case that the access engine of the disk management device is unavailable, more stable access capability is achieved, and user experience is improved.

[0062] Figure 4 A schematic block diagram of an example device 400 that can be used to implement embodiments of the present disclosure is shown. Figure 1 The disk management device 102 in the above embodiment can be implemented by using the device 400. As shown, the device 400 includes a central processing unit (CPU) 401, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 402 or loaded from a storage page 408 to a random access memory (RAM) 403. In the RAM 403, various programs and data required for the operation of the device 400 can also be stored. The CPU 401, the ROM 402, and the RAM 403 are connected to each other through a bus 404. An input / output (I / O) interface 405 is also connected to the bus 404.

[0063] A plurality of components in the device 400 are connected to the I / O interface 405, including an input unit 406 such as a keyboard, a mouse, etc., an output unit 407 such as various types of displays, a loudspeaker, etc., a storage page 408 such as a magnetic disk, an optical disk, etc., and a communication unit 409 such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 409 allows the device 400 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.

[0064] The various processes and processes described above, such as the method 200, can be performed by the processing unit 401. For example, in some embodiments, the method 200 can be implemented as a computer software program, which is tangibly contained in a machine-readable medium such as the storage unit 408. In some embodiments, part or all of the computer program can be loaded and / or installed on the device 400 via the ROM 402 and / or the communication unit 409. When the computer program is loaded into the RAM 403 and executed by the CPU 401, one or more actions of the method 200 described above can be performed.

[0065] The present disclosure can be a method, apparatus, system, and / or computer program product. The computer program product can include a computer-readable storage medium (or media) having computer readable program instructions thereon for performing various aspects of the present disclosure.

[0066] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0067] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0068] Computer readable program instructions for carrying out operations of the present disclosure can be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

[0069] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0070] These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can include random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other data storage device. When the computer readable program instructions are loaded into the computer and other programmable data processing apparatus, a series of operational steps are implemented that provide processes such that the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0071] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0072] The flow diagrams and the block diagrams in the drawings are presented to illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flow diagrams and the block diagrams can represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logic functions. In some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks can sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flow diagrams, and combinations thereof, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and

[0073] Embodiments of the present disclosure have been described above, and the description is intended to be illustrative of the embodiments and not restrictive. Many modifications and variations of the described embodiments are possible and are within the scope of the disclosure. The selection of terms is intended to best describe the principles of the embodiments, practical application, or improvement over the technology in the art, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for processing data, comprising: At a first disk management device that operates as part of a storage system and includes a processor, a first access request for accessing data in a plurality of disks associated with the storage system is received at a first time, wherein the first access request identifies a first file; Get the list of available access engines and the list of unavailable access engines; Based on the list of available access engines and the list of unavailable access engines, it is determined that the first access engine in the first disk management device, which is used to access the plurality of disks, is available at the first time. In response to determining that the first access engine is available at the first time, the first storage location corresponding to the file in the storage system is added to the first access request, resulting in an updated access request; At the first disk management device, a second access request for accessing the data in the plurality of disks associated with the storage system is received at a second time, wherein the second access request identifies a second file; Based on the list of available access engines and the list of unavailable access engines, it is determined that the first access engine is unavailable at the second time. as well as In response to determining that the first access engine is unavailable at the second time, the second access request is redirected to a second disk management device in the storage system without adding a second storage location to the second access request, wherein the second access engine in the second disk management device can be used to access the plurality of disks.

2. The method of claim 1, wherein determining that the first access engine is unavailable includes: Monitor the status of the first access engine and at least one other access engine besides the first access engine; Based on the monitoring results, the first access engine is indicated to be unavailable, and the status flag of the first access engine is updated. as well as Checking the status flags of the first access engine leads to the determination that the first access engine is unavailable.

3. The method according to claim 1, further comprising: Determine the workload of the first access engine, wherein determining that the first access engine is unavailable is in response to determining that the workload exceeds a threshold workload.

4. The method of claim 1, wherein redirecting the second access request to a second disk management device in the storage system comprises: Identify a set of disk management devices in the storage system that have access engines that can be used to access the plurality of disks; as well as Select a disk management device from the group of disk management devices, and designate the disk management device as the second disk management device.

5. The method according to claim 1, further comprising: In response to determining that the access request includes the identifier of a third disk management device in the storage system, the first access engine is determined to be available.

6. The method of claim 1, wherein the first access request is a read request, the read request includes a first identifier of the first file, and wherein adding the first storage location to the first access request includes: obtaining a second identification of a stored file that includes the first file and a mapping relationship between storage locations of the stored file including the first storage location; finding, from the mapping relationship, a third identification of a target stored file corresponding to the first identification of the first file; updating the read request by adding a target storage location corresponding to the third identification of the target stored file to the read request, resulting in an updated read request, wherein the updated read request is the updated access request.

7. The method of claim 1, wherein the first access request is a write request that includes data of the first file, and wherein adding the first storage location to the first access request comprises: determining the first storage location from the plurality of disks based on the first storage location being available to store the data of the first file; and updating the write request by adding the first storage location to the write request, resulting in an updated write request, wherein the updated write request is the updated access request.

8. The method of claim 7, wherein the updated access request is a first updated access request, and wherein the method further comprises: determining the second storage location from the plurality of disks based on the second storage location being available to store the data of the file; and generating a second updated access request by adding the second storage location to the write request.

9. A first disk management device comprising a processor in a storage system, comprising: at least one processor; and memory coupled to the at least one processor and having instructions stored thereon that, when executed by the at least one processor, cause the first disk management device to perform operations comprising: receiving an access request to access data in a plurality of disks associated with the storage system, wherein the access request identifies a file stored by the storage system corresponding to the data; obtaining a list of available access engines and a list of unavailable access engines; determining, based on the list of available access engines and the list of unavailable access engines, whether a first access engine in the first disk management device that is available to access the plurality of disks is unavailable; based on determining that the first access engine is available, adding a storage location in the storage system and corresponding to the file to the access request, resulting in an updated access request; and based on determining that the first access engine is unavailable, redirecting the access request to a second disk management device in the storage system without adding the storage location to the access request, wherein a determination in the second disk management device is based on a second access engine in the list of available access engines being available to access the plurality of disks. ​ ​ ​ 10. The first disk management device of claim 9, wherein the first access engine and the second access engine are part of a set of access engines configured to have access to the plurality of disks when available, and wherein the operations further comprise: monitoring a status of the first access engine and at least one other access engine; and updating a status flag of the first access engine in response to determining that the first access engine is unavailable; wherein determining whether the first access engine is unavailable comprises checking the status flag of the access engine.

11. The first disk management device of claim 9, wherein determining whether the first access engine is available comprises: determining a workload of the first access engine; and determining that the first access engine is unavailable in response to determining that the workload exceeds a threshold workload.

12. The first disk management device of claim 9, wherein redirecting the access request to a second disk management device in the storage system comprises: determining a set of disk management devices in the storage system that have an access engine available to access the plurality of disks; and selecting one disk management device from the set of disk management devices and designating the disk management device as the second disk management device.

13. The first disk management device of claim 9, wherein the access request is a read request, the read request includes a first identification of the file, and wherein adding the storage location to the access request comprises: obtaining a mapping relationship between a second identification of a stored file that includes the file and a storage location that includes the stored file; looking up a third identification of a target stored file corresponding to the first identification of the file from the mapping relationship; and updating the read request by adding a target storage location corresponding to the third identification of the target stored file to the read request, resulting in an updated read request, wherein the updated read request is the updated access request.

14. The first disk management device of claim 9, wherein the access request is a write request, the write request includes data of the file, and adding the storage location to the access request comprises: determining the storage location from the plurality of disks based on the storage location being available to store the data of the file; and updating the write request by adding the storage location to the write request, resulting in an updated write request, wherein the updated write request is the updated access request.

15. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions, wherein the machine executable instructions, when executed by a first disk management device in a storage system, cause a machine to perform operations comprising: receiving an access request to access data in a plurality of disks associated with the storage system, the data being associated with a file stored by the storage system and identified in the access request; and updating the access request to include a storage location in the storage system that is available to store the data of the file. obtaining a list of available access engines and a list of unavailable access engines; determining, based on the list of available access engines, whether a first access engine in the first disk management device for accessing the plurality of disks is unavailable; in response to determining that the first access engine is available, adding a storage location corresponding to the file in the storage system to the access request, resulting in an updated access request; and in response to determining that the first access engine is unavailable: determining, based on the list of available access engines, that a second access engine in a second disk management device in the storage system is available for accessing the plurality of disks; in response to determining that the second access engine is available, redirecting the access request to the second disk management device in the storage system without adding the storage location to the access request.

16. The computer program product of claim 15, wherein determining whether the first access engine is unavailable comprises: at least one of: obtaining status information of the first access engine, or determining a workload of the first access engine; and at least one of: determining that the status information indicates that the first access engine has a fault, resulting in determining that the first access engine is unavailable, or determining that the workload exceeds a threshold workload, resulting in determining that the first access engine is unavailable.

17. The computer program product of claim 15, wherein redirecting the access request to the second disk management device in the storage system comprises: determining a set of disk management devices in the storage system that have access engines available for accessing the plurality of disks; and selecting a disk management device from the set of disk management devices and designating the disk management device as the second disk management device.

18. The computer program product of claim 15, wherein determining whether the first access engine is unavailable further comprises: in response to determining that the access request includes an identification of a third disk management device in the storage system, determining that the first access engine is available.

19. The computer program product of claim 15, wherein the access request is a read request, the read request includes a first identification of the file, and wherein adding the storage location to the access request comprises: obtaining a mapping relationship between second identifications of stored files including the file and storage locations of the stored files; looking up, from the mapping relationship, a third identification of a target stored file corresponding to the first identification of the file; and updating the read request by adding a target storage location corresponding to the third identification of the target stored file to the read request, resulting in the updated access request.

20. The computer program product of claim 15, wherein the access request is a write request, the write request includes data of the file, and wherein adding the storage location to the access request comprises: determining the storage location from the plurality of disks based on the storage location being available for storing the data of the file. ​ ​ ​ The write request is updated by adding the storage location to the write request, resulting in the updated access request.

Citation Information

Patent Citations

  • Method and system for recovering from failure in data storage systems

    CN1776642A

  • System and Method for Data Access and Replication in a Distributed Environment Utilizing Data Derived from Data Access within the Distributed Environment

    US20150261468A1