WO2020224531A1 - 存储系统中令牌的分配方法和装置 - Google Patents

存储系统中令牌的分配方法和装置 Download PDF

Info

Publication number
WO2020224531A1
WO2020224531A1 PCT/CN2020/088274 CN2020088274W WO2020224531A1 WO 2020224531 A1 WO2020224531 A1 WO 2020224531A1 CN 2020088274 W CN2020088274 W CN 2020088274W WO 2020224531 A1 WO2020224531 A1 WO 2020224531A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
group
controller
storage node
token
Prior art date
Application number
PCT/CN2020/088274
Other languages
English (en)
French (fr)
Inventor
余思
龚骏辉
杨阳
瓦曼彼得
彭禹涵
Original Assignee
华为技术有限公司
威廉马什莱斯大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司, 威廉马什莱斯大学 filed Critical 华为技术有限公司
Publication of WO2020224531A1 publication Critical patent/WO2020224531A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • This application relates to the field of information technology, and more specifically, to a method and device for allocating tokens in a storage system.
  • QoS Quality of Service
  • SLA Service Level Agreement
  • IOPS Input/Output Operations Per Second
  • the industry usually uses a token-based mechanism to control the number of IO requests processed by storage nodes in a storage system per unit time for storage objects. That is, when the storage node stores the token of the storage object, it can process IO requests for the storage object, where the number of tokens stored by the storage node is usually equal to the number of IO requests that the storage node can process.
  • the allocation of tokens for each storage object in the storage system is usually centralized by the controller. That is, the controller allocates tokens on storage nodes in the storage system based on the QoS parameters of each storage object.
  • This method of centrally allocating the number of tokens by the controller makes the calculation of the controller very large and the calculation takes a long time, especially when there are many storage nodes and a large number of storage objects in the storage system. For example, if the storage system includes 64 storage nodes and needs to provide services for 10,000 storage objects, the calculation time required for the controller to allocate the number of tokens to 10,000 storage objects will reach 30 seconds.
  • the present application provides a method and device for allocating tokens in a storage system, which is beneficial to reducing the calculation time required for allocating the number of tokens to storage objects in the storage system.
  • a method for allocating tokens in a storage system includes a controller and a plurality of in-group controllers; the controller is each group of the plurality of in-group controllers.
  • the internal controller allocates the number of tokens
  • the storage system further includes a plurality of storage node sets, the plurality of storage node sets include a first storage node set
  • the method includes: a first of the plurality of in-group controllers
  • the controller in a group determines the number of tokens on at least one storage node in the first storage node set of the first storage object in the first storage object group managed by the controller in the first group in a unit time ;
  • the controller in the first group indicates the number of tokens of the first storage object in the unit time to the at least one storage node.
  • the controller in the first group determines the number of tokens of the storage objects in the first storage object group, which is beneficial to reduce the time occupied by token distribution. It is avoided that the tokens of all storage objects in the storage system in the prior art are centrally distributed by the controller, which leads to a large amount of calculation in the process of determining the token distribution by the controller and increases the time occupied by the token distribution.
  • the foregoing first storage object group belongs to one of a plurality of storage object groups, and the token allocation of a storage object in each storage object group in the plurality of storage object groups is assigned by one of the plurality of controllers in the group. Controller management in the group.
  • the storage objects in the storage system are divided into multiple storage object groups, and the token allocation of the storage objects in the storage object group is managed by the controller in the group, and the calculation required for the token allocation of the storage objects The amount is distributed to multiple controllers in the group, which is beneficial to reduce the calculation amount of token distribution by the controllers in the group and shorten the time required for token distribution.
  • the first storage object group includes a second storage object
  • the method further includes: the controller in the first group sends a token migration request to the controller, and the command The card migration request is used to request the controller to migrate the token to be migrated of the second storage object to another storage node, and the other storage node does not belong to the first storage node set.
  • the controller in the first group may request to migrate the token to be migrated to a storage node outside the first storage node set by sending a token migration request to the controller, which is conducive to improving token distribution. Reasonableness.
  • the other storage node belongs to a storage node set of a second storage object set managed by a second controller in the group of the plurality of controllers in the group.
  • the controller in the group sending a token migration request to the controller includes: if a storage node in the storage node set cannot receive the token to be migrated, the first The controller in the group sends the token migration request to the controller.
  • the controller in the first group may request the token to be migrated to be migrated by sending a token migration request to the controller
  • the storage nodes outside the first storage node set are beneficial to improve the rationality of token distribution and relieve the pressure on the storage nodes in the first storage node set.
  • the method further includes: the controller in the first group selects a first storage node from the set of storage nodes; the controller in the first group sets a set of storage nodes from the storage node. Select the second storage node in the first group; the controller in the first group migrates the token of the third storage object from the first storage node to the second storage node, and the third storage object belongs to the first Storage object group.
  • the controller in the first group can select the first storage node that needs to migrate the token from the storage node set, and the second storage node that can receive the migrated token. It is avoided that in the prior art, once the token migration is required, the controller needs to determine the node that can accept the token within the range of all storage nodes in the storage system.
  • the solution of the embodiment of the present application selects the second storage node The scope is reduced from the entire storage system to the combination of storage nodes, which helps reduce the amount of calculation for determining the second storage node.
  • the controller in the first group indicating the number of tokens of the first storage object in the unit time to the at least one storage node includes: the controller in the group instructs The at least one storage node indicates the unit time and the number of tokens of the first storage object in the unit time.
  • the unit time length and the number of tokens of the first storage object in the unit time are indicated to at least one storage node, so that at least one storage node is the first storage object in the unit time. Generate the number of tokens.
  • the controller in the first group indicating the number of tokens of the first storage object in the unit time to the at least one storage node includes: the controller in the group instructs The at least one storage node indicates a token generation speed corresponding to the first storage object, and the token generation speed is the number of tokens for generating the first storage object in the unit time.
  • the token generation speed is indicated to at least one storage node, so that the at least one storage node generates tokens for the first storage object with the number of tokens per unit time.
  • a method for allocating tokens in a storage system wherein the storage system includes a plurality of in-group controllers and controllers; wherein, different groups of the plurality of in-group controllers
  • the internal controller is used to manage different storage object groups.
  • the multiple internal controllers allocate tokens on at least one storage node for the managed storage object groups.
  • the storage system further includes multiple storage node sets.
  • a set of storage nodes includes a first set of storage nodes, and the method includes: the controller receives a token migration request sent by a first controller in the plurality of controllers in the group, the token migration request It is used to request that the token to be migrated of the first storage object group managed by the controller in the first group be migrated from the first storage node set to another storage node, and the other storage node does not belong to the first storage node.
  • a collection of storage nodes the controller migrates the token to be migrated to the other storage nodes.
  • the number of tokens of storage objects in the storage object group is determined by the in-group controller, which is beneficial to reduce the time occupied by token allocation. It is avoided that the tokens of all storage objects in the storage system in the prior art are centrally allocated by the controller, which leads to a large amount of calculation in the process of determining the token allocation and increases the time occupied by the token allocation.
  • the controller in the group may send a token migration request to the controller to request that the token to be migrated be migrated to a storage node outside the storage node set, which is beneficial to improve the rationality of token distribution.
  • a device for token distribution in a storage system may be an in-group controller or a chip in the in-group controller.
  • the device may include a processing module and a sending module.
  • the processing module may be a processor, and the sending module may be an input/output interface;
  • the in-group controller may further include a storage unit, and the storage unit may be a memory;
  • the storage unit is used for storing instructions, and the processing unit executes the instructions stored by the storage unit, so that the controller in the group executes the methods in the above aspects.
  • the processing unit may be a processor, and the sending module may be an input/output interface, a pin or a circuit, etc.; the processing unit executes the storage unit stored Instructions, so that the controller in the group executes the methods in the above aspects, the storage unit may be a storage unit in the chip (for example, a register, a cache, etc.), or may be a controller in the group The storage unit (for example, read-only memory, random access memory, etc.) located outside the chip.
  • a device for token distribution in a storage system may be a controller or a chip in the controller.
  • the device may include a processing module and a sending module.
  • the processing module may be a processor, and the sending module may be an input/output interface;
  • the controller may also include a storage unit, and the storage unit may be a memory;
  • the storage unit is used to store instructions, and the processing unit executes the instructions stored by the storage unit, so that the controller executes the methods in the above-mentioned aspects.
  • the processing unit may be a processor, and the sending module may be an input/output interface, a pin or a circuit, etc.; the processing unit executes instructions stored in the storage unit,
  • the storage unit may be a storage unit (for example, a register, a cache, etc.) in the chip, or may be located in the controller in the group.
  • a storage unit external to the chip for example, read-only memory, random access memory, etc.).
  • a computer program product comprising: computer program code, which when the computer program code runs on a computer, causes the computer to execute the methods in the above aspects.
  • the above-mentioned computer program code may be stored in whole or in part on a first storage medium, where the first storage medium may be packaged with the processor or separately packaged with the processor. This embodiment of the application does not deal with this. Specific restrictions.
  • a computer-readable medium stores program code, and when the computer program code runs on a computer, the computer executes the methods in the above aspects.
  • Figure 1 is a schematic diagram of a storage system to which the traditional token distribution method is applicable.
  • Fig. 2 is a schematic diagram of a storage system to which an embodiment of the present application is applicable.
  • Fig. 3 is a flowchart of a token distribution method according to an embodiment of the present application.
  • Fig. 4 is a flowchart of a method for allocating tokens by a controller in a group according to an embodiment of the present application.
  • Fig. 5 is a schematic diagram of a token distribution device in an embodiment of the present application.
  • Fig. 6 is a schematic diagram of a controller of an embodiment of the present application.
  • Fig. 7 is a schematic block diagram of an in-group controller according to another embodiment of the present application.
  • Fig. 8 is a schematic block diagram of a controller according to another embodiment of the present application.
  • Storage objects can be understood as objects operated on in the storage system. For example, it can be an object in object storage, a logical disk in block storage, or a file in file storage.
  • Qos parameter a parameter used to describe the quality of service of the storage object.
  • the current mainstream QoS parameters include upper limit flow control (limit) and lower limit guarantee (reservation).
  • limit limits
  • lower limit guarantee a parameter used to indicate the minimum number of IO requests for storage objects that the storage node needs to process in a unit time.
  • the token is used to indicate the number of IO requests processed by the storage object. Among them, each token corresponds to an IO request of the storage object. When there is no token of the storage object in the storage node, the storage node no longer processes the IO request corresponding to the storage object.
  • the QoS parameters of the storage object include upper limit flow control and lower limit guarantee
  • two types of tokens can be set for each storage object, namely, upper limit token and lower limit token.
  • the upper limit token is used to indicate the upper limit flow control of the storage object, that is, the number of upper limit tokens generated in a unit time is equal to the above-mentioned maximum value, so as to limit the number of IO requests of the storage object processed by the storage node in the unit time.
  • the lower limit token is used to indicate the lower limit guarantee of the storage object, that is, the number of lower limit tokens generated in a unit time is equal to the above minimum value to guarantee the number of IO requests of the storage object processed by the storage node in the unit time.
  • the upper limit token and the lower limit token are stored in the upper limit token bucket and the lower limit token bucket respectively.
  • an upper limit is taken out from the upper limit token bucket corresponding to the storage object.
  • Token take out a lower limit token from the lower limit token bucket, that is, reduce the number of tokens in the corresponding token bucket.
  • FIG. 1 is a schematic diagram of a storage system to which the traditional token distribution method is applicable.
  • the storage system shown in FIG. 1 includes a controller 110, a client 120, and multiple storage nodes 130.
  • the storage node 130 is used to provide storage space for data in the storage system.
  • Each storage node can provide storage services for multiple storage objects, or in other words, each storage node can process IO requests corresponding to multiple storage objects.
  • the aforementioned storage node 130 may be a server or other devices with storage functions.
  • the client 120 is configured to receive the IO request sent by the user, and forward the IO request to the corresponding storage node.
  • the controller 110 is used to allocate tokens to storage objects that provide services for the storage system on multiple storage nodes, or adjust the number of tokens of storage objects on the storage nodes, for example, to store the tokens of a certain storage object from the source Node migration to the target storage node, etc.
  • this application provides a token distribution method, which groups storage objects in the storage system to form a storage object group, and the controller in the group calculates the token distribution of the storage objects in the storage object group , which helps to reduce the time taken for calculating token distribution and improve the processing speed of the storage system.
  • the following describes the storage system applicable to the embodiment of the present application and the token allocation scheme of the embodiment of the present application in conjunction with FIG. 2 and FIG. 3.
  • Fig. 2 is a schematic diagram of a storage system to which an embodiment of the present application is applicable.
  • the storage system shown in FIG. 2 includes a controller 210, a client 120, a plurality of storage nodes 130, and a controller 220 in the group.
  • the functions of the client 120 and the multiple storage nodes 130 in FIG. 2 are the same as those of the client and storage nodes introduced in FIG. 1, and for the sake of brevity, they will not be repeated here.
  • the following focuses on the functions of the controller 220 and the controller 210 in the group.
  • the in-group controller 220 is used to manage the allocation or migration of tokens of storage objects in the storage object group.
  • controllers in the above group may be multiple, which is not specifically limited in the embodiment of the present application.
  • the controller in each group is used to manage the allocation of tokens of storage objects in one or more storage object groups. If the number of controllers in the group is multiple, the storage object groups managed by the controllers in different groups are different.
  • the tokens of the storage objects in the storage object group are only distributed on some storage nodes in the storage system, where some storage nodes can be used as a collection of storage nodes.
  • the controller in the group can usually allocate or migrate tokens of storage objects in the storage object group in the storage node set.
  • the above-mentioned in-group controller may be set on all or part of the storage nodes in the storage system, which is not limited in the embodiment of the present application.
  • the controller 210 is configured to allocate the number of tokens to each of the plurality of controllers in the group, and may also be used to manage the migration of tokens of storage objects between storage node sets.
  • the above-mentioned controller may be set separately, or may be set on a certain storage node (for example, the main storage node) in the storage system.
  • the controller is set on a storage node, it is usually set on a different storage node from the controller in the group to avoid the controller and the controller in the group are set on the same storage node, which will increase the amount of calculation on the storage node .
  • the controller in the group and the controller can also be set on the same storage node.
  • Fig. 3 is a flowchart of a token distribution method according to an embodiment of the present application.
  • the method shown in FIG. 3 includes step 310 to step 330. It should be noted that the method shown in FIG. 3 may be executed by any one of the plurality of in-group controllers shown in FIG. 2, for example, the first in-group controller.
  • the controller in the first group determines the number of tokens on at least one storage node in the first storage node set of the first storage object in the first storage object group managed by the controller in the first group within a unit time.
  • the first storage object group may include one or more storage objects.
  • the first storage object may be any one of the multiple storage objects.
  • the aforementioned at least one storage node may include one or more storage nodes.
  • the foregoing first storage node set may be one storage node set among multiple storage node sets in the storage system.
  • the above token may refer to the upper limit token or the lower limit token mentioned above, and may also refer to other tokens representing the QoS parameters of the storage object, which is not limited in the embodiment of the present application.
  • the controller in the first group may determine the number of tokens of the storage object.
  • the controller in the first group may determine the number of tokens allocated by the storage object based on the Qos parameter of the storage object, or The controller in the first group may also evenly distribute the number of tokens of storage objects on at least one storage node. The embodiments of this application do not limit this.
  • the controller in the first group indicates to at least one storage node the number of tokens of the first storage object in a unit time.
  • the controller in the first group indicates the generation speed of the token of the first storage object to at least one storage node to indicate the number of tokens of the first storage object that the at least one storage node needs to generate per unit time.
  • the controller in the first group may directly indicate the number of tokens of the first storage object to at least one storage node, and at least one storage node generates the first storage node within the prestored unit time length. Token storing the number of tokens of the object.
  • the token generated by the storage node for the first storage node may be stored in the token bucket.
  • the controller in the first group determines the number of tokens of the storage objects in the storage object group, which is beneficial to reduce the time occupied by token distribution. It is avoided that the tokens of all storage objects in the storage system in the prior art are centrally allocated by the controller, which leads to a large amount of calculation in the process of determining the token allocation and increases the time occupied by the token allocation.
  • the method shown in Figure 3 can be applied to the architecture of the storage system shown in Figure 2, that is, based on the controller in the group and the two-level token allocation of the controller, the controller in the group helps the controller to share part of the token allocation.
  • the method shown in Figure 3 can also be applied to a storage system that only contains multiple controllers in the group, that is, the storage objects in the storage system are divided into multiple storage object groups, and the controllers in different groups manage the corresponding
  • the allocation of the tokens of the storage objects in the storage object group, the calculation amount when the controller centrally allocates tokens in the traditional token allocation scheme is distributed to multiple controllers in the group to reduce the calculation amount when the controller allocates tokens .
  • In-group controllers usually only manage the token allocation of storage objects in the corresponding storage object group, and do not care about the token allocation of storage objects in the storage object group managed by other in-group controllers in the storage system, and the correspondence of other storage object groups
  • the performance of the storage node In other words, the storage nodes managed by the controller in the group, the performance of the storage nodes maintained, and the requirements of storage objects are usually in the corresponding storage object group.
  • the controller in the group manages the demand for storage objects in the storage object group on the storage nodes (the number of processing IO requests), and the controller in the group manages the number of tokens allocated for storage objects in the storage object group on each storage node.
  • the internal controller manages the performance of the storage node where the token of the storage object group is located.
  • the performance of the storage node and the token distribution of storage objects in the storage node learned by the controller in the group are usually limited. If the token of the storage object managed by the controller in the group needs to be migrated to other storage nodes in the storage system , The controller in the group may not maintain the performance of other storage nodes, that is, other storage nodes are storage nodes outside the management of the controller in the group, which makes it impossible to reasonably determine the number of tokens that other storage nodes can accept.
  • the embodiment of the present application provides the above-mentioned "two-level” token distribution method.
  • the controller maintains the information of each storage node and each storage object in the storage system as the "global information" of the storage system, for example, in the storage system
  • the performance of each storage node, and the token allocation of each storage object of the storage system in each storage node, etc., and the controller will migrate the token to be migrated from the storage node managed by the controller in the group based on the above “global information” Storage nodes outside the management of the controller in the group.
  • the foregoing storage object group includes a second storage object
  • the tokens of the storage object group managed by the controller in the first group are distributed on storage nodes in the storage node set.
  • the method shown in FIG. 3 includes: 330.
  • a group of internal controllers sends a token migration request to the controller, the token migration request is used to request the controller to migrate the token to be migrated of the second storage object to another storage node, and the other storage node does not Belongs to the first storage node set.
  • the foregoing second storage object may refer to one or more storage objects in the storage object group that need to perform token migration.
  • the foregoing other storage nodes may refer to storage nodes that are not managed by the controllers in the first group, or in other words, the other storage nodes are storage nodes that are managed by other controllers in the first group.
  • the other storage nodes are storage nodes of the second storage object group managed by the controller in the second group among the controllers in the group.
  • the foregoing other storage nodes may refer to one or more storage nodes that do not belong to the first storage node set.
  • the controller can migrate the above-mentioned token to be migrated based on the traditional token migration process.
  • a token migration directed graph can be constructed, and the token migration path is calculated according to the number of tokens to be migrated and the token migration directed graph, and then the tokens to be migrated are migrated according to the token migration path.
  • the trigger condition for triggering the token migration request may include that the storage node in the storage node set cannot receive the token to be migrated, for example, the storage nodes in the storage node set are all in an overload state, or the storage node set The number of IO requests that the storage node can handle is close to the maximum number of IO requests that the storage node can handle.
  • each storage node maintained by the above controller the distribution of tokens of each storage object on the storage node, and the number of IO requests that each storage object needs to be processed by the storage node can be controlled by the group.
  • the controller is sent to the controller, that is, the “bottom-up” method is adopted for statistical summary at the controller.
  • the controller in the first group selects the first storage node from the set of storage nodes; the controller in the first group selects the second storage node from the set of storage nodes; the controller in the first group selects the third storage node
  • the token of the object is migrated from the first storage node to the second storage node, and the third storage object belongs to the first storage object group.
  • the above-mentioned first storage node may be a node in the first storage node set that needs to migrate tokens, for example, it may be a storage node in an overloaded state, or it may also be that the token of the third storage object has remaining storage nodes,
  • the embodiments of this application do not limit this.
  • the foregoing second storage node may be understood as a target storage node for token migration, and may be one storage node or multiple storage nodes.
  • N i represents the number of tokens of the storage object i that need to be migrated
  • r p represents the number of tokens beyond the processing capacity of the first storage node p
  • e q represents the number of tokens acceptable to the second storage node q.
  • a i,j represents the number of tokens allocated by the storage object i on the first storage node j
  • di ,k represents the demand for the storage object i on the second storage node k, that is, the second storage node k needs to process
  • a i,k represents the number of tokens allocated by the storage object i on the second storage node k.
  • the controller in the first group may randomly determine the second storage node from the storage node set according to the load condition of the storage node.
  • the controller in the first group can determine the token migration path of length L in the storage node set with the first storage node as the starting point.
  • the second storage node is one or more storage nodes located on the token migration path.
  • the controller in the first group can select the first storage node that needs to migrate the token from the storage node set, and the second storage node that can receive the migrated token. It is avoided that in the prior art, once the token migration is required, the controller needs to determine the node that can accept the token within the range of all storage nodes in the storage system.
  • the solution of the embodiment of the present application selects the second storage node The scope is reduced from the entire storage system to the combination of storage nodes, which helps reduce the amount of calculation for determining the second storage node.
  • the following describes the method for allocating tokens by the controller in the group in the embodiment of the present application in conjunction with Table 1, Table 2 and FIG. 4 through specific examples.
  • the method shown in FIG. 4 includes step 410 and step 430.
  • the controller in the group below may be any one of the controllers in the group, for example, it may be the controller in the first group mentioned above.
  • the storage object group managed by the controller in the group includes storage object 1, storage object 2, and storage object 3, and the tokens of the storage objects in the storage object group are distributed among storage node 1, storage node 2 and storage node 3, namely
  • the set of storage devices managed by the controller in the group includes storage node 1 and storage node 2 and storage node 3.
  • a i represents the number of tokens stored in the object storage node i has been dispensed
  • the controller in the group determines the number of tokens to be migrated.
  • the controller in the group determines that the token of the storage object 1 can be migrated from the storage node 1 to the storage node 2.
  • the controller in the group performs token migration between the storage node 1 and the storage node 2 according to the number of tokens to be migrated.
  • the controller in the group migrates the 25 tokens of the storage object 1 from the storage node 1 to the storage node 2.
  • Table 2 shows the token distribution of storage objects in storage nodes after token migration. It should be noted that the bold number changes in Table 2 reflect the migration process of the token of the storage object 1. That is, the 25 tokens of storage object 1 are migrated from storage node 1 to storage node 2. The tokens of storage object 1 in storage node 1 are reduced from 75 to 50, and the tokens of storage object 1 in storage node 2 are changed from 25 increased to 50.
  • the storage system includes a controller and a plurality of in-group controllers, and the controller is each of the plurality of in-group controllers.
  • a controller in a group allocates the number of tokens, the storage system further includes a plurality of storage node sets, and the plurality of storage nodes includes a first storage node set.
  • the device 500 shown in FIG. 5 is the controller in the first group, It may include a processing module 510 and a sending module 520.
  • the processing module 510 is configured to determine the token of the first storage object in the first storage object group managed by the controller in the first group on at least one storage node in the first storage node set within a unit time Quantity
  • the sending module 520 is configured to indicate the number of tokens of the first storage object in the unit time to the at least one storage node.
  • the first storage object group includes a second storage object
  • the sending module 520 is further configured to: send a token migration request to the controller, and the token The migration request is used to request the controller to migrate the token to be migrated of the second storage object to another storage node, and the other storage node does not belong to the first storage node set.
  • the other storage node belongs to a storage node set of a second set of storage objects managed by a second controller in the group of the plurality of controllers in the group.
  • the sending module 520 is further configured to send the Token migration request.
  • the processing module 510 is further configured to: select a first storage node from the set of storage nodes; select a second storage node from the set of storage nodes; 3. The token of the storage object is migrated from the first storage node to the second storage node, and the third storage object belongs to the storage object group.
  • Fig. 6 is a schematic diagram of a token distribution device in a storage system according to an embodiment of the present application.
  • the storage system includes a plurality of in-group controllers and controllers; wherein, different in-group controllers in the plurality of in-group controllers are used to manage different storage object groups, and the plurality of in-group controllers are management
  • the storage object group is allocated tokens on at least one storage node, the storage system further includes a plurality of storage node sets, and the plurality of storage node sets includes a first storage node set.
  • the apparatus 600 shown in FIG. 6 may be a control
  • the device includes: a receiving module 610 and a processing module 620.
  • the receiving module 610 is configured to receive a token migration request sent by a first controller in the plurality of controllers in the group, where the token migration request is used to request the management of the controller in the first group
  • the tokens to be migrated of the first storage object group are migrated from the first storage node set to other storage nodes, and the other storage nodes do not belong to the first storage node set;
  • the processing module 620 is configured to migrate the token to be migrated to the other storage node.
  • the foregoing apparatus 500 may also be an in-group controller 700.
  • the processing module 510 may be a processor 720
  • the sending module 520 may be an input/output interface 730.
  • the controller 700 in the group may further include a memory 710, as shown in FIG. 7 specifically.
  • Fig. 7 is a schematic block diagram of an in-group controller according to another embodiment of the present application.
  • the in-group controller 700 shown in FIG. 7 may include a memory 710, a processor 720, and an input/output interface 730.
  • the memory 710, the processor 720, and the input/output interface 730 are connected through a communication connection.
  • the memory 710 is used to store program instructions
  • the processor 720 is used to execute the program instructions stored in the memory 720 to control the input/output interface 730.
  • the processor 720 may adopt a general central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more An integrated circuit is used to execute related programs to implement the technical solutions provided in the embodiments of the present application.
  • CPU central processing unit
  • ASIC application specific integrated circuit
  • the memory 710 may include a read-only memory and a random access memory, and provides instructions and data to the processor 720.
  • a part of the processor 720 may also include a non-volatile random access memory.
  • the processor 720 may also store device type information.
  • the steps of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 720 or instructions in the form of software.
  • the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.
  • the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the memory 710, and the processor 720 reads information in the memory 710, and completes the steps of the foregoing method in combination with its hardware. To avoid repetition, it will not be described in detail here.
  • the foregoing apparatus 600 may also be a controller 800.
  • the receiving module 610 may be an input/output interface 830
  • the processing module 620 may be a processor 820.
  • the controller 800 may further include a memory 810, as specifically shown in FIG. 8.
  • Fig. 8 is a schematic block diagram of a controller according to another embodiment of the present application.
  • the controller 800 shown in FIG. 8 may include a memory 810, a processor 820, and an input/output interface 830.
  • the memory 810, the processor 820, and the input/output interface 830 are connected through a communication connection.
  • the memory 810 is used to store program instructions
  • the processor 820 is used to execute the program instructions stored in the memory 820 to control the input/output interface 830. Receive input data and information, output operation results and other data.
  • the processor 820 may adopt a general central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more An integrated circuit is used to execute related programs to implement the technical solutions provided in the embodiments of the present application.
  • CPU central processing unit
  • ASIC application specific integrated circuit
  • the memory 810 may include a read-only memory and a random access memory, and provides instructions and data to the processor 820.
  • a part of the processor 820 may also include a non-volatile random access memory.
  • the processor 820 may also store device type information.
  • the steps of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 820 or instructions in the form of software.
  • the method disclosed in combination with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.
  • the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the memory 810, and the processor 820 reads information in the memory 810, and completes the steps of the foregoing method in combination with its hardware. To avoid repetition, it will not be described in detail here.
  • the processor may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (DSP), and dedicated integrated Circuit (application specific integrated circuit, ASIC), ready-made programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor.
  • Part of the processor may also include non-volatile random access memory.
  • the processor may also store device type information.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • each unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种存储系统中令牌的分配方法和装置,存储系统中包含控制器、多个组内控制器以及多个存储节点集合;控制器为多个组内控制器中每一个组内控制器分配令牌数,多个存储节点包括第一存储节点集合,该方法包括:多个组内控制器中的第一组内控制器确定在单位时间内,第一组内控制器管理的第一存储对象组内的第一存储对象在第一存储节点集合中至少一个存储节点上的令牌数量;第一组内控制器向至少一个存储节点指示单位时间内第一存储对象的令牌数量。在本申请实施例中,通过第一组内控制器确定第一存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。

