Storage system and storage system control method

The storage system addresses the challenge of uneven free capacity across servers by using a compute server to manage and allocate storage capacity, resulting in efficient creation of scale-out volumes with low latency.

JP2025037406APending Publication Date: 2025-03-18HITACHI VANTARA LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023144323
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-06
Publication Date
2025-03-18

AI Technical Summary

Technical Problem

Existing storage systems face challenges in effectively utilizing storage capacity, particularly when the free capacity of storage servers becomes uneven, leading to issues with creating scale-out volumes due to biased free space distribution across servers.

Method used

A storage system comprising a controller, storage servers providing read local volumes, and a compute server that manages free capacity across storage servers to allocate storage capacity individually, thereby configuring scale-out volumes efficiently.

Benefits of technology

This solution enables effective utilization of storage capacity, allowing for the creation of large volumes with low latency, even in mixed environments with container and bare metal compute servers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025037406000001_ABST
    Figure 2025037406000001_ABST
Patent Text Reader

Abstract

To efficiently utilize a storage capacity.SOLUTION: A storage system includes: a plurality of storage servers that has a storage device and a controller that processes data to be input to and output from the storage device, and provides a lead local volume for inputting and outputting data to and from the storage device; and a first compute server that has a client. The first compute server manages a free capacity of the plurality of storage servers, individually allocates a memory capacity to each of the plurality of storage servers on the basis of the free capacity so as to provide the lead local volume, and configures a first volume on the basis of the plurality of provided lead local volumes, and provides the first volume to the client.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a storage system and a storage system control method. [Background technology]

[0002] To improve system portability and reduce the load, container execution platforms that manage applications as containers and automate operations are becoming widely used. A container is a collection of application execution environments that can be used like an individual server. A container execution platform is a tool for efficiently managing the operation of containers, and is also called a container orchestrator.

[0003] As in Patent Document 1, when a volume that can be scaled out from the container execution platform is required, a large-capacity scale-out volume is created on the storage side and provided to the container execution platform. The scale-out volume here refers to a volume whose capacity can be increased by adding nodes. In this case, there is a concern that IO communication between servers will occur on the storage side, which will worsen latency. Therefore, as in Patent Document 2, the compute server calculates the storage server on which data will be placed, and directly accesses that storage server to achieve low latency IO.

[0004] Storage servers are required to provide volumes to both compute servers in the container execution platform and to regular compute servers outside the container execution platform, and they need to support such a mixed environment. In particular, in the case of block storage, access from regular compute servers is via iSCSI or FC, and to achieve low latency, volumes may be created that are confined to a single server. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] US9678683 [Patent Document 2] US10003649B2 Summary of the Invention [Problem to be solved by the invention]

[0006] In the above-mentioned conventional technology, when the free capacity of the storage server becomes uneven, the capacity of the storage server may not be effectively used. For example, in a case where storage usage from a compute server of the container execution platform and a compute server outside the container execution platform is mixed, when a compute server outside the container execution platform creates a volume closed to a single storage server, a bias in the free capacity occurs between the storage servers. Therefore, when the container execution platform creates a scale-out volume, a situation occurs in which the volume cannot be created even though some storage servers have sufficient free capacity due to the bias in the free capacity. This is because the scale-out volume tries to create an equalized capacity on each storage server. Furthermore, even if a system is created, it requires manual operation, and the operation involves a lot of work, such as obtaining free space and changing data mapping. Therefore, an object of the present invention is to effectively utilize storage capacity. [Means for solving the problem]

