Shared storage dynamic user quota system

By introducing a storage management engine and reinforcement learning technology into the shared storage system, dynamically adjusting user quotas, solving the inefficiency problem caused by changes in user storage space requirements, and realizing automated management and efficient utilization of storage space.

CN115185451BActive Publication Date: 2025-08-26DELL PROD LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110358799.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-01
Publication Date
2025-08-26
Estimated Expiration
2041-04-01

AI Technical Summary

Technical Problem

The existing shared storage user quota system is inefficient when the user's storage space needs change and is difficult to automatically adjust, resulting in unbalanced storage space utilization and administrators need to intervene frequently.

Method used

The storage management engine is adopted, and the user storage space is automatically adjusted using reinforcement learning technology and dynamic user quota mechanism, allowing short-term quota to be exceeded and temporary data is stored in unprotected space, and unused data is recycled using reinforcement learning.

Benefits of technology

It realizes efficient utilization of storage space, reduces administrator intervention, improves system flexibility and user experience, and ensures that important data is not automatically deleted.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115185451B_ABST
    Figure CN115185451B_ABST
Patent Text Reader

Abstract

A shared storage dynamic user quota system includes a storage management device coupled to a storage system having a shared storage space. The storage management device receives a data storage request from a user device to store data in the shared storage space. If the storage management device determines that storing the data in the shared storage space will exceed a user storage quota of a user associated with the user device, the storage management device determines whether the user meets the conditions for storing the data in the shared storage space and exceeding the user storage quota. In response to determining that the user meets the conditions for storing the data in the shared storage space and exceeding the user storage quota, the storage management device stores the data in the shared storage space.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present disclosure relates generally to information handling systems, and more particularly to providing dynamic user quotas in a shared storage information handling system.

[0002] As the value and uses of information continue to increase, individuals and businesses are looking for additional ways to process and store information. One option available to users is an information handling system. An information handling system typically processes, compiles, stores, and / or communicates information or data for business, personal, or other purposes, thereby allowing users to exploit the value of the information. Because the needs and requirements of technology and information processing vary between different users or applications, information handling systems may also vary with respect to: what information is processed, how the information is processed, how much information is processed, stored, or communicated, and how quickly and efficiently the information can be processed, stored, or communicated. Variations in information handling systems allow information handling systems to be general-purpose or configured for specific users or specific uses (such as financial transaction processing, airline reservations, enterprise data storage, or global communications). In addition, an information handling system may include various hardware and software components that can be configured to process, store, and communicate information, and may include one or more computer systems, data storage systems, and networking systems.

[0003] Information handling system (such as for example storage system) can be shared by user sometimes to store data.In this type of shared storage system, user storage quota is often used to the amount of the shared storage space in the shared storage system is set data storage limit, described shared storage space can be used to store its data by any specific user, and allows the user to store data in the shared storage space until described quota / data storage limit, so as to prevent some users from exhausting all shared storage spaces and damaging the interests of other users.Yet, conventional shared storage user quota system suffers from many problems.For example, the shared storage space that any specific user requires often will change over time, and some of these users occasionally require more shared storage space (for example, to complete urgent tasks) than the shared storage space allowed by their user storage quota, and other users require less shared storage space than the shared storage space allowed by their user storage quota.Therefore, shared storage system may be operated inefficiently, and this is because described shared storage system may have available shared storage space, and when specific user requires more shared storage space than the shared storage space allowed by its user storage quota, described available shared storage space will not be utilized.

[0004] Furthermore, for any particular user, estimating their shared storage space requirements may be relatively difficult, and thus the user storage quota selected for that user may be exceeded. In such cases, the user must then contact the shared storage system administrator and request an increase in their user storage quota, and the shared storage system administrator will then be required to manually increase the user storage quota for the user, allowing the user to store additional data in the shared storage space. As will be appreciated by those skilled in the art, a shared storage system may be shared by hundreds, thousands, or even more users, and thus, the exceeding of the user storage quotas discussed above will result in the storage system administrator receiving periodic notifications (e.g., via email) regarding the exceeding of these user storage quotas, and the resulting manual user storage quota adjustments discussed above will be very time-consuming and inefficient for the storage system administrator to perform.

[0005] Therefore, there is a need to provide a shared storage user quota system that solves the problems discussed above. Summary of the Invention

[0006] According to one embodiment, an information handling system (IHS) includes: a processing system; and a memory system, the memory system being coupled to the processing system and including instructions that, when executed by the processing system, cause the processing system to provide a storage management engine, the storage management engine being configured to: receive a data storage request from a user device to store data in a shared storage space; determine that the storing of the data in the shared storage space will exceed a user storage quota of a user associated with the user device; determine that the user is eligible for storing the data in the shared storage space and exceeding the user storage quota in response to determining that the storing of the data in the shared storage space will exceed the user storage quota; and store the data in the shared storage space in response to determining that the user is eligible for storing the data in the shared storage space and exceeding the user storage quota. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] Figure 1 is a schematic diagram illustrating an embodiment of an information handling system (IHS).

[0008] Figure 2 is a schematic diagram illustrating an embodiment of a networked system that may utilize the shared storage dynamic user quota system of the present disclosure.

[0009] Figure 3 is shown to include Figure 2 A schematic diagram of an implementation scheme of a storage management device in a networked system that can provide the shared storage dynamic user quota system of the present disclosure.

[0010] Figure 4 is a flow chart illustrating an embodiment of a method for providing dynamic user quotas in a shared storage system.

[0011] Figure 5 It is shown in Figure 4 During the operation of the method Figure 2 Schematic diagram of an implementation scheme of a networked system.

[0012] Figure 6 It is shown in Figure 4 During the operation of the method Figure 5 Schematic diagram of an implementation scheme of a networked system.

[0013] Figure 7 It is shown in Figure 4 During the operation of the method Figure 5 Schematic diagram of an implementation scheme of a networked system.

[0014] Figure 8 It is shown in Figure 4 During the operation of the method Figure 5 Schematic diagram of an implementation scheme of a networked system.

[0015] Figure 9 is a flow chart illustrating an embodiment of a method for providing dynamic user quotas in a shared storage system.

[0016] Figure 10 It is shown in Figure 9 During the operation of the method Figure 5 Schematic diagram of an implementation scheme of a networked system.

[0017] Figure 11 It is shown in Figure 9 During the operation of the method Figure 3 Schematic diagram of an implementation scheme of a storage management device.

[0018] Figure 12 is a graph illustrating an experimental embodiment of the operation of the shared storage dynamic user quota system of the present disclosure.

