Storage allocation improvements for microservices
By analyzing microservice container behavior patterns to optimize storage allocation and garbage collection, the method addresses inefficiencies in existing storage allocation methods, enhancing storage efficiency and reducing overhead.
Patent Information
- Application Number
- JP2022507833
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-19
- Filing Date
- 2020-08-06
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2040-08-06
AI Technical Summary
Existing storage allocation methods for microservices are inefficient due to unknown storage requirements and inefficient garbage collection, leading to suboptimal storage allocation and increased overhead.
A method and system that analyze input/output behavior patterns of microservice containers using machine learning techniques to optimize storage allocation and garbage collection by predicting storage behavior based on container characteristics, such as compression ratios, access patterns, and lifetime, and adjusting storage allocation strategies accordingly.
Improves storage efficiency by minimizing garbage collection overhead and optimizing storage placement, reducing load on the storage system and enhancing host I/O operations.
Smart Images

Figure 0007597465000001 
Figure 0007597465000002 
Figure 0007597465000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to storage allocation for microservices, and more particularly, to enhancing storage allocation based on communication between a microservice orchestrator and a block storage controller. [Background technology]
[0002] Microservices are a software development mechanism designed to separate applications from their implementation. This design philosophy has various benefits, notably promoting modularity, scalability, and architecture-agnostic design. In recent years, containerization has become increasingly popular as a means to implement and orchestrate microservice-oriented architectures. For example, KUBERNETES(R) (KUBERNETES is a trademark of the Linux Foundation) is an open source container orchestration system for automating application deployment, scaling, and management. KUBERNETES(R) works with a set of container tools, including DOCKER(R) (DOCKER is a trademark of Docker, Inc.).
[0003] DOCKER® is a tool that packages applications as lightweight virtual machines. These applications can become environment agnostic. An example of something that can be containerized can be a database. Such a database can have associated storage specified. In KUBERNETES®, the container storage interface is used to implement a provisioning layer that can create volumes. Volumes can be provisioned and made accessible by nodes and snapshot operations performed. Summary of the Invention
[0004] According to an aspect of the present disclosure, a computer-implemented method for enhancing storage allocation for a microservice is provided, the method being executed on a microservice orchestrator and configured to manage a microservice container. Category Classification This is to Category Classification In order to category However, the predicted storage behavior of the I / O operations of microservice containers (predicted storage behavior) of definition (define) Category Classification and related to the I / O operations of the microservice container for use in allocating storage for I / O operations. category and providing the storage system with
[0005] Different data characteristics can affect the optimal location of data within the storage system. For example, varying compression ratios, application workloads such as random or sequential access patterns, etc. can affect the optimal location of data. Another example is the knowledge passed by a microservice container regarding the duration a container is likely to exist; containers that are provisioned for a short period of time and then removed may delay garbage collection until all of the storage for the container is no longer needed. category Based on predicted storage behavior category Providing the storage controller with the required memory allocation and garbage collection capabilities allows for optimization of storage allocation and garbage collection.
[0006] This method analyzes the I / O behavior patterns in the storage system to optimize the underlying microservice image. Category Classification and the microservice container context Category Classification In order to category Analysis (categorization analytics) function providing category analysis function Microservices containers Category Classification The I / O behavior patterns in a storage system may include storage characteristics of I / O behavior that affect storage allocation and garbage collection efficiency. Analyzing the I / O behavior patterns may be clustered into distinct usage patterns using machine learning techniques.
[0007] The method includes receiving a microservice container input / output operation issued by the microservice container; category analysis function Analyze input / output behavior using category This may include setting or modifying (e.g., changing)
[0008] category analysis function Analyze the I / O behavior of microservice containers using category Setting or modifying the category Based on microservices container first Category Classification and based on the microservices container context Ku initial category of Apply This may include updating the underlying microservice image. category is the past storage behavior (historical storage behavior) , the time the container is expected to exist, or a user-configured category , or a combination thereof.
[0009] Based on the microservices container context Ku initial category of Apply The thing is, Category Classification This may include user-based tagging of microservice containers to assist in
[0010] Based on the microservices container context Ku initial category of Apply Determining the behavior of a microservice container may include a higher level of contextual analysis based on the classification of the microservice container as belonging to a group of containers and the historical behavior of the group. A group may be a subgroup in the form of a collection of microservice containers that are co-located on hardware and share resources, or a group may be a subgroup of services that function together.
[0011] category analysis function Analyze input / output behavior using category Configuring or modifying the microservices containers is based on ongoing analysis of the input and output behavior of the microservices containers and category and updating the container's process workload in response to the container's process workload. category This allows the parameter to be modified during operation.
[0012] Machine Learning Category Classification Machine learning categorization techniques can be used to identify the categories that are most relevant to the performance profile of a microservice container.
[0013] Related to the I / O operations of the microservice container for use in allocating storage for I / O operations category to the storage system. category detail (categorization details) This may include describing each or group of input / output operations using category Providing a cache is a good way to determine the garbage collection algorithms on the underlying storage system. category This may include passing
[0014] According to another aspect of the present disclosure, a computer-implemented method for enhancing storage allocation for a microservice is provided, the method being performed in a storage controller and configured to allocate I / O operations of a microservice container to associated category and receiving the category However, the predicted storage behavior of the I / O operations of microservice containers definition (define) the above receiving and related I / O operations to optimize storage allocation and / or optimize garbage collection performance; category The present invention includes using the above-mentioned method.
[0015] Relates input and output operations of microservice containers category Receiving the I / O operations may include describing or tagging a group or individual I / O operations with storage characteristics. The storage characteristics may be indicative of a form of storage allocation required for optimal storage and garbage collection. of Profile definition (define)
[0016] To optimize storage allocation for I / O operations, or to optimize garbage collection performance, or both, category Using the may try to find the best location for the data, category Depending on the expected behavior of , one may choose to compress by inline sequence compression or pool compression.
[0017] According to a further aspect of the present disclosure, there is provided a system for enhancing storage allocation of microservices in a microservice orchestrator, comprising a processor and a memory configured to provide computer program instructions to the processor for performing functions of components, the components comprising a microservice container, Category Classification Container for Category ClassificationA component, Category Classification In order to category However, the predicted storage behavior of the I / O operations of microservice containers definition Container Category Classification Components and I / O operations related to the microservice container for use in allocating storage for I / O operations category to the storage system category The provision components are:
[0018] The system analyzes the I / O behavior patterns in the storage system to generate the underlying microservice image. Category Classification and the microservice container context Category Classification In order to category analysis function To provide category Analytics components (categorization analytics component) may include category analysis function Microservices containers Category Classification is used to.
[0019] The system includes a receiving component for receiving input / output operations of the microservice container issued by the microservice container; category Analytics components (categorization analytics component) Analyze input / output behavior using category Analytical components for setting or modifying (analyzing component) and
[0020] Analytics components (analyzing component) of the underlying microservice image category Based on microservices container first Category Classification Container image for category Based on the components and the context of the microservices container Ku initial category of Apply Context for category components.
[0021] According to a further aspect of the present disclosure, there is provided a system for enforcing storage allocation of microservices in a storage controller, the system comprising a processor and a memory configured to provide computer program instructions to the processor for performing functions of components, the components being configured to: category For receiving with category A receiving component, category However, the predicted storage behavior of the I / O operations of microservice containers definition do, Above category Receive components and related functions to optimize storage allocation for I / O operations category For use category A storage allocator component that contains an application component.
[0022] System related to optimizing garbage collection performance category For use category The application component may include a garbage collector component.
[0023] According to a further aspect of the present disclosure, there is provided a computer program product for enhancing storage allocation of microservices, the computer program product comprising a computer readable storage medium having program instructions embodied therein, the program instructions being executable by a processor in a microservice orchestrator to cause the processor to execute a microservice container. Category Classification This is to Category Classification In order to category However, the predicted storage behavior of the I / O operations of microservice containers definition do, Category Classificationand related to the I / O operations of the microservice container for use in allocating storage for I / O operations. category and providing the storage system with the
[0024] According to a further aspect of the present disclosure, a computer program product for enhancing storage allocation of microservices is provided, the computer program product comprising a computer readable storage medium having program instructions embodied therein, the program instructions being executable by a processor in a storage controller to cause the processor to perform operations relating to input / output operations of a microservice container. category and receiving the category However, the predicted storage behavior of the I / O operations of microservice containers definition To optimize storage allocation for the above receive and I / O operations, or to optimize garbage collection performance, or both, category and executing the same. [Brief description of the drawings]
[0025] [Figure 1] FIG. 1 is a block diagram illustrating a microservices orchestrator and a storage controller in which the described methods and systems may be implemented according to at least one embodiment. [Diagram 2] FIG. 1 is a flow diagram illustrating a method performed by a microservices orchestrator and a storage controller as described in at least one embodiment. [Diagram 3] FIG. 1 is a flow diagram illustrating aspects of a method performed by a microservices orchestrator as described in at least one embodiment. [Figure 4] FIG. 1 is a flow diagram illustrating an aspect of a method performed by a storage controller as described in at least one embodiment. [Diagram 5]FIG. 1 is a block diagram illustrating aspects of a system including a microservices orchestrator as described in at least one embodiment. [Figure 6] FIG. 1 is a block diagram illustrating aspects of a system including a storage controller according to at least one embodiment. [Figure 7] FIG. 1 is a block diagram illustrating a computer system or cloud server upon which the present disclosure may be implemented, as described in at least one embodiment. [Figure 8] FIG. 1 is a schematic diagram of a cloud computing environment in which the present disclosure may be implemented, as described in at least one embodiment. [Figure 9] FIG. 1 illustrates model layers of a cloud computing environment in which the present disclosure may be implemented, as described in at least one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] In a file system, file locations may be allocated on the fly from a storage allocator. In block storage, provisioning may be performed by allocating the entire capacity required for a volume in one pass (full allocation), or by allocating what is needed at the time. Such provisioning may use forward-lookup structures to point to the location where the data will be stored. This may be similar to how file systems use forward-lookup structures to "point" to specific data. Thin provisioning may be used as the basis for tools for advanced storage efficiency, such as compression or deduplication.
[0027] Certain actions may occur when data is written to disk. These actions may include writing the user data to the physical area after the storage is allocated. The actions may further include updating a forward reference structure, decrementing a reference count for the piece of data if it already points to that piece of data. These actions may include indicating that the reference count for the specified piece of data is zero, making the data no longer considered valid and a candidate for garbage collection. Invalidation of the data may be determined, at least in part, based on the reference count.
[0028] When data is read, certain actions may occur. These actions may include accessing a forward reference structure to find the location on the physical area where the requested data resides. The actions may further include returning zero if the location is not found. If the location is found, the data for that physical area location may be returned.
[0029] Other actions may include deduplication and garbage collection. Deduplication can be implemented by allowing forward references to point to other forward reference structures (and forward reference structures pointing back to data). In such cases, the reference count of a single piece of data can be greater than one. Garbage collection is a mechanism that coalesces invalidated capacity into reusable space. If a piece of data is written to a storage system and then overwritten, there is no way to be sure that this overwrite will land in the same location as the original write. For this reason, one implementation is to write to clean space. This workload matches the theoretically optimal performance pattern of the underlying storage medium. "Dirty" areas that are overwritten or UNMAP'd require that valid data from those areas be transferred from those areas to clean areas. After all data has been rewritten to the new area, the previously dirty space can be reused.
[0030] The combination of a container orchestrator and a storage controller can allow for greater flexibility for user applications. However, the storage requirements of a particular container may be unknown. One solution to this problem is to perform comprehensive over-provisioning and rely on the thin-provisioning capabilities of the underlying storage devices to ensure an acceptable level of inefficiency. For example, if a block storage system has an over-allocation and then goes unused, the underlying storage required for the root node of the forward reference metadata structure may be used but no further storage may be used. This structure may be sized in the range from kilobytes to megabytes, but there are pools sized in the petabyte range that make such overhead negligible.
[0031] The described method and system is directed to a microservices container and the images underlying the microservices container. Category Classification This Categorize The,behavior of the microservice image, including the context of,the container's current usage, is fed to the storage system,to predict how the container's I / O behavior is likely to,behave.,The storage system allocates storage, attempting to allocate it in a,region that minimizes garbage collection overhead.
[0032] The I / O behavior patterns of a container affect the efficient storage allocation and garbage collection of invalidated capacity in the storage system. Contains I / O behavior patterns are based on storage characteristics that affect storage behavior. Category Classification It is okay to do so.
[0033] Various selection criteria can be used to select containers based on their I / O behavior patterns. Category Classification The I / O operation patterns may be clustered into distinct usage patterns using machine learning techniques. These selection criteria may include, for example, how sequential or random the pattern of data is, how long the operation lasts and how long the entire container lasts, how compressible the data is, etc. The impact of slow I / O operations on a particular process (e.g., the period during which a processor is stalled waiting for an I / O operation) may be measured. Category Classification To achieve this, application-centric concepts may be used: strict invalidation may be used based on the "working set" of data for workloads that are heavily I / O intensive.
[0034] When a microservice is started, it is first determined by the behavior of the image of that microservice. Category Classification This will be Category Classification In order to categorymay be learned by feedback of past behaviors that indicate variability in the storage characteristics of container images. The current context of the container may be important and therefore applied to the current container. For example, an image being used to create a dedicated container for a database may have a variety of different behaviors based on the context of its use. Therefore, additional categorizers may be leveraged based on the context. Additionally, categorizers may be leveraged to categorize containers based on deviations or expected deviations in behavior from the current mode. category The container's processes may continue to be analyzed as they are moved between the containers. This deviation may occur due to the impact of user workloads, and the continued analysis may category It may be possible to change the
[0035] The subject matter of the present disclosure is particularly pointed out and distinctly claimed in the concluding portion of this specification. The present disclosure, together with its objects, features, and advantages, both as to its structure and method of operation, can be best understood by reference to the following detailed description and the accompanying drawings.
[0036] It will be appreciated that for simplicity and clarity of illustration, the elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous features.
[0037] 1, a block diagram illustrates an example embodiment of a system 100 in which the described methods and systems may be provided. The system 100 includes a microservices orchestrator 110 and storage controllers 150, 160 for storage systems used by the microservices orchestrator 110.
[0038] The microservices orchestrator 110 (e.g., a KUBERNETES® system) may provide a platform for automating the deployment, scaling, and operation of microservices containers across a cluster of hosts. A cloud service may provide a Platform as a Service (PaaS) or Infrastructure as a Service (IaaS) for the microservices orchestrator 110, on which the microservices orchestrator 110 can be deployed as a platform providing service.
[0039] The microservices orchestrator 110 may include individual nodes 120, 130 and a master node 140 or cluster. The master node 140 is the control unit that manages workloads and directs communication across the entire system and includes container provisioning and node control 141. The master node 140 includes a storage provisioning component 143 that serves as a container storage interface through which volumes can be created and provisioned.
[0040] Nodes 120, 130 contain node agents 121, 131 and are machines on which containers 125, 126, 135, 136 are deployed by the container runtime. A microservice image is a multi-layered file used to run code within a container. An image is built from a complete, executable version of an application's instructions and becomes one or more instances of that container when executed by the container runtime. Each node 120, 130 may include a storage driver 123, 133 to communicate with the storage provisioning component 143 and storage controllers 150, 160 of the master node 140.
[0041] The storage controllers 150, 160 include a storage allocator component 152, 162 for allocating storage in the heterogeneous storage 154, 164, which interfaces with a storage provisioning component 143 of the master node 140 of the microservices orchestrator 110. Each storage controller 150, 160 also includes a garbage collector component 153, 163 for reclaiming storage space.
[0042] The described method and system may be implemented to optimize I / O operations of a microservice container to assist the storage allocator components 152, 162 and the garbage collector components 153, 163 in performing optimally with the characteristics of the container's I / O operations. category to the storage controllers 150 and 160. The nodes 120 and 130 category Analytics components (categorization analytics component) Communicate with 142 Category Classification layers 122, 132, and further category The analysis component 142 is connected to the storage controllers 150 and 160. category It exchanges information with the analysis interfaces 151 and 161 .
[0043] Referring to FIG. 2, a block diagram 200 illustrates an example embodiment of the flow between the microservice orchestrator 110 node 120 and the master node 140, and to the storage controller 150.
[0044] An I / O operation is issued by a container at node 120 (201), and the execution of the operation is performed by individual nodes. category Analytics are collected and the node Category Classification Layer 122 of the container category The master node provides and coordinates category The result is communicated 202 to the analysis component 142 .
[0045] Master Node category The analysis component 142 determines the category The individual nodes notify the master node of any changes to the I / O patterns associated with the container, and the master node responds accordingly. category Allows you to change the value.
[0046] Master Node category The analysis component 142 receives notification of the input and output patterns of the container from the node layer (204) and analyzes the behavior of the container. Category Classification (205) and sends the notification to the node Category Classification The master node 140 returns the container to the layer 122 (206). category The information may be sent (205) to the storage controller 150, where the storage controller 150 may store the container's I / O information for reference when receiving an I / O operation for the container from the node 120. category Information is received (207).
[0047] On node 120, the container is category It may receive details from the analysis component 142 and may analyze the input and output operations of the container. category The master node may then transmit the information to the storage controller 150 along with the category The information may already be provided to the storage controller, for example in the form of a storage profile, so that the I / O operations of the container category The information may simply be tagged to identify it (i.e., the storage profile).
[0048] The storage controller 150 receives input / output operations for the container. category The container may receive the information (208). category Based on this, storage is allocated (209) for the I / O operation and written to back-end storage (210).
[0049] In an alternative implementation, individual nodes are category The information may be provided to the storage controller. category The manner in which the is transmitted may be implemented in various ways. category The information may describe a storage profile of storage characteristics or behavior that is received and understood by a storage controller to be applied during input / output operations of the container.
[0050] Referring to FIG. 3, a flow diagram 300 illustrates an example embodiment of aspects of the described methods performed by the microservices orchestrator 110.
[0051] In operation 301, to analyze an I / O activity pattern in a storage system, category The analytics functionality is provided to the microservices orchestrator 110. At operation 302, the microservices orchestrator 110: category analysis function Uses the metric to provide context for the underlying microservice images and microservice containers based on historical behavior patterns. Category Classification do. category analysis function Runtime microservice containers Category Classification A microservice container is an instance of a microservice image along with the current context.
[0052] The I / O behavior patterns in the storage system may include one or more of the following group of storage characteristics: incompressible data, highly compressible data, short-lived data, long-lived data, random access pattern data, sequential access pattern data, fully allocated ranges, and application behavior wait profile. Analyzing the I / O behavior patterns may include using machine learning techniques to derive the characteristics as: Category ClassificationThe behavioral patterns may be clustered into distinct behavioral patterns that can be used to scale the storage of the container. These behavioral patterns may be considered storage profiles for the container.
[0053] In some embodiments, storage characteristics are collected using one or more methods, such as identifying whether the workload is sequential / random, determining the compressibility of the workload, and determining the durability of the data by sampling. The lifetime of a particular container can also be trivially determined by the microservice orchestrator based on its uptime at the time of deletion.
[0054] In some embodiments, explicit user tagging is used to classify containers as having certain characteristics (e.g., one or more characteristics). This tagging may be performed at the classifier level by explicitly suggesting that the tagging or classification is similar to a past process. In some embodiments, tagging is performed at the characteristic level, explicitly stating how long a container may exist and what its input / output characteristics are. For example, if it is known to run a database for a particular workload to run, and that a similar expected workload will be created using a different database, this may be recognized in order to benefit from previous history created with an otherwise unrelated container image. Knowing how long a container may exist is also considered or input into the classification, as it allows for the determination of when all data associated with the container will be deleted (i.e., the point in time when all data will be subject to UNMAP, which affects storage behavior).
[0055] At operation 303, the microservice orchestrator 110 category Or transfer the coalesced details of the storage profile from the container orchestrator to the storage controller. category The transfer is different categoryor a storage profile may communicate to the storage controller how the container is likely to behave and how the storage profile may enable the storage controller to make the best allocation decisions for efficient storage and garbage collection, which may be based on patterns of past actions, behavior, characteristics, and other relevant pertinent information about one or more of the container, the data contained in the container, the storage profile, and the operations or schedules of operations performed on one or more of the container and the data within the container.
[0056] At operation 304, the microservice orchestrator 110 receives input / output operations for the microservice container issued by the microservice container at runtime and storage characteristics of the input / output operations. At operation 305, the microservice orchestrator 110 then: category analysis function (305) to analyze the input / output behavior of microservice containers category Set up the microservice container category In some embodiments where a data set is already established, the method further comprises: determining whether a microservice container is running a particular service based on a change in one or more of the operation, the storage profile, or any other suitable or relevant data. category may be corrected. category is due to the impact of user workload category long-term processes that can bring about changes in Applicable To do this, a microservice container is created that runs during operation. Category Classification This allows the predicted storage behavior of the I / O operations of microservice containers. definition It is used for efficient storage allocation and optimal garbage collection.
[0057] At operation 306, the microservice orchestrator 110 Category ClassificationDuring the process, the underlying microservice image category Based on microservices container first Category Classification The underlying microservice image category may be based on historical storage behavior. Historical container behavior based on a microservice image may be analyzed to determine behavior patterns of those containers. For example, there may be a microservice image that includes a sequential workload 90% of the time, and the sequential workload functions adequately using traditional hard disk drive (HDD) storage. However, 10% of the time, the image runs with a random workload that can function adequately using a solid-state drive (SSD). Category Classification From the mechanism, it may not be possible to tell if a random workload is to be used. By having a history available, the variability of a particular image can be recognized and based on past behavior, it can be recognized if better storage is needed. The history may indicate the probability of a behavior and a workload or image may be compared to two or more patterns of past behavior or profiles.
[0058] The underlying microservice image category may additionally or alternatively be configured by the user category If a user observes poor storage behavior, the user-defined configuration may be used to fine-tune the behavior.
[0059] In operation 307, the microservice orchestrator 110 determines whether the microservice container is configured to use the microservices. Ku initial category of Apply (307). Applicable is based on context category Utilizing categoryThis may include user-based tagging of microservice containers to assist in Applicable The context analysis may include a higher level of context analysis based on which other services are connected to the storage service. In some embodiments, the higher level of context analysis is based on the classification of the microservice container as belonging to a group of containers and the historical behavior patterns of the group. A group may be a subgroup in the form of a collection of microservice containers that are co-located on hardware and share resources, or a group may be a subgroup of services that function together, or both.
[0060] The microservice orchestrator 110 may: category Although various approaches may be appropriate. When a container is spun up, such spin-up of the container is typically performed within the context of a broader application. A cohort is a collection of containers that should be co-located on hardware and share resources, and a service is a broader classifier that specifies the cohorts that work together. When creating a service or cohort, each storage using container can be classified as part of a particular service or part of a particular cohort, and can have the historical behavior of these contexts associated with them. Machine Learning Categories classificationTechniques can be used to identify which are most relevant to the performance profile of a particular container. Typically, labels can also be associated with containers and leveraged to further aid classification. Topological methods may be used that attempt to classify containers. If a particular service is viewed as a collection of nodes (possibly including different kinds of nodes based on the context of use) and the membership of the subgroups / services determines the edges, then graph analysis algorithms can classify a particular container based on what it is connected to. Based on this, it can be determined what the behavior of the container is based on the behavior of its closest past matches. Bioinformatics techniques have explored various network-motif classification mechanisms, one of the most common applications of which is to identify similar structures in bioinformatics networks. Machine learning Category Classification Technologies Most Relevant to Microservices and Containers Performance Profile category may be used to identify
[0061] At operation 308, the microservice orchestrator 110 category In some embodiments, the microservices containers include an ongoing analysis of the input and output behavior of the microservices containers to update the category Analytics are collected from individual nodes of the current container process within the microservice orchestrator. For example, a node can tell if the current workload is mostly random or mostly sequential. The container orchestrator can be informed of the I / O patterns that are occurring for a particular container and can then use this I / O pattern to categoryContainers can be subject to the nature of user workloads which can change. For example, a workload may start out highly sequential when data is first written, but become highly random / transactional as different user workloads are enabled. category can be changed.
[0062] In operation 309, the microservice orchestrator 110 may perform a process to retrieve and transmit the microservice containers from the individual nodes of the container orchestrator. category Provides information to storage systems for use in allocating storage for I / O operations. For example, category I / O operations may be tagged using Category Classification Use details to view individual or groups of I / O operations. Provide a description of This tagging may include: category to a garbage collection algorithm on the underlying storage system.
[0063] Referring to FIG. 4, a flow diagram 400 illustrates an example embodiment of aspects of the described methods performed by storage controller 150.
[0064] In operation 401, the storage controller 150 receives a generic category Information, e.g. category These are received as a shared list. category For example, simply put, category , for short-lived, highly compressible data category Regarding the characteristic Description These may be shared in advance or category When a service is created, it is executed by the microservice orchestrator. Description It is okay to do so.
[0065] In operation 402, the storage controller 150 may be configured to calculate a predicted storage behavior for the input / output operations of the microservice container. definition Related category In some embodiments, the input / output operations are received and, after receipt, a category The associated characterization is analyzed to determine the predicted storage behavior of the I / O operations that indicate the corresponding predicted storage behavior of the microservice container. definition In some embodiments, the storage controller may include a plurality of category Receives an I / O operation associated with
[0066] In operation 403, the storage controller 150 category to the storage allocator and garbage collector components of the storage system, which then category The I / O operation is likely to have a particular behavior as a result.
[0067] category Information may be passed via an interface protocol to storage allocators and garbage collection algorithms on the underlying storage system. This may be done to describe groups of I / O operations, either by tagging I / O operations with characteristics of a particular known service, or by including these details in individual I / O operations. For example, a data frame header / footer may category of Description You may.
[0068] In operation 404, the storage controller 150 category Predicted provided by Storage Based on behavior, MicroservicesProvides optimized location of data for container I / O operations. Category Classification The details may include a measure of randomness, a measure of the expected lifetime of the data, a measure of whether the system in question is waiting for I / O operations, what the expected working set is for a particular set of I / O operations, etc. Garbage collection and space allocation algorithms may then develop a plan to find the best location for the data including the additional data provided.
[0069] In operation 405, the storage controller 150 category The storage controller 150 then uses a storage allocator component and a garbage collection component to perform the following operations during the container process: category The storage allocator can be updated during operation and responds accordingly. category If garbage collection ranges belong to a particular class of microservice, we can move these ranges to an appropriate new tier of storage allocation, so that category The changes to can be extended to garbage collection selection behavior.
[0070] Provided with the container's I / O operations category Below are some storage allocation techniques that may be used based on the information: In some cases, these storage allocation techniques may allocate high performance storage only when needed.
[0071] Additionally, if a user observes poor behavior, user-defined concepts may be provided to allow fine-tuning of the behavior. For example, if an image contains workloads that are not stored on high performance storage, but are meant to be suitable for high performance storage, being able to adjust individual workloads to affect that workload so that it is manually assigned to the best performance storage is a useful feature. Thus, user configuration may be provided to affect storage optimization.
[0072] Storage Pattern category may include measures of randomness, measures of the expected lifetime of the data, measures of whether the system in question is waiting for I / O operations, what the expected working set is for a particular set of I / O operations, measures of I / O size, the required fault tolerance, and other storage characteristics that affect storage and garbage collection optimization.
[0073] Compression ratio Varying compression ratios can affect the ideal location where data should be placed. For example, this effect can be seen in category This may include choosing to compress via inline array compression or pooled compression depending on the expected behavior of the array. For example, inline hardware compression implemented by an array may support a maximum compression ratio of approximately 4:1, while compression implemented by a data reduction pool of the same product may achieve a compression ratio of over 10:1, but at the expense of additional latency.
[0074] The orchestrator may inform the storage controller that a just-created container is likely to create incompressible data, and the storage controller may then choose not to attempt to compress I / O operations associated with the container, thereby saving compression bandwidth for I / O operations that are more likely to be compressed.
[0075] The orchestrator may inform the storage controller that the container just created is likely to create highly compressible data. In systems with limited compression bandwidth, this may be the optimal choice to save space. The storage controller will preferentially allocate compression bandwidth to the data range of this container.
[0076] Short-lived and long-lived data Other features that can aid garbage collection are the notion of refraining from garbage collection by a concept called "slack space". The idea is that if there is enough free space to stumble upon, garbage collection can become less costly over time as more invalidations are received. Thus, less work is required to free up a particular region. This behavior depends heavily on data locality. If an application's data is spread across many different regions, and those regions are shared with long-lived data, the long-lived data will need to be moved around even after all the short-lived data has been invalidated.
[0077] The orchestrator may inform the storage controller that a container is likely to have a short lifespan (i.e., data is likely to be discarded soon). The storage controller may attempt to group short-lived data together by allocating separate regions for these short-lived ranges. For systems that are not hindered by I / O latency, slower storage may be selected (e.g., spinning disks instead of the more expensive but faster solid-state drive option).
[0078] The storage controller chooses to assign short-lived data ranges to common ranges and avoid garbage collection of these ranges until they are nearly empty. This means that short-lived data is not intermingled with long-lived data, and predicted discard cycles free these ranges without the need for wide-area garbage collection. Because there is no garbage collection for these ranges, less write bandwidth is used for garbage collection, improving both performance and the lifespan of the storage media.
[0079] The orchestrator may inform the storage controller that a container is likely to have a very long lifespan. The storage controller allocates these long-lived data ranges to a common range. By preventing the long-lived data ranges from being mixed with short-lived ranges, unnecessary garbage collections to free the short-lived ranges are avoided. This results in less write bandwidth being used for garbage collection, further improving performance and the lifespan of the storage media.
[0080] Full allocation For particularly hostile workloads, when the overhead of garbage collection of data ranges can become excessive, the storage controller can allocate data ranges to fully allocated (i.e. non-log-structured-array) ranges, which can result in more optimal performance.
[0081] Random and sequential writes Different application workloads have different characteristics, a database may have a very random access pattern, whereas a backup task may have a very sequential access pattern. These have an impact on how garbage collection may work. Typically, a sequential overwrite pattern makes garbage collection easier since a contiguous range of storage can be freed. A random overwrite pattern is often more difficult for garbage collection since a relatively large amount of storage may be moved around to reclaim a significant region of space. For example, a sequential overwrite may have the following pattern: [XXXXXXXXXX][OOOOOOOOOO] [XXXXXXXXXX] [XXXXXXXXXX] [NNNNNNNNNN] [FFFFFFFFFF]
[0082] In this example, F=free, X=used, O=overwritten data, N=new data. Now, the entire area containing the overwrites can be reclaimed without the need to move any data. In this example, the random overwrites may have the following pattern: [XOXOXXOXXX][XXOXOXXOXX] [XOXOXXXXXX] [XXOXXOXXXX] [NNNNNNNNNN] [FFFFFFFFFF]
[0083] In this example, four regions are moved to reclaim one region's worth of data. This problem worsens as the physical region grows. For systems with significantly random I / O patterns compared to sequential I / O patterns, selecting the storage that responds best to this behavior can yield a more optimal response than selecting the fastest storage available.
[0084] The orchestrator can inform the storage controller that a container is likely to have random access patterns, and the storage controller can allocate these data ranges to ranges that are likely to work best for this workload (e.g., solid-state drives), resulting in improved performance for these systems.
[0085] The orchestrator can inform the storage controller that a container is likely to have sequential access patterns, and the storage controller can allocate these data ranges to the ranges (potentially hard disk drives) that are likely to work best for this workload, thereby allocating storage to more optimal candidates for the workload, improving hard disk drive performance and leaving more free space on solid state drives for use by workloads that will benefit the most.
[0086] Waiting for an I / O operation The orchestrator may inform the storage controller that the container is likely to be waiting for I / O operations for a significant period of time, and the storage controller may allocate faster storage media to these ranges to optimize the workflow on the container.
[0087] Workload Working Set A particular workload may have a working set, which is the range of data that is subject to heavy I / O activity. The working set applies the concept that there may be 10PB of data in total, but in reality it may be hundreds of TB that are subject to heavy I / O.
[0088] If you have two different workloads that both have random access patterns and both affect roughly the same amount of data, and they are stored together in the same backend space, they will overwrite themselves at roughly the same rate, optimizing garbage collection when space is statistically free at roughly the same time.
[0089] This is compared to a workload that is sequential mixed with random portions. This is roughly equivalent to having two significantly different working set sizes. Parts of certain regions tend to be overwritten long before other regions. Therefore, keeping similar working sets together makes garbage collection work more efficiently.
[0090] These optimizations can be achieved through analysis tailored to the container / image. A solution tailored to the virtual machine may be too coarse-grained and may not adequately account for the set of applications running on the virtual machine. An application-centric solution may be too fine-grained, lacking context, and difficult to integrate into the I / O path of that application.
[0091] In all these cases, containers with varying lifetimes can result in the failure of methods tailored to account for applications or virtual machines. By tailoring the method to a particular image and possibly the broader context of the image's use, it is possible to capture heterogeneous behaviors in a single virtual machine and application behavior that may vary widely depending on the context. The context in which this method operates is a task-focused environment. By recognizing this, the most useful information possible for the storage system is captured, thus making storage more efficient.
[0092] The benefits of such a system are optimized storage placement and reduced garbage collection overhead, which in turn reduces the load on the storage system and improves the performance of host I / O operations.
[0093] Referring to Figure 5, the block diagram shows the master node category Analysis component 142 and node Category Classification 5 illustrates an example embodiment of a microservices orchestrator 110 including a layer 132. Although shown on a single system, these may be distributed across multiple systems including at least one processor 501, hardware modules, or circuits to perform the functionality of the described components, which may be software units executing on at least one processor. Multiple processors executing parallel processing threads may be provided, allowing parallel processing of some or all of the functionality of the components. Memory 502 may be configured to provide computer instructions 503 to at least one processor 501 for performing the functionality of the components.
[0094] category The analysis component 142 analyzes the input / output behavior patterns in the storage system to generate the underlying microservice image. Category Classification and the microservice container context Category Classification In order to category analysis function may be provided. category analysis function When running microservice containers Category Classification is used to.
[0095] category The analysis component 142 includes a receiving component 511 for receiving input / output operations of the microservice container issued by the microservice container at runtime, and a receiving component 512 for analyzing the input / output operations and generating input / output operations of the microservice container. categoryAnalytical components to change (e.g., set or modify) (analyzing component) 520. (analyzing component) of the underlying microservice image category Based on microservices container first Category Classification Container image for Category Classification Component 521 and the microservices container context Ku initial category of Apply Context for Category Classification component 522.
[0096] category The analysis component 142 calculates the predicted storage behavior of the input / output operations of the microservice container. definition do category Using Microservices Containers Category Classification In order to Category Classification Component 512. category of the node running the container. Category Classification The received signal may be sent to layer 132. Category Classification Layer 132 is related to the input / output operations of the microservice container. category to the storage system for use in allocating storage for I / O operations.
[0097] Referring to FIG. 6, a block diagram is shown: category6 illustrates an example embodiment of a storage controller 150 including an analysis interface 151, a storage allocator component 152, and a garbage collector component 153. The storage controller 150 may include at least one processor 601, hardware modules, or circuits to perform the functions of the described components, which may be software units executing on the at least one processor. Multiple processors executing parallel processing threads may be provided, allowing parallel processing of some or all of the functions of the components. The memory 602 may be configured to provide computer instructions 603 to the at least one processor 601 for performing the functions of the components.
[0098] category The analysis interface 151 analyzes the input / output behavior of the microservice container and the predicted storage behavior of the input / output behavior of the microservice container. definition Related category The category receiving component 610 may include a category receiving component 610 for receiving the category along with the category receiving component 610 .
[0099] The storage allocator component 152 is associated with optimizing storage allocation for I / O operations. category 6. The category application component 620 may include a category application component 620 for using the
[0100] Garbage Collector Component 153 is related to optimizing garbage collection performance. category 6. The category application component 630 may include a category application component 630 for using the
[0101] 7 illustrates a block diagram of components of a computing device of system 100 of FIG. 1, such as microservices orchestrator 110 or storage controller 150, in accordance with an embodiment of the present disclosure. FIG. 7 provides an example of one implementation and is not intended to imply any limitation with respect to the environment in which different embodiments may be implemented. Many modifications may be made to the illustrated environment.
[0102] A computing device may include one or more processors 702, one or more computer-readable RAMs 704, one or more computer-readable ROMs 706, one or more computer-readable storage media 708, device drivers 712, read / write drives or interfaces 714, and network adapters or interfaces 716, all interconnected via a communications fabric 718. The communications fabric 718 may be implemented using any architecture designed to pass data and / or control information between processors (such as microprocessors, communications processors, and network processors), system memory, peripherals, and any other hardware components in the system.
[0103] One or more operating systems 710, and application programs 711 are stored in one or more of the computer readable storage media 708 for execution by one or more of the processors 702 via one or more of the respective RAMs 704 (which typically include cache memory). In the embodiment shown, each of the computer readable storage media 708 can be an internal hard drive magnetic disk storage device, a CD-ROM, a DVD, a memory stick, a magnetic tape, a magnetic disk, an optical disk, a semiconductor storage device (such as RAM, ROM, EPROM, flash memory, etc.), or any other computer readable storage medium capable of storing computer programs and digital information in accordance with embodiments of the present disclosure.
[0104] The computing device may also include a R / W drive or interface 714 for reading from and writing to one or more portable computer readable storage media 726. Application programs 711 on the computing device may be stored on one or more of the portable computer readable storage media 726 and read via the respective R / W drive or interface 714 and loaded onto the respective computer readable storage medium 708.
[0105] The computing device may also include a network adapter or interface 716, such as a TCP / IP adapter card or a wireless communication adapter. Application programs 711 on the computing device may be downloaded to the computing device from an external computer or external storage device via a network (e.g., the Internet, a local area network, or other wide area network, or a wireless network) and the network adapter or interface 716. The programs may be loaded from the network adapter or interface 716 into the computer readable storage medium 708. The network may include copper wire, fiber optics, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.
[0106] The computing device may also include a display screen 720, a keyboard or keypad 722, and a computer mouse or touchpad 724. The device driver 712 interfaces with the display screen 720 for imaging, interfaces with the keyboard or keypad 722, interfaces with the computer mouse or touchpad 724, interfaces with the display screen 720 for alphanumeric input and pressure detection of user selections, or interfaces with a combination thereof. The device driver 712, the R / W driver or interface 714, and the network adapter or interface 716 may comprise hardware and software (stored in the computer readable storage medium 708 and / or ROM 706).
[0107] The present disclosure may be embodied as a system, method, and / or computer program product at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium including computer-readable program instructions for causing a processor to perform aspects of the present disclosure.
[0108] A computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves in which the instructions are recorded, and any suitable combinations of these. As used herein, computer-readable storage media should not itself be construed as being ephemeral signals such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over wires.
[0109] The computer readable program instructions described herein may be downloaded from a computer readable storage medium to each computing device / processing device or to an external computer or external storage device over a network (e.g., the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof) that may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing device / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage on a computer readable storage medium within each computing device / processing device.
[0110] The computer readable program instructions for carrying out the operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, and procedural programming languages such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partially on the user's computer as a standalone software package, partially on the user's computer and on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, to carry out aspects of the present disclosure, an electronic circuit including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer-readable program instructions to customize the electronic circuit by utilizing state information of the computer-readable program instructions.
[0111] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks included in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0112] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, produce means for performing the functions / operations specified in the blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium and capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium on which the instructions are stored comprises an article of manufacture containing instructions for performing aspects of the functions / operations specified in the blocks of the flowcharts and / or block diagrams.
[0113] Computer readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / acts specified in the blocks of the flowcharts and / or block diagrams, thereby causing a series of operable steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process.
[0114] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of the systems, methods, and computer program products described in various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, comprising one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions shown in the blocks may occur in a different order than the order shown in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously or in reverse order, depending on the functionality involved. It is also noted that each block in the block diagrams and / or flowchart illustrations, as well as combinations of blocks included in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions.
[0115] Cloud Computing Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings presented herein is not limited to a cloud computing environment. Rather, embodiments of the present disclosure may be implemented in conjunction with any other type of computing environment now known or later developed.
[0116] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computational resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) and for rapidly provisioning and releasing these resources with minimal administrative effort or interaction with the service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0117] The features are as follows:
[0118] On-Demand Self-Service: Cloud customers can automatically provision server time and computing power, such as network storage, as needed, without the need for unilateral, human interaction with the service provider.
[0119] Broad Network Access: Capabilities are available over the network and accessed using standard mechanisms that facilitate usage by heterogeneous thin- and thick-client platforms (e.g., mobile phones, laptops, and PDAs).
[0120] Resource Pool: The provider's computing resources are pooled and offered to multiple consumers using a multi-tenant model. Different physical and virtual resources are dynamically allocated and reallocated according to demand. Consumers typically have no control or knowledge regarding the exact location of the resources offered, although at a higher level of abstraction there is a sense of location independence in that a location (e.g., country, state, or data center) may be specified.
[0121] Rapid Elasticity: Capacity is provisioned quickly and elastically, in some cases automatically, so it can be quickly scaled out and quickly released to quickly scale in. Capacity available for provisioning often appears to the consumer as unlimited, available for purchase in any quantity at any time.
[0122] Metered Services: Cloud systems leverage metering to automatically control and optimize resource usage at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services utilized.
[0123] The service model is as follows:
[0124] SaaS (Software as a Service): The capability offered to the consumer is the use of the provider's applications running on a cloud infrastructure. Those applications can be accessed from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer has no management or control over the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even the individual application functions, except for the possibility of limited user-specific application configuration settings.
[0125] PaaS (Platform as a Service): The capability provided to a customer is to deploy applications that the customer creates or acquires, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The customer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does control the deployed applications and, in some cases, the configuration of the application hosting environment.
[0126] Infrastructure as a Service (IaaS): The capability provided to a consumer is the provisioning of processing, storage, network, and other basic computational resources onto which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does control the operating systems, storage, deployed applications, and in some cases, limited control over selected networking components (e.g., host firewalls).
[0127] The deployment model is as follows:
[0128] Private Cloud: This cloud infrastructure is operated solely for the organization. It can be managed by the organization or a third party and can exist on-premise or off-premise.
[0129] Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community with shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It can be managed by these organizations or a third party and can reside on-premise or off-premise.
[0130] Public Cloud: This cloud infrastructure is available for use by general users or large industry organizations and is owned by an organization that sells cloud services.
[0131] Hybrid cloud: This cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain separate entities but are joined together by standardized or proprietary technologies that allow for the portability of data and applications (e.g., cloud bursting to balance the load between clouds).
[0132] A cloud computing environment is a service-oriented environment with an emphasis on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that contains a network of interconnected nodes.
[0133] Referring now to FIG. 8, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers (e.g., a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N) can communicate. The nodes 10 may communicate with each other. The nodes 10 may be physically or virtually grouped in one or more networks (not shown), such as in a private cloud, community cloud, public cloud, or hybrid cloud, or combination thereof, as previously described herein. This allows the cloud computing environment 50 to provide an infrastructure, platform, and / or software as a service that does not require the cloud consumer to maintain resources on a local computing device. The types of computing devices 54A-N shown in FIG. 8 are intended to be illustrative, and it is understood that the computing node 10 and cloud computing environment 50 may communicate with any type of computer-controlled device via any type of network and / or network-addressable connection (e.g., a connection using a web browser).
[0134] 9, a set of functional abstraction layers provided by cloud computing environment 50 (FIG. 8) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 9 are intended to be illustrative and that embodiments of the present disclosure are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0135] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframes 61, Reduced Instruction Set Computer (RISC) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, the software components include network application server software 67 and database software 68.
[0136] The virtualization layer 70 provides an abstraction layer over which virtual entities such as virtual servers 71 , virtual storage 72 , virtual networks including virtual private networks 73 , virtual applications and operating systems 74 , and virtual clients 75 can be provided.
[0137] By way of example, the management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of computational and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing and delivery for the utilization of those resources. By way of example, those resources may include application software licenses. Security provides identity verification of cloud users and tasks, as well as protection of data and other resources. User portal 83 provides access to the cloud computing environment to users and system administrators. Service level management 84 provides allocation and management of cloud computational resources to meet required service levels. Service level agreement (SLA) planning and execution 85 provides pre-provisioning and procurement of cloud computational resources in anticipation of upcoming demands and in accordance with SLAs.
[0138] The Workload Layer 90 illustrates examples of functionality available in a cloud computing environment. Examples of workloads and functionality that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and container storage optimization processing 96.
[0139] The description of various embodiments of the present disclosure is presented for illustrative purposes, but is not intended to be exhaustive and is not limited to the disclosed embodiments. It will be apparent to those skilled in the art that many changes and modifications are possible without departing from the scope of the described embodiments. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications, or technical improvements beyond the technology found in the market, or to allow other skilled in the art to understand the embodiments disclosed herein.
[0140] Improvements and modifications may be made to the foregoing without departing from the scope of the present disclosure.
Claims
1. 1. A computer-implemented method for enforcing storage allocation for a microservice, the method being performed on a microservice orchestrator, the method comprising: providing to the microservice orchestrator categorical analysis capabilities regarding I / O behavior patterns of microservice containers in a storage system, the I / O behavior patterns including storage characteristics of I / O behavior that impact storage allocation and garbage collection; categorizing a microservice container using the category analysis function, the categorizing categories defining predicted storage behaviors of input / output operations of the microservice container; providing the categories associated with I / O operations of the microservice containers to the storage system for use in allocating storage for the I / O operations; and wherein the categories associated with the I / O operations provided to the storage system provide an optimized location for data of the I / O operations of the microservice container based on the predicted storage behavior provided by the categories. The computer-implemented method.
2. The method of claim 1, wherein the input / output operation pattern includes one or more of the following group of storage characteristics: incompressible data, highly compressible data, short-lived data, long-lived data, random access pattern data, sequential access pattern data, fully allocated ranges, and a wait profile of application operation.
3. The method of claim 1, wherein the input / output behavior patterns are analyzed by clustering them into distinct usage patterns using machine learning techniques.
4. receiving a microservice container I / O operation issued by the microservice container; Analyzing the input / output behavior using the category analysis function and changing the category of the microservice container; The method of claim 1 , comprising:
5. analyzing the input / output behavior using the category analysis function and changing the category of the microservice container; 5. The method of claim 4, comprising ongoing analysis of input / output operations of microservice containers and updating the categories.
6. 5. The method of claim 4, wherein the categories are identified as being associated with a performance profile of the microservices container by a machine learning category classification technique.
7. analyzing the input / output behavior using the category analysis function and changing the category of the microservice container; initially categorizing the microservice containers based on categories of associated microservice images; applying an initial category based on the context of the microservice container; The method of claim 4 , comprising:
8. 8. The method of claim 7, wherein the categorization of the associated microservice images is based on historical storage behavior and user-configured categories.
9. 10. The method of claim 7, wherein applying an initial category based on the context of the microservice container comprises tagging the microservice container based on a user to assist in categorization.
10. 8. The method of claim 7, wherein applying an initial context-based category of the microservice container comprises a higher level context analysis based on a classification of the microservice container as belonging to a group of containers and historical storage behavior of the group.
11. 11. The method of claim 10, wherein the group is a subgroup in the form of a collection of microservices containers that are co-located on hardware and share resources.
12. 2. The method of claim 1, wherein providing the categories associated with I / O operations of the microservice container to a storage system for use in allocating storage for the I / O operations includes providing a description of each I / O operation using one or more category details.
13. 2. The method of claim 1 , wherein providing the category associated with an I / O operation of the microservice container to a storage system for use in allocating storage for the I / O operation comprises passing the category to a garbage collection algorithm on an associated storage system.
14. A processor; a memory coupled to the processor and storing computer program instructions; 11. A system for enforcing storage allocation for microservices in a microservice orchestrator, comprising: providing to the microservice orchestrator categorical analysis capabilities regarding I / O behavior patterns of microservice containers in a storage system, the I / O behavior patterns including storage characteristics of I / O behavior that impact storage allocation and garbage collection; categorizing a microservice container using the category analysis function, the categorizing categories defining predicted storage behaviors of input / output operations of the microservice container; providing the categories associated with I / O operations of the microservice containers to the storage system for use in allocating storage for the I / O operations; Executing an operation including the categories associated with the I / O operations provided to the storage system provide an optimized location for data of the I / O operations of the microservice container based on predicted storage behavior provided by the categories; The system.
15. The operation, receiving a microservice container I / O operation issued by the microservice container; Analyzing the input / output behavior using the category analysis function and changing the category of the microservice container; The system of claim 14 further comprising:
16. Using the category analysis function to analyze the input / output behavior and change the category of the microservice container, initially categorizing the microservice containers based on categories of associated microservice images; applying an initial category based on the context of the microservice container; The system of claim 15 further comprising:
17. A computer program for enforcement of storage allocation for microservices, the computer program causing a computer to perform the method according to any one of claims 1 to 13.
18. A computer-readable recording medium having recorded thereon a computer program for causing a computer to carry out the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Optimization method of microservice shortest execution time
CN108664378A
A containerization management system based on micro-service
CN109743199A
Software container registry service
US20170180346A1
Lazy persistent storage volume provisioning
US20180181436A1
Storage System and Method for Adaptive Scheduling of Background Operations
US20180276116A1
