Method, apparatus and program product for managing a computing system based on a client / server architecture
Patent Information
- Application Number
- CN202110743316.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-07-01
- Publication Date
- 2026-09-04
- Estimated Expiration
- 2041-07-01
Smart Images

Figure CN115562562B_ABST
Abstract
Description
Technical Field
[0001] The various implementations of this disclosure relate to storage systems, and more specifically, to methods, apparatus, and computer program products for managing storage systems based on a client / server architecture. Background Technology
[0002] With the development of data storage technology, various data storage devices are now able to provide users with increasingly higher data storage capabilities, and data access speeds have also improved significantly. While improving data storage capabilities, users are also placing increasingly higher demands on data reliability and the response time of storage systems. Currently, various data storage systems based on Redundant Array of Independent Disks (RAID) have been developed to improve data reliability. When one or more disks in a storage system fail, the data on the failed disks can be reconstructed from data on other normally functioning disks.
[0003] Mapped RAID has been developed. In mapped RAID, a disk is a logical concept and can comprise multiple blocks. The blocks within a logical disk can be distributed across different physical storage devices in a resource pool. For multiple blocks within a stripe of mapped RAID, these blocks should be distributed across different physical storage devices. This allows for a rebuild operation to be performed to recover data from the physical storage devices containing the other blocks when one of the blocks fails.
[0004] Storage systems can include user data and control data. User data represents the data itself being stored, such as user documents, images, and videos. Control data represents the data required to maintain the normal operation of the storage system, such as metadata related to user data. Managing the various types of data within a storage system during its operation presents a significant technical challenge. Summary of the Invention
[0005] Therefore, there is a desire to develop and implement a technical solution for managing storage systems in a more efficient manner. This solution is expected to be compatible with existing storage systems and, through modifications to various configurations of existing storage systems, to manage them more effectively.
[0006] According to a first aspect of this disclosure, a method for managing a storage system is provided, the method being implemented at a server of the storage system. In this method, an address mapping of the storage system is managed, the address mapping including associations between storage spaces in a plurality of storage devices in the storage system and users of the storage system. Based on the address mapping, data access services are provided to clients associated with users, wherein the clients include at least one of a user data client for accessing user data associated with the user in the storage system and a control data client for accessing control data associated with the user.
[0007] According to a second aspect of this disclosure, an electronic device is provided, comprising: at least one processor; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions causing the device to perform a method according to a first aspect of this disclosure when executed by the at least one processor.
[0008] According to a third aspect of this disclosure, a computer program product is provided, which is tangibly stored on a non-transient computer-readable medium and includes machine-executable instructions for performing the method according to a first aspect of this disclosure. Attached Figure Description
[0009] The features, advantages, and other aspects of various implementations of this disclosure will become more apparent from the accompanying drawings and the following detailed description, which illustrate, by way of example and not limitation, several implementations of this disclosure. In the drawings:
[0010] Figure 1 A block diagram of a storage system according to a technical solution is shown schematically;
[0011] Figure 2 A block diagram of a storage system according to an exemplary implementation of the present disclosure is shown schematically;
[0012] Figure 3 A flowchart illustrating an exemplary implementation of this disclosure for managing a storage system is shown schematically;
[0013] Figure 4 A block diagram illustrating a client / server-based architecture for managing a storage system according to an exemplary implementation of this disclosure is shown.
[0014] Figure 5 A block diagram illustrating an exemplary implementation of this disclosure for allocating storage space to a user of a storage system is shown.
[0015] Figure 6 A block diagram illustrating an exemplary implementation of this disclosure for updating address mappings in a storage system is shown schematically.
[0016] Figure 7 A block diagram illustrating an exemplary implementation of the present disclosure for handling faulty storage devices in a storage system is shown.
[0017] Figure 8 A block diagram illustrating a method for reconstructing data in a storage system according to an exemplary implementation of this disclosure is shown; and
[0018] Figure 9 A block diagram of a device for managing a storage system, according to an exemplary implementation of the present disclosure, is shown schematically. Detailed Implementation
[0019] Preferred implementations of this disclosure will now be described in more detail with reference to the accompanying drawings. While preferred implementations of this disclosure are shown in the drawings, it should be understood that this disclosure may be implemented in various forms and should not be limited to the implementations set forth herein. Rather, these implementations are provided to make this disclosure more thorough and complete, and to fully convey the scope of this disclosure to those skilled in the art.
[0020] The term “comprising” and its variations, as used herein, signify open inclusion, i.e., “including but not limited to.” Unless otherwise stated, the term “or” means “and / or.” The term “based on” means “at least partially based on.” The terms “one example implementation” and “one implementation” mean “at least one example implementation.” The term “another implementation” means “at least one additional implementation.” The terms “first,” “second,” etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0021] First see Figure 1 Describe an overview of the storage system. Figure 1 A block diagram of a storage system 100 according to one technical solution is shown schematically. Figure 1 As shown, storage system 100 may include multiple storage devices 110, 112, 114, ..., and 116. Each storage device may include multiple blocks, and multiple blocks may be managed based on mapped RAID. It will be understood that the data in the storage system may include user data and control data. Generally, these two types of data may have different priorities; for example, control data requires higher reliability and response speed, while user data may have lower requirements in these two aspects than control data.
[0022] To facilitate storage system management, the storage space in the storage device can be divided into a control data portion (as shown in Example 120) and a user data portion (as shown in Example 122). These two portions are managed separately by the control data manager 130 and the user data manager 132, respectively. However, this results in two independent managers in the storage system, increasing its management complexity. Furthermore, the storage space pre-allocated to control data and user data is fixed and cannot be dynamically adjusted during system operation.
[0023] To address the shortcomings of existing technical solutions, this disclosure proposes an exemplary implementation of a technical solution for managing storage systems. See below for details. Figure 2 A summary of exemplary implementations according to this disclosure is provided. Figure 2 A block diagram of a storage system 200 according to an exemplary implementation of the present disclosure is shown schematically. Figure 2 A client / server-based storage system is illustrated. RAID server 230 may include controller 226 for managing physical storage devices in the storage system, maintaining address mapping between upper-layer data storage space and users, monitoring the health status of storage devices, managing the addition and removal of storage devices, managing spare storage devices, and rebuilding data in the storage system, etc.
[0024] like Figure 2 As shown, the physical storage devices may include a base storage device 210, an expansion storage device 212, and an NVRAM (non-volatile random access memory) storage device 214. Here, the base storage device 210 may represent the storage device in the storage system before expansion, the expansion storage device 212 may represent the storage device in the expanded storage system, and the NVRAM storage system 214 may represent the storage device used for high-speed access. Storage space from these physical storage devices can be added to the storage resource pool 220.
[0025] Furthermore, the storage space in storage resource pool 220 can be divided into multiple smaller blocks, and these blocks can be added to storage block layer 224 for allocation to users. Address mapping 222 may include address mappings associated with the blocks allocated to each user. In this case, it is not necessary to divide the storage devices into control data and user data portions according to a predetermined ratio; instead, the storage devices are managed uniformly. Using the exemplary implementation of this disclosure, control data and user data are no longer distinguished; instead, a unified RAID server 230 is used to manage the space in the storage system. In other words, the RAID server 230 will manage both types of data simultaneously.
[0026] According to an exemplary implementation of this disclosure, a RAID client 240 is further provided for connecting to a server to maintain address mappings associated with users, serve access requests from user devices, receive and forward requests from user devices to increase / decrease storage space, and perform rebuild operations, etc. Specifically, the RAID client 240 may include an address mapping 242 associated with users and manages user-related data access requests via a controller 244. It will be understood that for a given user, a user data client and a control data client may be launched separately. The user data client is used to access user data associated with the user in the storage system, and the control data client is used to access control data associated with the user. The RAID client 240 may cooperate with the RAID server 230 to manage the storage system 200.
[0027] See below. Figure 3 Further details describe an exemplary implementation according to this disclosure. Figure 3 A flowchart illustrating a method 300 for managing a storage system according to an exemplary implementation of this disclosure is shown schematically. At block 310, an address mapping of the storage system is managed, the address mapping including the association between storage space in multiple storage devices in the storage system and users of the storage system. In other words, the address mapping can indicate which storage space in the multiple storage devices is allocated to that user. According to an exemplary implementation of this disclosure, at server 230, the storage space in the multiple storage devices can be divided into multiple blocks. See also Figure 4 Describe more details about address mapping.
[0028] Figure 4 A block diagram 400 illustrating a client / server-based architecture for managing a storage system according to an exemplary implementation of this disclosure is shown schematically. For example, each storage device may be divided into multiple larger blocks of a predetermined size, and multiple stripes may be generated from these larger blocks using mapped RAID, and placed into a storage resource pool 220. Further, each stripe may be divided into multiple smaller blocks (e.g., slices) and placed into a storage block layer 224.
[0029] According to one exemplary implementation of this disclosure, an address mapping can be provided for each user of the storage system, and the address mapping can include the association between each user's storage space in multiple storage devices in the storage system. Figure 4 The address mapping 222 for one user is shown only schematically, although in Figure 4As not shown in the diagram, address mapping 222 may include portions for control data and portions for user data. According to an exemplary implementation of this disclosure, when the storage system includes multiple users, a corresponding address mapping can be provided for each user.
[0030] return Figure 3 At box 320, based on address mapping 222, data access services are provided to clients associated with the user. It will be understood that the RAID server 230 here provides a unified service interface for management control data and user data. At this point, the user can launch a RAID client 410 for control data and a RAID client 420 for user data. Both clients can connect to the RAID server 230 to access the corresponding data in the storage system. Here, RAID client 410 can access user data associated with the user in the storage system, and RAID client 420 can access control data associated with the user.
[0031] like Figure 4 As shown, each client may include a corresponding address mapping and controller. For example, address mapping 412 in RAID client 410 may include a backup of the control data portion of address mapping 222, and address mapping 422 in RAID client 420 may include a backup of the control data portion of address mapping 222. It will be understood that the address mapping at the client is read-only, and when address mapping 222 at RAID server 230 is modified, RAID server 230 can synchronize the modified address mapping to the client.
[0032] During storage system operation, RAID clients 410 and 420 can connect to RAID server 230 to access data. In this case, it's unnecessary to provide two separate managers for control and user data within the storage system; instead, the system utilizes... Figure 4 The client / server architecture shown provides a unified approach to implementing storage system functionality. Utilizing the exemplary implementation of this disclosure simplifies the setup and operation complexity of storage systems and enables the reuse of management functions, thereby improving storage system performance.
[0033] The following sections will describe the various types of services involved during the operation of the storage system. Figure 5A block diagram 500 illustrating an exemplary implementation of this disclosure for allocating storage space to users in a storage system is shown. It will be understood that allocating storage space here may involve allocating storage space for control data and allocating storage space for user data. When storage space for control data is insufficient, RAID client 410 may request RAID server 230 to allocate more storage space for storing control data; and when storage space for user data is insufficient, RAID client 420 may request RAID server 230 to allocate more storage space for storing user data.
[0034] According to an exemplary implementation of this disclosure, the data access service may include a space allocation service. Specifically, the server may obtain target storage space from multiple storage devices based on an allocation request received from a client for allocating storage space to a user. Further, the server may update the address mapping based on the address of the target storage space and notify the client of the updated address mapping, so that the client can access the target storage space via the updated address mapping.
[0035] For simplicity, in the description Figure 5 In the process shown, the distinction between RAID client 410 for control data and RAID client 420 for user data will no longer be made; instead, RAID client 240 will be used to represent both types of clients. The allocation process for both types of data is similar in this case. Figure 5 As shown, RAID client 240 can request more storage space from RAID server 230. Upon receiving the request, RAID server 230 can obtain new space from the allocatable blocks in storage block layer 224 and update the address mapping at server 222 based on the address of the new space. Then, RAID server 230 can synchronize the updated address mapping to RAID client 240 and inform it that the allocation process is complete. At this point, RAID client 240 can synchronize the updated address mapping to its local machine.
[0036] According to one exemplary implementation of this disclosure, the process of allocating new space does not affect the data already allocated to the user's storage space, and the RAID client 240 can continue to serve data access requests from the user device. In other words, the RAID client 240 does not need to pause data access requests from the user device. After completion... Figure 5 Following the operations shown, the user gains more storage space (storage space for control data and / or storage space for user data). The user equipment can then connect to the RAID client 240 and access the newly allocated storage space using the updated address mapping on the RAID client 240.
[0037] Compared to traditional solutions that require two separate managers, the RAID server 230 provides a unified allocation interface, allowing both types of clients to request more storage space when needed. Furthermore, traditional solutions pre-divide storage devices into control data and user data portions, which can lead to a shortage of storage space for one type of data, preventing further allocation. Using the exemplary implementation of this disclosure, the type of each storage block is not specified when establishing the storage block layer 224; instead, the type of storage block is specified upon receiving an allocation request from a client of a certain type. In this way, as long as the storage block layer 224 includes available blocks, storage blocks of the appropriate type can be allocated according to the type of allocation request.
[0038] Specifically, when an allocation request is received from the RAID client 410 for control data, available blocks in storage block layer 224 can be allocated to the user for storing control data; and when an allocation request is received from the RAID client 420 for user data, available blocks in storage block layer 224 can be allocated to the user for storing user data. In this way, the storage block layer is shared for both data types, thus mitigating situations where there is a shortage of available blocks of a certain type. It will be understood that control data and user data can be stored in different ways in a storage system. For example, mirroring can be used to store control data to provide higher reliability; RAID 5, RAID 6, or other methods can be used to store control data to maximize storage space utilization while improving reliability.
[0039] According to one exemplary implementation of this disclosure, the data access service may include an address mapping update service. Specifically, when it is determined that an address mapping needs to be updated, the server may notify the client of the target portion of the address mapping that will be updated. The server may receive confirmation of the notification from the client in order to begin updating the target portion of the address mapping and notify the client of the updated address mapping. See below for further details. Figure 6 Describe more details about updating address mappings. Figure 6 A block diagram 600 illustrating an exemplary implementation of the present disclosure for updating address mappings in a storage system is shown schematically.
[0040] like Figure 6As shown, RAID server 230 can notify RAID client 240 610 that an address mapping update is imminent. It will be understood that RAID client 240 needs to serve data access requests from user devices based on a local copy of the address mapping. If the address mapping is updated at RAID server 230, it will cause the copy of the address mapping at RAID client 240 to be inconsistent with the address mapping at RAID server 230, resulting in a conflict. Therefore, RAID client 240 needs to quiesce data access requests before updating the address mapping.
[0041] According to an exemplary implementation of this disclosure, upon receiving a notification from the RAID server 230, the RAID client 240 can perform a 612-step quiz operation. This quiz operation involves both data access requests that have not yet been executed and data access requests that are currently being executed. Specifically, the notification may instruct the RAID client 240 to postpone unexecuted data access requests for accessing a target portion of the address mapping. For example, incoming data access requests (if any) can be queued. The notification may also instruct the RAID client 240 to wait for the completion of already executed data access requests for accessing the target portion. Assuming the RAID client 240 is executing n (n is a positive integer) data access requests, it can continue executing these requests until all n data access requests have been completed.
[0042] After completing the silent operation, RAID client 240 can confirm with RAID server 230 that 614 is ready to perform the address mapping update and allow RAID server 230 to begin the update process. At this point, RAID server 230 can perform the address mapping update and persist the updated address mapping to the underlying storage device. Subsequently, RAID server 230 can synchronize the updated address mapping 618 with RAID client 240. In other words, the updated address mapping is synchronized to RAID client 240. Here, the synchronization operation instructs the client to replace its copy of the address mapping with the updated address mapping, thereby ensuring that the copy of the address mapping at RAID client 240 is consistent with that at RAID server 230.
[0043] Furthermore, after synchronizing all updated address mappings to RAID client 240, RAID server 230 can notify RAID client 240 to lift the quiescent operation at 620. At this point, RAID client 240 can lift the quiescent operation at 622 and resume normal operation. If there are queued, unexecuted data access requests, RAID client 240 can process the queued requests in order. If there are no queued requests, RAID client 240 can wait for new data access requests.
[0044] Using the exemplary implementation of this disclosure, regardless of whether the address mapping to be updated involves control data or user data, it can be done in accordance with... Figure 6 The process is performed as shown. In this case, the RAID server 230 can simultaneously serve both control data and user data. If the address mapping to be updated involves control data, the RAID server 230 can send a notification to the RAID client 410, which uses control data; if the address mapping to be updated involves user data, the RAID server 230 can send a notification to the RAID client 420, which uses user data. This method simplifies the operational complexity of the storage system and thus improves its performance.
[0045] According to one exemplary implementation of this disclosure, the data access service may include a fault handling service. If the RAID server 230 determines that a faulty storage device has occurred among multiple storage devices, the fault handling service can be initiated. Specifically, the faulty storage space in the address mapping relating to the faulty storage device can be identified, and the faulty storage space can be notified to the corresponding client. See below for further details. Figure 7 Describe more details about the fault handling service. Figure 7 A block diagram 700 illustrating a faulty storage device in a storage system according to an exemplary implementation of the present disclosure is shown.
[0046] like Figure 7As shown, after detecting a faulty storage device, the RAID server 230 can determine 712 all blocks affected by the faulty storage device. It will be understood that the storage system is a mapped RAID-based storage system, therefore one or more blocks in the storage block layer 224 located in the faulty storage device will be affected. At this time, these affected blocks can be marked as faulty blocks. If the faulty blocks have not yet been assigned, they will not affect users; if the faulty blocks have already been assigned to users, the user assigned the faulty blocks can be found based on address mapping, and the RAID client 240 associated with that user can be notified of 714 the aforementioned fault. It will be understood that if the blocks in the faulty storage device are assigned to multiple users, similar operations can be performed for each user. In the following description, only the operation for one user will be used as an example.
[0047] like Figure 7 As shown, RAID server 230 can notify RAID client 240 at 714 to perform a silent operation. It will be understood that the occurrence of a failed storage device can render certain storage spaces in the local address-mapped copy of RAID client 240 unavailable. Therefore, RAID client 240 needs to stop service. Specifically, RAID client 240 can perform a silent operation at 716. According to an exemplary implementation of this disclosure, RAID client 240 can silence data access requests associated with the failed storage space and allow data access requests for the normal storage space. In the context of this disclosure, the silent operation process is similar and will not be described further. RAID client 240 can acknowledge to RAID server 230 at 718 that the silent operation has been completed.
[0048] Subsequently, the RAID server 230 can mark the status of the failed block as "degraded" (720). It will be understood that after a failure, some failed storage devices can recover by restarting, while others will not. The RAID server 230 can set a timer (722, for example, 5 minutes or other time intervals) to check whether the failed storage device can recover within the predetermined time period. The RAID server 230 can then synchronize the status and related metadata of block 724 to the RAID client 240 and notify the RAID client 240 to lift the quiescent operation. The RAID client 240 can then lift the quiescent operation (726).
[0049] At this point, the RAID server 230 can determine subsequent processing operations based on a threshold time length associated with the failed storage device. If the failed storage device is recovered within the predetermined threshold time length, it indicates that the failed storage device has been restored to normal and can continue to be used. The state of the failed storage space can be restored from a "degraded" state to a normal state, and the client is notified that the failed storage device has been recovered. Specifically, the RAID server 230 can synchronize the latest status and related metadata of each block to the RAID client 240 so as to instruct the RAID client 240 to continue processing data access requests.
[0050] See also Figure 7 To describe the situation where a failed storage device has not recovered, the RAID server 230 can detect that the timer expires at point 728 and the failed storage device has not been recovered. This indicates that the failed storage device has not been recovered within a predetermined threshold time period and cannot continue to be used. At this time, the RAID server 230 can notify the RAID client 240 to perform a silent operation again at point 730. The RAID client 240 can perform a silent operation at point 732 and inform the RAID server 230 that the silent operation has been completed. Further, the RAID server 230 can search for available spare blocks in the storage system to replace the failed block at point 734. Specifically, suitable spare blocks can be selected from the storage block layer 224 to replace each failed block based on the RAID standard used. Further, the corresponding address mapping can be updated based on the addresses of each normal block.
[0051] After replacing all faulty blocks with normal blocks and updating the address mapping at RAID server 230, RAID server 230 can synchronize the updated address mapping (736) with RAID client 240 and notify RAID client 240 to end the quiescent operation. Specifically, RAID server 230 can instruct the client to update its copy of the address mapping using the updated address mapping. At this point, the local address mapping at RAID client 240 has been updated, and all storage space involved in this address mapping is now normal and usable. RAID client 240 can then end the quiescent operation (738) and return to normal. At this point, the storage space in the address mappings at RAID server 230 and RAID client 240 still includes blocks in a "degraded" state, so RAID server 230 can notify RAID client 240 (740) to perform a rebuild operation.
[0052] Using the exemplary implementation of this disclosure, when handling a failed storage device, it does not distinguish whether each block in the failed storage device is used to store control data or user data. Instead, it provides a unified fault handling interface through the RAID server 230. In this way, the RAID server 230 can notify the corresponding RAID client to perform actions such as... Figure 7 The process is shown.
[0053] According to one exemplary implementation of this disclosure, the data access service may include a rebuild service. Specifically, the RAID server 230 may initiate a rebuild operation. See below for further details. Figure 8 Describe more details about the reconstruction. Figure 8 A block diagram 800 illustrating a method for reconstructing data in a storage system according to an exemplary implementation of this disclosure is shown. Figure 8 As shown, RAID server 230 can notify RAID client 240 to initiate a rebuild operation at 740. At this time, RAID client 240 can traverse all blocks with a state of "degraded" at 810 and perform the rebuild process at 812 based on the corresponding RAID standard. According to an exemplary implementation of this disclosure, the specific steps of the rebuild process are similar to existing technical solutions and will not be described in detail here. After completing the rebuild operation for all blocks with a state of "degraded," RAID client 240 can confirm to RAID server 230 at 814 that the rebuild has been completed. At this time, RAID server 230 can update the state of the relevant blocks from "degraded" at 816 to normal.
[0054] Using the exemplary implementation of this disclosure, when performing a reconstruction operation, it does not distinguish whether the block in the "degraded" state is used to store control data or user data, but provides a unified data reconstruction interface through the RAID server 230. In this way, the RAID server 230 can notify the corresponding RAID client to perform the reconstruction operation according to the data type involved in the "degraded" block.
[0055] It will be understood that the above description only uses the allocation of storage space, updating address mappings, handling failed storage devices, and reconstruction operations as examples to illustrate the specific process of managing a storage system based on a client / server architecture. According to an exemplary implementation of this disclosure, other services can also be implemented in the storage system based on the principles described above and the client / server architecture. For example, RAID client 240 can receive data access requests from user devices and perform read, write, and update operations accordingly. As another example, when free storage space in the storage system becomes insufficient, new storage devices can be added to the storage system. At this time, RAID server 230 can add blocks from the new storage devices to storage block layer 224 for allocation. Furthermore, when the workload of the various storage devices is unbalanced, RAID server 230 can perform load balancing operations and synchronize updated address mappings to the corresponding RAID clients based on the methods described above.
[0056] According to one exemplary implementation of this disclosure, the client / server architecture can provide a unified service interface to both control data and user data without distinguishing between the types of data being stored. This simplifies the operational complexity of the storage system and thus provides higher performance.
[0057] As mentioned above Figures 2 to 8 Examples of methods according to this disclosure have been described in detail, and implementations of corresponding apparatuses will be described below. According to an exemplary implementation of this disclosure, an apparatus for managing a storage system is provided, the apparatus operating as a server for the storage system and comprising: a management module configured to manage address mappings of the storage system, the address mappings including associations between storage spaces in a plurality of storage devices in the storage system and users of the storage system; and a service module configured to provide data access services to clients associated with users based on the address mappings. Here, the clients include at least one of a user data client for accessing user data associated with the user in the storage system and a control data client for accessing control data associated with the user. According to an exemplary implementation of this disclosure, the apparatus further includes modules for performing other steps in the method 300 described above.
[0058] Figure 9A block diagram illustrating an exemplary implementation of a computing system device 900 according to the present disclosure is shown. As shown, the device 900 includes a central processing unit (CPU) 901, which can perform various appropriate actions and processes according to computer program instructions stored in read-only memory (ROM) 902 or loaded from storage unit 908 into random access memory (RAM) 903. Various programs and data required for the operation of the device 900 may also be stored in RAM 903. The CPU 901, ROM 902, and RAM 903 are interconnected via bus 904. An input / output (I / O) interface 905 is also connected to bus 904.
[0059] Multiple components in device 900 are connected to I / O interface 905, including: input unit 906, such as keyboard, mouse, etc.; output unit 907, such as various types of monitors, speakers, etc.; storage unit 908, such as disk, optical disk, etc.; and communication unit 909, such as network card, modem, wireless transceiver, etc. Communication unit 909 allows device 900 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0060] The various processes and procedures described above, such as method 300, can be executed by processing unit 901. For example, in some implementations, method 300 can be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 908. In some implementations, part or all of the computer program can be loaded and / or installed on device 900 via ROM 902 and / or communication unit 909. When the computer program is loaded into RAM 903 and executed by CPU 901, one or more steps of method 300 described above can be performed. Alternatively, in other implementations, CPU 901 can also be configured in any other suitable manner to implement the above-described processes / methods.
[0061] According to an exemplary implementation of this disclosure, an electronic device includes: at least one processor; volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions causing the device to perform a method for managing a storage system when executed by the at least one processor. The method is implemented at a server of the storage system and includes: managing an address mapping of the storage system, the address mapping including associations between storage spaces in a plurality of storage devices in the storage system and users of the storage system; and providing data access services to clients associated with users based on the address mapping, wherein the clients include at least one of a user data client for accessing user data associated with the user in the storage system and a control data client for accessing control data associated with the user.
[0062] According to an exemplary implementation of this disclosure, providing a data access service includes: in response to receiving an allocation request from a client for allocating storage space to a user, obtaining a target storage space from a plurality of storage devices based on the allocation request; updating an address mapping based on the target storage space; and notifying the client of the updated address mapping so that the client can access the target storage space via the updated address mapping.
[0063] According to an exemplary implementation of this disclosure, providing a data access service includes: in response to determining that an address mapping is about to be updated, notifying a client of the target portion of the address mapping that is about to be updated, such that the client silencing data access requests associated with the target portion; in response to receiving confirmation of the notification from the client, updating the target portion of the address mapping; and notifying the client of the updated address mapping.
[0064] According to an exemplary implementation of this disclosure, notifying the client of the target portion includes: instructing the client to postpone any unexecuted data access requests for accessing the target portion; and instructing the client to wait for the completion of any ongoing data access requests for accessing the target portion.
[0065] According to one exemplary implementation of this disclosure, notifying the client of an updated address mapping includes: instructing the client to update the address mapping at the client's location using the updated address mapping; and instructing the client to unsilence.
[0066] According to an exemplary implementation of this disclosure, providing a data access service includes: in response to determining that a faulty storage device has occurred among a plurality of storage devices, determining a faulty storage space in an address mapping relating to the faulty storage device; notifying a client of the faulty storage space so that the client silencing data access requests associated with the faulty storage space; in response to receiving confirmation of the notification from the client, marking the faulty storage space as degraded; and processing the faulty storage device based on a threshold time length associated with the faulty storage device.
[0067] According to an exemplary implementation of this disclosure, processing a faulty storage device based on a threshold time length includes: in response to determining that the faulty storage device has been recovered within the threshold time length, setting the state of the faulty storage space to a normal state; and notifying the client that the faulty storage device has been recovered.
[0068] According to an exemplary implementation of this disclosure, processing a faulty storage device based on a threshold time length includes: in response to determining that the faulty storage device has not been recovered within the threshold time length, notifying a client device that the faulty storage device has not been recovered, so that the client silencing data access requests associated with the faulty storage space; updating the address mapping based on the normal storage space among multiple storage devices; and notifying the client of the updated address mapping.
[0069] According to one exemplary implementation of this disclosure, notifying the client of an updated address mapping includes: instructing the client to update the address mapping at the client's location using the updated address mapping; and instructing the client to unsilence.
[0070] According to one exemplary implementation of this disclosure, the storage system includes a storage system based on a redundant array of independent disks, and the method further includes: instructing a client to perform a rebuild operation based on an updated address mapping.
[0071] According to an exemplary implementation of this disclosure, a computer program product is provided, which is tangibly stored on a non-transient computer-readable medium and includes machine-executable instructions for performing a method according to this disclosure.
[0072] According to an exemplary implementation of this disclosure, a computer-readable medium is provided. The computer-readable medium stores machine-executable instructions that, when executed by at least one processor, cause the at least one processor to implement the method according to this disclosure.
[0073] This disclosure can be a method, apparatus, system, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of this disclosure.
[0074] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination thereof. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0075] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0076] The computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some implementations, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is customized by utilizing the status information of the computer-readable program instructions to execute the computer-readable program instructions, thereby implementing various aspects of this disclosure.
[0077] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0078] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0079] Computer-readable program instructions may 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, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0080] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0081] Various implementations of this disclosure have been described above. The foregoing description is exemplary and not exhaustive, nor is it limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the implementations disclosed herein.
Claims
1. A method for managing a storage system, the method being implemented at a server of the storage system, and the method comprising: Manage the address mapping of the storage system, wherein the address mapping includes the association between storage space in multiple storage devices in the storage system and users of the storage system; The server in the storage system receives multiple allocation requests, including: (i) a first allocation request from a user data client, the first allocation request being used to increase the user data storage space allocated to the user, the user data client managing user data in the storage system on behalf of the user; and (ii) a second allocation request from a control data client, the second allocation request being used to increase the metadata storage space allocated to the user, the control data client managing control metadata used to support access to the user data, the second allocation request having a higher priority than the first allocation request. as well as Based on the address mapping, data access services are provided to clients associated with the user, wherein the clients include at least one of a user data client for accessing user data associated with the user in the storage system and a control data client for accessing control metadata associated with the user data.
2. The method of claim 1, wherein providing the data access service comprises: In response to receiving an allocation request from the client for allocating storage space to the user, Based on the allocation request, obtain the target storage space from the plurality of storage devices; Update the address mapping based on the target storage space; as well as The client is notified of the updated address mapping so that the client can access the target storage space via the updated address mapping.
3. The method of claim 1, wherein providing the data access service comprises: In response to determining that the address mapping is about to be updated, The client is notified that the target portion of the address mapping is to be updated, so that the client silences data access requests associated with the target portion; In response to receiving confirmation of the notification from the client, the target portion of the address mapping is updated; as well as The updated address mapping is notified to the client.
4. The method of claim 3, wherein notifying the target portion to the client comprises: The client is instructed to postpone any pending data access requests for accessing the target portion. as well as The client is instructed to wait for the completion of the data access request that is being executed to access the target portion.
5. The method of claim 3, wherein notifying the client of the updated address mapping comprises: Instruct the client to update the address mapping at the client's location using the updated address mapping; as well as Instruct the client to unmute.
6. The method of claim 1, wherein providing the data access service comprises: In response to determining that a faulty storage device has occurred among the plurality of storage devices, Determine the faulty storage space in the address mapping that relates to the faulty storage device; The client is notified of the faulty storage space so that the client silences data access requests associated with the faulty storage space. In response to receiving confirmation of the notification from the client, the faulty storage space is marked as degraded. as well as The faulty storage device is processed based on a threshold time length associated with it.
7. The method of claim 6, wherein processing the faulty storage device based on the threshold time length comprises: In response to determining that the faulty storage device has been recovered within the threshold time length, Set the status of the faulty storage space to normal; as well as The client is notified that the faulty storage device has been restored.
8. The method of claim 6, wherein processing the faulty storage device based on the threshold time length comprises: In response to determining that the faulty storage device has not been recovered within the threshold time length, The client device is notified that the faulty storage device has not been recovered, so that the client silences data access requests associated with the faulty storage space; The address mapping is updated based on the normal storage space in the plurality of storage devices; as well as The updated address mapping is notified to the client.
9. The method of claim 8, wherein notifying the client of the updated address mapping comprises: Instruct the client to update the address mapping at the client's location using the updated address mapping; as well as Instruct the client to unmute.
10. The method of claim 8, wherein the storage system comprises a storage system based on a redundant array of independent disks, and the method further comprises: The client is instructed to perform a reconstruction operation based on the updated address mapping.
11. An electronic device, comprising: At least one processor; Volatile memory; as well as A memory coupled to the at least one processor, the memory having instructions stored therein, the instructions, when executed by the at least one processor, causing the device to perform a method for managing a storage system, the method being implemented at a server of the storage system, and the method comprising: Manage the address mapping of the storage system, wherein the address mapping includes the association between storage space in multiple storage devices in the storage system and users of the storage system; The server in the storage system receives multiple allocation requests, including: (i) a first allocation request from a user data client, the first allocation request being for increasing user data storage space allocated to the user, the user data client managing user data in the storage system on behalf of the user; and (ii) a second allocation request from a control data client, the second allocation request being for increasing metadata storage space allocated to the user, the control data client managing control metadata supporting access to the user data, the second allocation request having a higher priority than the first allocation request; and Based on the address mapping, data access services are provided to clients associated with the user, wherein the clients include at least one of a user data client for accessing user data associated with the user in the storage system and a control data client for accessing control metadata associated with the user.
12. The device of claim 11, wherein providing the data access service comprises: In response to receiving an allocation request from the client for allocating storage space to the user, Based on the allocation request, obtain the target storage space from the plurality of storage devices; Update the address mapping based on the target storage space; as well as The client is notified of the updated address mapping so that the client can access the target storage space via the updated address mapping.
13. The device of claim 11, wherein providing the data access service comprises: In response to determining that the address mapping is about to be updated, The client is notified that the target portion of the address mapping is to be updated, so that the client silences data access requests associated with the target portion; In response to receiving confirmation of the notification from the client, the target portion of the address mapping is updated; as well as The updated address mapping is notified to the client.
14. The device of claim 13, wherein notifying the target portion to the client comprises: The client is instructed to postpone any pending data access requests for accessing the target portion. as well as The client is instructed to wait for the completion of the data access request that is being executed to access the target portion.
15. The device of claim 13, wherein notifying the client of the updated address mapping comprises: Instruct the client to update the address mapping at the client's location using the updated address mapping; as well as Instruct the client to unmute.
16. The device of claim 11, wherein providing the data access service comprises: In response to determining that a faulty storage device has occurred among the plurality of storage devices, Determine the faulty storage space in the address mapping that relates to the faulty storage device; The client is notified of the faulty storage space so that the client silences data access requests associated with the faulty storage space. In response to receiving confirmation of the notification from the client, the faulty storage space is marked as degraded. as well as The faulty storage device is processed based on a threshold time length associated with it.
17. The device of claim 16, wherein processing the faulty storage device based on the threshold time length comprises: In response to determining that the faulty storage device has been recovered within the threshold time length, Set the status of the faulty storage space to normal; as well as The client is notified that the faulty storage device has been restored.
18. The device of claim 16, wherein processing the faulty storage device based on the threshold time length comprises: In response to determining that the faulty storage device has not been recovered within the threshold time length, The client device is notified that the faulty storage device has not been recovered, so that the client silences data access requests associated with the faulty storage space; The address mapping is updated based on the normal storage space in the plurality of storage devices; as well as The updated address mapping is notified to the client.
19. The device of claim 18, wherein notifying the client of the updated address mapping comprises: Instruct the client to update the address mapping at the client's location using the updated address mapping; as well as Instruct the client to unmute. The storage system includes a storage system based on a redundant array of independent disks, and the method further includes: instructing the client to perform a rebuild operation based on the updated address mapping.
20. A computer program product tangibly stored on a non-transient computer-readable medium and comprising machine-executable instructions for performing the method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Multi-level protection with intra-device protection in a raid array based storage system
US20120084507A1
Method, system, program, and data structures for mapping logical blocks to physical blocks
US6839827B1