[0019] Figure 13 is a graph illustrating an experimental embodiment of the operation of the shared storage dynamic user quota system of the present disclosure. DETAILED DESCRIPTION

[0020] For purposes of the present invention, an information handling system may include any tool or set of tools that can be used to calculate, compute, determine, classify, process, transmit, receive, retrieve, initiate, switch, store, display, communicate, indicate, detect, record, reproduce, dispose of, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer (e.g., a desktop or laptop computer), a tablet computer, a mobile device (e.g., a personal digital assistant (PDA) or a smartphone), a server (e.g., a blade server or a rack server), a network storage device, or any other suitable device, and may vary in size, shape, performance, functionality, and price. An information handling system may include random access memory (RAM), one or more processing resources (such as a central processing unit (CPU) or hardware or software control logic), ROM, and / or other types of non-volatile memory. Additional components of an information handling system may include one or more disk drives, one or more network ports for communicating with external devices, and various input and output (I / O) devices (such as a keyboard, mouse, touch screen, and / or video display). The information handling system may also include one or more buses for transmitting communications between the various hardware components.

[0021] In one embodiment, Figure 1 IHS 100 includes a processor 102 connected to a bus 104. Bus 104 serves as a connector between processor 102 and the other components of IHS 100. An input device 106 is coupled to processor 102 to provide input to processor 102. Examples of input devices may include a keyboard, a touch screen, a pointing device (such as a mouse, trackball, and trackpad), and / or various other input devices known in the art. Programs and data are stored on a mass storage device 108 coupled to processor 102. Examples of mass storage devices may include a hard disk, an optical disk, a magneto-optical disk, a solid-state storage device, and / or various other mass storage devices known in the art. IHS 100 also includes a display 110 coupled to processor 102 via a video controller 112. System memory 114 is coupled to processor 102 to provide the processor with fast storage to facilitate execution of computer programs by processor 102. Examples of system memory may include random access memory (RAM) devices such as dynamic RAM (DRAM), synchronous DRAM (SDRAM), solid-state storage devices, and / or various other storage devices known in the art. In one embodiment, chassis 116 houses some or all of the components of IHS 100. It should be understood that other buses and intervening circuits may be deployed between the aforementioned components and processor 102 to facilitate interconnection between the components and processor 102.

[0022] Now refer to Figure 2, shows an embodiment of a networked system 200. In the embodiment shown, the networked system 200 includes a storage system 202. In one embodiment, the storage system 202 can be provided by the above reference Figure 1 The IHS 100 discussed herein provides, and / or may include, some or all of the components of the IHS 100, and in the specific example below, includes a plurality of storage devices 204a, 204b, and through 204c. In the specific example, the storage devices 204a-204c may be provided by hard disk drive (HDD) storage devices, solid state storage (SSD) storage devices, and / or any other storage devices that will be apparent to one skilled in the art. However, while illustrated and discussed as being provided by a storage system including specific storage devices, those skilled in the art will recognize that the shared storage space provided in the networking system 200 (discussed in further detail below) may be provided by a variety of types of devices (e.g., any storage device having network attached storage (NAS) functionality) configured to operate similarly to the storage system 202 discussed below, and may include any number (e.g., one or more) of storage devices while remaining within the scope of the present disclosure.

[0023] In the illustrated embodiment, the storage system 202 includes a storage management device 206. In one embodiment, the storage management device 206 may be a device described above with reference to FIG. Figure 1 The IHS 100 discussed provides, and / or may include, some or all of the components of the IHS 100, and in the specific examples below, may be provided by a storage processor, software utilized with a storage processor, or other components integrated into the storage system 202. However, while the storage management device 206 is shown and described below as being integrated into or otherwise included in the storage system 202, those skilled in the art will recognize that the storage management device 206 may be separate from the storage system 202 while also remaining within the scope of the present disclosure.

[0024] In the illustrated embodiment, the networked system 200 also includes a plurality of user devices 208a, 208b, and up to 208c. In one embodiment, any or all of the user devices 208a-208c may be provided by reference to the above. Figure 1The IHS 100 discussed herein provides, and / or may include, some or all of the components of the IHS 100, and in certain instances, may be provided by a server computing device, a desktop computing system, a laptop / notebook computing system, a tablet computing device, a mobile phone, and / or any other computing device as would be apparent to one skilled in the art. Furthermore, while only three user devices are shown and described in the following example, those skilled in the art will appreciate that hundreds, thousands, or even more user devices may utilize the shared storage space provided by the storage system 202 while remaining within the scope of the present disclosure. As shown, each of the user devices 208a, 208b, and through 208c is coupled to the storage system 202 via a network 210, which may be provided by a local area network (LAN), the Internet, a combination thereof, and / or any other network as would be apparent to one skilled in the art. Furthermore, while a specific networked system 200 has been shown and described, those skilled in the art will appreciate that the shared storage dynamic user quota system of the present disclosure may include a variety of components and component configurations while remaining within the scope of the present disclosure.

[0025] Now refer to Figure 3 , shows an embodiment of a storage management device 300, which can provide the above reference Figure 2 Therefore, the storage management device 300 can be referred to above. Figure 1 The IHS 100 discussed herein provides, and / or may include, some or all of the components of the IHS 100 and, in the specific examples provided herein, is an integrated component of the storage system. However, while illustrated and discussed as being provided by integrated components within the storage system, those skilled in the art will recognize that the functionality of the storage management device 300 discussed below may be provided by a storage management device external to the storage system and configured to operate similarly to the storage management device 300 discussed below. In the illustrated embodiment, the storage management device 300 includes a chassis 302 that houses the components of the storage management device 300, only some of which are shown below.

