WO2024098635A1 - Procédé et système de gestion raid, dispositif électronique et support de stockage lisible non volatil - Google Patents

Procédé et système de gestion raid, dispositif électronique et support de stockage lisible non volatil Download PDF

Info

Publication number
WO2024098635A1
WO2024098635A1 PCT/CN2023/085269 CN2023085269W WO2024098635A1 WO 2024098635 A1 WO2024098635 A1 WO 2024098635A1 CN 2023085269 W CN2023085269 W CN 2023085269W WO 2024098635 A1 WO2024098635 A1 WO 2024098635A1
Authority
WO
WIPO (PCT)
Prior art keywords
raid
command
management
host
logical volume
Prior art date
Application number
PCT/CN2023/085269
Other languages
English (en)
Chinese (zh)
Inventor
李幸远
孙华锦
王江
李树青
Original Assignee
苏州元脑智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苏州元脑智能科技有限公司 filed Critical 苏州元脑智能科技有限公司
Publication of WO2024098635A1 publication Critical patent/WO2024098635A1/fr

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the embodiments of the present application relate to the field of storage management technology, and in particular to a RAID disk array management method, system, electronic device, and non-volatile readable storage medium.
  • RAID Redundant Array of Independent Disks
  • RAID combines multiple disk devices into one or more storage array groups to improve performance and increase redundancy to protect data.
  • RAID cards are implemented as PCIe devices on computer systems, connected to the host through the PCIe bus, and use the SCSI (Small Computer System Interface) interface at the command level.
  • SCSI Small Computer System Interface
  • the SCSI interface only defines the application layer, that is, the interaction method of commands, and does not define the protocol on the host interface layer in detail. This part is left to the RAID device manufacturer to define and implement. Due to the existence of private host interfaces and management commands, the RAID controllers implemented by various manufacturers are incompatible with each other in terms of host drivers and management tools.
  • NVMe Non-Volatile Memory express, a storage device specification based on PCIe
  • PCIe Peripheral Component Interconnect Express
  • the purpose of the embodiments of the present application is to provide a RAID disk array management method, a RAID disk array management system, an electronic device and a non-volatile readable storage medium, which can implement RAID disk array management on an NVMe interface.
  • an embodiment of the present application provides a RAID disk array management method, which is applied to a host connected to a RAID controller, the host including a RAID management tool based on an NVMe interface and an NVMe device driver, the RAID controller is connected to a RAID disk array, and the RAID disk array management method includes:
  • the NVMe device driver is used to write the encapsulated RAID management commands into the Admin SQ queue of the RAID controller, and a notification message is sent to the RAID controller through the doorbell register so that the RAID controller executes the RAID management commands in the Admin SQ queue after receiving the notification message.
  • the NVMe device driver If the NVMe device driver receives an interrupt notification, it reads the command completion queue entry in the Admin CQ queue and returns the command completion queue entry to the RAID management tool;
  • the command completion queue entry is constructed by the RAID controller according to the execution result of the RAID management command.
  • a RAID management tool to construct a RAID management command, including:
  • the RAID controller is used to store the data to be returned obtained after executing the RAID management command into the address space pointed to by the data pointer.
  • the embodiment of the present application also provides a RAID disk array management method, which is applied to a RAID controller connected to a host, the host includes a RAID management tool based on an NVMe interface and an NVMe device driver, the RAID controller is connected to the RAID disk array, and the RAID disk array management method includes:
  • the RAID management command issued by the host is read from the Admin SQ queue; wherein, the process of the host issuing the RAID management command includes: constructing the RAID management command by using the RAID management tool, and encapsulating the RAID management command into the SQE format; writing the encapsulated RAID management command into the Admin SQ queue of the RAID controller by using the NVMe device driver, and sending notification information to the RAID controller through the doorbell register;
  • the method further includes:
  • performing an operation corresponding to the RAID management command includes:
  • the characteristic data of the RAID controller includes any one or a combination of several of the following: ready state, firmware version number, serial number, supported RAID level list, list of physical disk numbers supported by each RAID level, list of supported RAID data arrangement methods, list of supported RAID level migration types, list of supported physical disk types, supported data cache features, supported power-off protection features, and backup power supply status; data cache features include cache capacity and/or cache policy type.
  • performing an operation corresponding to the RAID management command includes:
  • the target physical disk corresponding to the physical disk discovery command determines the target physical disk corresponding to the physical disk discovery command, and return the physical disk information of the target physical disk to the address space pointed to by the second data pointer; wherein the physical disk information includes any one or a combination of any several of the identifier of the target physical disk, the physical disk status, the physical disk type, the logical block size supported by the physical disk, the physical disk capacity, and the physical disk topology information.
  • the RAID management command is a RAID group discovery command
  • an operation corresponding to the RAID management command is performed, including:
  • the target RAID group corresponding to the RAID group discovery command determines the target RAID group corresponding to the RAID group discovery command, and return the RAID group information of the target RAID group to the address space pointed to by the third data pointer; wherein the RAID group information includes the identifier of the target RAID group, the RAID group status, the RAID group level, the logical block size supported by the RAID group, the RAID group capacity, the RAID group Cache attributes, the RAID group background task status and progress, and any one or a combination of several of the RAID group physical disk list and status.
  • an operation corresponding to the RAID management command is performed, including:
  • the logical volume information includes any one or a combination of any two of a logical volume identifier, a logical volume capacity, a logical volume status, and an NVM namespace identifier bound to the logical volume.
  • an operation corresponding to the RAID management command is performed, including:
  • the identifier of the first namespace is uploaded to the host so that the host can bind the identifier of the first namespace to the ID of the logical volume to be bound.
  • an operation corresponding to the RAID management command is performed, including:
  • a namespace unbinding notification is sent to the host so that the host can send a query command for the namespace to be unbound; wherein the query command for the namespace to be unbound is used to obtain an identifier of the namespace to be unbound;
  • the identifier of the second namespace is uploaded to the host so that the host can unbind the identifier of the second namespace from the logical volume ID to be unbound; wherein the second namespace is the namespace bound to the logical volume corresponding to the logical volume ID to be unbound.
  • an operation corresponding to the RAID management command is performed, including:
  • executing an operation corresponding to the RAID management command includes:
  • the RAID management commands include discovery commands, disk management commands, and task management commands.
  • discovery commands include RAID controller discovery commands, physical disk discovery commands, RAID group discovery commands, and logical volume discovery commands; disk management commands include RAID group creation and deletion commands, logical volume creation and deletion commands, and commands for binding and unbinding logical volumes to namespaces; task management commands include starting and stopping background tasks, and parameter configuration commands.
  • the Admin CQ queue is used by the NVMe controller to report command completion to the host.
  • Each command completion queue entry in the Admin CQ queue corresponds to a command completion data structure reported by the NVMe controller.
  • the embodiment of the present application also provides a RAID disk array management system, which is applied to a host connected to a RAID controller, the host including a RAID management tool based on an NVMe interface and an NVMe device driver, the RAID controller is connected to a RAID disk array, and the RAID disk array management system includes:
  • a command construction module is configured to construct a RAID management command using a RAID management tool and encapsulate the RAID management command into an SQE format;
  • the command issuing module is configured to utilize the NVMe device driver to write the encapsulated RAID management commands into the Admin SQ queue of the RAID controller, and to send notification information to the RAID controller through the doorbell register, so that the RAID controller executes the RAID management commands in the Admin SQ queue after receiving the notification information.
  • the embodiment of the present application also provides a RAID disk array management system, which is applied to a RAID controller connected to a host, the host includes a RAID management tool based on an NVMe interface and an NVMe device driver, the RAID controller is connected to the RAID disk array, and the RAID disk array management method includes:
  • the command reading module is configured to read the RAID management command issued by the host from the Admin SQ queue after receiving the notification information sent by the doorbell register; wherein the process of the host issuing the RAID management command includes: constructing the RAID management command by using the RAID management tool, and encapsulating the RAID management command into the SQE format; writing the encapsulated RAID management command into the Admin SQ queue of the RAID controller by using the NVMe device driver, and sending the notification information to the RAID controller through the doorbell register;
  • the command execution module is configured to execute operations corresponding to the RAID management commands.
  • the embodiment of the present application also provides a non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed, the steps of the above-mentioned RAID disk array management method are implemented.
  • An embodiment of the present application further provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and when the processor calls the computer program in the memory, the steps of executing the above-mentioned RAID disk array management method are implemented.
  • An embodiment of the present application provides a RAID disk array management method, which is applied to a host connected to a RAID controller, the host including a RAID management tool and an NVMe device driver based on an NVMe interface, the RAID controller being connected to the RAID disk array, the RAID disk array management method including: constructing a RAID management command using the RAID management tool, and encapsulating the RAID management command into an SQE format; writing the encapsulated RAID management command into the Admin SQ queue of the RAID controller using the NVMe device driver, and sending a notification message to the RAID controller through a doorbell register, so that the RAID controller executes the RAID management command in the Admin SQ queue after receiving the notification message.
  • the embodiment of the present application provides a host connected to a RAID controller, which includes a RAID management tool and an NVMe device driver based on an NVMe interface.
  • the RAID management tool can be used to construct a RAID management command and encapsulate the RAID management command.
  • the NVMe device driver can write the RAID management command encapsulated by the RAID management tool into the Admin SQ queue of the RAID controller.
  • the RAID controller can read and execute the RAID management commands in the Admin SQ queue.
  • the interface defined by the NVMe standard is adopted between the RAID controller and the host, and the NVMe driver is loaded on the host side.
  • the NVMe-defined commands between the RAID controller and the host complete the management operation of the RAID disk array.
  • This scheme can implement RAID disk array management on the NVMe interface.
  • the embodiment of the present application also provides a RAID disk array management system, a non-volatile readable storage medium and an electronic device, which have the above-mentioned beneficial effects and are not repeated here.
  • FIG1 is a flow chart of a RAID disk array management method provided by an embodiment of the present application.
  • FIG2 is a schematic diagram of a RAID controller structure based on an NVMe host interface provided in an embodiment of the present application
  • FIG3 is a flow chart of another RAID disk array management method provided in an embodiment of the present application.
  • FIG4 is a flowchart of a RAID management command operation provided by an embodiment of the present application.
  • FIG5 is a structural diagram of a RAID management command SQE provided in an embodiment of the present application.
  • FIG6 is a structure diagram of a RAID management command CQE provided in an embodiment of the present application.
  • FIG7 is a diagram of a RAID controller characteristic data structure provided by an embodiment of the present application.
  • FIG8 is a diagram showing a structure of a physical disk data list provided in an embodiment of the present application.
  • FIG9 is a schematic diagram of the relationship between a physical disk, a RAID group, and a logical volume provided in an embodiment of the present application;
  • FIG10 is a data structure diagram of a RAID group list provided in an embodiment of the present application.
  • FIG11 is a flowchart of a logical volume and Namespace binding provided by an embodiment of the present application.
  • FIG12 is a flow chart of unbinding a logical volume from a Namespace provided in an embodiment of the present application.
  • FIG13 is a flowchart of conversion from Namespace IO operation to logical volume IO operation provided by an embodiment of the present application
  • FIG14 is a flowchart of an active reporting of a RAID event provided in an embodiment of the present application.
  • FIG. 15 is a schematic diagram of the structure of a RAID disk array management system provided in an embodiment of the present application.
  • FIG. 1 is a flow chart of a RAID disk array management method provided in an embodiment of the present application.
  • the management method can be applied to a host connected to a RAID controller, the RAID controller is connected to a RAID disk array, and the detailed steps of RAID disk array management may include:
  • FIG 2 is a schematic diagram of the structure of a RAID controller based on an NVMe host interface provided by an embodiment of the present application.
  • the host includes a RAID management tool based on an NVMe interface, an NVMe device driver, a PCIe (high-speed serial computer expansion bus standard) bus driver, and a PCIe Root Complex.
  • the RAID controller includes a management interface based on the NVMe protocol, an NVMe device interface, a PCIe Endpoint (PCIe device controller), a RAID controller, and a hard disk interface logic (SAS/SATA/NVMe). Disk 1, Disk 2, ..., Disk N in Figure 2 are RAID disk arrays.
  • the host can send NVMe RAID management commands to the RAID controller through the NVMe host interface, and the host and the RAID controller are connected through the PCIe bus.
  • the interface defined by the NVMe standard is used between the RAID controller and the host in this embodiment, and the standard NVMe driver is loaded on the host side.
  • the standard commands defined by NVMe between the RAID controller and the host complete the basic operations of the storage device, including device discovery and IO transmission operations.
  • this step may also be an operation of receiving a user operation request, and then using the RAID management tool to construct a RAID management command corresponding to the user operation request.
  • this step may use the RAID management tool to construct a RAID management command including a command opcode, command parameters, and a data pointer; wherein the RAID controller may store the data to be returned obtained after executing the RAID management command in the address space pointed to by the data pointer, and the RAID controller may also execute the operation corresponding to the RAID management command according to the command opcode and command parameters.
  • S102 Encapsulate the RAID management command into SQE format
  • the RAID management tool can also be used to encapsulate the RAID management command into a command in SQE format.
  • SQE Submission Queue Entry
  • each command submission queue entry corresponds to an NVMe of a host.
  • S103 Use the NVMe device driver to write the encapsulated RAID management command into the Admin SQ queue of the RAID controller, and send a notification message to the RAID controller through the doorbell register so that the RAID controller executes the RAID management command in the Admin SQ queue after receiving the notification message.
  • the RAID management tool can transmit the encapsulated RAID management command to the NVMe device driver, and use the NVMe device driver to write the encapsulated RAID management command into the Admin SQ queue of the RAID controller.
  • SQ Submission Queue
  • the Admin SQ queue is a queue defined by the NVMe standard, which is used by the host to submit commands to the NVMe controller.
  • the Admin SQ queue can be a queue inside the host.
  • This embodiment provides a host connected to a RAID controller, which includes a RAID management tool and an NVMe device driver based on an NVMe interface.
  • the RAID management tool can be used to construct a RAID management command and encapsulate the RAID management command.
  • the NVMe device driver can write the RAID management command encapsulated by the RAID management tool into the Admin SQ queue of the RAID controller.
  • the RAID controller can read and execute the RAID management commands in the Admin SQ queue.
  • the interface defined by the NVMe standard is adopted between the RAID controller and the host, and the NVMe driver is loaded on the host side.
  • the NVMe-defined commands between the RAID controller and the host complete the management operation of the RAID disk array. This scheme can implement RAID disk array management on the NVMe interface.
  • the NVMe device driver if it receives an interrupt notification, it reads the command completion queue entry in the Admin CQ queue and returns the command completion queue entry to the RAID management tool; wherein, the command completion queue entry is constructed by the RAID controller according to the execution result of the RAID management command.
  • FIG. 3 is a flowchart of another RAID disk array management method provided in an embodiment of the present application, which is applied to a RAID controller connected to a host, wherein the host includes a RAID management tool based on an NVMe interface and an NVMe device driver, and the RAID controller and the RAID disk array
  • the connection may include the following steps:
  • the process of the host issuing RAID management commands includes: constructing RAID management commands using RAID management tools and encapsulating the RAID management commands into SQE format; writing the encapsulated RAID management commands into the Admin SQ queue of the RAID controller using the NVMe device driver, and sending notification information to the RAID controller through the doorbell register;
  • RAID management commands may include discovery commands, disk management commands, and task management commands;
  • discovery commands include RAID controller discovery commands, physical disk discovery commands, RAID group discovery commands, and logical volume discovery commands;
  • disk management commands include RAID group creation and deletion commands, logical volume creation and deletion commands, and commands for binding and unbinding logical volumes to Namespaces;
  • task management commands include commands for starting and stopping background tasks such as construction, copyback, capacity expansion, consistency verification, and disk inspection, parameter configuration, etc.
  • Namespace is a logical unit of storage devices on NVMe devices, and each namespace appears as a storage device to the host. It is similar to the LUN of a SCSI device.
  • This embodiment provides a RAID controller connected to a host, which includes a RAID management tool and an NVMe device driver based on an NVMe interface.
  • the RAID management tool can be used to construct a RAID management command and encapsulate the RAID management command.
  • the NVMe device driver can write the RAID management command encapsulated by the RAID management tool into the Admin SQ queue of the RAID controller.
  • the RAID controller can read and execute the RAID management commands in the Admin SQ queue.
  • the interface defined by the NVMe standard is adopted between the RAID controller and the host, and the NVMe driver is loaded on the host side.
  • the NVMe-defined commands between the RAID controller and the host complete the management operation of the RAID disk array. This scheme can implement RAID disk array management on the NVMe interface.
  • a command completion queue entry can also be constructed according to the execution result of the RAID management command; the command completion queue entry is written to the host's Admin CQ queue, and an interrupt notification is sent to the NVMe device driver so that the NVMe device reads the command completion queue entry in the Admin CQ queue and returns the command completion queue entry to the RAID management tool.
  • CQ Common Queue
  • CQE Cumpletion Queue Entry
  • the process of the RAID controller executing the RAID controller discovery command includes: parsing the RAID controller discovery command to obtain a first data pointer; summarizing the characteristic data of the RAID controller, and returning the characteristic data of the RAID controller to the address space pointed to by the first data pointer.
  • the characteristic data of the RAID controller includes any one or a combination of several of the following: ready state, firmware version number, serial number, supported RAID level list, list of physical disk numbers supported by each RAID level, list of supported RAID data arrangement methods, list of supported RAID level migration types, list of supported physical disk types, supported data cache features, supported power-off protection features, and backup power supply status; data cache features include cache capacity and/or cache policy type.
  • the process of executing the physical disk discovery command includes: parsing the physical disk discovery command to obtain a second data pointer; obtaining a physical disk list data structure of all physical disks in the RAID disk array, and returning the physical disk list data structure to the address space pointed to by the second data pointer; wherein the physical disk list data structure includes an identifier of each physical disk; or, determining a target physical disk corresponding to the physical disk discovery command, and returning the physical disk information of the target physical disk to the address space pointed to by the second data pointer; wherein the physical disk information includes any one or a combination of any several of the identifier of the target physical disk, the physical disk status, the physical disk type, the logical block size supported by the physical disk, the physical disk capacity, and the physical disk topology information.
  • the process of executing the RAID group discovery command includes: parsing the RAID group discovery command to obtain a third data pointer; obtaining a RAID group list data structure of all RAID groups in the RAID disk array, and returning the RAID group list data structure to the address space pointed to by the third data pointer; wherein the RAID group list data structure includes an identifier of each RAID group; or determining a target RAID group corresponding to the RAID group discovery command, and returning the RAID group information of the target RAID group to the address space pointed to by the third data pointer.
  • the RAID group information includes any one or a combination of several of the target RAID group's identifier, RAID group status, RAID group level, logical block size supported by the RAID group, RAID group capacity, RAID group Cache attributes, RAID group background task status and progress, and RAID group physical disk list and status.
  • the process of executing the logical volume discovery command includes: parsing the logical volume discovery command to obtain a fourth data pointer and an identifier of the RAID group to be queried; returning the logical volume information of the RAID group to be queried to the address space pointed to by the fourth data pointer according to the identifier of the RAID group to be queried; wherein the logical volume information includes any one or a combination of any several of the following: the logical volume identifier, the logical volume capacity, the logical volume status, and the NVM namespace identifier bound to the logical volume.
  • the process of executing the logical volume binding command includes: parsing the logical volume binding command to obtain the ID of the logical volume to be bound; determining the idle first namespace, and sending a namespace binding notification to the host so that the host sends a query command for the namespace to be bound; wherein the query command for the namespace to be bound is used to obtain the identifier of the namespace to be bound; if the query command for the namespace to be bound is received, the identifier of the first namespace is uploaded to the host so that the host binds the identifier of the first namespace with the ID of the logical volume to be bound.
  • the idle first namespace refers to a namespace that is not bound to a logical volume.
  • the process of executing the logical volume unbinding command includes: parsing the logical volume unbinding command to obtain the logical volume ID to be unbound; judging whether all ongoing IO operations on the logical volume corresponding to the logical volume ID to be unbound have been completed; when it is judged that all ongoing IO operations on the logical volume corresponding to the logical volume ID to be unbound have been completed, sending a namespace unbinding notification to the host so that the host sends a namespace query command to be unbound; wherein the namespace query command to be unbound is used to obtain the identifier of the namespace to be unbound; if the namespace query command to be unbound is received, the identifier of the second namespace is uploaded to the host so that the host can unbind the identifier of the second namespace from the logical volume ID to be unbound; wherein the second namespace is the namespace bound to the logical volume corresponding to
  • the process of executing the namespace IO read/write command includes: determining the target namespace corresponding to the namespace IO read/write command, and determining the target logical volume bound to the target namespace; converting the operation parameters for the target namespace in the namespace IO read/write command into operation parameters for the target logical volume; wherein the operation parameters include a logical block address and a logical block number; and performing IO read/write operations on the target logical volume according to the operation parameters of the target logical volume.
  • the process of executing the asynchronous event reporting command includes: detecting the RAID management event and determining the event type corresponding to the RAID management event; reporting the status code corresponding to the event type to the host so that the host obtains the relevant data of the RAID management event from the RAID controller.
  • the relevant data is the detailed data of the RAID management event, such as the event occurred, the location of occurrence, etc.
  • the manufacturer customizes the host interface to encapsulate the upper-layer SCSI command and response packets and transmits them on the PCIe bus; the manufacturer also customizes the RAID management interface to transmit RAID management commands and responses.
  • the manufacturer needs to customize the RAID controller driver and RAID management tools.
  • the RAID controller driver is used to detect, initialize and configure the RAID controller, provide the host with the IO interface of the RAID storage device, and provide an operation interface for the RAID management tool.
  • the manufacturer customizes the RAID management tool to interact with the RAID controller for RAID management-related commands.
  • RAID controllers Due to the existence of these private host interfaces and management commands, the RAID controllers implemented by various manufacturers are incompatible with each other in terms of host drivers and management tools. In addition to doing a good job in basic RAID business, RAID controller manufacturers also need to spend energy to maintain the host interface definition, host driver, RAID management tool, etc. This brings higher development costs and development cycles to the entire RAID controller chip development.
  • the embodiments of the present application provide a RAID management interface and a RAID management solution.
  • the embodiments provide a method that follows the NVMe specification definition, sends RAID management commands from the host to the RAID controller, and the RAID controller returns the command execution result to the host after processing the command.
  • the embodiment provides a RAID controller discovery method based on the NVMe interface. Through this method, the host can obtain that the NVMe device is a RAID controller, and discover the RAID functional characteristics supported by the RAID controller; discover the physical disk information connected under the RAID control; discover the RAID group information composed of the physical disks under the RAID controller, and discover the logical storage volume information divided on the RAID group.
  • the logical storage volume established in the RAID group is mapped through the Namespace defined by the NVMe protocol.
  • the present embodiment also provides a process for separating and deleting a logical storage volume from a Namespace.
  • the present embodiment provides a method and process for the RAID controller to actively report RAID management events to the host through the NVMe host interface, including physical disk status changes, RAID group status changes, and logical storage volume status changes.
  • the RAID management interface is implemented by extending the NVMe interface protocol. These commands conform to the command format defined by the NVMe standard and follow the queue and completion mechanism required for NVMe command delivery.
  • the RAID management tool on the host side sends RAID management commands to the device through the interface provided by the driver. After receiving the command, the RAID controller processes it and returns the execution result of the command to the host.
  • FIG. 4 is a flowchart of a RAID management command operation provided by an embodiment of the present application, which may include the following steps:
  • the RAID management tool constructs a RAID management command, encapsulates the command into an SQE format, and sends it to the NVMe device driver on the host;
  • Doorbell register A register on the NVMe controller. The host writes this register to notify the NVMe controller that a new CQE has been submitted to the CQ queue.
  • the RAID controller moves the RAID management command SQE from the Admin SQ queue to the local;
  • S405 The RAID controller parses and executes the RAID management command
  • the RAID controller constructs a CQE according to the command execution result and puts it into the Admin CQ queue; the RAID controller optionally notifies the host of a new CQE through an interrupt;
  • S408 The NVMe device driver on the host reads the CQE in the Admin CQ queue and returns it to the RAID management tool.
  • the extended RAID management command involved in this embodiment belongs to the Admin command type defined by the NVMe standard, and the operation code of the command belongs to the manufacturer-defined operation code (Combined Opcode) range specified by the NVMe standard, and its value is C0h to FFh.
  • Combined Opcode manufacturer-defined operation code
  • the constructed RAID management command SQE (i.e., RAID management command in SQE format) contains RAID management command operation code and RAID command parameters.
  • the RAID controller performs detailed RAID management command operations according to different operation codes and parameters in SQE.
  • the data pointer is optional. It points to an address space in the host memory allocated by the RAID management tool. If the RAID controller needs the host to return data during command execution, the data is written to the address space pointed to by this pointer.
  • FIG. 5 is a structural diagram of a RAID management command SQE provided in an embodiment of the present application.
  • the RAID management command SQE includes a RAID management command operation code, RAID command parameters and a data pointer, and the data pointer points to a data buffer.
  • FIG. 6 is a structure diagram of a RAID management command CQE provided in an embodiment of the present application, and the RAID management command CQE includes a RAID management command status code.
  • the RAID controller discovery method is the process and method for the host to obtain RAID controller information. These methods are completed by implementing the RAID management command process of method 1.
  • the RAID controller discovery method includes the following four command types:
  • the feature data of the RAID controller includes ready state, firmware version number, serial number, supported RAID level list, list of physical disk numbers supported by each RAID level, supported RAID data arrangement list, supported RAID level migration type list, supported physical disk type list, supported data Cache (cache) features (cache capacity and cache policy type), supported power-off protection features and backup power status.
  • the first is to obtain a list of physical disks.
  • the RAID controller receives this command, the physical disk list data structure is written to the address space pointed to by the data pointer in the SQE.
  • Figure 8 is a diagram of a physical disk data list structure provided by an embodiment of the present application.
  • the physical disk data list structure includes a physical disk 1 identifier, a physical disk 2 identifier, ..., a physical disk N identifier.
  • the second is to obtain the specified physical disk information.
  • the host specifies the identifier of the target physical disk in the RAID management command parameter in SQE.
  • the RAID controller After receiving this command, the RAID controller writes the physical disk information data structure to the address space pointed to by the data pointer in SQE.
  • the physical disk information includes the following: physical disk identifier, physical disk status (normal/faulty), physical disk type (SAS/SATA/NVMe, HDD/SDD), logical block size supported by the physical disk, physical disk capacity, and physical disk topology information (disk connected controller, bus address, port number, etc.).
  • FIG9 is a schematic diagram of the relationship between a physical disk, a RAID group, and a logical volume provided in an embodiment of the present application.
  • FIG9 there are 6 physical disks under the RAID controller, disks 1 to 4 form RAID group 1, and disks 5 and 6 form RAID group 2.
  • the RAID group discovery command is used to obtain the RAID group information managed by the RAID controller, including the relationship between each RAID group and the physical disk.
  • the RAID group list data structure includes: RAID group 1 identifier, RAID group 2 identifier, ..., RAID group N identifier.
  • the second is to obtain the specified RAID group information.
  • the host specifies the identifier of the target RAID group in the RAID management command parameters in SQE.
  • the RAID controller After receiving this command, the RAID controller writes the RAID group information data structure to the address space pointed to by the data pointer in SQE.
  • the RAID group information includes the following: RAID group identifier, RAID group status (normal/degraded/failed), RAID group level, RAID group logical block size, RAID group capacity, RAID Cache attributes (including Cache quota and capacity), RAID group background task status and progress (reconstruction/copyback/migration/capacity expansion), RAID group physical disk list and status. Each item in the list contains a physical disk identifier and physical disk status.
  • a RAID group can be divided into multiple logical volumes.
  • the host uses the logical volume discovery command to obtain the logical volume information on the specified RAID group.
  • the host specifies the identifier of the target RAID group in the RAID management command parameters in the SQE.
  • the RAID controller After receiving this command, the RAID controller writes the logical volume information data structure on the specific RAID group to the address space pointed to by the data pointer in the SQE.
  • the logical volume information includes a list of all logical volumes on the RAID group.
  • Each item in the table includes the information of the logical volume, including the following: logical volume identifier, logical volume capacity, logical volume status, and NVMe Namespace identifier bound to the logical volume.
  • RAID group 1 disk 1, or disk 1
  • disks 5 and 6 form RAID group 2.
  • RAID group 1 is divided into three logical volumes
  • RAID group 2 is divided into one logical volume.
  • Figure 10 is a schematic diagram of the binding relationship between a RIAD logical volume and an NVMe Namespace provided in an embodiment of the present application.
  • Disk 1 to disk 4 constitute RAID group 1
  • disk 5 and disk 6 constitute RAID group 2
  • the logical volume is divided into two states, visible to the host and invisible to the host.
  • Logical volumes visible to the host are implemented by binding to the NVMe Namespace.
  • Logical volumes that are invisible to the host are not bound to the NVMe Namespace.
  • logical volume 1 is bound to Namespace 1
  • logical volume 3 is bound to Namespace 2
  • logical volume 4 is bound to Namespace 3.
  • These three logical volumes are visible to the host.
  • Logical volume 2 is not bound to the Namespace and is therefore invisible to the host.
  • FIG. 11 is a flowchart of binding a logical volume to a Namespace provided in an embodiment of the present application, and may include the following steps:
  • the RAID management tool issues a logical volume binding command, with the parameter being the logical volume ID.
  • the RIAD controller receives a logical volume binding command and selects an idle Namespace for binding to the logical volume.
  • S1104 The host NVMe driver sends a command to obtain the changed Namespace list.
  • S1105 The RAID controller reports the newly bound Namespace identifier.
  • S1106 The host starts to perform IO operations on the newly added Namespace, and the binding is completed.
  • FIG. 12 is a flowchart of unbinding a logical volume from a Namespace provided in an embodiment of the present application, and may include the following steps:
  • the RAID management tool issues a logical volume unbinding command, with the parameter being the logical volume ID.
  • the RIAD controller receives the logical volume unbinding command and waits for all ongoing IOs on the logical volume to complete.
  • S1203 The RAID controller reports to the host that the Namespace has changed.
  • S1204 The host NVMe driver sends a command to obtain the changed Namespace list.
  • S1205 The RAID controller reports that the unbound Namespace is in an inactive state.
  • Figure 13 is a flowchart of the conversion of Namespace IO operations to logical volume IO operations provided by an embodiment of the present application, including the following steps:
  • the RAID controller receives an IO operation on a Namespace.
  • the RIAD controller finds the logical volume identifier bound to the Namespace.
  • the RAID controller converts the logical block address and logical block number in the Namespace IO operation parameters into the logical block address and logical block number of the logical volume.
  • FIG. 14 is a flowchart of an active reporting of RAID events provided in an embodiment of the present application, including the following steps:
  • S1401 The host sends an asynchronous event reporting command.
  • S1402 The RAID controller discovers a RAID management event.
  • the RAID controller completes the asynchronous event reporting command of the host and reports the event type in the status code.
  • S1404 The host sends a command to obtain detailed data of RAID management events.
  • FIG. 15 is a schematic diagram of the structure of a RAID disk array management system provided in an embodiment of the present application.
  • the system can be applied to a host connected to a RAID controller, the host includes a RAID management tool based on an NVMe interface and an NVMe device driver, the RAID controller is connected to a RAID disk array, and the RAID disk array management system includes:
  • the command construction module 1501 is configured to construct a RAID management command using a RAID management tool and encapsulate the RAID management command into an SQE format;
  • the command issuing module 1502 is configured to utilize the NVMe device driver to write the encapsulated RAID management command into the Admin SQ queue of the RAID controller, and to send notification information to the RAID controller through the doorbell register, so that the RAID controller executes the RAID management command in the Admin SQ queue after receiving the notification information.
  • This embodiment provides a host connected to a RAID controller, which includes a RAID management tool and an NVMe device driver based on an NVMe interface.
  • the RAID management tool can be used to construct a RAID management command and encapsulate the RAID management command.
  • the NVMe device driver can write the RAID management command encapsulated by the RAID management tool into the Admin SQ queue of the RAID controller.
  • the RAID controller can read and execute the RAID management commands in the Admin SQ queue.
  • the interface defined by the NVMe standard is adopted between the RAID controller and the host, and the NVMe driver is loaded on the host side.
  • the NVMe-defined commands between the RAID controller and the host complete the management operations on the RAID disk array. This scheme can implement RAID disk array management on the NVMe interface.
  • the command completion queue entry acquisition module is configured to read the command completion queue entry in the Admin CQ queue if the NVMe device driver receives an interrupt notification, and return the command completion queue entry to the RAID management tool; wherein the command completion queue entry is constructed by the RAID controller according to the execution result of the RAID management command.
  • the process of the command construction module 1501 constructing a RAID management command using a RAID management tool includes: using the RAID management tool to construct a RAID management command including a command operation code, command parameters and a data pointer; wherein the RAID controller is configured to store the data to be returned after executing the RAID management command in the address space pointed to by the data pointer.
  • the embodiment of the present application also provides a RAID disk array management system, which is applied to a RAID controller connected to a host, the host includes a RAID management tool based on an NVMe interface and an NVMe device driver, the RAID controller is connected to the RAID disk array, and the RAID disk array management method includes:
  • the command reading module is configured to read the RAID management command issued by the host from the Admin SQ queue after receiving the notification information sent by the doorbell register; wherein the process of the host issuing the RAID management command includes: constructing the RAID management command by using the RAID management tool, and encapsulating the RAID management command into the SQE format; writing the encapsulated RAID management command into the Admin SQ queue of the RAID controller by using the NVMe device driver, and sending the notification information to the RAID controller through the doorbell register;
  • the command execution module is configured to execute operations corresponding to the RAID management commands.
  • This embodiment provides a RAID controller connected to a host, which includes a RAID management tool and an NVMe device driver based on an NVMe interface.
  • the RAID management tool can be used to construct a RAID management command and encapsulate the RAID management command.
  • the NVMe device driver can write the RAID management command encapsulated by the RAID management tool into the Admin SQ queue of the RAID controller.
  • the RAID controller can read and execute the RAID management commands in the Admin SQ queue.
  • the interface defined by the NVMe standard is adopted between the RAID controller and the host, and the NVMe driver is loaded on the host side.
  • the NVMe-defined commands between the RAID controller and the host complete the management operation of the RAID disk array. This scheme can implement RAID disk array management on the NVMe interface.
  • the reporting module is configured to construct a command completion queue entry according to the execution result of the RAID management command after executing the operation corresponding to the RAID management command on the RAID disk array; it is also configured to write the command completion queue entry into the Admin CQ queue of the host and send an interrupt notification to the NVMe device driver so that the NVMe device can read the command completion queue entry in the Admin CQ queue and return the command completion queue entry to the RAID management tool.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: parsing the RAID controller discovery command to obtain a first data pointer; summarizing the characteristic data of the RAID controller, and returning the characteristic data of the RAID controller to the address space pointed to by the first data pointer; wherein the characteristic data of the RAID controller includes any one or a combination of ready state, firmware version number, serial number, a list of supported RAID levels, a list of the number of physical disks supported by each RAID level, a list of supported RAID data arrangement methods, a list of supported RAID level migration types, a list of supported physical disk types, supported data Cache features, supported power-off protection features and backup power supply status; data Cache features include Cache capacity and/or Cache policy type.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: parsing the physical disk discovery command to obtain a second data pointer; obtaining a physical disk list data structure of all physical disks in the RAID disk array, and returning the physical disk list data structure to the address space pointed to by the second data pointer; wherein the physical disk list data structure includes an identifier of each physical disk; or, determining a target physical disk corresponding to the physical disk discovery command, and returning the physical disk information of the target physical disk to the address space pointed to by the second data pointer; wherein the physical disk information includes any one or a combination of any several of the identifier of the target physical disk, the physical disk status, the physical disk type, the logical block size supported by the physical disk, the physical disk capacity, and the physical disk topology information.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: parsing the RAID group discovery command to obtain a third data pointer; obtaining a RAID group list data structure of all RAID groups in the RAID disk array, and returning the RAID group list data structure to the address space pointed to by the third data pointer; wherein the RAID group list data structure includes an identifier of each RAID group; or, determining a target RAID group corresponding to the RAID group discovery command, and returning the RAID group information of the target RAID group to the third data pointer.
  • the RAID group information includes any one or a combination of any one of the target RAID group's identifier, RAID group status, RAID group level, logical block size supported by the RAID group, RAID group capacity, RAID group Cache attributes, RAID group background task status and progress, and RAID group physical disk list and status.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: parsing the logical volume discovery command to obtain a fourth data pointer and an identifier of the RAID group to be queried; returning the logical volume information of the RAID group to be queried to the address space pointed to by the fourth data pointer according to the identifier of the RAID group to be queried; wherein the logical volume information includes any one or a combination of any several of the following: the logical volume identifier, the logical volume capacity, the logical volume status, and the NVM namespace identifier bound to the logical volume.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: parsing the logical volume binding command to obtain the ID of the logical volume to be bound; determining an idle first namespace, and sending a namespace binding notification to the host so that the host sends a namespace query command to be bound; wherein the namespace query command to be bound is used to obtain the identifier of the namespace to be bound; if the namespace query command to be bound is received, the identifier of the first namespace is uploaded to the host so that the host binds the identifier of the first namespace with the logical volume ID to be bound.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: parsing the logical volume unbinding command to obtain the logical volume ID to be unbound; judging whether all ongoing IO operations on the logical volume corresponding to the logical volume ID to be unbound have been completed; if it is judged that all ongoing IO operations on the logical volume corresponding to the logical volume ID to be unbound have been completed, sending a namespace unbinding notification to the host so that the host sends a namespace query command to be unbound; wherein, the namespace query command to be unbound is used to obtain the identifier of the namespace to be unbound; if the namespace query command to be unbound is received, the identifier of the second namespace is uploaded to the host so that the host can unbind the identifier of the second namespace from the logical volume ID to be unbound; wherein, the second namespace is the namespace bound to the
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: determining the target namespace corresponding to the namespace IO read/write command, and determining the target logical volume bound to the target namespace; converting the operation parameters for the target namespace in the namespace IO read/write command into operation parameters for the target logical volume; wherein the operation parameters include a logical block address and a logical block number; and performing IO read/write operations on the target logical volume according to the operation parameters of the target logical volume.
  • the process of the command execution module executing the operation corresponding to the RAID management command includes: detecting the RAID management event and determining the event type corresponding to the RAID management event; reporting the status code corresponding to the event type to the host, so that the host can obtain relevant data of the RAID management event from the RAID controller.
  • the embodiment of the present application also provides a non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed, the steps provided in the above embodiment can be implemented.
  • the non-volatile readable storage medium may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.
  • the present application also provides an electronic device, which may include a memory and a processor, wherein a computer program is stored in the memory, and when the processor calls the computer program in the memory, the steps provided in the above embodiment may be implemented.
  • the electronic device may also include various network interfaces, power supplies and other components.