[0007] In order to achieve the above-mentioned object, one representative storage system of the present invention comprises a storage device, a controller for processing data input and output to the storage device, a plurality of storage servers providing read local volumes for inputting and outputting data to the storage device, and a first compute server having a client, wherein the first compute server manages the free capacity of the plurality of storage servers, and based on the free capacity, allocates storage capacity individually to each of the plurality of storage servers to provide the read local volume, and configures a first volume based on the provided plurality of read local volumes and provides it to the client. Furthermore, one representative storage system control method of the present invention is a control method for a storage system comprising a storage device, a controller for processing data input / output to the storage device, a plurality of storage servers providing read local volumes for inputting / outputting data to the storage device, and a first compute server having a client, wherein the first compute server manages free capacity of the storage devices of the plurality of storage servers, assigns storage capacity individually to each of the plurality of storage servers based on the free capacity to provide the read local volume, configures a first volume based on the provided plurality of read local volumes, and provides it to the client. Effect of the Invention

[0008] According to the present invention, the storage capacity can be effectively utilized. Problems, configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]

[0009] [Figure 1] FIG. 11 is a diagram showing an overview of a scale-out volume creation process related to the first embodiment. [Diagram 2] FIG. 1 is a diagram showing a system configuration according to a first embodiment. [Diagram 3]FIG. 1 is a diagram showing a hardware configuration of a computer system according to a first embodiment. [Figure 4] FIG. 2 is a diagram showing the hardware configuration of the computer system according to the first embodiment. [Diagram 5] FIG. 3 is a diagram showing the hardware configuration of the computer system according to the first embodiment. [Figure 6] FIG. 4 is a diagram showing the hardware configuration of the computer system according to the first embodiment. [Figure 7] FIG. 5 is a diagram showing the hardware configuration of the computer system according to the first embodiment. [Figure 8] FIG. 6 is a diagram showing the hardware configuration of the computer system according to the first embodiment. [Figure 9] FIG. 4 is a diagram showing an example of a data structure of a storage server capacity management table according to the first embodiment. [Figure 10] FIG. 4 is a diagram showing an example of a data structure of a server management table according to the first embodiment. [Figure 11] FIG. 13 is a diagram showing an example of a storage management program capacity allocation processing flow according to the first embodiment. [Figure 12] FIG. 11 is a diagram showing an example of a processing flow of a Volume allocation plug-in container according to the first embodiment. [Figure 13] FIG. 13 is a diagram showing an example of a read local volume capacity decision flow of the storage server according to the first embodiment. [Figure 14] FIG. 11 is a diagram showing an example of a scale-out volume creation flow related to the first embodiment. [Figure 15] FIG. 13 is a diagram showing an example of a management client management screen according to the first embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Some embodiments will now be described with reference to the drawings. In the following explanation, various information may be explained using the expression "aaa table", but the various information may be expressed in a data structure other than a table. To show that it is not dependent on the data structure, the "aaa table" can also be called "aaa information".

[0011] In the following description, a "network I / F" may include one or more communication interface devices. The one or more communication interface devices may be one or more homogeneous communication interface devices (e.g., one or more NICs (Network Interface Cards)) or two or more heterogeneous communication interface devices (e.g., a NIC and an HBA (Host Bus Adapter)).

[0012] Furthermore, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of two or more tables may be one table.

[0013] In the following description, the storage device 140 is a physical non-volatile storage device (for example, an auxiliary storage device), such as a hard disk drive (HDD), a solid state drive (SSD), or a storage class memory (SCM).

[0014] In the following description, "memory 150" includes one or more memories 150. At least one memory 150 may be a volatile memory 150 or a non-volatile memory 150. The memory 150 is mainly used during processing by the processor unit.

[0015] In the following description, the process may be described with a "program" as the subject, but the program may also be the subject of the process because the program is executed by the CPU 160 (Central Processing Unit) to perform a defined process using a storage unit (e.g., memory 150) and / or an interface unit (e.g., a port) as appropriate. The process described with a program as the subject may be the process performed by a processor unit or a computer having the processor unit (e.g., a server).

[0016] In the following description, two or more programs may be realized as one program, and one program may be realized as two or more programs.

[0017] In the following description, an ID is used as identification information for an element, but other types of identification information may be used instead of or in addition to the ID.