[0026] For example, chassis 302 may house a processing system (not shown, but which may include the components referenced above). Figure 1 The processor 102 discussed above) and a memory system (not shown, but which may include the above referenced Figure 1The memory 114 discussed above is coupled to the processing system and includes instructions that, when executed by the processing system, cause the processing system to provide a storage management engine 304 configured to perform the functionality of the storage management engine and / or storage management device discussed below. In some embodiments discussed below, the storage management engine 304 may include a reinforcement learning sub-engine, discussed in further detail below, configured to utilize reinforcement learning techniques to determine whether to perform a shared storage reclaim operation, although those skilled in the art will understand that shared storage reclaim operations may be performed based on other techniques while also remaining within the scope of the present disclosure. Furthermore, in some specific examples described below, the reinforcement learning sub-engine may be provided by a deep Q-network (DQN) reinforcement learning sub-engine, although those skilled in the art will understand that other reinforcement learning techniques may also fall within the scope of the present disclosure.

[0027] The chassis 302 may also house a storage system (not shown, but which may include the Figure 1 The chassis 302 may include a storage device 108 as discussed above, the storage system being coupled to a storage management engine 304 (e.g., via a coupling between the storage system and the processing system), and the chassis including a storage management database 306 configured to store any information utilized by the storage management engine 304 as discussed below. The chassis 302 may also house a communication system 308 coupled to the storage management engine 304 (e.g., via a coupling between the communication system 308 and the processing system) and may be provided by any of a variety of communication components that would be considered by those skilled in the art to be a communication component between the storage management engine 304 and the processing system. Figure 2 However, while a particular storage management device 300 has been shown, those skilled in the art will recognize that a storage management device (or other device operating in accordance with the teachings of the present disclosure in a manner similar to that described below with respect to the storage management device 300) may include a variety of components and / or configurations of components for providing conventional storage management device functionality, as well as the functionality discussed below, while also remaining within the scope of the present disclosure.

[0028] Now refer to Figure 4, an embodiment of a method 400 for providing dynamic user quotas in a shared storage system is shown. As discussed below, the systems and methods of the present disclosure provide for storage of data in a shared storage space provided by a shared storage system in a manner that provides automated and adaptive dynamic / elastic user storage quotas, wherein the dynamic / elastic user storage quotas allow some users to utilize more shared storage space than would be allowed strictly in accordance with their user storage quotas for a limited time period. For example, the shared storage dynamic user quota system of the present disclosure may include a storage management device coupled to a storage system having a shared storage space. The storage management device receives a data storage request from a user device to store data in the shared storage space. If the storage management device determines that storage of the data in the shared storage space will exceed the user storage quota of a user associated with the user device, the storage management device determines whether the user meets the conditions for storing the data in the shared storage space and exceeding the user storage quota. In response to determining that the user meets the conditions for storing the data in the shared storage space and exceeding the user storage quota, the storage management device stores the data in the shared storage space. Thus, users of a shared storage system with relatively short-term high storage needs can exceed their user storage quotas without manual intervention by a storage system administrator, which provides more efficient utilization of the shared storage space, particularly when other users of the shared storage system are utilizing less shared storage space than allowed by their user storage quotas.

[0029] refer to Figure 5 In some embodiments of the method 500, the storage devices 204a, 204b, and up to 204c can be configured to provide a shared storage space 500, which, as discussed below, can include a protected storage space 502 and an unprotected storage space 504. As described below, users of the user devices 208a, 208b, and up to 208c can utilize the shared storage space 500 to store data (e.g., over the network 210 ( Figure 5 ) and by the storage management device 206), and each may be associated with a corresponding user storage quota that defines the amount of shared storage space 500 that the user is guaranteed to be allowed to utilize. Thus, in a simplified specific example, the shared storage space may be 1 TB, and each of the five users may be associated with a user storage quota of 200 GB, although those skilled in the art will appreciate that any of a variety of other sizes of shared storage space and user storage quotas will also fall within the scope of the present disclosure.

[0030] In some embodiments, the storage management device 206 can be configured to prevent any user of the user devices 208a-208c from storing data in excess of their user storage quota in the protected storage space 502 included in the shared storage space 500, but can allow users of the user devices 208a-208c to store data in excess of their user storage quota in the unprotected storage space 504 included in the shared storage space 500, as long as the shared storage space 500 has unused storage space. As described in more detail below with reference to method 900, data stored in the protected storage space 502 included in the shared storage space 500 can only be deleted by the user who stored the data, while data stored in the unprotected storage space 504 included in the shared storage space 500 that exceeds the user storage quota associated with the corresponding user can be automatically deleted by the storage management device 206, and the user can define a retention period for any data stored in the unprotected storage space 504 included in the shared storage space 500, during which the data cannot be deleted from the unprotected storage space 504 included in the shared storage space 500. Therefore, users may be encouraged to store relatively important data in the protected storage space 502 included in the shared storage space 500 to ensure that such important data will not be automatically deleted.

[0031] The method 400 begins at block 402 where the storage management device receives a data storage request from a user to store data in a shared storage space. Although the method 400 is described below with respect to a single user of the user device 208a, those skilled in the art will appreciate that the method 400 may be executed to store data for each user of the user devices 208b and up to 208c while remaining within the scope of the present disclosure. Figure 6 In an embodiment of block 402, the user device 208a may perform a data storage request transmission operation 600, which includes transmitting a data storage request associated with a user of the user device 208a to the storage management device 206 (e.g., via the network 210). Figure 6 As discussed above, in some embodiments, a user creating a data storage request to store data in the shared storage space 500 may specify data to be stored in the protected storage space 502 included in the shared storage space 500, or in the unprotected storage space 504 included in the shared storage space 500. In one embodiment, data designated for storage in the unprotected storage space 504 included in the shared storage space 500 may be associated with a default retention period (during which the data may not be automatically deleted, as discussed below with respect to method 900), or may have a retention period specified by the user storing the data.

[0032] In many of the examples below, the data provided for storage as part of a data storage request is included in files, but those skilled in the art will appreciate that the data can be provided for storage in the shared storage space in the form of a variety of data structures, which will also fall within the scope of this disclosure. In addition, the data provided as part of the data storage request at block 402 can provide new data files (e.g., data files not previously stored in the shared storage space 500), additions and / or modifications to existing data files (e.g., data files previously stored in the shared storage space 500), and / or in various other ways that will be apparent to those skilled in the art. Thus, those skilled in the art will understand how the data storage request transmitted at block 402 as part of the data storage request transmission operation 600 may include the data being provided for storage in the shared storage space, an identifier of a user associated with the user device 208a (e.g., an identifier linked to the user storage quota of the user), a storage space designation (e.g., a designation of a protected storage space 502 or an unprotected storage space 504 as discussed above), a retention time period (e.g., for data designated for storage in the unprotected storage space 504), and / or any other data storage request information that will be apparent to those skilled in the art and that enables the functionality discussed below. Thus, at block 402, the storage management engine 304 in the storage management device 206 / 300 may receive the data storage request via its communication system 308.

[0033] The method 400 then proceeds to a decision block 404 where it is determined whether storage of the data will exceed the user storage quota. In some embodiments of the decision block 404 where the data storage request received at block 402 specifies data to be stored in a protected data space 502 included in the shared storage space 500, the storage management engine 304 in the storage management device 206 / 300 may determine whether storage of the data in the protected data space 502 included in the shared storage space 500 will cause the user identified in the data storage request to exceed his or her user storage quota based on the following inequality A:

[0034]

[0035] Among them S ui,PDS [n] is user u in protected data space 502 at time n i The size of the data, ΔS is the size of the data provided in the data storage request, and Q ui is user u i As discussed below, if the above inequality A is satisfied, and the data is stored in the protected data space 502 included in the shared storage space 500 (ie, S ui,PDS[n] + ΔS) will cause the user identified in the data storage request to exceed their user storage quota (Q ui ), then the storage management engine 304 in the storage management device 206 / 300 will deny the data storage request (at block 410). Therefore, the user will not be allowed to store data that exceeds his user storage quota in the protected data space 502.

[0036] If the above inequality A is satisfied, and the data is stored in the protected data space 502 included in the shared memory space 500 (ie, S ui,PDS [n] + ΔS) will cause the user identified in the data storage request to exceed their user storage quota (Q ui ), the storage management engine 304 in the storage management device 206 / 300 may determine whether storage of the data in the unprotected data space 504 included in the shared storage space 500 will cause the user identified in the data storage request to exceed its user storage quota based on the following inequality B:

[0037]

[0038] Among them S ui,PDS [n] is the user in protected data space 502 at time n u The size of the data of i, S ui,UDS [n] is user u in the unprotected data space 504 at time n i The size of the data, ΔS is the size of the data provided in the data storage request, and Q ui is user u i As discussed below, if the above inequality B is satisfied, and the data is stored in the unprotected data space 502 included in the shared storage space 500 (ie, S ui,UDS [n] + ΔS) will cause the user identified in the data storage request to exceed their user storage quota (Q ui ), then at decision block 404, the storage management engine 304 in the storage management device 206 / 300 will determine that the storage of the data will exceed the user storage quota.

[0039] In other embodiments of decision box 404 where the data storage request received at box 420 specifies data to be stored in the unprotected data space 504 included in the shared storage space 500, the storage management engine 304 in the storage management device 206 / 300 may determine, based on inequality B discussed above, whether storage of the data in the unprotected data space 504 included in the shared storage space 500 will cause the user identified in the data storage request to exceed his or her user storage quota.

[0040] If it is determined at decision block 404 that storage of the data will not exceed the user storage quota, then method 400 proceeds to block 406 where the storage management device stores the data in the shared storage space. In one embodiment, at block 406, the storage management engine 304 in the storage management device 206 / 300 may store the data included in the data storage request received at block 402. For example, referring to Figure 7 And in an embodiment in which data is designated for storage in a protected storage space 502 included in a shared storage space 500 and it is determined based on inequality A that the storage of the data in the protected storage space 502 does not exceed the user storage quota of the user, at box 406, the storage management engine 304 in the storage management device 206 / 300 may perform a data storage operation 700, which includes storing the data in the protected storage space 502 included in the shared storage space 500 in response to determining that the above inequality A is not satisfied.

[0041] In another example, reference Figure 8 And in an embodiment where data is designated for storage in a protected storage space 502 included in a shared storage space 500 and storage of the data in the protected storage space 502 exceeds the user's user storage quota according to inequality A but does not exceed the user's user storage quota according to inequality B, at block 406, the storage management engine 304 in the storage management device 206 / 300 may perform a data storage operation 800 that includes storing the data in an unprotected storage space 504 included in the shared storage space 500 in response to determining that the above inequality B is not satisfied. In yet another example, referring again to Figure 8 And in an embodiment in which data is designated for storage in an unprotected storage space 504 included in a shared storage space 500 and it is determined based on inequality B that the storage of the data in the unprotected storage space 504 does not exceed the user storage quota of the user, at box 406, the storage management engine 304 in the storage management device 206 / 300 may perform a data storage operation 800, which includes storing the data in the unprotected storage space 504 included in the shared storage space 500 in response to determining that the above inequality B is not satisfied.

[0042] If it is determined at decision block 404 that storage of the data would exceed the user storage quota, then method 400 proceeds to decision block 408 where it is determined whether the user is eligible to store the data in the shared storage space and to exceed their user storage quota. As discussed above, with respect to data designated for storage in protected storage space 502 included in shared storage space 500, method 400 may proceed to decision block 408 in response to determining that inequality A above is satisfied and inequality B above is satisfied. As also discussed above, with respect to data designated for storage in unprotected storage space 504 included in shared storage space 500, method 400 may proceed to decision block 408 in response to determining that inequality B above is satisfied.

[0043] In one embodiment, at decision block 408, the storage management engine 304 in the storage management device 206 / 300 may determine how much temporary storage space (S) is needed in the shared storage space according to the following equation C: temp ) to store user data that exceeds the user quota:

[0044]

[0045] Where ΔS is the size of the data provided in the data storage request, S ui,PDS [n] is the protected data space 502 of user u at time n i The size of the data, S ui,UDS [n] is the user u in the unprotected data space 504 at time n i The size of the data, Q ui is user u i As will be understood by those skilled in the art, the function min is S temp Provide a value that is the smaller of: 1) the size of the data ΔS; and 2) the user storage quota Q ui The difference between the amount of data to be stored for the user (if the data in the data storage request is stored in the shared storage space 500).

