CN113918092A - Method and system for allocating storage space - Google Patents

Method and system for allocating storage space Download PDF

Info

Publication number
CN113918092A
CN113918092A CN202111101879.5A CN202111101879A CN113918092A CN 113918092 A CN113918092 A CN 113918092A CN 202111101879 A CN202111101879 A CN 202111101879A CN 113918092 A CN113918092 A CN 113918092A
Authority
CN
China
Prior art keywords
storage
node server
controller
storage module
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111101879.5A
Other languages
Chinese (zh)
Inventor
祝成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Great Wall Technology Group Co ltd
Original Assignee
China Great Wall Technology Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Great Wall Technology Group Co ltd filed Critical China Great Wall Technology Group Co ltd
Priority to CN202111101879.5A priority Critical patent/CN113918092A/en
Publication of CN113918092A publication Critical patent/CN113918092A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

The application is applicable to the technical field of computers, and provides a method and a system for allocating storage space, wherein the method is applied to a multi-node server system, and the node server system comprises the following steps: the system comprises a plurality of node servers, a storage topology controller, a storage module controller and a storage module. The method comprises the following steps: the node server provides a request for applying a storage space, the storage topology controller determines one or more storage units from the storage module according to the request provided by the node server, the storage module controller opens a communication channel between the one or more storage units in the storage module and the node server, and finally the one or more storage units are reported to the node server to complete the distribution of the storage space, so that the storage space of the node server can be freely distributed under different application scenes of the node server in a multi-node server system, and the technical effect of enhancing the flexibility of the multi-node server is achieved.

Description