[0018] In addition, in the following description, when describing elements of the same type without distinguishing between them, common reference numbers will be used, and when describing elements of the same type with distinction between them, the reference numbers of those elements will be used. EXAMPLES

[0019] In the first embodiment, a method is shown in which the container compute server 20 and the bare metal compute server 30 acquire the capacity of the storage server 40 to provide a low-latency scale-out volume 300.

[0020] <Summary> FIG. 1 is a schematic diagram showing how a large-capacity scale-out volume 300 is automatically used by utilizing the free capacity of a storage server 40 from a container execution platform environment. By referring to the storage node capacity management information 120 in the container compute server 20, the free capacity of the storage server 40 is obtained, and an instruction is issued to each storage server 40 to create a read local volume 200, and multiple read local volumes 200 are bundled together to enable the use of a scale-out volume 300 from an application container 80 on the container compute server 20.

[0021] The system 0 has a management server 10, a plurality of container compute servers 20, a bare metal compute server 30, and a storage server 40. The management server 10 has a storage management program 70, and receives a storage capacity allocation instruction from a user. The storage management program 70 judges whether the storage capacity allocation instruction from the user is an instruction to the container compute server 20 or an instruction to the bare metal compute server 30. If the instruction is to the container compute server 20, the storage capacity allocation instruction is converted into a volume configuration definition used on the container orchestrator 90 and sent to the volume allocation plug-in container 100. The container compute server 20 has the volume allocation plug-in container 100, and receives the volume configuration definition from the storage management program 70.

[0022] The volume allocation plug-in container 100 communicates with the storage management software 61 of the storage management server 60 to obtain the storage node capacity management information 120 .

[0023] The volume allocation plug-in container 100 refers to the storage node capacity management information 120 to the free capacity of each storage server 40, and determines whether a scale-out volume 300 can be created. The volume allocation plug-in container 100 determines the capacity to be used in each storage server 40 when a scale-out volume 300 can be created.

[0024] The volume allocation plug-in container 100 notifies each storage server 40 of the capacity in use and requests the creation of a read local volume 200 of that capacity. Each storage server 40 receives a request from the volume allocation plug-in container 100 and creates a read local volume 200 . The block storage driver container 130 configures a scale-out volume 300 by bundling a plurality of read local volumes 200 created in each storage server 40 . The block storage driver container 130 provides the scale-out volume 300 to the application container 80 . Written data is protected between storage servers by using N-redundancy between nodes and erasure coding, among other methods.

[0025] <System configuration> FIG. 2 shows an example of a system configuration according to this embodiment. As shown in FIG. 2, the system 0 assumed in this embodiment includes a plurality of container compute servers 20, a bare metal compute server 30, a management server 10, a storage server 40, a management client server 50, a storage management server 60, and a network 110.

[0026] The container compute server 20 is a server that performs the role of computing an application. The container compute server 20 is connected to other container compute servers 20 and the storage server 40 through a network 110. A container orchestrator 90 runs in the container compute server 20. In the container compute server 20, an application container 80 is started by the container orchestrator 90. The application container 80 records data in the storage server 40. Inside the container compute server 20, a network interface 170, a BMC 190, a memory 150, a CPU 160, and a storage device 140 are connected to an internal bus 180.

[0027] The management client server 50 is a server that accesses the management server 10 and manages the storage server 40, the container compute server 20, and the bare metal compute server 30. The management client server 50 accesses the management server 10 via a network 110. A user uses the management server 10 from the management client server 50 via the network 110, and uses the volume capacity of the storage server 40. Inside the management client server 50, a network interface 170, a BMC 190, a memory 150, a CPU 160, and a storage device 140 are connected to an internal bus 180.

[0028] The management server 10 is a server that manages storage capacity allocation of the container compute server 20 and the bare metal compute server 30. The management server 10 accesses the container compute server and the bare metal compute server via a network 110. Inside the management server, a network interface 170, a BMC 190, a memory 150, a CPU 160, and a storage device 140 are connected to an internal bus 180.

[0029] The bare metal compute server 30 is connected to the storage server 40 via a network 110. An application runs on the bare metal compute server 30 and records data in the storage server 40. Inside the bare metal compute server 30, a network interface 170, a BMC 190, a memory 150, a CPU 160, and a storage device 140 are connected to an internal bus 180.

[0030] The storage server 40 is connected to each server such as the container compute server 20, the bare metal compute server 30, and the management server 10 via a network 110. A block storage program runs on the storage server 40 and records data. Inside the storage server 40, a network interface 170, a BMC 190, a memory 150, a CPU 160, and a storage device 140 are connected to an internal bus 180.

[0031] The storage management server 60 is connected to the storage server 40 and the container compute server 20 via a network 110. A storage management program runs on the storage management server 60, and manages the free space and connection destinations of the storage server 40. Inside the storage management server 60, a network interface 170, a BMC 190, a memory 150, a CPU 160, and a storage device 140 are connected to an internal bus 180.

[0032] <Hardware configuration> FIG. 3 is a hardware configuration diagram of the container compute server 20. As shown in FIG. The container compute server 20 includes a CPU 160 , a memory 150 , a network interface 170 , and a storage device 140 .

[0033] The memory 150 includes an application program container P10, a volume allocation plug-in container P20, a container orchestrator P30, a block storage driver container P40, a logical volume management program P50, and a storage server capacity management table T10.

[0034] The CPU 160 operates as a functional unit that provides a predetermined function by performing processing according to the programs on the memory 150 . The application program container P10 is a program in which an application that the user wants to use runs, and which runs under the management of the container orchestrator P30. The application program container P10 executes a process that uses the storage capacity of the storage server 40. The volume allocation plug-in container P20 is a program that calculates the capacity to be allocated to the application program container P10 from the free capacity of each storage server 40, and notifies each storage server 40 to create a read local volume 200. The volume allocation plug-in container P20 acquires the free capacity and connection destination of each storage server 40 from the storage management server 60, calculates the used capacity of each storage server 40 from the free capacity, and performs processing to issue a notification to each storage server 40 to create a read local volume 200.

[0035] The container orchestrator P30 is a program that runs in the container compute server 20 and starts and manages the operation of the application program container P10. All programs that run in the container compute server 20 are managed as containers by the container orchestrator P30.

[0036] The block storage driver container P40 is a program for using a block storage program running on the storage server 40 from a container on the container orchestrator P30. It performs processing for using multiple storage servers 40 according to instructions from the volume allocation plug-in container P20.

[0037] The logical volume management program P50 is a program that creates logical volumes so that the block storage can be used as a file system from the application program container P10. It executes processing to bundle multiple read local volumes 200 provided by the storage server 40 and create one large scale-out volume 300.

[0038] The storage server capacity management table T10 will be described later with reference to FIG. The BMC 190 is a device that provides a power control interface for the container compute server 20. The BMC 190 operates independently of the CPU 160 and the memory 150, and can receive and process a power control request from the outside even if a failure occurs in the CPU 160 or the memory 150.

[0039] The storage device 140 is a non-volatile storage medium that stores various programs used by the container compute server 20. The storage device 140 may be an HDD, an SSD, or an SCM. The network interface 170 is a communication interface device for connecting to a network.

[0040] FIG. 4 is a diagram showing the hardware configuration of the bare metal compute server 30. As shown in FIG. The bare metal compute server 30 includes a CPU 160 , a memory 150 , a network interface 170 , and a storage device 140 .

[0041] The memory 150 contains an application program P60 and a storage client program P70. The CPU 160 operates as a functional unit that provides a predetermined function by performing processing according to the programs on the memory 150 . The application program P60 is a program in which an application that the user wants to use runs. It implements processing that uses the storage capacity of the storage server 40. The storage client program P70 is a program for using the block storage program of the storage server 40 from the application program P60. It implements processing to connect to the read local volume 200 on the storage server 40.

[0042] The BMC 190 is a device that provides a power control interface for the bare metal compute server 30. The BMC 190 operates independently of the CPU 160 and the memory 150, and can receive and process power control requests from the outside even if a failure occurs in the CPU 160 or the memory 150. The storage device 140 is a non-volatile storage medium that stores various programs used by the bare metal compute server 30. The storage device 140 may be an HDD, an SSD, or an SCM. The network interface 170 is a communication interface device for connecting to a network.

[0043] FIG. 5 is a diagram showing the hardware configuration of the storage server 40. As shown in FIG. The storage server 40 includes a CPU 160 , a memory 150 , a network interface 170 , and a storage device 140 .

[0044] The memory 150 includes an IO control program P80 and a block storage program P90. The CPU 160 operates as a functional unit that provides a predetermined function by performing processing according to the programs on the memory 150 . The IO control program P80 is a program that accepts reads and writes from the container compute server 20 and the bare metal compute server 30, and transfers them to a block storage program in the storage server 40 that is the write destination. The block storage program P90 is a program for saving reads and writes from the IO control program P80 in a storage device. The block storage program P90 executes a process to determine which storage device 140 should save reads and writes from the IO control program P80. It also has the role of integrating multiple storage devices 140 to provide them as a single storage area.

[0045] FIG. 6 is a diagram showing the hardware configuration of the storage management server 60. The storage management server includes a CPU 160 , a memory 150 , a network interface 170 , and a storage device 140 . The memory 150 contains a storage server management program P100 and a storage server management table T30.

[0046] The CPU 160 operates as a functional unit that provides a predetermined function by performing processing according to the programs on the memory 150 . The storage server management program P100 is a program that holds and manages the connection destination, used capacity, and free capacity of the storage server 40. It receives a request to obtain information about the storage server 40 from the volume allocation plug-in container 100 of the container compute server 20, and performs processing to notify the volume allocation plug-in container 100 of the connection destination and free capacity of the storage server 40.

[0047] The storage device 140 is a non-volatile storage medium that stores various programs used by the storage management server 60. The storage device 140 may be an HDD, an SSD, or an SCM. The network interface 170 is a communication interface device for connecting to a network.

[0048] FIG. 7 is a diagram showing the hardware configuration of the management server 10. As shown in FIG. The management server 10 includes a CPU 160 , a memory 150 , a network interface 170 , a storage interface, and a storage device 140 .

[0049] The memory 150 contains a storage management program P110, a server management program P120, and a server management table T20. The CPU 160 operates as a functional unit that provides a predetermined function by performing processing according to the programs on the memory 150 . The storage management program P110 is a program that allows the user to monitor and operate the information of the storage server 40. The server management program P120 is a program that allows users to monitor and operate the container compute server 20 and the bare metal compute server 30 by retaining the connection destination and storage allocation capacity for the container compute server 20 and the bare metal compute server 30. Upon receiving a request from the user to allocate a storage volume to a server, the program determines whether it is a container compute server 20 or a bare metal compute server 30, and if it is a container compute server 20, creates a volume configuration definition that complies with the standards of the container orchestrator P30 and notifies the volume allocation plug-in container P20 of the volume creation.

[0050] The server management table T20 will be described later with reference to FIG. The storage device 140 is a non-volatile storage medium that stores various programs used by the management server 10. The storage device 140 may be an HDD, an SSD, or an SCM. The network interface 170 is a communication interface device for connecting to a network.

[0051] FIG. 8 is a diagram showing the hardware configuration of the management client server 50. As shown in FIG. The management client server includes a CPU 160 , a memory 150 , a network interface 170 , a storage interface, and a storage device 140 .

[0052] The memory 150 contains a management server client program P130. The CPU 160 operates as a functional unit that provides a predetermined function by performing processing according to the programs on the memory 150 . The management server client program P130 is a program that enables a user to connect to the management server 10 and obtain and operate information on the container compute server 20, the bare metal compute server 30, and the storage server 40. The management server client program P130 connects to the management server 10 and performs processing to communicate with the server management program P120.

[0053] The storage device 140 is a non-volatile storage medium that stores various programs used by the management client server 50. The storage device 140 may be an HDD, an SSD, or an SCM. The network interface 170 is a communication interface device for connecting to a network.

[0054] FIG. 9 shows the data structure of the storage server capacity management table T10. The storage server capacity management table T10 stores information on a server ID C101, a connection destination C102, and free capacity C103.

[0055] The storage management program P110 adds a server ID C101 when a storage server 40 is added. When a storage server 40 is added or the connection destination is changed, the storage management program P110 adds or changes the connection destination, C102. When a request is made from the volume allocation plug-in container P20 or another program to refer to the free capacity of the storage server 40, the storage management program P110 communicates with the storage server 40 and adds the free capacity C103.

[0056] FIG. 10 shows the data structure of the server management table T20. The server management table T20 stores information on a server ID C201, a role C202, an IP address C203, and an allocated storage capacity C204. When a user adds a new server to be managed by the management client server 50, the server management program P120 adds a server ID C201, a role C202, and an IP address C203. When a storage capacity allocation request is received from the management client server 50 for the server managed by the user and the capacity allocation to the container compute server 20 is successful, the server management program P120 adds a storage allocated capacity C204.

[0057] <Processing flow> FIG. 11 shows the flow in which the storage management program P110 receives a request from a user and allocates storage capacity to the container compute server 20. S110: The server management program P120 acquires the storage capacity allocation for the application program container P10 from the user. S120: If the application program container P10 is able to cooperate with the container orchestrator P30, the server management program P120 creates a volume configuration definition for the container. S130: The server management program P120 requests the volume allocation plug-in container P20 running on the container orchestrator P30 on the container compute server 20 to create a volume.

[0058] 12, a volume allocation plug-in container P20 receives a request from a server management program P120, obtains free capacity information of the storage servers 40, and decides from which storage server 40 to use the capacity. It also requests each storage server 40 to create a read local volume 200, and requests the block storage driver container P40 to create a scale-out volume 300 that combines the read local volumes 200.

[0059] S210: The volume allocation plug-in container P20 obtains a volume creation request and its capacity from the container orchestrator P30. S220: The volume allocation plug-in container P20 obtains the free space of each storage server 40 from the storage server management program P100. S230: The capacity of each storage server 40 is determined from the capacity of the volume to be created using the "Flow of determining storage server and read local volume capacity" in FIG. S240: A request is made to each storage server 40 to create a read local volume 200 of that capacity. S250: A request is made to the block storage driver container 130 to create a scale-out volume 300 that aggregates the read-local volumes 200.

[0060] FIG. 13 shows a flow in which the volume allocation plug-in container P20 receives a volume capacity creation request from the server management program P120 and determines the capacity of the read local volume 200 to be created in each storage server 40. S310: It is determined whether the total free space of the storage server 40 is less than the requested capacity. If Yes, S330 is executed. If No, S320 is executed. S320: It is determined whether the capacity obtained by dividing the requested capacity by the number of storage servers 40 can be secured by all storage servers. If Yes, S340 is executed. If No, S350 is executed. S330: It is determined that the volume cannot be created, and a message indicating that the volume cannot be created is returned to the server management program P120. This flow ends. S340: A read local volume 200 with a capacity obtained by dividing the requested capacity by the number of storage servers 40 is created in all storage servers 40. This flow ends. S350: The storage server 40 with the most free capacity adds the shortage of the storage server 40 that does not have free capacity, which is the requested capacity divided by the number of storage servers 40, and creates a read local volume 200. This flow ends.

[0061] FIG. 14 shows a flow for creating the scale-out volume 300 of the container compute server 20. S410: In response to a request from the volume allocation plug-in container P20, the block storage driver container P40 creates a scale-out volume 300 by combining the read-local volume 200 using the logical volume management program P50.

[0062] <Administration Interface> FIG. 15 shows an example of the server management interface provided by the management server client program P130. Through the screen shown in the figure, administrators can check and set the storage capacity to be allocated to servers and applications. I10: Displays the ID for identifying the server. I20: Displays the role of the server to identify whether it is a computer or storage. I30: Displays the IP address to connect to the server. I40: Displays the applications running on the server. I50: Displays the storage quota that the application uses on each server.

[0063] <Capacity Increase> In the above explanation, the creation of a new scale-out volume 300 has been taken as an example, but it is also possible to increase the capacity of an existing scale-out volume 300. Specifically, the volume allocation plug-in container 100 refers to the free capacity of each storage server 40 from the storage node capacity management information 120, and allocates the increased storage capacity to the storage server 40 with the largest free capacity. At this time, the entire increase may be allocated to one storage server 40 with a sufficiently large free capacity, or the increase may be divided and allocated so that the free capacities of the multiple storage servers 40 are equal. The storage server 40 to which the increased storage capacity is allocated increases the read local volume 200 to provide to the scale-out volume 300. At this time, the existing read local volume 200 may be increased, or a new read local volume 200 corresponding to the increased capacity may be generated.

[0064] As described above, the disclosed storage system includes a storage device 140, a controller that processes data input and output to the storage device 140, a plurality of storage servers 40 that provide a read local volume 200 for inputting and outputting data to and from the storage capacity of the storage device 140, and a first compute server (container compute server 20) having a client. The first compute server manages the free capacity of the plurality of storage servers 40, and allocates storage capacity to each of the plurality of storage servers 40 individually based on the free capacity to cause them to provide the read local volume 200, and configures a first volume (scale-out volume 300) based on the provided plurality of read local volumes 200, and provides the first volume to the client. This allows for efficient use of storage capacity and provides large volumes with low latency.

[0065] In addition, the first compute server is a server having a container execution platform environment, and the client operates on the container execution platform, and manages the free capacity, allocates memory capacity, and provides the first volume using a program running on the container execution platform. This enables the container execution platform to comprehensively manage the capacity of multiple storage servers.

[0066] The system further includes a second compute server (bare metal compute server 30) having a client, and at least one of the plurality of storage servers provides the read local volume to the first compute server and the second compute server, respectively. Therefore, even if the free capacity between the storage servers becomes uneven because the second compute server has caused one of the storage servers to generate a read local volume, the first compute server can generate and provide a large-capacity volume. In other words, in a configuration in which a storage server is used by a mixture of container compute servers that use a container orchestrator and bare metal compute servers that do not use a container orchestrator, storage capacity utilization can be achieved.

[0067] In addition, when the first compute server increases the storage capacity of the first volume, it refers to the free capacity of the multiple storage servers 40 to determine a storage server to which the increased storage capacity is to be allocated, and the storage server 40 to which the increased storage capacity is allocated increases the storage capacity it provides as the storage capacity of the first volume. This makes it easy to scale out the volume.

[0068] In addition, in the present invention, the storage management program determines whether or not it is linked to a container execution platform, creates a volume configuration definition to be used on the container execution platform, and requests a volume allocation plug-in to create a volume. This makes it possible for the storage management program to request volume allocation to an application container on the container execution platform.

[0069] In addition, in this invention, a volume allocation plug-in is prepared on the container execution platform. The volume allocation plug-in acquires and holds the free capacity and connection destination information of each storage server from the storage server management program of the storage management server. This allows the volume allocation plug-in to refer to the free capacity of the storage server and determine which storage server's capacity should be used.

[0070] In addition, in the present invention, the volume allocation plug-in determines which storage server should have a read local volume of a certain capacity based on the free capacity of each storage server, and sends instructions to each storage server. Each storage server creates a read local volume of the specified capacity. This allows the compute server to determine the capacity to be used by each storage server and create volumes on each storage server.

[0071] In addition, the present invention provides a block storage driver container that runs on a container execution platform, which connects to the read-local volumes of the multiple storage servers that it has created, and creates a volume that bundles each node using a logical volume management program. The application program container of each compute server uses this volume as a scale-out volume. This enables large-capacity scale-out volumes to be used from the container execution platform. As a result, the present invention manages the free capacity of each storage server on the host side where the container orchestrator is located, rather than on the storage side, and by bundling the read-local volumes provided by the storage servers, it provides a scale-out volume with high capacity and low read latency.

[0072] Although the embodiments of the present invention have been described above, the embodiments have been described in detail to easily explain the present invention, and the present invention is not necessarily limited to those having all the configurations described. It is possible to replace a part of the configuration of one example with the configuration of another example, and it is also possible to add the configuration of another example to the configuration of one example. In addition, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration. The configurations in the drawings show those that are considered necessary for explanation, and do not necessarily show all the configurations in the product. In addition, although the embodiment has been described using a configuration that uses physical servers, the present invention can also be applied to a cloud computing environment that uses virtual machines. A cloud computing environment is configured to operate virtual machines / containers on a system hardware configuration abstracted by a cloud provider. In that case, the servers shown in the embodiment are replaced with virtual machines / containers, and the storage array is replaced with a block storage service provided by the cloud provider. [Explanation of symbols]

[0073] 10: Management server, 20: Container compute server, 30: Bare metal compute server, 40: Storage server, 50: Management client server, 60: Storage management server, 61: Storage management software, 70: Storage management program, 80: Application container, 90: Container orchestrator, 100: Volume allocation plugin container, 110: Network, 120: Storage node capacity management information, 130: Block storage driver container, 140: Storage device, 150: Memory, 160: CPU, 170: Network interface, 180: Internal bus, 200: Read local volume, 300: Scale-out volume

Claims

1. a plurality of storage servers each having a storage device and a controller for processing data input / output to the storage device, the storage server providing a read local volume for inputting / outputting data to the storage device; a first compute server having a client; The first compute server comprises: Manage free space on the plurality of storage servers; Based on the free capacity, a storage capacity is individually allocated to each of the plurality of storage servers to provide the read local volume; A first volume is constructed based on the provided plurality of read local volumes, and the first volume is provided to the client. A storage system comprising:

2. 2. The storage system according to claim 1, The first compute server is a server having a container execution infrastructure environment, The client runs on the container execution platform, A storage system characterized in that the free capacity is managed, the storage capacity is allocated, and the first volume is provided by a program that runs on the container execution platform.

3. 3. The storage system according to claim 2, Further comprising a second compute server having a client; At least one of the plurality of storage servers provides the read local volume to the first compute server and the second compute server, respectively. A storage system comprising:

4. 2. The storage system according to claim 1, when increasing the storage capacity of the first volume, the first compute server refers to free space in the plurality of storage servers to determine a storage server to which the increased storage capacity is to be allocated; The storage server to which the increased storage capacity is allocated increases the storage capacity it provides as the storage capacity of the first volume. A storage system comprising:

5. a plurality of storage servers each having a storage device and a controller for processing data input / output to the storage device, the storage server providing a read local volume for inputting / outputting data to the storage device; A control method for a storage system including: The first compute server, Manage free space in the storage devices of the plurality of storage servers; Based on the free capacity, a storage capacity is individually allocated to each of the plurality of storage servers to provide the read local volume; constructing a first volume based on the provided plurality of read local volumes and providing the first volume to the client; A storage system control method comprising:

Citation Information

Patent Citations

  • Systems and methods to improve read / write performance in object storage applications

    US10003649B2

  • Lazy persistent storage volume provisioning

    US9678683B1