[0046] In response to determining that temporary storage space (S temp ) to store user data exceeding the user quota, the storage management engine 304 in the storage management device 206 / 300 may determine the temporary storage space (S temp ) is less than or equal to the user's maximum exceeded user quota data storage threshold:

[0047]

[0048] where Q ui / ∑ j Quj is the ratio of the user associated with the data storage request to all other users of the shared storage space 500, S ds,total is the total storage capacity of the shared storage space 500, and S ds,used [n] is the amount of storage capacity of the shared storage space 500 used at time n. Thus, in this example, the user's maximum exceeded user quota data storage threshold allows the user to utilize temporary storage space (S temp ), the temporary storage space is less than or equal to the user's proportional share of the currently remaining free / unused storage capacity of the shared storage space 500 (for example, provided by the ratio of the user to all other users).

[0049] If it is determined at decision block 408 that the user is eligible to store data in the shared storage space and exceeds their user storage quota, then method 400 proceeds to block 406 where the storage management device stores the data in the shared storage space. Similarly, as discussed above, at block 406 the storage management engine 304 in the storage management device 206 / 300 may store the data included in the data storage request received at block 402, but may Figure 8 As shown, the data is operated to be stored in the unprotected storage space 504 included in the shared storage space 500. Thus, a user may be allowed to store data in excess of their user storage quota, but the data will be stored in the unprotected storage space 504 included in the shared storage space 500 and will therefore be subject to automatic deletion during the method 900, which will be discussed in further detail below.