Landscapes

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

Abstract

Un procédé et un système de gestion RAID, ainsi qu'un dispositif électronique et un support de stockage lisible non volatil, qui appartiennent au domaine technique de la gestion de stockage. Le procédé de gestion RAID consiste : à construire une instruction de gestion RAID à l'aide d'un outil de gestion RAID (S101) ; à encapsuler l'instruction de gestion RAID dans un format SQE (S102) ; et à écrire l'instruction de gestion RAID encapsulée dans une file d'attente SQ d'administrateur d'un contrôleur RAID à l'aide d'un pilote de dispositif NVMe, puis à envoyer des informations de notification au contrôleur RAID au moyen d'un registre de sonnette, de telle sorte qu'après réception des informations de notification, le contrôleur RAID exécute l'instruction de gestion RAID dans la file d'attente SQ d'administrateur (S103). Le procédé peut réaliser une gestion de réseau de disques RAID sur une interface NVMe.
PCT/CN2023/085269 2022-11-11 2023-03-30 Procédé et système de gestion raid, dispositif électronique et support de stockage lisible non volatil WO2024098635A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211409875.8 2022-11-11
CN202211409875.8A CN115657961B (zh) 2022-11-11 2022-11-11 Raid磁盘阵列管理方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
WO2024098635A1 true WO2024098635A1 (fr) 2024-05-16