Method and system for allocating storage space
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method and system for allocating a storage space.
Background
With the development of novel information technology, a centralized data center gradually develops to a distributed architecture, the development leads to the increase of the number of data center servers, and a multi-node server adopts the design of shared chassis, fans and other equipment, so that higher computing density can be provided in the same cabinet space compared with the traditional server, and the distributed data center is widely applied.
In the related art, the storage space corresponding to each node server of the conventional multi-node server is fixed. However, the same node server needs different storage spaces in different application scenarios, and a fixed storage space allocation manner may cause a problem that the same multi-node server wastes or is insufficient in storage space in different usage scenarios, so that the flexibility of the multi-node server is weak.
Disclosure of Invention
The embodiment of the application provides a method and a system for allocating storage space, which can achieve the effect that the storage space of any node server can be freely allocated in a multi-node server.
In a first aspect, an embodiment of the present application provides a method for allocating a storage space, where the method is applied to a multi-node server system, and the method includes: a first node server sends a first request to the first storage topology controller, wherein the first request is used for applying for a storage space in the storage module from the storage topology controller, and the first node server is any node server in a multi-node server system; the storage topology controller determines one or more storage units from the storage module according to the first request; the storage topology controller controls the storage module controller to open a communication channel between the first node server and the one or more storage units according to the one or more storage units; and the storage module controller reports the one or more storage units to the first node server.
In a possible implementation manner of the first aspect, the storage topology controller determines a storage unit in the storage module, which does not establish a communication channel with other node servers in the multi-node server system except the first node server; determining the one or more storage units from storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system other than the first node server.
In a possible implementation manner of the first aspect, the storage topology controller sends a second request to the storage module controller, where the second request requests the storage module controller to report a storage unit in the storage module, where a communication channel is not established between the storage unit and another node server in the multi-node server system except the first node server; and the storage topology controller determines a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system according to the report of the storage module controller.
In a possible implementation manner of the first aspect, before the storage topology controller controls the storage module controller to open a communication channel between the first node server and the one or more storage units, the storage topology controller sends a third request to the storage module controller, where the third request requests the storage module controller to release a storage space corresponding to the one or more storage units; and the storage module controller releases the storage space corresponding to the one or more storage units according to the third request.
In a possible implementation manner of the first aspect, the storage topology controller sends a control signal to the storage module controller, where the control signal is used to control the storage module controller to open a communication channel between the first node server and the one or more storage units.
In one possible implementation manner of the first aspect, the storage module controller sends first information to the first node server, where the first information includes identification information of the one or more storage units.
In one possible implementation manner of the first aspect, the storage module controller is disposed in the storage module.
According to the embodiment of the application, the storage topology controller controls the storage module controller to open the communication channel between the first node server and the one or more storage units in the storage module according to the request of the first node server for applying the storage space, and the storage module controller reports the one or more storage units to the first node server.
In a second aspect, an embodiment of the present application provides a multi-node server system, including: the system comprises a plurality of node servers, a storage topology controller, a storage module controller and a storage module.
A first node server of the plurality of node servers is to: sending a first request to the first storage topology controller, where the first request is used to apply for a storage space in the storage module from the first storage topology controller, and the first node server is any one node server in a multi-node server system;
the storage topology controller is to: determining one or more storage units from the storage module according to the first request; controlling the storage module controller to open a communication channel between the node server and the one or more storage units according to the one or more storage units;
the storage module controller is configured to: and reporting the one or more storage units to the first node server.
In a possible implementation manner of the second aspect, the storage topology controller is specifically configured to: determining a storage unit of the storage module which does not establish a communication channel with other node servers except the first node server in the multi-node server system; determining the one or more storage units from storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system other than the first node server.
In a possible implementation manner of the second aspect, the storage topology controller is specifically configured to: sending a second request to the storage module controller, where the second request requests the storage module controller to report a storage unit in the storage module, where a communication channel is not established between the storage module and another node server in the multi-node server system except the first node server; and the storage topology controller determines a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system according to the report of the storage module controller.
In a possible implementation manner of the second aspect, the storage topology controller is further configured to: before the storage topology controller controls the storage module controller to open a communication channel between the first node server and the one or more storage units, sending a third request to the storage module controller, where the third request requests the storage module controller to release a storage space corresponding to the one or more storage units.
In a possible implementation manner of the second aspect, the storage module controller is further configured to: and releasing the storage space corresponding to the one or more storage units according to the third request.
In a possible implementation manner of the second aspect, the storage topology controller is specifically configured to: sending a control signal to the storage module controller, wherein the control signal is used for controlling the storage module controller to open a communication channel between the first node server and the one or more storage units.
In a possible implementation manner of the second aspect, the storage module controller is specifically configured to: sending first information to the first node server, the first information including identification information of the one or more storage units.
In a third aspect, an embodiment of the present application provides a schematic structural diagram of an apparatus for allocating storage space, where the apparatus includes:
the sending module is used for sending a first request to the first storage topology controller by a first node server, wherein the first request is used for applying for a storage space in the storage module from the storage topology controller, and the first node server is any node server in a multi-node server system; the storage module controller reports the one or more storage units to the first node server;
a determining module, configured to determine, by the storage topology controller, one or more storage units from the storage module according to the first request;
and the starting module is used for controlling the storage module controller to start a communication channel between the node server and the one or more storage units according to the one or more storage units by the storage topology controller.
In a fourth aspect, embodiments of the present application provide a computer-readable storage medium comprising computer instructions that, when executed on a multi-node server system, cause the multi-node server system to perform any one of the possible methods for allocating storage space of the above aspects.
In a fifth aspect, embodiments of the present application provide a computer program product, which, when run on a multi-node server system, causes the multi-node server system to perform any one of the possible methods for allocating storage space of any one of the above aspects.
It is understood that the beneficial effects of the second aspect to the fifth aspect can be referred to the related description of the first aspect, and are not described herein again.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments or the prior art descriptions will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present application, and it is obvious for those skilled in the art to obtain other drawings without creative efforts.
FIG. 1 is a schematic structural diagram of a multi-node server system provided by an embodiment of the present application;
FIG. 2 is a flowchart illustrating a method for allocating memory according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of an apparatus for allocating a storage space according to an embodiment of the present application.
Detailed Description
In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular system structures, techniques, etc. in order to provide a thorough understanding of the embodiments of the present application. It will be apparent, however, to one skilled in the art that the present application may be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well-known systems, devices, circuits, and methods are omitted so as not to obscure the description of the present application with unnecessary detail.
It will be understood that the terms "comprises" and/or "comprising," when used in this specification and the appended claims, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It should also be understood that the term "and/or" as used in this specification and the appended claims refers to and includes any and all possible combinations of one or more of the associated listed items.
In the description of the present application and the appended claims, the terms "first," "second," "third," and the like are used for distinguishing between descriptions and not necessarily for describing or implying relative importance.
Reference throughout this specification to "one embodiment" or "some embodiments," or the like, means that a particular feature, structure, or characteristic described in connection with the embodiment is included in one or more embodiments of the present application. Thus, appearances of the phrases "in one embodiment," "in some embodiments," "in other embodiments," or the like, in various places throughout this specification are not necessarily all referring to the same embodiment, but rather "one or more but not all embodiments" unless specifically stated otherwise. The terms "comprising," "including," "having," and variations thereof mean "including, but not limited to," unless expressly specified otherwise.
The multi-node server is a server cluster formed by centralizing a plurality of node servers, is mainly applied to the field of File Transfer Protocol (FTP) based communication and the field of the internet (World Wide Web, Web) and the like, can obtain higher processing speed by centralizing the plurality of node servers, and reduces the load of each node server in the multi-node server.
In general, each node server is allocated with a fixed storage space at the time of factory shipment, taking the storage space as an example of a plurality of disks, a multi-node server system with 4 node servers includes 24 disks in total, the 24 disks are allocated to each node server at the time of factory shipment, and the disks allocated to the node servers at the time of factory shipment cannot be changed subsequently.
However, for different application scenarios, the node servers may have different requirements for the size of the storage space, for example, for a scenario where a computing task is executed, the node server executing the computing task may only need 4 disks to complete the computing task, and in this case, storage resources may be wasted; for a scenario of executing a storage task, a node server executing the storage task needs 8 disks to complete the storage task, and in this case, there may be a case of insufficient storage resources.
In view of this, the embodiments of the present application provide a method for allocating a storage space, so that a user can freely allocate the storage space of a node server according to different application scenarios.
Fig. 1 is a schematic structural diagram of a multi-node server system 100 according to an embodiment of the present application, and it can be seen that the multi-node server system 100 includes: a plurality of node servers 101, a storage topology controller 102, a storage module controller 103, a storage module 104, wherein:
the node server 101 is used for providing computing and storage functions.
The storage topology controller 102 is used to determine one or more storage units from the storage modules 104.
The storage module controller 103 is configured to open a communication channel between the one or more storage units and the node server.
It should be understood that fig. 1 is only an example and does not limit the embodiment of the present application, and the embodiment of the present application does not limit the number of node servers included in the multi-node server system.
In some embodiments, a storage controller (not shown in fig. 1) may be deployed in each node server in fig. 1, or may be deployed between the node server and the storage topology controller independently from the node server. For the function of the memory controller in the embodiments of the present application, see the description below.
In some embodiments, the storage module controller may be deployed in the storage module or, alternatively, may be deployed independently of the storage module, between the storage topology controller and the storage module.
In some embodiments, the multi-node server system further comprises: the power module, the heat dissipation module, and the power module and the heat dissipation module are not shown in fig. 1. The power supply module is used for meeting the power supply requirement of the multi-node server, and the heat dissipation module is used for meeting the heat dissipation requirement of the multi-node server.
The method for allocating storage space provided by the embodiment of the present application is described in detail below with reference to fig. 2, taking any node server (i.e., a first node server) in a multi-node server system as an example, where the first node server may be used to perform a computing task, and the first node server may also be used to perform a storage task.
Step S201, the first node server sends a first request to the storage topology controller.
For example, after determining the size of the storage space required for the task to be executed according to the task that needs to be executed by the first node server, the user may send a first request to the storage topology controller through the first node server to request for applying for the storage space of the corresponding size in the storage module.
Taking the storage module including a plurality of disks as an example, the first request may carry the number of disks with the same specification or carry identification information of a specific disk. For example, the specifications of the disks in the storage module are all 600G, at this time, the original request may carry the number of disks, or the specifications of the disks in the storage module are not completely the same, at this time, the first request may carry the specification of the disks and the number of disks of the same specification.
For example, the first node server may send the first request to the storage topology controller by:
the first node server first generates an original request, and normally, the format of the original request is not a format which can be recognized by a machine, so that in order to enable the original request to be recognized by the machine, the first node server can send the original request to the storage controller, the storage controller performs format conversion on the original request, generates a first request which can be recognized by the machine, and then sends the first request to the storage topology controller.
For example, when the first node server sends an original request to the storage controller, the first node server may use a high-speed serial computer expansion bus (PICe) interface to communicate with the storage controller through the PICe protocol, or connect the node server and the storage controller together in a switch to perform communication connection.
In the above description, the storage medium constituting the storage module is taken as a magnetic disk as an example, and in a specific implementation, the type of the storage medium constituting the storage module is not limited, for example, the storage medium constituting the storage module may be a flash memory, or the storage medium constituting the storage module may also be an optical disk or another memory having a storage function. It should be noted that, when the storage medium constituting the storage module is a magnetic disk, each magnetic disk constituting the storage module corresponds to a storage unit in the embodiment of the present application.
Step S202, the storage topology controller determines one or more storage units from the storage module according to the first request.
For example, the storage topology controller may determine, according to the first request, a storage unit that does not establish a communication channel with a node server other than the first node server in the multi-node server system from the storage module, and determine one or more storage units from the storage units that do not establish a communication channel with the node server other than the first node server in the multi-node server system.
For example, when the storage topology controller determines that a storage unit of a communication channel is not established with a node server other than the first node server in the multi-node server system, the storage topology controller may determine in the following two ways.
Mode 1
The storage topology controller may actively determine a storage unit of the storage module that does not establish a communication channel with a node server other than the first node server in the multi-node server system.
For example, the storage topology controller may actively acquire communication state information of a storage unit and identification information of the storage unit in the storage module through a Serial Attached Small Computer System Interface (SAS) Interface of the storage topology controller, where the communication state information of the storage unit may be used to indicate an opening condition of a communication channel between the node server and the storage unit, after the communication channel between the node server and the storage unit is opened, the node server may use the storage unit of the opened communication channel with the node server, the communication channel between the node server and the storage unit is not opened, and the node server cannot use the storage unit of the opened communication channel with the node server. The identification information of the memory cells may be used to uniquely identify the memory cells in the memory module. For example, the identification information may be serial number information of the storage unit, or name information of the storage unit, or address information of the storage unit.
The storage topology controller can determine the storage unit in the storage module, which does not establish a communication channel with other node servers except the first node server in the multi-node server system, through the communication state information of the storage unit and the identification information of the corresponding storage unit.
For example, the storage module controller may store the communication state information of the storage unit and the identification information of the storage unit in the storage module, and the storage topology controller may actively read the information stored by the storage module controller to obtain the communication state information of the storage unit and the identification information of the storage unit.
For example, if a communication channel between a certain storage unit and any one node server in the multi-node server system is not opened, the storage module controller may mark the communication state information of the storage unit as 00, if a communication channel between a certain storage unit and a first node server is opened, the storage module controller marks the communication state information of the storage unit as 01, and if a communication channel between the storage unit and another node server in the multi-node server system except the first node server is not opened, the storage module controller marks the communication state information of the storage unit as 10.
For another example, the storage module controller marks 00 a storage unit that does not open a communication channel between a storage unit and a node server other than the first node server in the multi-node server system, and marks 01 a storage unit that opens a communication channel between a storage unit and a node server other than the first node server in the multi-node server system.
Mode 2
The storage topology controller may send a second request to the storage module controller, the storage module controller determines, according to the second request, a storage unit in the storage module that does not establish a communication channel with another node server in the multi-node server system except the first node server, and reports, to the storage topology controller, the storage unit in the storage module that does not establish a communication channel with another node server in the multi-node server system except the first node server, and the storage topology controller determines, according to the report by the storage module controller, a storage unit in the storage module that does not establish a communication channel with another node server in the multi-node server system except the first node server.
The storage module controller marks the communication state information of the storage unit and the identification information of the corresponding storage unit according to the opening condition of the communication channel between the storage unit and the node server, and determines the storage unit which does not establish the communication channel between the storage module and other node servers except the first node server in the multi-node server system according to the communication state information of the storage unit in the storage module and the identification information of the corresponding storage unit.
For the way that the storage module controller determines the identification information of the storage unit in the storage module and the way that the storage module controller determines the communication state information in the storage module, please refer to the related description of the way 1, and for brevity, no further description is given here.
The manner in which one or more memory cells are determined is described in detail below:
in determining the manner of the one or more storage units, in one implementation, the one or more storage units may be determined according to storage addresses of storage units in the storage module, which do not establish communication channels with other node servers in the multi-node server system except the first node server.
For example, a first node server applies for 3 storage units from a storage topology controller, and the storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system except the first node server sequentially have the following storage addresses in the order from small to large: the storage topology controller comprises a storage unit 1, a storage unit 2, a storage unit 3, a storage unit 4, a storage unit 5 and a storage unit 6, wherein a channel between the storage unit 1 and a first node server is opened, and a communication channel between the storage unit 2, the storage unit 3, the storage unit 4, the storage unit 5, the storage unit 6 and any node server in the multi-node server system is not opened.
In another implementation, one or more storage units may also be randomly determined from storage units that do not establish a communication channel with other node servers in the multi-node server system other than the first node server.
For example, a first node server applies for 2 storage units from a storage topology controller, and the storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system except the first node server sequentially have the following storage addresses in the order from small to large: the storage topology controller comprises a storage unit 1, a storage unit 2, a storage unit 3, a storage unit 4, a storage unit 5 and a storage unit 6, wherein a channel served by the storage unit 1 and a first node is opened, and a communication channel between the storage unit 2, the storage unit 3, the storage unit 4, the storage unit 5, the storage unit 6 and any node server in the multi-node server system is not opened.
Step S204, the storage topology controller controls the storage module controller to open a communication channel between the first node server and the one or more storage units according to the one or more storage units.
After the storage topology controller determines the one or more storage units, the storage topology controller may send a control signal to the storage module controller according to the one or more storage units, and the storage module controller opens a communication channel between the first node server and the one or more storage units according to the control signal.
For example, the storage topology controller may generate a control signal according to the determined one or more storage units and send the control signal to the storage module controller, and the storage module controller receives the control signal from the storage topology controller and opens a communication channel between the first node server and the one or more storage units according to the control signal, that is, the first node server obtains the right to read and write data into the storage units.
For example, a first node server applies for 2 storage units from a storage topology controller, a storage module includes a storage unit 1, a storage unit 2, a storage unit 3, a storage unit 4, a storage unit 5, and a storage unit 6, and a storage unit in the storage module, which does not establish a communication channel with other node servers in the multi-node server system except the first node server, is: the system comprises a storage unit 1, a storage unit 2, a storage unit 3 and a storage unit 4, wherein a channel between the storage unit 2 and a first node server is opened, and a communication channel between the storage unit 1, the storage unit 3, the storage unit 4 and any node server in the multi-node server system is not opened.
The storage topology controller determines to open communication channels between the storage unit 1, the storage unit 2 and the first node server, and sends a control signal 110000 to the storage module controller, where the control signal acts on all the storage units in the storage module, where the control signal is 0 to represent that the communication channel between the storage unit and the first node server is not opened, and the control signal is 1 to represent that the communication channel between the storage unit and the first node server is opened, and then the storage module controller opens the communication channels between the storage unit 1, the storage unit 2 and the first node server, and does not open the communication channels between the storage unit 3, the storage unit 4, the storage unit 5, the storage unit 6 and the first node server according to the control signal 110000.
For example, when the storage topology controller sends a control signal to the storage module controller, the storage topology controller may communicate with the storage module controller through an SAS protocol via an SAS port of the storage topology controller.
It should be understood that the manner in which the storage module controller controls the communication channel between the storage unit and the first node server to be opened or closed is not exclusive, and the above control manner is only an example and does not constitute a limitation on the embodiment of the present application.
Before the communication channel between the storage unit and the node server is opened, the storage module controller may release the storage space in the determined one or more storage units, in this case, the embodiment of the present application further includes step S203: and the storage topology controller sends a third request to the storage module controller through an SAS protocol, requests the storage module controller to release the data stored in the one or more storage units, and releases the storage space corresponding to the one or more storage units according to the third request.
Step S205, the storage module controller reports one or more storage units to the first node server.
For example, when the storage controller reports the one or more storage units to the first node server, the storage module may send first information to the first node server, where the first information includes identification information of the one or more storage units.
For example, the storage controller may send the first information to the first node server by:
the storage controller firstly generates original information, the format of the original information is generally recognizable by a machine, but the format of the original information cannot be recognized by the node server, so that the original information can be recognized by the node server, the storage controller sends the original information to the storage controller, the storage controller performs format conversion on the original information to generate first information recognizable by the node server, and then the first information is sent to the first node server.
Regarding the communication method between the storage module controller and the first node server, please refer to the related description in step S201, and for brevity, the description is omitted here.
Optionally, after step S205, the first node server may request the storage controller to perform redundancy protection on the data in the storage unit during the period when the node server writes the data to the storage unit, which is described in detail below.
In one implementation manner, a first node server sends a request for redundancy protection to a storage controller, the storage controller is requested to backup and store data in a storage unit, or the data in the storage unit and check bit information of the data in the storage unit during a period in which the node server writes the data in the storage unit, and data recovery can be performed through the storage controller when the data is damaged, so that a protection purpose is achieved.
When the storage controller performs redundancy protection on data in the storage unit, the implementation manner of the redundancy protection can be implemented in the following two manners.
Implementation mode 1: the redundancy protection can be realized in a software mode, the reading and writing of the disk data are completed by the CPU, and the system can identify all storage units in the storage controller.
Implementation mode 2: the redundancy protection can be realized by a hardware mode, and data processing is completed by deploying a hardware disk array (RAID) card on a node server.
When the storage controller performs redundancy protection on data in the storage unit, the type of the redundancy protection can be any one protection type selected from RAID1, RAID5, RAID6, RAID10 and RAID 50.
For example, when the implementation of the redundancy protection is a hardware implementation and the protection type of the redundancy protection is RAID5, the RAID card in the storage controller uses 3 storage units for storage. The storage controller carries out fragmentation processing on data written into the storage units by the node server, the data of the storage units are respectively read and written into different storage units in the storage controller, after the data written into the node server and the data written into the node server are stored in fragments by the storage units of each storage controller, parity check information corresponding to each piece of data is stored, and after any one storage unit is damaged, the data in the damaged hard disk can be recovered by carrying out XOR operation on the data of the rest storage units.
The method for allocating the storage space, the computer-readable storage medium and the computer program product provided by the embodiment of the application can achieve the technical effect that the storage space of the node server can be freely allocated in different application scenes of the node server in a multi-node server system, so that the flexibility of the multi-node server is enhanced.
The method for allocating memory space in the embodiment of the present application is described in detail above with reference to fig. 2, and the apparatus provided in the embodiment of the present application is described in detail below with reference to fig. 3.
Fig. 3 is a schematic structural diagram of an apparatus 300 for allocating storage space according to an embodiment of the present application, where the apparatus includes:
the sending module 301 is configured to send a first request to a first storage topology controller, where the first request is used to apply for a storage space in the storage module from the first storage topology controller, and a first node server is any node server in a multi-node server system; the storage module controller reports the one or more storage units to the first node server;
a determining module 302, configured to determine one or more storage units from the storage module according to the first request;
and the starting module 303 is configured to control the storage module controller to start a communication channel between the node server and the one or more storage units according to the one or more storage units.
Optionally, the determining module 302 is further configured to: determining a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system; one or more storage units are determined from the storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system except the first node server.
Optionally, the sending module 301 is further configured to: sending a second request to a storage module controller, wherein the second request requests the storage module controller to report a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system;
the determination module 302 is further configured to: and determining a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system according to the report of the storage module controller.
Optionally, the sending module 301 is further configured to: sending a third request to the storage module controller, wherein the third request requests the storage module controller to release the storage space corresponding to one or more storage units;
the apparatus further comprises a release module for: and releasing the storage space corresponding to one or more storage units.
Optionally, the sending module 301 is further configured to: and sending a control signal to a storage module controller, wherein the control signal is used for controlling the storage module controller to open a communication channel between the first node server and the one or more storage units.
Optionally, the sending module 301 is further configured to: first information is sent to the first node server, the first information including identification information of the one or more storage units.
It should be understood that the apparatus 300 of the embodiment of the present application may be implemented by an application-specific integrated circuit (ASIC), or a Programmable Logic Device (PLD), which may be a Complex Programmable Logic Device (CPLD), a field-programmable gate array (FPGA), a General Array Logic (GAL), or any combination thereof. The method for allocating memory space shown in fig. 2 may also be implemented by software, and when the method for allocating memory space shown in fig. 2 is implemented by software, the apparatus 300 and its respective modules may also be software modules.
The apparatus 300 according to the embodiment of the present application may correspond to perform the method described in the embodiment of the present application, and the above and other operations and/or functions of each unit in the apparatus 300 are not described herein again for brevity in order to implement the corresponding processes executed by the first node server, the storage topology controller, and the storage module controller in the method shown in fig. 2.
The embodiments of the present application further provide a computer-readable storage medium, where a computer program is stored, and when the computer program is executed by a processor, the computer program implements the steps in the above-mentioned method embodiments.
Embodiments of the present application provide a computer program product, which, when running on a multi-node server system, enables the multi-node server system to execute, and can implement the steps in the above method embodiments.
The computer storage medium, the computer program product, or the chip provided in this embodiment are all used for executing the corresponding method provided above, and therefore, the beneficial effects that can be achieved by the computer storage medium, the computer program product, or the chip can refer to the beneficial effects in the corresponding method provided above, and are not described herein again.
It should be understood that, the sequence numbers of the steps in the foregoing embodiments do not imply an execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
It is obvious to those skilled in the art that, for convenience and simplicity of description, the foregoing functional units and partitions of the modules are merely used as examples, and in practical applications, the functions may be distributed by different functional units according to needs, or each unit may exist alone physically, or two or more units may be integrated into one unit, and the integrated unit may be implemented in a form of hardware or a form of software functional unit. In addition, specific names of the functional units and modules are only for convenience of distinguishing from each other, and are not used for limiting the protection scope of the present application. The specific working processes of the units and modules in the system may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, all or part of the processes in the methods of the embodiments described above can be implemented by a computer program, which can be stored in a computer-readable storage medium and can implement the steps of the embodiments of the methods described above when the computer program is executed by a processor. Wherein the computer program comprises computer program code, which may be in the form of source code, object code, an executable file or some intermediate form, etc. The computer readable medium may include at least: any entity or device capable of carrying computer program code to a node server, recording medium, computer Memory, Read-Only Memory (ROM), Random Access Memory (RAM), electrical carrier wave signals, telecommunications signals, and software distribution medium. Such as a usb-disk, a removable hard disk, a magnetic or optical disk, etc. In certain jurisdictions, computer-readable media may not be an electrical carrier signal or a telecommunications signal in accordance with legislative and patent practice.
In the above embodiments, the descriptions of the respective embodiments have respective emphasis, and reference may be made to the related descriptions of other embodiments for parts that are not described or illustrated in a certain embodiment.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiments provided in the present application, it should be understood that the disclosed system and method may be implemented in other ways. For example, the above-described embodiments are merely illustrative, and for example, the division of the modules or units is only one logical functional division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The above-mentioned embodiments are only used for illustrating the technical solutions of the present application, and not for limiting the same; although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; such modifications and substitutions do not substantially depart from the spirit and scope of the embodiments of the present application and are intended to be included within the scope of the present application.