Description

存储系统中令牌的分配方法和装置 技术领域
本申请涉及信息技术领域,尤其更具体地,涉及一种存储系统中令牌的分配方法和装置。
背景技术
服务质量(Quality of Service,QoS)有时也称服务等级(Service Level Agreement,SLA),用于保障存储对象的存储性能(例如,每秒进行读写操作的次数(Input/Output Operations Per Second,IOPS),将存储系统有限的处理能力进行合理的分配,它用于调整存储系统中存储对象对资源的争抢,做到资源隔离的同时提升特定存储对象的存储性能。
业界通常基于令牌的机制,控制单位时间内存储系统的存储节点为存储对象处理IO请求的数量。即,当存储节点存储有该存储对象的令牌时,可以为该存储对象处理IO请求,其中存储节点存储的令牌的数量通常等于该存储节点可以处理的IO请求的数量。
目前,存储系统中每个存储对象的令牌的分配,通常由控制器集中分配。即,由控制器基于每个存储对象的QoS参数,在存储系统中的存储节点上分配令牌。这种有控制器集中分配令牌的数量的方式,使得控制器的计算量非常大,计算占用的时间也较长,尤其是在存储系统中存储节点较多和存储对象数量较大时。例如,存储系统包括64个存储节点、且需要为10000个存储对象提供服务,则控制器为10000个存储对象分配令牌数量所需的计算时间将达到30秒。
发明内容
本申请提供一种存储系统中令牌的分配方法和装置,有利于减少存储系统中为存储对象分配令牌数量所需的计算时间。
第一方面,提供了一种存储系统中令牌的分配方法,所述存储系统中包含控制器和多个组内控制器;所述控制器为所述多个组内控制器中每一个组内控制器分配令牌数,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,所述方法包括:所述多个组内控制器中的第一组内控制器确定在单位时间内,所述第一组内控制器管理的第一存储对象组内的第一存储对象在所述第一存储节点集合中至少一个存储节点上的令牌数量;所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量。
在本申请实施例中,通过第一组内控制器确定第一存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。避免了现有技术中存储系统中的全部存储对象的令牌都由控制器集中分配,导致控制器确定令牌分配过程中的计算量较大,增加了令牌分配占用的时间。
可选地,上述第一存储对象组属于多个存储对象组中的一个,所述多个存储对象组中每个存储对象组内存储对象的令牌分配由多个组内控制器中的一个组内控制器管理。
在本申请实施例中,将存储系统中的存储对象分为多个存储对象组,存储对象组中存储对象的令牌分配由组内控制器管理,将存储对象的令牌分配所需的计算量分配到多个组内控制器中,有利于减少组内控制器进行令牌分配的计算量,缩短令牌分配所需的时间。
在一种可能的实现方式中,所述第一存储对象组包括第二存储对象,所述方法还包括:所述第一组内控制器向所述控制器发送令牌迁移请求,所述令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。
在本申请实施例中,第一组内控制器可以通过向控制器发送令牌迁移请求,请求将待迁移的令牌迁移至第一存储节点集合之外的存储节点,有利于提高令牌分配的合理性。
可选地,所述其他存储节点属于所述多个组内控制器中的第二组内控制器管理的第二存储对象集合的存储节点集合。
在一种可能的实现方式中,所述组内控制器向控制器发送令牌迁移请求,包括:若所述存储节点集合中的存储节点无法接收所述待迁移的令牌,所述第一组内控制器向所述控制器发送所述令牌迁移请求。
在本申请实施例中,当存储节点集合中的存储节点无法接收待迁移的令牌时,第一组内控制器可以通过向控制器发送令牌迁移请求,请求将待迁移的令牌迁移至第一存储节点集合之外的存储节点,有利于提高令牌分配的合理性,缓解第一存储节点集合中存储节点的压力。
在一种可能的实现方式中,所述方法还包括:所述第一组内控制器从所述存储节点集合中选择第一存储节点;所述第一组内控制器从所述存储节点集合中选择第二存储节点;所述第一组内控制器将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述第一存储对象组。
在本申请实施例中,第一组内控制器可以在存储节点集合中选择需要迁移令牌的第一存储节点,以及可以接收迁移的令牌的第二存储节点。避免了现有技术中,一旦需要进行令牌迁移时,控制器需要在存储系统中的全部存储节点的范围内确定能够接受令牌的节点,本申请实施例的方案将第二存储节点的选择范围从整个存储系统缩小到存储节点结合,有利于减少确定第二存储节点的计算量。
在一种可能的实现方式中,所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量,包括:所述组内控制器向所述至少一个存储节点指示所述单位时间,以及在所述单位时间内所述第一存储对象的令牌数量。
在本申请实施例中,通过向至少一个存储节点指示单位时间长度,以及在所述单位时间内所述第一存储对象的令牌数量,以便于至少一个存储节点在单位时间为第一存储对象生成令牌数量的令牌。
在一种可能的实现方式中,所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量,包括:所述组内控制器向所述至少一个存储节点指示所述第一存储对象对应的令牌生成速度,所述令牌生成速度为所述单位时间内生成所述第一存储对象的令牌数量。
在本申请实施例中,通过向至少一个存储节点指示令牌生成速度,以便于至少一个存 储节点在单位时间为第一存储对象生成令牌数量的令牌。
第二方面,提供了一种存储系统中令牌的分配方法,其特征在于,所述存储系统包括多个组内控制器以及控制器;其中,所述多个组内控制器中不同的组内控制器用于管理不同的存储对象组,所述多个组内控制器为管理的存储对象组在至少一个存储节点上分配令牌,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,所述方法包括:所述控制器接收所述多个组内控制器中的第一组内控制器发送的令牌迁移请求,所述令牌迁移请求用于请求将所述第一组内控制器管理的第一存储对象组的待迁移的令牌从所述第一存储节点集合中迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合;所述控制器将所述待迁移的令牌迁移至所述其他存储节点。
在本申请实施例中,通过组内控制器确定存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。避免了现有技术中存储系统中的全部存储对象的令牌都由控制器集中分配,导致确定令牌分配过程中的计算量较大,增加了令牌分配占用的时间。
另一方面,组内控制器可以通过向控制器发送令牌迁移请求,请求将待迁移的令牌迁移存储节点集合之外的存储节点,有利于提高令牌分配的合理性。
第三方面,提供一种存储系统中令牌分配的装置,所述装置可以是组内控制器,也可以是组内控制器内的芯片。所述装置可以包括处理模块和发送模块。当所述装置是组内控制器时,所述处理模块可以是处理器,所述发送模块可以是输入输出接口;所述组内控制器还可以包括存储单元,所述存储单元可以是存储器;所述存储单元用于存储指令,所述处理单元执行所述存储单元所存储的指令,以使所述组内控制器执行上述各方面中的方法。当所述装置是组内控制器内的芯片时,所述处理单元可以是处理器,所述发送模块可以是输入/输出接口、管脚或电路等;所述处理单元执行存储单元所存储的指令,以使所述组内控制器执行上述各方面中的方法,所述存储单元可以是所述芯片内的存储单元(例如,寄存器、缓存等),也可以是所述组内控制器内的位于所述芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第四方面,提供一种存储系统中令牌分配的装置,所述装置可以是控制器,也可以是控制器内的芯片。所述装置可以包括处理模块和发送模块。当所述装置是组内控制器时,所述处理模块可以是处理器,所述发送模块可以是输入输出接口;所述控制器还可以包括存储单元,所述存储单元可以是存储器;所述存储单元用于存储指令,所述处理单元执行所述存储单元所存储的指令,以使所述控制器执行上述各方面中的方法。当所述装置是控制器内的芯片时,所述处理单元可以是处理器,所述发送模块可以是输入/输出接口、管脚或电路等;所述处理单元执行存储单元所存储的指令,以使所述组内控制器执行上述各方面中的方法,所述存储单元可以是所述芯片内的存储单元(例如,寄存器、缓存等),也可以是所述组内控制器内的位于所述芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请实施例对此 不作具体限定。
第六方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
附图说明
图1是传统的令牌分配方式适用的存储系统的示意图。
图2是本申请实施例适用的存储系统的示意图。
图3是本申请实施例的令牌的分配方法的流程图。
图4是本申请实施例的组内控制器分配令牌的方法的流程图。
图5是本申请实施例的令牌的分配装置的示意图。
图6是本申请实施例的控制器的示意图。
图7是本申请另一实施例的组内控制器的示意性框图。
图8是本申请另一实施例的控制器的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于理解,先介绍本申请涉及的术语。
一、存储对象,可以理解为存储系统中操作的对象。例如,可以是对象存储中的对象(object),或者是块存储中的逻辑盘,又或者是文件存储中的文件。
二、Qos参数,用于描述存储对象的服务质量的参数。目前主流的QoS参数包括上限流控(limit)以及下限保障(reservation)等。其中,上限流控用于指示在单位时间内存储节点需要处理的存储对象的IO请求的数量的最大值。下限保障用于指示在单位时间内存储节点需要处理的存储对象的IO请求的数量的最小值。
三、令牌,用于指示存储对象处理IO请求的数量。其中,每一块令牌对应存储对象的一个IO请求,当存储节点中没有存储对象的令牌后,存储节点不再处理存储对象对应的IO请求。
若存储对象的QoS参数包括上限流控以及下限保障,则可以为每个存储对象设置两类令牌,即上限令牌以及下限令牌。其中,上限令牌用于指示存储对象的上限流控,即在单位时间内生成的上限令牌的数量等于上述最大值,以限制单位时间内存储节点处理的存储对象的IO请求的数量。下限令牌用于指示存储对象的下限保障,即在单位时间内生成的下限令牌的数量等于上述最小值,以保障单位时间内存储节点处理的存储对象的IO请求的数量。
通常上限令牌和下限令牌分别存储在上限令牌桶中和下限令牌桶中,当存储节点处理了存储对象的一个IO请求时,分别从存储对象对应的上限令牌桶中取出一个上限令牌,从下限令牌桶中取出一个下限令牌,即减少相应的令牌桶中令牌的数量。
基于上文介绍的术语,结合图1介绍传统的令牌分配方案。图1是传统的令牌分配方式适用的存储系统的示意图。图1所示的存储系统包括控制器110,客户端120以及多个存储节点130。
存储节点130,用于为存储系统中的数据提供存储空间。每个存储节点可以为多个存储对象提供存储服务,或者说,每个存储节点可以处理多个存储对象对应的IO请求。
上述存储节点130可以是服务器,或者其他具有存储功能的设备。
客户端120,用于接收用户发送的IO请求,并将IO请求转发至可以相应地存储节点。
控制器110,用于在多个存储节点上为存储系统提供服务的存储对象分配令牌,或者调整存储对象在存储节点上的令牌数量,例如,将某一存储对象的令牌从源存储节点迁移至目标存储节点等。
从图1所示的存储系统来看,存储系统中全部的存储对象的令牌分配,以及后续存储对象的令牌的调整方式都是由控制器计算的,这种由控制器集中计算的方式,极大的增加了控制器的计算量,尤其在存储系统中存储节点的数量,以及存储对象的数量较多的情况下,不仅极大的增加了控制器的计算量,同时也增加了控制器进行令牌分配的时间,降低了整个存储系统的处理速度。
为了避免上述问题,本申请提供了一种令牌的分配方式,将存储系统的中的存储对象进行分组,形成存储对象组,并由组内控制器计算存储对象组中存储对象的令牌分布,有利于减少计算令牌分配所占用的时间,提高存储系统的处理速度。下文结合图2以及图3介绍本申请实施例适用的存储系统,以及本申请实施例的令牌的分配方案。
图2是本申请实施例适用的存储系统的示意图。图2所示的存储系统包括控制器210,客户端120、多个存储节点130以及组内控制器220。需要说明的是,图2的客户端120以及多个存储节点130与图1中介绍的客户端和存储节点的功能相同,为了简洁,在此不再赘述。下文重点介绍组内控制器220以及控制器210的功能。
组内控制器220,用于管理存储对象组内存储对象的令牌的分配或者迁移。
上述组内控制器的数量可以为多个,本申请实施例对此不作具体限定。
每个组内控制器用于管理一个或多个存储对象组中存储对象的令牌的分配。若组内控制器的数量为多个时,不同的组内控制器管理的存储对象组不同。
通常,存储对象组内的存储对象的令牌仅分布在存储系统中的部分存储节点上,其中,部分存储节点可以作为一个存储节点集合。组内控制器通常可以在存储节点集合中分配或迁移存储对象组内存储对象的令牌。
可选地,上述组内控制器可以设置在存储系统中的全部或部分存储节点上,本申请实施例对此不作限定。
控制器210,用于为多个组内控制器中每一个组内控制器分配令牌数,还可以用于管理存储节点集合间的存储对象的令牌的迁移。
可选地,上述控制器可以单独设置,还可以设置在存储系统中的某一存储节点上(例如,主存储节点)。
若控制器设置在某一存储节点上,通常与组内控制器设置在不同的存储节点上,以避免组内控制器与控制器设置在同一存储节点上,导致该存储节点的计算量增大。当然,如果存储节点的处理性能较好,或者不考虑上述计算量的影响,也可以将组内控制器与控制器设置在相同的存储节点上。
下文基于图2所示的存储系统的架构,结合图3介绍本申请实施例的方法。图3是本 申请实施例的令牌的分配方法的流程图。图3所示的方法包括步骤310至步骤330。需要说明的是,图3所示的方法可以由图2所示的多个组内控制器中的任意一个组内控制器执行,例如第一组内控制器。
310,第一组内控制器确定在单位时间内,第一组内控制器管理的第一存储对象组内的第一存储对象在第一存储节点集合中至少一个存储节点上的令牌数量。
上述第一存储对象组可以包括一个或多个存储对象,上述存储对象组包括多个存储对象时,上述第一存储对象可以是多个存储对象中的任意一个。
上述至少一个存储节点可以包括一个或多个存储节点。
上述第一存储节点集合可以是存储系统的中的多个存储节点集合中的一个存储节点集合。
上述令牌可以指上文中的上限令牌或者下限令牌,还可以指其他表示存储对象的QoS参数的令牌,本申请实施例对此不做限定。
需要说明的是,上述第一组内控制器确定存储对象的令牌的数量的方式有很多种,例如第一组内控制器可以基于存储对象的Qos参数确定存储对象分配令牌的数量,或者第一组内控制器还可以在至少一个存储节点上平均分配存储对象的令牌的数量。本申请实施例对此不做限定。
320,第一组内控制器向至少一个存储节点指示单位时间内第一存储对象的令牌数量。
可选地,第一组内控制器通过向至少一个存储节点指示第一存储对象的令牌的生成速度,以指示单位时间内至少一个存储节点需要生成的第一存储对象的令牌的数量。或者,至少一个存储节点预存上述单位时间长度,则第一组内控制器可以直接向至少一个存储节点指示第一存储对象的令牌数量,至少一个存储节点在预存的单位时间长度内生成第一存储对象的令牌数量的令牌。
需要说明的是,上述存储节点为第一存储节点生成的令牌可以存放在令牌桶中。
在本申请实施例中,通过第一组内控制器确定存储对象组内存储对象的令牌数量,有利于减小令牌分配占用的时间。避免了现有技术中存储系统中的全部存储对象的令牌都由控制器集中分配,导致确定令牌分配过程中的计算量较大,增加了令牌分配占用的时间。
图3所示的方法可以应用于图2所示的存储系统的架构,即基于组内控制器以及控制器的两级令牌分配,由组内控制器帮助控制器分担一部分的令牌分配所需的计算量,以减少控制器分配令牌时的计算量。当然,图3所示的方法还可以应用于仅包含多个组内控制器存在的存储系统,即将存储系统中的存储对象分为多个存储对象组,不同的组内控制器分别管理相应的存储对象组内存储对象的令牌的分配,将传统的令牌分配方案中控制器集中分配令牌时的计算量分配到多个组内控制器,以减少控制器分配令牌时的计算量。
下文重点介绍基于组内控制器以及控制器的两级令牌分配的方法。组内控制器通常仅管理对应的存储对象组内存储对象的令牌分配,而不关心存储系统中其他组内控制器管理的存储对象组内存储对象的令牌分配,以及其他存储对象组对应的存储节点的性能。也就是说,组内控制器管理的存储节点,维护的存储节点的性能,以及存储对象的需求通常都是对应的存储对象组内的。例如,组内控制器管理存储对象组内存储对象在存储节点上的需求(处理IO请求的数量),组内控制器管理存储对象组内存储对象在各个存储节点上的 令牌分配数量,组内控制器管理存储对象组的令牌所在的存储节点的性能等。
如此,组内控制器获知的存储节点的性能、存储对象在存储节点中的令牌分布通常比较局限,如果组内控制器管理的存储对象的令牌需要迁移到存储系统中的其他存储节点时,组内控制器可能没有维护其他存储节点的性能,即其他存储节点为组内控制器管理之外的存储节点,导致无法合理地确定其他存储节点能够接受的令牌数量。
基于此,本申请实施例提供了上述“两级”令牌分配方式,由控制器维护存储系统的中各个存储节点,各个存储对象的信息,作为存储系统的“全局信息”,例如存储系统中各个存储节点的性能,以及存储系统各个存储对象在各个存储节点的令牌分配等,并由控制器基于上述“全局信息”将待迁移的令牌从组内控制器管理的存储节点中迁移至组内控制器管理之外的存储节点。
即,上述存储对象组包括第二存储对象,所述第一组内控制器管理的存储对象组的令牌分布在存储节点集合中的存储节点上,图3所示的方法包括:330,第一组内控制器向控制器发送令牌迁移请求,令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。
上述第二存储对象可以指存储对象组中需要进行令牌迁移的一个或多个存储对象。
上述其他存储节点可以指不属于上述第一组内控制器管理的存储节点,或者说,上述其他存储节点是属于其他第一组内控制器管理的存储节点。例如,其他存储节点为多个组内控制器中的第二组内控制器管理的第二存储对象组的存储节点。上述其他存储节点可以指不属于第一存储节点集合的一个或多个存储节点。
相应地,由控制器在接收到令牌迁移请求后,可以基于传统的令牌迁移流程迁移上述待迁移的令牌。例如,可以构建令牌迁移有向图,并根据待迁移的令牌的数量以及令牌迁移有向图,计算令牌迁移路径,再按照令牌迁移路径迁移上述待迁移的令牌。
可选地,触发发送令牌迁移请求的触发条件可以包括存储节点集合中的存储节点无法接收待迁移的令牌,例如,存储节点集合中的存储节点都处于过载状态,或者存储节点集合中的存储节点可以处理的IO请求的数量都接近存储节点最多可以处理的IO请求的数量等。
需要说明的是,上述控制器维护的各个存储节点的性能,各个存储对象的令牌在存储节点上的分布,各个存储对象需要由存储节点处理的IO请求的数量等参数,可以由组内控制器发送给控制器,即采用“自下而上”的方式,在控制器处进行统计汇总。
下文介绍本申请实施例的在“存储节点集合”中进行令牌迁移的方案。第一组内控制器从所述存储节点集合中选择第一存储节点;所述第一组内控制器从存储节点集合中选择第二存储节点;所述第一组内控制器将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述第一存储对象组。
上述第一存储节点可以是第一存储节点集合中有迁移令牌的需求的节点,例如,可以是处于过载状态的存储节点,或者还可以是第三存储对象的令牌有剩余的存储节点,本申请实施例对此不做限定。
上述第二存储节点可以理解为令牌迁移的目标存储节点,可以为一个存储节点也可以为多个存储节点。
可选地,上述需要从第一存储节点迁移至第二存储节点的令牌的数量有多种确定方式。例如,可以基于公式N i=min(r p,e q)确定需要从第一存储节点迁移至第二存储节点的令牌数。其中,N i表示需要迁移的存储对象i的令牌数量,r p表示超出第一存储节点p能够处理能力的令牌数量,e q表示第二存储节点q可以接受的令牌的数量。
又例如,可以基于公式N j,k=min(a i,j,d i,k-a i,k)确定需要从第一存储节点j迁移至第二存储节点k的令牌数N j,k。其中,a i,j表示存储对象i在第一存储节点j上分配的令牌数量;d i,k表示存储对象i在第二存储节点k上的需求,即第二存储节点k需要处理的存储对象i的IO请求的数量;a i,k表示存储对象i在第二存储节点k上分配的令牌数量。
可选地,上述组内控制确定第二存储节点的方式也有很多种,例如,第一组内控制器可以按照存储节点的负载情况从存储节点集合中随机确定第二存储节点。又例如,第一组内控制器可以基于宽度优先搜索算法(breadth first search,BFS),在存储节点集合中以第一存储节点为起点,确定长度为L的令牌迁移路径,此时,第二存储节点为位于令牌迁移路径上的一个或多个存储节点。
在本申请实施例中,第一组内控制器可以在存储节点集合中选择需要迁移令牌的第一存储节点,以及可以接收迁移的令牌的第二存储节点。避免了现有技术中,一旦需要进行令牌迁移时,控制器需要在存储系统中的全部存储节点的范围内确定能够接受令牌的节点,本申请实施例的方案将第二存储节点的选择范围从整个存储系统缩小到存储节点结合,有利于减少确定第二存储节点的计算量。
下文通过具体的例子,结合表1、表2以及图4介绍本申请实施例的组内控制器分配令牌的方法,图4所示的方法包括步骤410以及步骤430。需要说明的是,下文中的组内控制器可以是多个组内控制器中的任意一个,例如,可以是上文中的第一组内控制器。
假设组内控制器管理的存储对象组包括存储对象1、存储对象2以及存储对象3,且存储对象组内的存储对象的令牌分布在存储节点1、存储节点2以及存储节点3中,即组内控制器管理的存储设备的集合包括存储节点1存储节点2以及存储节点3。
410,组内控制器确定存储节点的令牌分配参数a i和d i,a i表示存储节点i已被分配的存储对象的令牌数量,d i表示存储对象在存储节点i上的需求,即为在存储节点i上统计得到的存储对象的请求数量,i=1,2,3,具体地存储对象i在存储节点1、存储节点2以及存储节点3中的令牌分配情况请参见表1。
表1
Figure PCTCN2020088274-appb-000001
420,组内控制器确定待迁移的令牌的数量。
具体地,若存储节点1处于过载状态,且存储节点1中超出存储节点处理能力的令牌的数量r 1为30。组内控制器确定可以从存储节点1向存储节点2迁移存储对象1的令牌。 此时,存储节点2可以接受的存储对象1的令牌数量e 2为d 2-a 2=50-25=25,则组内控制器确定待迁移的令牌的数量N=min(r 1,e 2)=25。
430,组内控制器根据待迁移的令牌的数量,在存储节点1以及存储节点2之间进行令牌迁移。
具体地,组内控制器将存储对象1的25个令牌从存储节点1迁移至存储节点2。表2示出了令牌迁移后的存储对象在存储节点中的令牌分配情况。需要说明的是表2中通过加粗的数字变化体现了上述存储对象1的令牌的迁移过程。即,从存储节点1中将存储对象1的25个令牌迁移至存储节点2中,存储节点1中存储对象1的令牌由75减少为50,存储节点2中存储对象1的令牌由25增加为50。
表2
Figure PCTCN2020088274-appb-000002
上文结合图1至图4介绍了本申请实施例的方法,下文结合图5至图8介绍本申请实施例的装置。需要说明的是,图5至图8所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。
图5是本申请实施例的存储系统中令牌的分配装置的示意图,所述存储系统中包含控制器和多个组内控制器,所述控制器为所述多个组内控制器中每一个组内控制器分配令牌数,所述存储系统还包括多个存储节点集合,所述多个存储节点包括第一存储节点集合,图5所示的装置500为第一组内控制器,可以包括处理模块510以及发送模块520。
处理模块510,用于确定在单位时间内,所述第一组内控制器管理的第一存储对象组内的第一存储对象在所述第一存储节点集合中至少一个存储节点上的令牌数量;
发送模块520,用于向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量。
可选地,在一种可能的实现方式中,所述第一存储对象组包括第二存储对象,所述发送模块520还用于:向所述控制器发送令牌迁移请求,所述令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。
可选地,在一种可能的实现方式中,所述其他存储节点属于所述多个组内控制器中的第二组内控制器管理的第二存储对象集合的存储节点集合。
可选地,在一种可能的实现方式中,若所述存储节点集合中的存储节点无法接收所述待迁移的令牌,所述发送模块520,还用于向所述控制器发送所述令牌迁移请求。
可选地,在一种可能的实现方式中,所述处理模块510还用于:从所述存储节点集合中选择第一存储节点;从所述存储节点集合中选择第二存储节点;将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述存储对象组。
图6是本申请实施例的存储系统中令牌的分配装置的示意图。所述存储系统包括多个组内控制器以及控制器;其中,所述多个组内控制器中不同的组内控制器用于管理不同的存储对象组,所述多个组内控制器为管理的存储对象组在至少一个存储节点上分配令牌,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,图6所示的装置600可以为控制器,包括:接收模块610和处理模块620。
接收模块610,用于接收所述多个组内控制器中的第一组内控制器发送的令牌迁移请求,所述令牌迁移请求用于请求将所述第一组内控制器管理的第一存储对象组的待迁移的令牌从所述第一存储节点集合中迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合;
处理模块620,用于将所述待迁移的令牌迁移至所述其他存储节点。
在可选的实施例中,上述装置500还可以是组内控制器700,具体地,所述处理模块510可以为处理器720,所述发送模块520可以为输入输出接口730。所述组内控制器700还可以包括存储器710,具体如图7所示。
图7是本申请另一实施例的组内控制器的示意性框图。图7所示的组内控制器700可以包括:存储器710、处理器720、输入/输出接口730。其中,存储器710、处理器720和输入/输出接口730通过通信连接相连,该存储器710用于存储程序指令,该处理器720用于执行该存储器720存储的程序指令,以控制输入/输出接口730接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器720可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器710可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。处理器720的一部分还可以包括非易失性随机存取存储器。例如,处理器720还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器710,处理器720读取存储器710中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
在可选的实施例中,上述装置600还可以是控制器800,具体地,所述接收模块610可以为输入输出接口830,所述处理模块620可以为处理器820。所述控制器800还可以包括存储器810,具体如图8所示。
图8是本申请另一实施例的控制器的示意性框图。图8所示的控制器800可以包括:存储器810、处理器820、输入/输出接口830。其中,存储器810、处理器820和输入/输出接口830通过通信连接相连,该存储器810用于存储程序指令,该处理器820用于执行该存储器820存储的程序指令,以控制输入/输出接口830接收输入的数据和信息,输出操作 结果等数据。
应理解,在本申请实施例中,该处理器820可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器810可以包括只读存储器和随机存取存储器,并向处理器820提供指令和数据。处理器820的一部分还可以包括非易失性随机存取存储器。例如,处理器820还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器810,处理器820读取存储器810中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processing unit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中,该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
还应理解,本申请实施例中,“第一”、“第二”、“第三”等仅仅是为了区分,并不在顺序上进行限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

  1. 一种存储系统中令牌的分配方法,其特征在于,所述存储系统中包含控制器和多个组内控制器;所述控制器为所述多个组内控制器中每一个组内控制器分配令牌数,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,所述方法包括:
    所述多个组内控制器中的第一组内控制器确定在单位时间内,所述第一组内控制器管理的第一存储对象组内的第一存储对象在所述第一存储节点集合中至少一个存储节点上的令牌数量;
    所述第一组内控制器向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量。
  2. 如权利要求1所述的方法,其特征在于,所述第一存储对象组包括第二存储对象,所述方法还包括:
    所述第一组内控制器向所述控制器发送令牌迁移请求,所述令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。
  3. 如权利要求2所述的方法,其特征在于,所述其他存储节点为所述多个组内控制器中的第二组内控制器管理的第二存储对象组的存储节点。
  4. 如权利要求2或3所述的方法,其特征在于,所述第一组内控制器向控制器发送令牌迁移请求,包括:
    若所述第一存储节点集合中的存储节点无法接收所述待迁移的令牌,所述第一组内控制器向所述控制器发送所述令牌迁移请求。
  5. 如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一组内控制器从所述第一存储节点集合中选择第一存储节点;
    所述第一组内控制器从所述第一存储节点集合中选择第二存储节点;
    所述第一组内控制器将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述第一存储对象组。
  6. 一种存储系统中令牌的分配方法,其特征在于,所述存储系统包括多个组内控制器以及控制器;其中,所述多个组内控制器中不同的组内控制器用于管理不同的存储对象组,所述多个组内控制器为管理的存储对象组在至少一个存储节点上分配令牌,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,
    所述方法包括:
    所述控制器接收所述多个组内控制器中的第一组内控制器发送的令牌迁移请求,所述令牌迁移请求用于请求将所述第一组内控制器管理的第一存储对象组的待迁移的令牌从所述第一存储节点集合中迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合;
    所述控制器将所述待迁移的令牌迁移至所述其他存储节点。
  7. 一种存储系统中令牌的分配装置,其特征在于,所述存储系统中包含控制器和多个 组内控制器;所述控制器为所述多个组内控制器中每一个组内控制器分配令牌数,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,所述多个组内控制器中的第一组内控制器包括:
    处理模块,用于确定在单位时间内,所述第一组内控制器管理的第一存储对象组内的第一存储对象在所述第一存储节点集合中至少一个存储节点上的令牌数量;
    发送模块,用于向所述至少一个存储节点指示所述单位时间内所述第一存储对象的令牌数量。
  8. 如权利要求7所述的装置,其特征在于,所述第一存储对象组包括第二存储对象,所述发送模块还用于:
    向所述控制器发送令牌迁移请求,所述令牌迁移请求用于请求所述控制器将所述第二存储对象的待迁移的令牌迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合。
  9. 如权利要求8所述的装置,其特征在于,所述其他存储节点属于所述多个组内控制器中的第二组内控制器管理的第二存储对象集合的存储节点集合。
  10. 如权利要求8或9所述的装置,其特征在于,所述发送模块用于:
    若所述第一存储节点集合中的存储节点无法接收所述待迁移的令牌,向所述控制器发送所述令牌迁移请求。
  11. 如权利要求7-10中任一项所述的装置,其特征在于,所述处理模块还用于:
    从所述第一存储节点集合中选择第一存储节点;
    从所述第一存储节点集合中选择第二存储节点;
    将第三存储对象的令牌从所述第一存储节点迁移至所述第二存储节点,所述第三存储对象属于所述第一存储对象组。
  12. 一种存储系统中令牌的分配装置,其特征在于,所述存储系统包括多个组内控制器以及控制器;其中,所述多个组内控制器中不同的组内控制器用于管理不同的存储对象组,所述多个组内控制器为管理的存储对象组在至少一个存储节点上分配令牌,所述存储系统还包括多个存储节点集合,所述多个存储节点集合包括第一存储节点集合,
    所述控制器包括:
    接收模块,用于接收所述多个组内控制器中的第一组内控制器发送的令牌迁移请求,所述令牌迁移请求用于请求将所述第一组内控制器管理的第一存储对象组的待迁移的令牌从所述第一存储节点集合中迁移至其他存储节点,所述其他存储节点不属于所述第一存储节点集合;
    处理模块,用于将所述待迁移的令牌迁移至所述其他存储节点。
  13. 一种组内控制器,其特征在于,所述组内控制器包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述组内控制器执行如权利要求1-5中任一项的方法。
  14. 一种控制器,其特征在于,所述控制器包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述控制器执行如权利要求6的方法。
  15. 一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机执行如权利要求1-5中任一项的方法。
  16. 一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机执行如权利要求6所述的方法。。
PCT/CN2020/088274 2019-05-05 2020-04-30 存储系统中令牌的分配方法和装置 WO2020224531A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910367923.3 2019-05-05
CN201910367923.3A CN110221775B (zh) 2019-05-05 2019-05-05 存储系统中令牌的分配方法和装置

Publications (1)

Publication Number Publication Date
WO2020224531A1 true WO2020224531A1 (zh) 2020-11-12

Family

ID=67820490

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/088274 WO2020224531A1 (zh) 2019-05-05 2020-04-30 存储系统中令牌的分配方法和装置

Country Status (2)

Country Link
CN (1) CN110221775B (zh)
WO (1) WO2020224531A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221775B (zh) * 2019-05-05 2020-10-16 华为技术有限公司 存储系统中令牌的分配方法和装置
CN113031872A (zh) * 2021-03-26 2021-06-25 山东英信计算机技术有限公司 一种存储系统的数据写入方法及相关装置
CN113590043A (zh) * 2021-07-29 2021-11-02 北京沃东天骏信息技术有限公司 一种数据存储方法、装置、设备及存储介质
CN114860334B (zh) * 2022-04-24 2024-01-26 曙光信息产业(北京)有限公司 虚拟机启动风暴的处理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160259569A1 (en) * 2013-12-19 2016-09-08 International Business Machines Corporation Dynamic feedback-based throughput control for black-box storage systems
CN109254726A (zh) * 2018-08-16 2019-01-22 华为技术有限公司 分布式存储系统中服务质量保障方法、控制节点及系统
CN109471592A (zh) * 2017-09-07 2019-03-15 三星电子株式会社 存储设备以及包括在存储设备中的控制器
CN110221775A (zh) * 2019-05-05 2019-09-10 华为技术有限公司 存储系统中令牌的分配方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445425B1 (ko) * 2001-12-24 2004-08-25 한국전자통신연구원 분산 레이드 제어기 환경에서의 부하 분산 방법
CN100574278C (zh) * 2006-12-26 2009-12-23 华为技术有限公司 流量限制技术中刷新令牌桶的方法及装置
CN101478491B (zh) * 2009-02-10 2012-07-04 中兴通讯股份有限公司 一种实现分组业务区分服务的方法及装置
KR101179628B1 (ko) * 2009-03-05 2012-09-04 한국전자통신연구원 구간 대역폭을 제공하는 디스크 입출력 제어 방법 및 시스템
US11095715B2 (en) * 2014-09-24 2021-08-17 Ebay Inc. Assigning storage responsibility in a distributed data storage system with replication
US10157023B2 (en) * 2016-02-25 2018-12-18 SK Hynix Inc. Memory controller and request scheduling method using request queues and first and second tokens
CN108762687B (zh) * 2018-06-05 2019-11-08 星环信息科技(上海)有限公司 Io服务质量控制方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160259569A1 (en) * 2013-12-19 2016-09-08 International Business Machines Corporation Dynamic feedback-based throughput control for black-box storage systems
CN109471592A (zh) * 2017-09-07 2019-03-15 三星电子株式会社 存储设备以及包括在存储设备中的控制器
CN109254726A (zh) * 2018-08-16 2019-01-22 华为技术有限公司 分布式存储系统中服务质量保障方法、控制节点及系统
CN110221775A (zh) * 2019-05-05 2019-09-10 华为技术有限公司 存储系统中令牌的分配方法和装置

Also Published As

Publication number Publication date
CN110221775B (zh) 2020-10-16
CN110221775A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
WO2020224531A1 (zh) 存储系统中令牌的分配方法和装置
WO2018177012A1 (zh) 一种控制带宽的方法、装置和设备
US10733026B2 (en) Automated workflow selection
US10747451B2 (en) Auto allocation of storage system resources to heterogeneous categories of resource consumer
US10534542B2 (en) Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
EP3572948B1 (en) Resource management method and device
TWI701597B (zh) 任務的分配方法、裝置及設備
US11320998B2 (en) Method for assuring quality of service in distributed storage system, control node, and system
CN107688492B (zh) 资源的控制方法、装置和集群资源管理系统
US11768706B2 (en) Method, storage medium storing instructions, and apparatus for implementing hardware resource allocation according to user-requested resource quantity
US11489735B2 (en) Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium
WO2015101091A1 (zh) 一种分布式资源调度方法及装置
WO2017177806A1 (zh) 一种管理资源的方法和装置
WO2017084453A1 (zh) 云平台资源管理方法、装置及系统
US20220156115A1 (en) Resource Allocation Method And Resource Borrowing Method
WO2019105379A1 (zh) 资源管理的方法、装置、电子设备及存储介质
WO2016041446A1 (zh) 一种资源分配方法、装置及设备
WO2018157768A1 (zh) 调度运行设备的方法、设备和运行设备
JP2022539291A (ja) 計算資源の動的割り当て
WO2020259208A1 (zh) 内存调度方法、装置、设备及存储介质
WO2020024207A1 (zh) 处理业务请求的方法、装置与存储系统
CN111158905A (zh) 调整资源的方法和装置
WO2024113847A1 (zh) 共享资源分配方法、装置及计算设备集群
CN116566916A (zh) 集群服务限流管理方法、装置、设备和介质
TW202223645A (zh) 機器學習系統及其資源配置方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20803004

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20803004

Country of ref document: EP

Kind code of ref document: A1