Family

ID=85022002

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/085269 WO2024098635A1 (fr) 2022-11-11 2023-03-30 Procédé et système de gestion raid, dispositif électronique et support de stockage lisible non volatil

Country Status (2)

Country Link
CN (1) CN115657961B (fr)
WO (1) WO2024098635A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115657961B (zh) * 2022-11-11 2023-03-17 苏州浪潮智能科技有限公司 Raid磁盘阵列管理方法、系统、电子设备及存储介质
CN116303130B (zh) * 2023-05-16 2023-08-15 苏州浪潮智能科技有限公司 存储设备异步事件上报方法及其应用设备
CN116501263B (zh) * 2023-06-21 2023-09-12 苏州浪潮智能科技有限公司 数据存储装置、服务器、数据存储方法、电子设备和介质
CN118409712A (zh) * 2024-06-28 2024-07-30 济南浪潮数据技术有限公司 一种raid卡管理系统、方法、设备、产品及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007443B1 (en) * 2016-03-31 2018-06-26 EMC IP Holding Company LLC Host to device I/O flow
CN112256601A (zh) * 2020-10-19 2021-01-22 凌云光技术股份有限公司 数据存取控制方法、嵌入式存储系统及嵌入式设备
CN113687978A (zh) * 2021-09-07 2021-11-23 天津津航计算技术研究所 用于存储阵列控制器的数据处理方法
CN114817093A (zh) * 2022-06-30 2022-07-29 苏州浪潮智能科技有限公司 一种数据传输方法、系统、装置及存储介质
CN115145492A (zh) * 2022-07-29 2022-10-04 山东云海国创云计算装备产业创新中心有限公司 一种raid控制器下物理盘管理的方法和系统
CN115657961A (zh) * 2022-11-11 2023-01-31 苏州浪潮智能科技有限公司 Raid磁盘阵列管理方法、系统、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780458B (zh) * 2018-06-30 2024-05-14 华为技术有限公司 数据处理的方法和存储系统
CN109634771A (zh) * 2018-10-31 2019-04-16 华为技术有限公司 一种数据保护方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007443B1 (en) * 2016-03-31 2018-06-26 EMC IP Holding Company LLC Host to device I/O flow
CN112256601A (zh) * 2020-10-19 2021-01-22 凌云光技术股份有限公司 数据存取控制方法、嵌入式存储系统及嵌入式设备
CN113687978A (zh) * 2021-09-07 2021-11-23 天津津航计算技术研究所 用于存储阵列控制器的数据处理方法
CN114817093A (zh) * 2022-06-30 2022-07-29 苏州浪潮智能科技有限公司 一种数据传输方法、系统、装置及存储介质
CN115145492A (zh) * 2022-07-29 2022-10-04 山东云海国创云计算装备产业创新中心有限公司 一种raid控制器下物理盘管理的方法和系统
CN115657961A (zh) * 2022-11-11 2023-01-31 苏州浪潮智能科技有限公司 Raid磁盘阵列管理方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN115657961A (zh) 2023-01-31
CN115657961B (zh) 2023-03-17