Claims (10)

1. A method for allocating storage space is applied to a multi-node server system, and is characterized in that the multi-node server system comprises a plurality of node servers, a storage topology controller, a storage module controller and a storage module, and the method comprises the following steps:
a first node server sends a first request to the first storage topology controller, wherein the first request is used for applying for a storage space in the storage module from the storage topology controller, and the first node server is any node server in a multi-node server system;
the storage topology controller determines one or more storage units from the storage module according to the first request;
the storage topology controller controls the storage module controller to open a communication channel between the node server and the one or more storage units according to the one or more storage units;
and the storage module controller reports the one or more storage units to the first node server.
2. The method of claim 1, wherein determining, by the storage topology controller, one or more storage units from the storage module based on the first request comprises:
the storage topology controller determines a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system;
determining the one or more storage units from storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system other than the first node server.
3. The method of claim 2, wherein the determining, by the storage topology controller, storage units in the storage module that do not establish a communication channel with other node servers in the multi-node server system other than the first node server comprises:
the storage topology controller sends a second request to the storage module controller, and the second request requests the storage module controller to report a storage unit which does not establish a communication channel with other node servers except the first node server in the multi-node server system in the storage module;
and the storage topology controller determines a storage unit which does not establish a communication channel between the storage module and other node servers except the first node server in the multi-node server system according to the report of the storage module controller.
4. The method of any of claims 1 to 3, wherein before the storage topology controller controls the storage module controller to open a communication channel between the first node server and the one or more storage units, the method further comprises:
the storage topology controller sends a third request to the storage module controller, wherein the third request requests the storage module controller to release the storage space corresponding to the one or more storage units;
and the storage module controller releases the storage space corresponding to the one or more storage units according to the third request.
5. The method of any of claims 1 to 4, wherein said controlling the storage module controller to open a communication channel between the first node server and the one or more storage units comprises:
the storage topology controller sends a control signal to the storage module controller, where the control signal is used to control the storage module controller to open a communication channel between the first node server and the one or more storage units.
6. The method of any of claims 1 to 5, wherein the reporting, by the storage module controller, the one or more storage units to the first node server comprises:
the storage module controller sends first information to the first node server, the first information including identification information of the one or more storage units.
7. The method of any of claims 1 to 6, wherein the storage module controller is deployed in the storage module.
8. A multi-node server system, comprising: a plurality of node servers, a storage topology controller, a storage module controller and a storage module, a first node server of the plurality of node servers being configured to perform the method of any of claims 1 to 7, the storage topology controller being configured to perform the method of any of claims 1 to 7, the storage module controller being configured to perform the method of any of claims 1 to 7.
9. A computer-readable storage medium, in which a computer program is stored which, when being executed by a processor, carries out the method according to any one of claims 1 to 7.
10. A computer program product which, when run on a multi-node server system, causes the multi-node server system to perform the method of any of claims 1 to 7.
CN202111101879.5A 2021-09-18 2021-09-18 Method and system for allocating storage space Pending CN113918092A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111101879.5A CN113918092A (en) 2021-09-18 2021-09-18 Method and system for allocating storage space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111101879.5A CN113918092A (en) 2021-09-18 2021-09-18 Method and system for allocating storage space