[0050] If it is determined at decision block 408 that the user does not meet the conditions for storing data in the shared storage space and exceeds their user storage quota, then method 400 proceeds to block 410 where the storage management device denies the data storage request. In one embodiment, at block 410, and in response to determining that the user does not meet the conditions for storing data in the shared storage space 500, the storage management engine 304 in the storage management device 206 / 300 denies the data storage request in the following manner: for example, by generating a data storage request denial notification and transmitting it to the user device 208a, which is configured to provide the data storage request denial notification for display to the user (e.g., on a display device included in the user device 208a). Thus, in response to determining that the temporary storage space (S) required to store user data that exceeds the user quota in the shared storage space is sufficient, the storage management engine 304 may deny the data storage request. temp) is greater than the user's maximum exceeded user quota data storage threshold (e.g., greater than the user's proportional share of the currently remaining free / unused storage capacity of the shared storage space 500 (e.g., provided by the ratio of the user to all other users)), the data storage request received at box 402 will be denied.

[0051] Furthermore, as discussed above, if the above inequality A is satisfied, and the storage of data in the protected data space 502 included in the shared memory space 500 (ie, S ui,PDS [n] + ΔS) will cause the user identified in the data storage request to exceed their user storage quota (Q ui ), the storage management engine 304 in the storage management device 206 / 300 determines at decision block 404 that storing the data will exceed the user storage quota at decision block 404, determines at decision block 408 that the user may not store data in excess of their user storage quota in a protected storage space included in the shared storage space, and denies the data storage request at block 410. Therefore, the user will not be allowed to store data in excess of their user storage quota in the protected data space 502.

[0052] Thus, when the shared storage space 500 includes free / unused storage capacity, a user may be permitted to store data in excess of their user storage quota in the shared storage space 500, as long as the amount of storage space required to store the data does not exceed the user's proportional share (e.g., provided by the ratio of the user to all other users) of the free / unused storage capacity of the shared storage space 500. As will be appreciated by those skilled in the art, the maximum excess user quota data storage threshold prevents users from using up more than their "fair share" of the free / unused storage capacity in the shared storage space 500 by storing data in excess of their user storage quota, and may be adjusted based on a variety of considerations known in the art (e.g., service level agreements (SLAs), etc.).

[0053] Now refer to Figure 9, illustrating an embodiment of a method 900 for providing dynamic user quotas in a shared storage system. As discussed below, the systems and methods of the present disclosure can utilize reinforcement learning techniques to provide automated and adaptive reclamation of shared storage space, which has been used to provide dynamic / elastic user storage quotas and allow some users to utilize more shared storage space than strictly permitted by their user storage quotas. For example, the shared storage dynamic user quota system of the present disclosure may include a storage management device coupled to a storage system having a shared storage space. The storage management device determines that a shared storage space state of the shared storage space meets the conditions of a shared storage space reclamation action and performs the shared storage space reclamation action, the shared storage space reclamation action comprising determining that the data stored in the shared storage space and exceeding the user storage quota has been accessed below a data access threshold and has been stored in the shared storage space for a period longer than a retention period, and in response, deleting the data from the shared storage space. Thus, users of the shared storage system may exceed their user storage quotas for a limited period of time, after which the stored data exceeding these user storage quotas will be deleted from the shared storage system.

[0054] Method 900 begins at block 902 where a storage management device determines a shared storage space status. In one embodiment, at block 902, the storage management engine 304 in the storage management device 206 / 300 may monitor the shared storage space to identify a shared storage space status, including the amount of shared storage space being utilized, as well as any other storage space information that one skilled in the art would recognize as enabling the functionality discussed below. Furthermore, in some embodiments, shared storage space status monitoring may be performed at regular time intervals, such that the amount of shared storage space utilized over time can be identified.

[0055] The method 900 then proceeds to decision block 904, where a determination is made as to whether the shared storage space state qualifies for a shared storage space reclamation action. In one embodiment, the storage management engine 304 in the storage management device 206 / 300 may include a reinforcement learning sub-engine configured to utilize reinforcement learning techniques to determine an action to be performed based on the shared storage space state identified at block 902. As will be appreciated by those skilled in the art, the reinforcement learning techniques provide for a reward r[n] to be communicated back to the reinforcement learning sub-engine in the storage management engine 304 when an action a[n] is performed in response to the shared storage space state s[n], whereupon the shared storage space 500 enters a subsequent shared storage space state S[N+1].

[0056] For example, the state vector s[n] utilized by the reinforcement learning sub-engine in the storage management engine 304 may be provided by:

[0057] s[n]=(υ[n] α[n] μ[n])

[0058] In the above state vector s[n], v[n] provides the instantaneous "speed" of change in the used space of the shared memory space 500 and can be determined by the following equation:

[0059]

[0060] In the above state vector s[n], α[n] provides the instantaneous “acceleration” of the change in the used space of the shared memory space 500 and can be determined by the following equation:

[0061]

[0062] In the above state vector s[n], μ[n] provides the space utilization of the shared memory space 500 at time n and can be determined by the following equation:

[0063]

[0064] Furthermore, the actions a[n] that can be performed by the reinforcement learning sub-engine in the storage management engine 304 in response to the shared storage space state s[n] can include: 1) reclaiming storage capacity in the shared storage space 500, or 2) performing no operation on the shared storage space 500, and the reward r[n] transmitted back to the reinforcement learning sub-engine in the storage management engine 304 for performing such actions a[n] can be determined by the following equation:

[0065]

[0066] in

[0067]

[0068] As will be appreciated by those skilled in the art, at any point in time n, the reinforcement learning sub-engine in the storage management engine 304 can determine the space utilization μ[n] of the shared storage space 500, the instantaneous “velocity” v[n] of the change in the used space of the shared storage space 500, and the instantaneous “acceleration” α[n] of the change in the used space of the shared storage space 500, which allows the reinforcement learning sub-engine in the storage management engine 304 to determine the state vector s[n] / shared storage space state of the shared storage space 500 at that time n. Using the state vector s[n] / shared storage space state of the shared storage space 500 at time n and the previous reward r[n-1], the reinforcement learning sub-engine in the storage management engine 304 can determine which action a[n] to perform (in this example, “reclaim storage capacity” or “do nothing”) and, in response, receive a reward r[n].

[0069] The process may then be repeated to determine the state vector s[n+1] / shared storage space state of the shared storage space 500 at time n+1, use the state vector / shared storage space state together with the reward r[n] to determine which action a[n+1] to perform, and receive the reward r[n+1] in response. Furthermore, one skilled in the art will appreciate that the equations for the rewards r[n] and sign[n] result in a shared storage space reclaim action (e.g., reclaiming storage capacity) being selected with a relatively high frequency when the shared storage space stores relatively more data, and a shared storage space reclaim action (e.g., specifically, selecting a "do nothing" action) being selected with a relatively low frequency when the shared storage space stores relatively less data. In a specific example and as discussed in further detail below, the reinforcement learning sub-engine in the storage management engine 304 may utilize an ∈-greedy action selection method in its selection of action a[n] in order to provide for exploration of new opportunities rather than always selecting the "best" action a[n] determined by the local reinforcement learning agent sub-engine.

[0070] Therefore, in an embodiment of decision block 904, the reinforcement learning sub-engine in the storage management engine 304 in the storage management device 206 / 300 may utilize the reinforcement learning techniques discussed above to determine whether the shared storage space state of the shared storage space 500 determined at block 902 meets the conditions for a shared space reclamation action (e.g., the reclaim storage capacity action discussed above). However, although specific reinforcement learning techniques have been described in determining whether the shared storage space state of the shared storage space 500 meets the conditions for a shared space reclamation action, those skilled in the art will recognize that other techniques for determining whether the shared storage space 500 meets the conditions for a shared space reclamation action will also fall within the scope of the present disclosure.

[0071] If it is determined at decision block 904 that the shared storage space state does not qualify for a shared storage space reclamation action, then the method 900 returns to block 902. Therefore, in response to determining at decision block 904 that the shared storage space 500 does not qualify for a shared storage space reclamation action (e.g., the reinforcement learning sub-engine in the storage management engine 304 in the storage management device 206 / 300 selects a "do nothing" action a[n] in response to the state s[n] and the previous reward r[n-1] in the above example), the storage management engine 304 in the storage management device 206 / 300 may again determine a (subsequent) shared storage space state of the shared storage space 500.

[0072] If it is determined at decision block 904 that the shared storage space state qualifies for a shared storage space reclaim action, then the method 900 proceeds to block 906 where the storage management device identifies data that 1) is stored in the shared storage space in excess of the user storage quota, 2) has been accessed below the data access threshold, and 3) has been stored for a time period longer than its retention period. In one embodiment, at block 906 and in response to determining at decision block 904 that the shared storage space 500 qualifies for a shared space reclaim action (e.g., the reinforcement learning sub-engine in the storage management engine 304 in the storage management device 206 / 300 selects the "reclaim storage capacity" action a[n] in response to the state s[n] and the previous reward r[n-1] in the above example), the storage management engine 304 in the storage management device 206 / 300 may identify data in the shared storage space 500 that exceeds the user storage quota, has been accessed below the data access threshold, and has been stored for a time period longer than its retention period.

[0073] For example, at block 906, the storage management engine 304 in the storage management device 206 / 300 may identify, for each user of the shared storage space, data that is stored in the unprotected storage space 504 included in the shared storage space 500 for the user, exceeds the user storage quota of the user, and has been stored in the unprotected storage space 504 included in the shared storage space 500 for a period longer than the retention period of the data. The method 900 then proceeds to block 908, where the storage management device deletes the data from the shared storage space. Figure 10In an embodiment of box 908 and for any data that is identified as having been stored in the unprotected storage space 504 included in the shared storage space 500 for a user, exceeding the user storage quota of the user, and having been stored in the unprotected storage space 504 included in the shared storage space 500 for a period longer than the retention period of the data, the storage management engine 304 in the storage management device 206 / 300 may perform a data deletion operation 1000, wherein the data deletion operation 1000 includes deleting the data from the unprotected storage space 504 included in the shared storage space 500.

[0074] For example, at blocks 906 and 908, the storage management engine 304 in the storage management device 206 / 300 may identify a user who has stored data in excess of their user storage quota according to the method 400 discussed above, scan the shared storage space usage of the user to determine whether the amount of protected data space 502 and unprotected data space 504 included in the shared storage space 500 used by the user to store their data exceeds their user storage quota, and then operate based on a least recently used (LRU) policy to delete any such data that has been stored in the unprotected data space 504 included in the shared storage space 500 for a period longer than its retention period, until the amount of protected data space 502 and unprotected data space 504 included in the shared storage space 500 used by the user to store their data no longer exceeds their user storage quota, or the user has no more data to delete. The storage management engine 304 in the storage management device 206 / 300 may then perform the same operation for each other user of the shared storage space 500. Therefore, the user will only have his data automatically deleted from the unprotected storage space 504 included in the shared storage space 500 until the total amount of data the user has stored in the shared storage space 500 is below his user storage quota.

[0075] refer to Figure 11, shows an embodiment of a storage management engine 1000 that can provide the storage management engine 304 in the storage management device 206 / 300 discussed above, wherein the storage management engine 1000 includes the reinforcement sub-engine discussed above. In the following specific example, a deep Q-network (DQN) reinforcement learning technique is utilized. Those skilled in the art will recognize that such a technique combines Q-learning and deep neural networks to solve relatively complex problems where the state space is continuous, and operates to recognize dynamics in the environment and learns during runtime. Thus, in the illustrated example, the storage management engine 1000 includes a local deep Q network (DQN) agent sub-engine 1002 coupled to the shared memory space 500, an ∈-greedy action selection sub-engine 1004 coupled to the local DQN agent sub-engine 1002 and the shared memory space 500, a replay buffer sub-engine 1006 coupled to the ∈-greedy action selection sub-engine 1004 and the shared memory space 500, a target DQN agent sub-engine 1008 coupled to the local DQN agent sub-engine 1002 and the replay buffer sub-engine 1006, and a learning sub-engine 1010 coupled to the local DQN agent sub-engine 1002 and the target DQN agent sub-engine 1008. In addition, the learning sub-engine 1010 includes a loss component 1010a coupled to the local DQN agent sub-engine 1002 and the target DQN agent sub-engine 1008, a propagation component 1010b coupled to the loss component 1010a, and an optimizer component 1010c coupled to the propagation component 1010b and the local DQN agent sub-engine 1002.

[0076] As shown, the local DQN agent sub-engine 1002 can identify a state s[n] of the shared memory space 500 and can perform an action selection operation 1012 in conjunction with the ∈-greedy action selection sub-engine 1004 to select an action a[n] to be performed on the shared memory space 500 (e.g., "reclaim storage capacity" or "do nothing" in the above example). As discussed above, using the ∈-greedy action selection technique in selecting action a[n] provides for exploration of new opportunities rather than always selecting the best action a[n] determined by the local DQN agent sub-engine 1002. As discussed above, in response to performing action a[n], a reward r[n] is provided, and the local DQN agent 1002 sub-engine can move to a subsequent state s[n+1], while the replay buffer sub-engine 1006 can operate to save the current experience (s[n], a[n], r[n], s[n+1], done[n]). In addition, every N_STEP iterations, a batch of experiences (s[n], a[n], r[n], s[n+1], done[n]) can be provided from the replay buffer sub-engine 1006 to the target DQN agent sub-engine 1008 ({s[n]}, {a[n]},) and the local DQN agent sub-engine 1002 ({r[n]}, {s[n+1]}, {done[n]}). The target Q value (Q) can then be determined by the learning sub-engine 1010 based on the output of the target DQN sub-engine 1008 using the following equation (where γ is a discount factor) target ):

[0077]

[0078] Similarly, the expected Q value ({Q local (s[k],α[k])}) can be determined by the learning sub-engine 1010 based on the output of the local DQN sub-engine 1002, and the loss component 1010a in the learning sub-engine 1010 can calculate the target Q value (Q target ) and the mean squared error (MSE) between the expected Q value. The propagation component 1010b in the learning sub-engine 1010 can then back-propagate the MSE (calculated by the loss component 1010a) within the local DQN agent sub-engine 1002, and the optimizer component 1010c in the learning sub-engine 1010 can update the weights of the local DQN agent sub-engine 1002 with the weights of the target DQN agent sub-engine 1008 updated according to the following equation:

[0079] θ target =T·θ local +(1-τ)·θ target

[0080] where θtarget represents the weight of the target DQN agent sub-engine 1008, θ local represents the weight of the local DQN agent sub-engine 1002, and τ is a hyperparameter that provides the update rate (which is usually relatively small). Therefore, instead of updating the target DQN agent sub-engine 1008 once, a "soft update" technique can be used to frequently move the target DQN agent sub-engine 1008 slightly to the local DQN agent sub-engine 1002.

[0081] refer to Figure 12 , the experimental implementation of the shared storage dynamic user quota system of the present disclosure includes 10 users, utilizing a shared storage space with a total capacity of 20GB, and a graph 1200 is obtained that plots the space utilization of the shared storage space of all users over time. As discussed above, the shared storage dynamic user quota system of the present disclosure allows users to temporarily exceed their user storage quotas for a relatively short period of time to meet their storage needs, thereby improving the utilization and efficiency of the shared storage system, especially when other users are using less shared storage than their user storage quotas allow. As can be seen from Figure 12 It can be seen that the experimental implementation scheme of the shared storage dynamic user quota system is capable of automatically reclaiming storage capacity allocated to users without human / manual intervention, thereby allowing the space utilization of the shared storage system to regularly approach (although not reach) the total capacity of the shared storage system, thereby providing a shared storage system that is more efficient and flexible than conventional shared storage systems and benefits both users and storage administrators.

[0082] refer to Figure 12 The experimental implementation of the shared storage dynamic user quota system of the present disclosure also yields a graph 1300 that plots the space utilization of shared storage space for a particular user over time. As will be appreciated by those skilled in the art, the user from which graph 1300 is generated provides relatively large storage demands over time, wherein the shared storage space utilized by the user fluctuates and regularly exceeds the user storage quota of the user (e.g., the value in graph 1300 exceeds 1.0), but only for short periods of time. Thus, the experimental implementation of the shared storage dynamic user quota system of the present disclosure is able to prevent users with relatively high storage demands from using up more than a threshold amount of free storage resources, while still allowing those users to exceed their user storage quotas.

[0083] Thus, a system and method for storing data in a shared storage space provided in a shared storage system in a manner that provides dynamic / elastic user storage quotas has been described, wherein the dynamic / elastic user storage quotas allow some users to utilize more shared storage space than is permitted under their user storage quotas for a limited time period. For example, the shared storage dynamic user quota system of the present disclosure may include a storage management device coupled to a storage system having a shared storage space. The storage management device receives a data storage request from a user device to store data in a shared storage space. If the storage management device determines that the storage of the data in the shared storage space will exceed the user storage quota of the user associated with the user device, then the storage management device determines whether the user meets the conditions for storing the data in the shared storage space and exceeding the user storage quota. In response to determining that the user meets the conditions for storing the data in the shared storage space and exceeding the user storage quota, the storage management device stores the data in the shared storage space. Thus, users of a shared storage system with relatively short-term high storage needs can exceed their user storage quotas, which provides more efficient utilization of the shared storage space, particularly when other users of the shared storage system are utilizing less shared storage space than allowed by their user storage quotas.

[0084] While illustrative embodiments have been shown and described, a wide range of modifications, changes, and substitutions are contemplated in the foregoing disclosure, and in some cases, some features of the embodiments may be employed without a corresponding use of other features. It is appropriate, therefore, that the appended claims be interpreted broadly and in a manner consistent with the scope of the embodiments disclosed herein.

Claims

1. A shared storage dynamic user quota system, comprising: A storage system, the storage system comprising a shared storage space; as well as a storage management device coupled to the storage system and configured to: receiving a data storage request from a user device to store data in the shared storage space; determining that the storing of the data in the shared storage space will exceed a user storage quota of a user associated with the user device; determining, in response to determining that the storing of the data in the shared storage space will exceed the user storage quota, that an amount of the shared storage space required to store the data in excess of the user storage quota is less than a maximum portion of the shared storage space permitted by the user for storing data in excess of the user storage quota, such that the user is eligible to store the data in the shared storage space and exceed the user storage quota; and The data is stored in the shared storage space in response to determining that the user is eligible to store the data in the shared storage space and exceeds the user storage quota.

2. The system of claim 1, wherein the storage management device is further configured to: Determining that a shared storage space state of the shared storage space meets a condition for a shared storage space reclaiming action; and Executing the shared storage space reclaiming action, wherein the shared storage space reclaiming action includes: determining that the data stored in the shared storage space and exceeding the user storage quota has been accessed below a data access threshold and has been stored in the shared storage space for a time longer than a retention period; as well as In response to the data stored in the shared storage space and exceeding the user storage quota having been accessed below the data access threshold and having been stored in the shared storage space for longer than the retention period, the data is deleted from the shared storage space.

3. The system of claim 2, wherein the storage management device includes a reinforcement learning engine configured to determine whether the shared storage space state of the shared storage space meets the conditions for the shared storage space reclaim action.

4. The system of claim 3, wherein the reinforcement learning engine included in the storage management device is configured to receive a shared storage space reclamation action reward in response to performing the shared storage space reclamation action, the shared storage space reclamation action reward being configured to cause the reinforcement learning engine to perform the shared storage space reclamation action at a first frequency when the shared storage space stores a first amount of data, and to perform the shared storage space reclamation action at a second frequency when the shared storage space stores a second amount of data, wherein When the second amount is less than the first amount, the second frequency is lower than the first frequency, and when the second amount is greater than the first amount, the second frequency is higher than the first frequency.

5. The system of claim 1 , wherein the maximum portion of the shared storage space permitted by the user for storing data exceeding the user's storage quota comprises: ‌The user's proportional share of the currently remaining available / unused storage capacity of the shared storage space relative to multiple other users. 6 . The system of claim 1 , wherein the shared memory space includes a protected memory space and an unprotected memory space, and wherein the data is stored in the unprotected memory space included in the shared memory space.

7. An information handling system (IHS), comprising: processing systems; as well as a memory system coupled to the processing system and comprising instructions that, when executed by the processing system, cause the processing system to provide a storage management engine configured to: receiving a data storage request from a user device to store data in a shared storage space; determining that the storing of the data in the shared storage space will exceed a user storage quota of a user associated with the user device; determining, in response to determining that the storing of the data in the shared storage space will exceed the user storage quota, that an amount of the shared storage space required to store the data in excess of the user storage quota is less than a maximum portion of the shared storage space permitted by the user for storing data in excess of the user storage quota, such that the user is eligible to store the data in the shared storage space and exceed the user storage quota; and The data is stored in the shared storage space in response to determining that the user is eligible to store the data in the shared storage space and exceeds the user storage quota.

8. The information handling system of claim 7, wherein the storage management engine is configured to: Determining that a shared storage space state of the shared storage space meets a condition for a shared storage space reclaiming action; and Executing the shared storage space reclaiming action, wherein the shared storage space reclaiming action includes: determining that the data stored in the shared storage space and exceeding the user storage quota has been accessed below a data access threshold and has been stored in the shared storage space for a time longer than a retention period; as well as In response to the data stored in the shared storage space and exceeding the user storage quota having been accessed below the data access threshold and having been stored in the shared storage space for longer than the retention period, the data is deleted from the shared storage space.

9. The information handling system of claim 8, wherein the storage management engine comprises a reinforcement learning sub-engine, the reinforcement learning sub-engine configured to determine whether the shared storage space state of the shared storage space meets the conditions for the shared storage space reclamation action.

10. The information handling system of claim 9, wherein the reinforcement learning sub-engine included in the storage management device is configured to receive a shared storage space reclamation action reward in response to performing the shared storage space reclamation action.

11. The information handling system of claim 10 , wherein the shared storage space reclaiming action reward is configured to cause the reinforcement learning sub-engine to perform the shared storage space reclaiming action at a first frequency when the shared storage space stores a first amount of data, and to perform the shared storage space reclaiming action at a second frequency when the shared storage space stores a second amount of data, wherein When the second amount is less than the first amount, the second frequency is lower than the first frequency, and when the second amount is greater than the first amount, the second frequency is higher than the first frequency.

12. The information handling system of claim 7, wherein the maximum portion of the shared storage space permitted by the user for storing data exceeding the user's storage quota comprises: ‌The user's proportional share of the currently remaining available / unused storage capacity of the shared storage space relative to multiple other users.

13. The information handling system of claim 7, wherein the shared memory space includes a protected memory space and an unprotected memory space, and wherein the data is stored in the unprotected memory space included in the shared memory space.

14. A method for providing dynamic user quotas in a shared storage system, comprising: The storage management device receives a data storage request from a user device to store data in a shared storage space; determining, by the storage management device, that the storing of the data in the shared storage space will exceed a user storage quota of a user associated with the user device; determining, by the storage management device, in response to determining that storing of the data in the shared storage space will exceed the user storage quota, that an amount of the shared storage space required to store the data in excess of the user storage quota is less than a maximum portion of the shared storage space permitted by the user for storing data in excess of the user storage quota, such that the user is eligible to store the data in the shared storage space and exceed the user storage quota; as well as The storage management device stores the data in the shared storage space in response to determining that the user meets the conditions for storing the data in the shared storage space and exceeds the user storage quota.

15. The method of claim 14, further comprising: The storage management device determines that the shared storage space state of the shared storage space meets the conditions for a shared storage space reclaiming action; as well as The shared storage space reclaiming action is performed by the storage management device, wherein the shared storage space reclaiming action includes: determining, by the storage management device, that the data stored in the shared storage space and exceeding the user storage quota has been accessed below a data access threshold and has been stored in the shared storage space for a time longer than a retention period; as well as The data is deleted from the shared storage space by the storage management device in response to the data stored in the shared storage space and exceeding the user storage quota having been accessed below the data access threshold and having been stored in the shared storage space for a time longer than the retention period.

16. The method of claim 15, wherein the storage management device comprises a reinforcement learning sub-engine configured to determine whether the shared storage space state of the shared storage space meets the conditions for the shared storage space reclaiming action.

17. The method of claim 16, wherein the reinforcement learning sub-engine included in the storage management device is configured to receive a shared storage space reclamation action reward in response to performing the shared storage space reclamation action.

18. The method of claim 17, wherein the shared storage space reclaiming action reward is configured to cause the reinforcement learning sub-engine to perform the shared storage space reclaiming action at a first frequency when the shared storage space stores a first amount of data, and to perform the shared storage space reclaiming action at a second frequency when the shared storage space stores a second amount of data, wherein When the second amount is less than the first amount, the second frequency is lower than the first frequency, and when the second amount is greater than the first amount, the second frequency is higher than the first frequency.

19. The method of claim 14, wherein the maximum portion of the shared storage space permitted by the user for storing data exceeding the user's storage quota comprises: ‌The user's proportional share of the currently remaining available / unused storage capacity of the shared storage space relative to multiple other users.

20. The method of claim 14, wherein the shared memory space includes a protected memory space and an unprotected memory space, and wherein the data is stored in the unprotected memory space included in the shared memory space.

Citation Information

Patent Citations

  • Multiple node quota filter

    US8131784B1

  • Hybrid file system for virtual machine storage

    US8463825B1