Similar Documents

Publication Publication Date Title
WO2024098635A1 (fr) Procédé et système de gestion raid, dispositif électronique et support de stockage lisible non volatil
US11481144B1 (en) Techniques for directed data migration
US8307186B2 (en) Computer system performing capacity virtualization based on thin provisioning technology in both storage system and server computer
JP6138275B2 (ja) データ・ストレージ方法およびストレージ・デバイス
US8903956B2 (en) On-demand virtual storage capacity
JP6734751B2 (ja) インタフェイス制御メカニズムを有する電子システム及びその動作方法
US8924659B2 (en) Performance improvement in flash memory accesses
JP5155861B2 (ja) スマートスケーラブル記憶スイッチアーキテクチャ
JP5347061B2 (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
US8055723B2 (en) Virtual array site configuration
JP2019174994A (ja) ストレージシステム及びその制御方法
WO2019062202A1 (fr) Procédé, disque dur et support de stockage pour exécution d'instruction de fonctionnement de disque dur
WO2018158808A1 (fr) Système d'informations, programme de gestion et procédé d'échange de programme pour système d'informations
CN110275757A (zh) 利用系统抽象层提供多协议存储设备
WO2019071431A1 (fr) Procédé de traitement de requête d'entrée/sortie (e/s), et dispositif et hôte
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
JP2020027433A (ja) 情報システム
US20230315344A1 (en) Maintaining qualiy of service of non-volatile memory devices in heterogeneous environment
US20240168876A1 (en) Solving submission queue entry overflow using metadata or data pointers
JP7065928B2 (ja) ストレージシステム及びその制御方法
US20240303114A1 (en) Dynamic allocation of capacity to namespaces in a data storage device
US11966767B2 (en) Enabling dial home service requests from an application executing in an embedded environment
CN117311594A (zh) 管理nvm芯片的方法及相关产品
CN116501239A (zh) 用于管理存储设备的方法和存储控制器
JP2015097006A (ja) ストレージ制御装置、制御方法、及びプログラム

Legal Events

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

Ref document number: 23887339

Country of ref document: EP

Kind code of ref document: A1