Publications (1)

Publication Number Publication Date
CN113918092A true CN113918092A (en) 2022-01-11

Family

ID=79235293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111101879.5A Pending CN113918092A (en) 2021-09-18 2021-09-18 Method and system for allocating storage space

Country Status (1)

Country Link
CN (1) CN113918092A (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047610A (en) * 2007-04-30 2007-10-03 华为技术有限公司 Data storage, reading, transmission method and management server and network node
CN102591789A (en) * 2011-12-26 2012-07-18 成都市华为赛门铁克科技有限公司 Storage space recovery method and storage space recovery device
CN104657316A (en) * 2015-03-06 2015-05-27 北京百度网讯科技有限公司 Server
CN104778014A (en) * 2015-01-27 2015-07-15 安科智慧城市技术(中国)有限公司 Data storing method and system
US20180288153A1 (en) * 2017-04-01 2018-10-04 Intel Corporation Multi-node storage operation
US20180337824A1 (en) * 2017-05-18 2018-11-22 Datera, Inc. System and method for an improved placement of storage nodes in network
CN109189347A (en) * 2018-09-20 2019-01-11 郑州云海信息技术有限公司 A kind of sharing storage module, server and system
CN109565523A (en) * 2016-09-12 2019-04-02 英特尔公司 The mechanism of the storage level memory of depolymerization in structure
CN112470142A (en) * 2018-05-21 2021-03-09 净睿存储股份有限公司 Switching between mediator services in a storage system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101047610A (en) * 2007-04-30 2007-10-03 华为技术有限公司 Data storage, reading, transmission method and management server and network node
CN102591789A (en) * 2011-12-26 2012-07-18 成都市华为赛门铁克科技有限公司 Storage space recovery method and storage space recovery device
CN104778014A (en) * 2015-01-27 2015-07-15 安科智慧城市技术(中国)有限公司 Data storing method and system
CN104657316A (en) * 2015-03-06 2015-05-27 北京百度网讯科技有限公司 Server
CN109565523A (en) * 2016-09-12 2019-04-02 英特尔公司 The mechanism of the storage level memory of depolymerization in structure
US20180288153A1 (en) * 2017-04-01 2018-10-04 Intel Corporation Multi-node storage operation
US20180337824A1 (en) * 2017-05-18 2018-11-22 Datera, Inc. System and method for an improved placement of storage nodes in network
CN112470142A (en) * 2018-05-21 2021-03-09 净睿存储股份有限公司 Switching between mediator services in a storage system
CN109189347A (en) * 2018-09-20 2019-01-11 郑州云海信息技术有限公司 A kind of sharing storage module, server and system

Similar Documents

Publication Publication Date Title
KR102137761B1 (en) Heterogeneous unified memory section and method for manaing extended unified memory space thereof
US8938584B2 (en) System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated
CN103534688B (en) Data reconstruction method, memory device and storage system
US11010079B2 (en) Concept for storing file system metadata within solid-stage storage devices
US10365845B1 (en) Mapped raid restripe for improved drive utilization
KR102624605B1 (en) System and method for supporting data protection across field programmable gate array solid state drives
CN112513804A (en) Data processing method and device
US11231858B2 (en) Dynamically configuring a storage system to facilitate independent scaling of resources
CN110609659A (en) NVMeoF RAID implementation method for executing read command
CN113918087B (en) Storage device and method for managing namespaces in the storage device
US11544205B2 (en) Peer storage devices sharing host control data
US11379128B2 (en) Application-based storage device configuration settings
CN116431530B (en) CXL memory module, memory processing method and computer system
US20220342835A1 (en) Method and apparatus for disaggregation of computing resources
CN113918092A (en) Method and system for allocating storage space
US20190138236A1 (en) System and Method to Reserve Persistent Memory Space in an NVDIMM for NVDIMM Namespace Support
US20200334103A1 (en) Storage system, drive housing thereof, and parity calculation method
US20060277326A1 (en) Data transfer system and method
CN110308865A (en) Storage system, computing system and its operating method
CN116932451A (en) Data processing method, host and related equipment
CN114265791A (en) Data scheduling method, chip and electronic equipment
CN115963977A (en) Solid state disk, data operation method and device thereof, and electronic device
US11544013B2 (en) Array-based copy mechanism utilizing logical addresses pointing to same data block
US7886310B2 (en) RAID control method and core logic device having RAID control function
CN113704165B (en) Super fusion server, data processing method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination