WO2024119771A1 - Storage virtualization method, system, apparatus, and device based on disk array card - Google Patents

Storage virtualization method, system, apparatus, and device based on disk array card Download PDF

Info

Publication number
WO2024119771A1
WO2024119771A1 PCT/CN2023/101683 CN2023101683W WO2024119771A1 WO 2024119771 A1 WO2024119771 A1 WO 2024119771A1 CN 2023101683 W CN2023101683 W CN 2023101683W WO 2024119771 A1 WO2024119771 A1 WO 2024119771A1
Authority
WO
WIPO (PCT)
Prior art keywords
volume
disk array
container
container node
response
Prior art date
Application number
PCT/CN2023/101683
Other languages
French (fr)
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 WO2024119771A1 publication Critical patent/WO2024119771A1/en

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

Definitions

  • the present application relates to the technical field of disk arrays, and in particular to a storage virtualization method, system, device and equipment based on a disk array card.
  • RAID Redundant Array of Independent Disks
  • RAID is a storage technology that improves storage performance and reliability by increasing verification redundancy.
  • RAID is created by combining multiple storage drive components (e.g., disk hard disks and/or solid-state drives) into a logical unit, and then using various technologies to distribute data across the drives.
  • RAID technology can combine multiple disks together to provide a single usable logical disk with a larger capacity, concurrent I/O (Input/Output) read and write capabilities, data redundancy capabilities, etc.
  • I/O Input/Output
  • RAID technology has become an indispensable existence in server systems, providing efficient data storage and redundant backup capabilities for various industries such as medical banks. With the development of science and technology, storage technology is also improving by leaps and bounds.
  • RAID array is one of the important technologies in the storage field. Its development has mainly experienced RAID0, RAID1, RAID10, RAID5, RAID6 and other levels.
  • the RAID card is a board that realizes the function of organizing the hard disks connected to the server into a RAID array according to the RAID level. Users create volumes on the RAID card for the host to use as block devices.
  • the volume in the RAID card is a read-write logical unit provided to the user, which represents a LBA (Logical Block Address) storage address. Users can use the volume as a logical disk. Reading and writing the volume is actually reading and writing the PBA (Physical Block Address) address mapped to the LBA address.
  • the RAID card converts the virtual logical LBA address into the physical address (PBA) of the disk through internal mapping for actual I/O read and write operations. Therefore, when users use the RAID card, they are actually operating the volume. When the storage space of a volume is not enough to support the user's data needs, the volume needs to be expanded.
  • the available space can be directly allocated from the RAID array.
  • the RAID array has no available capacity, it is necessary to expand the capacity by adding disks.
  • the user needs to create another one or Multiple volumes, that is, users create one or more volumes of specified capacity on the RAID array for the host to use as block devices.
  • the existing RAID card controllers in the industry can only create volumes with capacity from the same RAID array, and require that the LBA corresponding to the volume capacity be distributed continuously on its RAID array.
  • Figure 1 shows a schematic diagram of the mapping relationship between a RAID5 array and a volume according to the prior art.
  • a RAID5 array is composed of 5 physical disks, which are mapped to a RAID5 Lba Map (Map representation diagram).
  • Two continuous LBA spaces are divided on the RAID5 Lba Map to form two volumes for use by the host.
  • volume expansion operation is limited due to the continuity of the volume LBA distribution. Only volumes with continuous available LBAs can be expanded. This will also affect user services and reduce user experience.
  • the purpose of the present application is to propose a storage virtualization method, system, device and equipment based on a disk array card, so as to solve the problem that the storage virtualization method of the disk array card in the prior art is not flexible enough in volume management, thereby affecting the performance of the disk array card.
  • the present application provides a storage virtualization method based on a disk array card in some embodiments, comprising the following steps:
  • a specified number of disk arrays are created based on the creation command, and a number of container nodes are applied for, so that each container node manages multiple disk arrays;
  • each disk array thereof is divided into a plurality of blocks of a predetermined size to form a block group, and a plurality of blocks are obtained from each block group and integrated into a volume;
  • the target volume is found through the container node based on the volume operation command, and the target volume is operated by using the corresponding block group.
  • the disk array card in response to the disk array card receiving a volume operation command issued by a user, based on the volume operation command, Find the target volume through the container node and use the corresponding block group to operate the target volume, including:
  • the target volume is found through the container node based on the volume deletion command, and all blocks of the target volume are released to the corresponding block group.
  • finding a target volume through a container node based on the volume operation command, and operating the target volume using a corresponding block group further includes:
  • the target volume is found through the container node based on the volume expansion command, and blocks are applied to the corresponding block group to achieve the expansion of the target volume.
  • the method further comprises:
  • Each container node is used as a storage sub-pool, and a container pool is composed of several container nodes to serve as a total storage pool.
  • a container pool formed by a plurality of container nodes includes:
  • the front pointer field points to the previous container node of the current container node
  • the back pointer field points to the next container node of the current container node
  • the container node includes a control field, and the control field indicates the operation status of the corresponding volume through bit symbols.
  • the method further comprises:
  • the method further comprises:
  • the bit corresponding to the target volume is set through the control thread.
  • the method further comprises:
  • the target volume is located by scanning all bits in the control field through a worker thread and finding a bit having a second binary symbol therein.
  • the method further comprises:
  • the container node further includes a management table pointer field, the management table pointer field points to a management table storage area, and the management table is used to manage volumes.
  • the management table includes a volume identification number, a predetermined size of a block, an identification number of a disk array corresponding to the volume, and a volume status, wherein the volume status includes at least a volume deletion status and a volume expansion status.
  • the method further comprises:
  • the volume status in the management table corresponding to the target volume is set through the control thread.
  • the method further comprises:
  • the volume status of the target volume in the corresponding management table is confirmed through the working thread, and the target volume is operated based on the confirmed volume status.
  • the method further comprises:
  • the management table corresponding to the target volume is updated.
  • the method further comprises:
  • creating a specified number of disk arrays based on the creation command includes:
  • the creation command is parsed to obtain command parameters, and a specified number of disk arrays are created based on the command parameters.
  • Another aspect of the present application further provides a storage virtualization system based on a disk array card, comprising:
  • the container node module is configured to create a specified number of disk arrays based on the creation command received by the disk array card from the host, and apply for a number of container nodes so that each container node manages multiple disk arrays;
  • a splitting and integration module configured to split each disk array of each container node into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume;
  • the volume operation module is configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
  • Another aspect of the present application further provides a storage virtualization device based on a disk array card, comprising:
  • the container node layer includes several container nodes, each of which manages multiple disk arrays;
  • a block group layer including a plurality of block groups, each block group is composed of a plurality of blocks of a predetermined size divided into a disk array;
  • the volume layer includes several volumes, each of which is composed of several blocks in multiple block groups.
  • the device also includes a volume operation module, which is configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
  • a volume operation module configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
  • a non-volatile computer-readable storage medium storing a computer program indicating When the computer program instructions are executed by the processor, the above method is implemented.
  • a computer device including a memory and a processor, wherein a computer program is stored in the memory, and the computer program executes the above method when executed by the processor.
  • the present application has at least the following beneficial technical effects:
  • the storage virtualization method based on disk array cards can achieve more efficient volume management and improve the storage performance of RAID cards without adding hardware. It also innovatively implements more flexible capacity space allocation of RAID cards, effectively improving the user experience of users using RAID cards. It can also prevent the fragmentation of available LBAs of the RAID array when the user deletes the volume using the RAID card. It can also avoid data migration when processing volume expansion business, thereby improving the overall performance of the RAID card.
  • FIG1 is a schematic structural diagram of a mapping relationship between a RAID5 array and a volume provided according to the prior art
  • FIG2 is a schematic diagram of a storage virtualization method based on a disk array card provided in some implementation examples of the present application;
  • FIG3 is a schematic diagram of a data structure of a container node provided in some implementations of the present application.
  • FIG4 is a schematic diagram of a method for implementing storage virtualization using a hierarchical concept in some implementations of the present application.
  • FIG5 is a schematic diagram of a process for creating a container pool according to some implementations of the present application.
  • FIG6 is a schematic diagram of a flow chart of a RAID card receiving a volume operation command from a user according to some implementations of the present application;
  • FIG7 is a schematic diagram of a storage virtualization system based on a disk array card provided in some implementations of the present application.
  • FIG8 is a schematic diagram of a non-volatile computer-readable storage medium for implementing a storage virtualization method based on a disk array card provided in some implementations of the present application;
  • FIG. 9 is a schematic diagram of the hardware structure of a computer device that executes a disk array card-based storage virtualization method provided in some implementations of the present application.
  • FIG2 is a schematic diagram of an embodiment of a storage virtualization method based on a disk array card provided in some embodiments of the present application. As shown in FIG2, the following steps may be included:
  • Step S10 in response to the disk array card receiving a creation command sent by the host, creating a specified number of disk arrays based on the creation command, and applying for a number of container nodes so that each container node manages multiple disk arrays;
  • Step S20 for each container node, divide each disk array thereof into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume;
  • Step S30 In response to the disk array card receiving the volume operation command issued by the user, the target volume is found through the container node based on the volume operation command, and the target volume is operated using the corresponding block group.
  • the disk array card-based storage virtualization method in some embodiments of the present application can achieve more efficient volume management and improve the storage performance of the RAID card without adding hardware; and innovatively achieve more flexible capacity space allocation of the RAID card, effectively improving the user experience of users using the RAID card; it can also avoid the fragmentation of the available LBA of the RAID array when the user operates the RAID card to delete the volume; when processing the volume expansion business, it can avoid data migration, thereby improving the overall performance of the RAID card.
  • finding the target volume through the container node based on the volume operation command, and operating the target volume using the corresponding block group includes: in response to the disk array card receiving a delete volume command issued by the user, finding the target volume through the container node based on the delete volume command, and releasing all blocks of the target volume to the corresponding block group.
  • finding the target volume through the container node based on the volume operation command, and operating the target volume using the corresponding block group also includes: in response to the disk array card receiving a volume expansion command issued by the user, finding the target volume through the container node based on the volume expansion command, and applying for blocks from the corresponding block group to achieve expansion of the target volume.
  • the method further includes: using each container node as a storage sub-pool, and forming a container pool from a plurality of container nodes to serve as a total storage pool.
  • forming a container pool from a plurality of container nodes includes: connecting the plurality of container nodes through a front pointer field and a back pointer field of each container node to form the container pool.
  • the front pointer field points to the previous container node of the current container node
  • the back pointer field points to the next container node of the current container node
  • the container node includes a control field, and the control field indicates the operation status of the corresponding volume through bit symbols.
  • the method further includes: in response to the bit being a first binary symbol, determining that the operating state of the volume corresponding to the bit is an operable state; in response to the bit being a second binary symbol, determining that the operating state of the volume corresponding to the bit is a normal state.
  • the method further includes: setting a bit corresponding to the target volume through a control thread.
  • the method further includes: scanning all bits in the control field by the working thread, and searching for bits having the second binary symbol therein to locate the target volume.
  • the method further includes: in response to volume integration being completed, setting all bits of the control fields of the plurality of container nodes to a second binary symbol.
  • the container node further includes a management table pointer field, the management table pointer field points to a management table storage area, and the management table is used to manage volumes.
  • the management table includes a volume identification number, a predetermined size of a block, an identification number of a disk array corresponding to the volume, and a volume status, wherein the volume status includes at least a volume deletion status and a volume expansion status.
  • the method further includes: setting the volume status in the management table corresponding to the target volume through the control thread.
  • the method further includes: confirming, by a working thread, a volume status of the target volume in a corresponding management table, and operating the target volume based on the confirmed volume status.
  • the method further includes: in response to the target volume operation being completed, updating a management table corresponding to the target volume.
  • the method further includes: in response to the completion of creation of a specified number of disk arrays, determining whether the remaining storage capacity of the non-volatile random access memory is greater than a preset capacity; in response to the remaining storage capacity being greater than the preset capacity, applying for a number of container nodes based on the remaining storage capacity.
  • creating a specified number of disk arrays based on the create command includes: in response to the disk array card receiving the create command sent by the host, parsing the create command, obtaining command parameters, and creating the specified number of disk arrays based on the command parameters.
  • containers are used to manage volumes.
  • Container nodes are designed to represent sub-pools in a storage pool, and a plurality of container nodes constitute a total storage pool, which is the container pool.
  • FIG3 shows a schematic diagram of the data structure of a container node.
  • the control field indicated by 201 can be data of type uint32, and the 32 bits in uint32 represent the volume status of 32 volumes, indicating that a container manages a maximum of 32 volumes. If the bit is 1 (i.e., the first binary symbol), it means that the volume corresponding to the bit needs to be operated (for example, the user operates to delete the volume, expand the volume, and migrate the volume, etc.), and if the bit is 0 (i.e., the second binary symbol), it means that the volume corresponding to the bit is in a normal state, that is, no operation is required this time.
  • the bit i.e., the first binary symbol
  • the buffer_ptr field indicated by 202 in FIG3 points to a specific area where the management table for managing the volume is stored.
  • the management table of all volumes is stored in the buffer, and the management table of the volume is shown in Table 1 below.
  • a bidirectional linked list metadata is used to manage container nodes.
  • the pre_pointer field indicated by 203 in FIG3 is a front pointer pointing to the previous container node in the bidirectional linked list
  • the next_pointer field indicated by 204 is a back pointer pointing to the next container node in the bidirectional linked list.
  • NVRAM Non-Volatile Random Access Memory
  • a container node identifies all volumes managed in a sub-pool.
  • the bidirectional linked list connects all sub-pools in the RAID card through the front pointer field and the back pointer field in the container node, thereby realizing storage virtualization of the RAID card and achieving more flexible management of volumes.
  • FIG4 shows a schematic diagram of a storage virtualization method using a hierarchical concept.
  • the storage virtualization technology designed in some embodiments of the present application adopts a bottom-up hierarchical concept.
  • the first layer indicated by 300 is a container pool composed of container nodes, each container node manages multiple volumes;
  • the second layer indicated by 310 is a RAID array composed of multiple RAID arrays.
  • the third layer indicated by 320 is a block group (block group) composed of blocks (blocks) after the second layer RAID array is split;
  • the fourth layer indicated by 330 is a volume layer composed of blocks of the third layer.
  • the volume created in the RAID card in the industry adopts the technical solution of Figure 1.
  • the LBA of the volume volume comes from the same RAID array, and the LBA of multiple volumes created on the same RAID array is continuous (such as volume1 and volume2 in Figure 1). Therefore, when the user expands volume volume1, it is necessary to move the volume volume2 next to it backward to free up capacity for volume1 to expand. Moving volume volume2 backward requires data migration, which is a very time-consuming process.
  • the available LBA of the RAID array will be fragmented, that is, discontinuous, and its total available capacity will be divided. When the user creates a volume again, although the total available capacity of the array is met, the fragmented LBA makes it impossible for the user to create a volume that meets the capacity requirements, affecting the user's business and causing a decline in user experience.
  • the above defects can be effectively solved.
  • the LBA of the fourth-layer volume in Figure 4 no longer comes from the same RAID array, but from the blocks after the RAID arrays at the block layer are divided. In this way, the LBA of the volume will actually be scattered in multiple blocks, and the blocks come from different RAID arrays. Therefore, not only are the LBAs of volume1 and volume2 in Figure 4 discontinuous, but the LBAs between the blocks within the volume are also discontinuous.
  • volume1 in Figure 4
  • volume1 he only needs to release the blocks that make up volume1 back to their respective block groups, so the available LBAs of the RAID array will not be fragmented.
  • a volume management table is used to manage the volumes in the container pool, and a plurality of container nodes are used to form a container pool.
  • the container pool implements virtualization management of the RAID card capacity, which can not only achieve more efficient volume management, but also achieve more flexible capacity space allocation.
  • Figure 5 shows a schematic diagram of the process of creating a container pool. As shown in Figure 5, the process of creating a container pool includes the following steps:
  • Step 1 After the RAID card is powered on, it receives the command from the host to create a RAID array, create a volume, and create a storage container pool, and parses the command.
  • Step 2 The driver of the RAID card controller creates one or more RAID arrays specified by the command parameters according to the parsed command parameters.
  • Step 3 The RAID card controller reads the NVRAM hardware resource information and determines whether there are enough resources in the NVRAM hardware resources to apply for a container node.
  • Step 4 If the NVRAM hardware resources meet the requirements, the RAID array is managed through the applied container node to form a container pool.
  • Step 5 The driver of the RAID card controller creates one or more volumes specified by the command parameters according to the parsed command parameters.
  • Step 6 The RAID card controller reads the NVRAM hardware resource information to determine whether there are sufficient resources in the NVRAM hardware resources to apply for the management table of the management volume.
  • Step 7 If the NVRAM hardware resources meet the requirements, since the newly created volumes have not been operated by users, their volume status is normal. Therefore, the RAID card controller sets all 32 bits maintained by the control field in the container node to 0.
  • Figure 6 shows a schematic diagram of the process of a RAID card receiving a volume operation command from a user. As shown in Figure 6, the specific process includes the following steps:
  • Step 1 The RAID card receives the volume operation command issued by the user and parses the command.
  • the RAID card controller finds the target volume of the user operation through the mapping relationship between the RAID array layer, block layer, and volume layer in the container node according to the parsed command parameters.
  • Step 2 According to the parsed user volume operation command parameters, the volume status of sequence number 3 in the management table of the management volume is assigned to volume deletion or volume expansion, etc. For example, if the user operation volume is volume deletion, the volume status is assigned to volume deletion.
  • Step 3 Set the bit corresponding to the volume in the control field of the container node to 1. When operating the volume, the target volume to be operated is located through this bit.
  • Step 4 The worker thread in the thread pool scans all bits in the control field of the container node and determines whether the scanned bit is 1.
  • Step 5 If the bit is 1, find the management table for managing the volume through the mapping relationship between the RAID array layer, block layer, and volume layer in the container node, query the status of the volume with sequence number 3 in the management table, and determine whether to expand or delete the volume.
  • Step 6 Perform volume-specific operations (such as volume migration, volume deletion, volume expansion, etc.).
  • Step 7 Update the mapping relationship between each container node and RAID array, block, and volume in the container pool.
  • Step 8 Update the management table of the operated volume.
  • FIG7 shows a schematic diagram of a storage virtualization system based on a disk array card provided in some embodiments of the present application.
  • a storage virtualization system based on a disk array card includes: a container node module 10, configured to create a specified number of disk arrays based on the creation command in response to the disk array card receiving a creation command issued by the host, and apply for a number of container nodes so that each container node manages multiple disk arrays; a splitting and integration module 20, configured to split each disk array of each container node into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume; and a volume operation module 30, configured to respond to the disk array card receiving a volume operation command issued by the user, based on the creation command.
  • the volume operation command finds the target volume through the container node and uses the corresponding block group to
  • the present application also provides a storage virtualization device based on a disk array card, as shown in Figure 4, the device includes: a container node layer 300, including a plurality of container nodes, each container node managing a plurality of disk arrays; a block group layer 320, including a plurality of block groups, each block group consisting of a plurality of blocks of a predetermined size divided from a disk array; and a volume layer 330, including a plurality of volumes, each volume being integrated from a plurality of blocks in a plurality of block groups.
  • a container node layer 300 including a plurality of container nodes, each container node managing a plurality of disk arrays
  • a block group layer 320 including a plurality of block groups, each block group consisting of a plurality of blocks of a predetermined size divided from a disk array
  • a volume layer 330 including a plurality of volumes, each volume being integrated from a plurality of blocks in a plurality of block groups.
  • the device also includes a volume operation module, which is configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
  • a volume operation module configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
  • FIG8 shows a schematic diagram of a non-volatile computer-readable storage medium for implementing a storage virtualization method based on a disk array card provided in some embodiments of the present application.
  • the non-volatile computer-readable storage medium 3 stores computer program instructions 31.
  • the computer program instructions 31 are executed by a processor, the method of any of the above embodiments is implemented.
  • the present application further provides a computer device, including a memory 402 and a processor 401 as shown in FIG. 9 , wherein the memory 402 stores a computer program, and when the computer program is executed by the processor 401 , a method of any of the above embodiments is implemented.
  • FIG9 it is a schematic diagram of the hardware structure of a computer device for executing a storage virtualization method based on a disk array card provided in some embodiments of the present application.
  • the computer device includes a processor 401 and a memory 402, and may also include: an input device 403 and an output device 404.
  • the processor 401, the memory 402, the input device 403 and the output device 404 can be connected via a bus or other means, and FIG9 takes the connection via a bus as an example.
  • the input device 403 can receive input digital or character information, and generate key signal input related to user settings and function control of the storage virtualization system based on the disk array card.
  • the output device 404 may include a display device such as a display screen.
  • the memory 402 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer executable programs and modules, such as program instructions/modules corresponding to the storage virtualization method based on the disk array card in some embodiments of the present application.
  • the memory 402 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and application programs required for at least one function; the data storage area may store data created by the use of the storage virtualization method based on the disk array card, etc.
  • the memory 402 may include a high-speed random access storage
  • the processor 401 may further include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device.
  • the memory 402 includes a memory remotely arranged relative to the processor 401, and these remote memories may be connected to the local module via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
  • the processor 401 executes various functional applications and data processing of the server by running the non-volatile software programs, instructions and modules stored in the memory 402, that is, implements the storage virtualization method based on the disk array card of the above method embodiment.
  • the computer-readable storage medium may be a volatile memory or a non-volatile memory, or may include both a volatile memory and a non-volatile memory.
  • a non-volatile memory may include a read-only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), or a flash memory.
  • ROM read-only memory
  • PROM programmable ROM
  • EPROM electrically programmable ROM
  • EEPROM electrically erasable programmable ROM
  • flash memory a volatile memory
  • a volatile memory may include a random access memory (RAM), which may act as an external cache memory.
  • RAM may be obtained in a variety of forms, such as synchronous RAM (DRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
  • DRAM synchronous RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDR SDRAM double data rate SDRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous link DRAM
  • DRRAM direct Rambus RAM
  • the storage devices of the disclosed aspects are intended to include, but are not limited to, these and other suitable types of memory.
  • a general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • the processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP, and/or any other such configuration.

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

The present application provides a storage virtualization method, system, apparatus, and device based on a disk array card, and relates to the technical field of disk arrays. The method comprises: in response to a disk array card receiving a creation command issued by a host, creating a specified number of disk arrays on the basis of the creation command, and applying for a plurality of container nodes, so that each container node manages a plurality of disk arrays; for each container node, segmenting each disk array thereof into a plurality of blocks of a predetermined size so as to form a block group, and respectively obtaining a plurality of blocks from each block group and integrating the blocks into a roll; and in response to the disk array card receiving a roll operation command issued by a user, using a container node to find a target roll on the basis of the roll operation command, and using a corresponding block group to perform operations on the target roll. The present application achieves more-efficient roll management without adding hardware, inventively achieving more-flexible capacity space allocation in a RAID card.

Description

基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备Storage virtualization method, system, device and equipment based on disk array card
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求于2022年12月05日提交中国专利局,申请号为202211545895.8,申请名称为“基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to a Chinese patent application filed with the China Patent Office on December 5, 2022, with application number 202211545895.8 and application name “Storage virtualization method, system, device and equipment based on disk array card”, all contents of which are incorporated by reference in this application.
技术领域Technical Field
本申请涉及磁盘阵列技术领域,尤其涉及一种基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备。The present application relates to the technical field of disk arrays, and in particular to a storage virtualization method, system, device and equipment based on a disk array card.
背景技术Background technique
RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)是一种存储技术,它通过增加校验冗余能力来提高存储性能和可靠性。RAID是通过将多个存储驱动器组件(例如,磁盘硬盘和/或固态硬盘)组合成一个逻辑单元而创建的,然后使用各种技术将数据分布在各个驱动器上。RAID技术可以将多块磁盘组合在一起以提供单个可使用的更大容量的逻辑磁盘、并发的I/O(Input/Output,数据输入/输出)读写能力、数据冗余能力等。RAID技术在服务器系统中已经是不可或缺的存在,为医疗银行等各行各业提供了高效的数据存储以及冗余备份能力。随着科技的发展,存储技术也在飞跃的改进,RAID阵列就是存储领域中的重要技术之一,它的发展主要经历了RAID0、RAID1、RAID10、RAID5、RAID6等级别。而RAID卡,就是实现将服务器连接的硬盘按照RAID级别组织成RAID阵列功能的板卡,用户在RAID卡上创建卷来供主机作为块设备使用。RAID (Redundant Array of Independent Disks) is a storage technology that improves storage performance and reliability by increasing verification redundancy. RAID is created by combining multiple storage drive components (e.g., disk hard disks and/or solid-state drives) into a logical unit, and then using various technologies to distribute data across the drives. RAID technology can combine multiple disks together to provide a single usable logical disk with a larger capacity, concurrent I/O (Input/Output) read and write capabilities, data redundancy capabilities, etc. RAID technology has become an indispensable existence in server systems, providing efficient data storage and redundant backup capabilities for various industries such as medical banks. With the development of science and technology, storage technology is also improving by leaps and bounds. RAID array is one of the important technologies in the storage field. Its development has mainly experienced RAID0, RAID1, RAID10, RAID5, RAID6 and other levels. The RAID card is a board that realizes the function of organizing the hard disks connected to the server into a RAID array according to the RAID level. Users create volumes on the RAID card for the host to use as block devices.
RAID卡中的卷(volume)是向用户提供的一块读写逻辑单元,它代表的是一块LBA(Logical Block Address,逻辑区块地址)存储地址。用户可以将卷当作一块逻辑磁盘进行使用。对卷的读写其实就是对LBA地址映射到的PBA(Physical Block Address,物理区块地址)地址的读写。RAID卡内通过内部映射将虚拟的逻辑LBA地址转为磁盘的物理地址(PBA)进行实际的I/O读写操作。因此用户在使用RAID卡的时候,实际上操作的是卷。当某个卷的存储空间不足以支撑用户数据需求时,就需要对该卷进行扩容,卷扩容时,如果当前卷所属的RAID阵列还存在可用容量时,可以直接从该RAID阵列上分配可用空间,而当RAID阵列已无可用容量时,就需要通过增加磁盘方式扩容。亦或是用户需要再创建一个或 多个卷,即用户在RAID阵列上创建一个或者多个指定容量的卷来供主机作为块设备使用。但是目前业界现有的RAID卡控制器,创建卷的容量只能来自同一个RAID阵列,并且要求卷容量对应的LBA分布在其RAID阵列上连续。The volume in the RAID card is a read-write logical unit provided to the user, which represents a LBA (Logical Block Address) storage address. Users can use the volume as a logical disk. Reading and writing the volume is actually reading and writing the PBA (Physical Block Address) address mapped to the LBA address. The RAID card converts the virtual logical LBA address into the physical address (PBA) of the disk through internal mapping for actual I/O read and write operations. Therefore, when users use the RAID card, they are actually operating the volume. When the storage space of a volume is not enough to support the user's data needs, the volume needs to be expanded. When the volume is expanded, if the RAID array to which the current volume belongs still has available capacity, the available space can be directly allocated from the RAID array. When the RAID array has no available capacity, it is necessary to expand the capacity by adding disks. Or the user needs to create another one or Multiple volumes, that is, users create one or more volumes of specified capacity on the RAID array for the host to use as block devices. However, the existing RAID card controllers in the industry can only create volumes with capacity from the same RAID array, and require that the LBA corresponding to the volume capacity be distributed continuously on its RAID array.
图1示出了根据现有技术提供的RAID5阵列与卷的映射关系的结构示意图。如图1所示,由5块物理盘组成一个RAID5阵列,映射为一个RAID5 Lba Map(Map表示图),在RAID5 Lba Map上划分出2段连续的LBA空间,组成2个Volume供主机使用。Figure 1 shows a schematic diagram of the mapping relationship between a RAID5 array and a volume according to the prior art. As shown in Figure 1, a RAID5 array is composed of 5 physical disks, which are mapped to a RAID5 Lba Map (Map representation diagram). Two continuous LBA spaces are divided on the RAID5 Lba Map to form two volumes for use by the host.
目前这种卷管理方式存在以下缺点:The current volume management method has the following disadvantages:
1)图1所示的Volume1和Volume2的LBA是连续的,当用户操作卷Volume1扩容时,需要向后移动Volume2以腾出Volume1向后扩容的LBA,向后移动Volume2需要进行分块的数据迁移,特别耗时,影响RAID卡性能;1) As shown in Figure 1, the LBAs of Volume1 and Volume2 are continuous. When the user expands Volume1, Volume2 needs to be moved backward to free up the LBAs for Volume1 to expand backward. Moving Volume2 backward requires data migration in blocks, which is very time-consuming and affects the performance of the RAID card.
2)当RAID阵列上删除卷会导致RAID阵列的可用LBA被碎片化,即LBA不连续,使其总可用容量被切分,用户再次创建卷时,总可用容量满足,但由于可用容量的切分导致用户无法创建满足容量需求的卷,影响用户业务,致使用户体验下降;2) When a volume is deleted from a RAID array, the available LBA of the RAID array will be fragmented, that is, the LBA will be discontinuous, so that the total available capacity will be divided. When the user creates a volume again, the total available capacity is sufficient, but the user cannot create a volume that meets the capacity requirements due to the division of the available capacity, which affects the user's business and causes a decline in user experience;
3)当RAID阵列上创建多个卷以后,由于卷LBA分布的连续性,致使卷的扩容操作受限,只能扩容有连续可用LBA的卷,这同样也会影响用户业务,致使用户体验下降。3) After multiple volumes are created on the RAID array, the volume expansion operation is limited due to the continuity of the volume LBA distribution. Only volumes with continuous available LBAs can be expanded. This will also affect user services and reduce user experience.
因此,需要一种更好的卷管理方式并实现更灵活的RAID卡容量空间分配。Therefore, a better volume management method is needed to achieve more flexible RAID card capacity space allocation.
发明内容Summary of the invention
有鉴于此,本申请的目的在于提出一种基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备,用以解决现有技术的磁盘阵列卡的存储虚拟化方式致使在卷管理方面不够灵活,进而影响磁盘阵列卡性能的问题。In view of this, the purpose of the present application is to propose a storage virtualization method, system, device and equipment based on a disk array card, so as to solve the problem that the storage virtualization method of the disk array card in the prior art is not flexible enough in volume management, thereby affecting the performance of the disk array card.
基于上述目的,本申请在一些实施例中提供了一种基于磁盘阵列卡的存储虚拟化方法,包括以下步骤:Based on the above purpose, the present application provides a storage virtualization method based on a disk array card in some embodiments, comprising the following steps:
响应于磁盘阵列卡接收到主机下发的创建命令,基于创建命令创建指定数量的磁盘阵列,并申请若干容器节点,以使每个容器节点管理多个磁盘阵列;In response to the disk array card receiving a creation command sent by the host, a specified number of disk arrays are created based on the creation command, and a number of container nodes are applied for, so that each container node manages multiple disk arrays;
针对每个容器节点,将其每个磁盘阵列切分为多个预定大小的块以形成块组,并分别从每个块组中获取若干块并整合成卷;For each container node, each disk array thereof is divided into a plurality of blocks of a predetermined size to form a block group, and a plurality of blocks are obtained from each block group and integrated into a volume;
响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作。In response to the disk array card receiving the volume operation command sent by the user, the target volume is found through the container node based on the volume operation command, and the target volume is operated by using the corresponding block group.
在一些实施例中,响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通 过容器节点找到目标卷,并利用相应的块组对目标卷进行操作包括:In some embodiments, in response to the disk array card receiving a volume operation command issued by a user, based on the volume operation command, Find the target volume through the container node and use the corresponding block group to operate the target volume, including:
响应于磁盘阵列卡接收到用户下发的删除卷命令,基于删除卷命令通过容器节点找到目标卷,并将目标卷的所有块释放至相应的块组。In response to the disk array card receiving the volume deletion command issued by the user, the target volume is found through the container node based on the volume deletion command, and all blocks of the target volume are released to the corresponding block group.
在一些实施例中,响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作还包括:In some embodiments, in response to the disk array card receiving a volume operation command issued by a user, finding a target volume through a container node based on the volume operation command, and operating the target volume using a corresponding block group further includes:
响应于磁盘阵列卡接收到用户下发的卷扩容命令,基于卷扩容命令通过容器节点找到目标卷,并向相应的块组申请块以实现目标卷的扩容。In response to the disk array card receiving the volume expansion command issued by the user, the target volume is found through the container node based on the volume expansion command, and blocks are applied to the corresponding block group to achieve the expansion of the target volume.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
将每个容器节点作为存储子池,并由若干容器节点构成容器池,以作为总存储池。Each container node is used as a storage sub-pool, and a container pool is composed of several container nodes to serve as a total storage pool.
在一些实施例中,由若干容器节点构成容器池包括:In some embodiments, a container pool formed by a plurality of container nodes includes:
通过每个容器节点的前指针字段和后指针字段将若干容器节点连接,以构成容器池。Several container nodes are connected through the front pointer field and the back pointer field of each container node to form a container pool.
在一些实施例中,前指针字段指向本容器节点的前一个容器节点,后指针字段指向本容器节点的后一个容器节点。In some embodiments, the front pointer field points to the previous container node of the current container node, and the back pointer field points to the next container node of the current container node.
在一些实施例中,容器节点包括控制字段,控制字段通过比特位的符号表示对应卷的操作状态。In some embodiments, the container node includes a control field, and the control field indicates the operation status of the corresponding volume through bit symbols.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
响应于比特位为第一二进制符号,确定比特位的对应卷的操作状态为可操作状态;In response to the bit being a first binary symbol, determining that the operation state of the volume corresponding to the bit is an operable state;
响应于比特位为第二二进制符号,确定比特位的对应卷的操作状态为正常状态。In response to the bit being the second binary symbol, it is determined that the operation state of the volume corresponding to the bit is a normal state.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
通过控制线程对目标卷对应的比特位进行设置。The bit corresponding to the target volume is set through the control thread.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
通过工作线程扫描控制字段中的所有比特位,并查找其中具有第二二进制符号的比特位,以定位至目标卷。The target volume is located by scanning all bits in the control field through a worker thread and finding a bit having a second binary symbol therein.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
响应于卷整合完成,将若干容器节点的控制字段的比特位全部置为第二二进制符号。In response to volume integration being completed, all bits of the control fields of the plurality of container nodes are set to a second binary symbol.
在一些实施例中,容器节点还包括管理表指针字段,管理表指针字段指向管理表存放区域,管理表用于管理卷。In some embodiments, the container node further includes a management table pointer field, the management table pointer field points to a management table storage area, and the management table is used to manage volumes.
在一些实施例中,管理表包括卷标识号、块的预定大小、与卷对应的磁盘阵列的标识号以及卷状态,卷状态至少包括卷删除状态及卷扩容状态。In some embodiments, the management table includes a volume identification number, a predetermined size of a block, an identification number of a disk array corresponding to the volume, and a volume status, wherein the volume status includes at least a volume deletion status and a volume expansion status.
在一些实施例中,方法还包括: In some embodiments, the method further comprises:
通过控制线程对目标卷对应的管理表中的卷状态进行设置。The volume status in the management table corresponding to the target volume is set through the control thread.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
通过工作线程确认目标卷在对应的管理表中的卷状态,并基于确认的卷状态对目标卷进行操作。The volume status of the target volume in the corresponding management table is confirmed through the working thread, and the target volume is operated based on the confirmed volume status.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
响应于目标卷操作完成,更新目标卷对应的管理表。In response to the target volume operation being completed, the management table corresponding to the target volume is updated.
在一些实施例中,方法还包括:In some embodiments, the method further comprises:
响应于指定数量的磁盘阵列创建完成,判断非易失性随机访问存储器的剩余存储容量是否大于预设容量;In response to the specified number of disk arrays being created, determining whether a remaining storage capacity of the non-volatile random access memory is greater than a preset capacity;
响应于剩余存储容量大于预设容量,基于剩余存储容量申请若干容器节点。In response to the remaining storage capacity being greater than the preset capacity, applying for a number of container nodes based on the remaining storage capacity.
在一些实施例中,响应于磁盘阵列卡接收到主机下发的创建命令,基于创建命令创建指定数量的磁盘阵列包括:In some embodiments, in response to the disk array card receiving a creation command sent by the host, creating a specified number of disk arrays based on the creation command includes:
响应于磁盘阵列卡接收到主机下发的创建命令,解析创建命令,得到命令参数,并基于命令参数创建指定数量的磁盘阵列。In response to the disk array card receiving a creation command sent by the host, the creation command is parsed to obtain command parameters, and a specified number of disk arrays are created based on the command parameters.
本申请的另一方面,还提供了一种基于磁盘阵列卡的存储虚拟化系统,包括:Another aspect of the present application further provides a storage virtualization system based on a disk array card, comprising:
容器节点模块,配置用于响应于磁盘阵列卡接收到主机下发的创建命令,基于创建命令创建指定数量的磁盘阵列,并申请若干容器节点,以使每个容器节点管理多个磁盘阵列;The container node module is configured to create a specified number of disk arrays based on the creation command received by the disk array card from the host, and apply for a number of container nodes so that each container node manages multiple disk arrays;
切分与整合模块,配置用于针对每个容器节点,将其每个磁盘阵列切分为多个预定大小的块以形成块组,并分别从每个块组中获取若干块并整合成卷;以及A splitting and integration module configured to split each disk array of each container node into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume; and
卷操作模块,配置用于响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作。The volume operation module is configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
本申请的另一方面,还提供了一种基于磁盘阵列卡的存储虚拟化装置,包括:Another aspect of the present application further provides a storage virtualization device based on a disk array card, comprising:
容器节点层,包括若干容器节点,每个容器节点管理多个磁盘阵列;The container node layer includes several container nodes, each of which manages multiple disk arrays;
块组层,包括多个块组,每个块组由一个磁盘阵列切分成的多个预定大小的块组成;以及A block group layer, including a plurality of block groups, each block group is composed of a plurality of blocks of a predetermined size divided into a disk array; and
卷层,包括若干卷,每个卷由多个块组中的若干块整合而成。The volume layer includes several volumes, each of which is composed of several blocks in multiple block groups.
在一些实施例中,装置还包括卷操作模块,配置用于响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作。In some embodiments, the device also includes a volume operation module, which is configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
本申请的又一方面,还提供了一种非易失性计算机可读存储介质,存储有计算机程序指 令,该计算机程序指令被处理器执行时实现上述方法。In another aspect of the present application, a non-volatile computer-readable storage medium is provided, storing a computer program indicating When the computer program instructions are executed by the processor, the above method is implemented.
本申请的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。In another aspect of the present application, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and the computer program executes the above method when executed by the processor.
本申请在一些实施例中,至少具有以下有益技术效果:In some embodiments, the present application has at least the following beneficial technical effects:
基于磁盘阵列卡的存储虚拟化方法,在不增加硬件的情况下可以实现更高效的卷管理,提升RAID卡的存储性能;并且创新性地实现RAID卡更灵活的容量空间分配,有效提高了用户使用RAID卡的用户体验;还可以在用户操作RAID卡删除卷时,避免RAID阵列可用LBA被碎片化;在处理卷扩容业务时,避免出现数据迁移情况,进而提高RAID卡的整体性能。The storage virtualization method based on disk array cards can achieve more efficient volume management and improve the storage performance of RAID cards without adding hardware. It also innovatively implements more flexible capacity space allocation of RAID cards, effectively improving the user experience of users using RAID cards. It can also prevent the fragmentation of available LBAs of the RAID array when the user deletes the volume using the RAID card. It can also avoid data migration when processing volume expansion business, thereby improving the overall performance of the RAID card.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本申请在一些实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。In order to more clearly illustrate the technical solutions of the present application in some embodiments or prior arts, the drawings required for use in the embodiments or prior art descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other embodiments can be obtained based on these drawings without paying any creative work.
图1为根据现有技术提供的RAID5阵列与卷的映射关系的结构示意图;FIG1 is a schematic structural diagram of a mapping relationship between a RAID5 array and a volume provided according to the prior art;
图2为根据本申请在一些实施中例提供的基于磁盘阵列卡的存储虚拟化方法的示意图;FIG2 is a schematic diagram of a storage virtualization method based on a disk array card provided in some implementation examples of the present application;
图3为根据本申请在一些实施中提供的容器节点的数据结构示意图;FIG3 is a schematic diagram of a data structure of a container node provided in some implementations of the present application;
图4为根据本申请在一些实施中提供的采用分层思想实现存储虚拟化方法的结构示意图;FIG4 is a schematic diagram of a method for implementing storage virtualization using a hierarchical concept in some implementations of the present application;
图5为根据本申请在一些实施中提供的创建容器池的流程示意图;FIG5 is a schematic diagram of a process for creating a container pool according to some implementations of the present application;
图6为根据本申请在一些实施中提供的RAID卡接收到用户的卷操作命令的流程示意图;FIG6 is a schematic diagram of a flow chart of a RAID card receiving a volume operation command from a user according to some implementations of the present application;
图7为根据本申请在一些实施中提供的基于磁盘阵列卡的存储虚拟化系统的示意图;FIG7 is a schematic diagram of a storage virtualization system based on a disk array card provided in some implementations of the present application;
图8为根据本申请在一些实施中提供的实现基于磁盘阵列卡的存储虚拟化方法的非易失性计算机可读存储介质的示意图;FIG8 is a schematic diagram of a non-volatile computer-readable storage medium for implementing a storage virtualization method based on a disk array card provided in some implementations of the present application;
图9为根据本申请在一些实施中提供的执行基于磁盘阵列卡的存储虚拟化方法的计算机设备的硬件结构示意图。FIG. 9 is a schematic diagram of the hardware structure of a computer device that executes a disk array card-based storage virtualization method provided in some implementations of the present application.
具体实施方式Detailed ways
为使本申请的目的、技术方案和优点更加清楚明白,以下结合实施例,并参照附图,对 本申请实施例进一步详细说明。In order to make the purpose, technical solutions and advantages of the present application more clearly understood, the following embodiments are combined with the accompanying drawings to describe the present invention. The embodiments of the present application are further described in detail.
需要说明的是,本申请在一些实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本申请的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。It should be noted that in some embodiments of the present application, all expressions using "first" and "second" are intended to distinguish two non-identical entities or non-identical parameters with the same name. It can be seen that "first" and "second" are only for the convenience of expression and should not be understood as limitations on the present application. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, other steps or units inherent to a process, method, system, product or device that includes a series of steps or units.
基于上述目的,本申请在一些实施例中,提出了一种基于磁盘阵列卡的存储虚拟化方法的实施例。图2示出的是本申请在一些实施例中提供的基于磁盘阵列卡的存储虚拟化方法的实施例的示意图。如图2所示,可以包括如下步骤:Based on the above purpose, the present application, in some embodiments, proposes an embodiment of a storage virtualization method based on a disk array card. FIG2 is a schematic diagram of an embodiment of a storage virtualization method based on a disk array card provided in some embodiments of the present application. As shown in FIG2, the following steps may be included:
步骤S10、响应于磁盘阵列卡接收到主机下发的创建命令,基于创建命令创建指定数量的磁盘阵列,并申请若干容器节点,以使每个容器节点管理多个磁盘阵列;Step S10: in response to the disk array card receiving a creation command sent by the host, creating a specified number of disk arrays based on the creation command, and applying for a number of container nodes so that each container node manages multiple disk arrays;
步骤S20、针对每个容器节点,将其每个磁盘阵列切分为多个预定大小的块以形成块组,并分别从每个块组中获取若干块并整合成卷;Step S20: for each container node, divide each disk array thereof into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume;
步骤S30、响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作。Step S30: In response to the disk array card receiving the volume operation command issued by the user, the target volume is found through the container node based on the volume operation command, and the target volume is operated using the corresponding block group.
本申请在一些实施例中的基于磁盘阵列卡的存储虚拟化方法,在不增加硬件的情况下可以实现更高效的卷管理,提升RAID卡的存储性能;并且创新性地实现RAID卡更灵活的容量空间分配,有效提高了用户使用RAID卡的用户体验;还可以在用户操作RAID卡删除卷时,避免RAID阵列可用LBA被碎片化;在处理卷扩容业务时,避免出现数据迁移情况,进而提高RAID卡的整体性能。The disk array card-based storage virtualization method in some embodiments of the present application can achieve more efficient volume management and improve the storage performance of the RAID card without adding hardware; and innovatively achieve more flexible capacity space allocation of the RAID card, effectively improving the user experience of users using the RAID card; it can also avoid the fragmentation of the available LBA of the RAID array when the user operates the RAID card to delete the volume; when processing the volume expansion business, it can avoid data migration, thereby improving the overall performance of the RAID card.
在一些实施例中,响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作包括:响应于磁盘阵列卡接收到用户下发的删除卷命令,基于删除卷命令通过容器节点找到目标卷,并将目标卷的所有块释放至相应的块组。In some embodiments, in response to the disk array card receiving a volume operation command issued by a user, finding the target volume through the container node based on the volume operation command, and operating the target volume using the corresponding block group includes: in response to the disk array card receiving a delete volume command issued by the user, finding the target volume through the container node based on the delete volume command, and releasing all blocks of the target volume to the corresponding block group.
在一些实施例中,响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作还包括:响应于磁盘阵列卡接收到用户下发的卷扩容命令,基于卷扩容命令通过容器节点找到目标卷,并向相应的块组申请块以实现目标卷的扩容。In some embodiments, in response to the disk array card receiving a volume operation command issued by a user, finding the target volume through the container node based on the volume operation command, and operating the target volume using the corresponding block group also includes: in response to the disk array card receiving a volume expansion command issued by the user, finding the target volume through the container node based on the volume expansion command, and applying for blocks from the corresponding block group to achieve expansion of the target volume.
在一些实施例中,方法还包括:将每个容器节点作为存储子池,并由若干容器节点构成容器池,以作为总存储池。 In some embodiments, the method further includes: using each container node as a storage sub-pool, and forming a container pool from a plurality of container nodes to serve as a total storage pool.
在一些实施例中,由若干容器节点构成容器池包括:通过每个容器节点的前指针字段和后指针字段将若干容器节点连接,以构成容器池。In some embodiments, forming a container pool from a plurality of container nodes includes: connecting the plurality of container nodes through a front pointer field and a back pointer field of each container node to form the container pool.
在一些实施例中,前指针字段指向本容器节点的前一个容器节点,后指针字段指向本容器节点的后一个容器节点。In some embodiments, the front pointer field points to the previous container node of the current container node, and the back pointer field points to the next container node of the current container node.
在一些实施例中,容器节点包括控制字段,控制字段通过比特位的符号表示对应卷的操作状态。In some embodiments, the container node includes a control field, and the control field indicates the operation status of the corresponding volume through bit symbols.
在一些实施例中,方法还包括:响应于比特位为第一二进制符号,确定比特位的对应卷的操作状态为可操作状态;响应于比特位为第二二进制符号,确定比特位的对应卷的操作状态为正常状态。In some embodiments, the method further includes: in response to the bit being a first binary symbol, determining that the operating state of the volume corresponding to the bit is an operable state; in response to the bit being a second binary symbol, determining that the operating state of the volume corresponding to the bit is a normal state.
在一些实施例中,方法还包括:通过控制线程对目标卷对应的比特位进行设置。In some embodiments, the method further includes: setting a bit corresponding to the target volume through a control thread.
在一些实施例中,方法还包括:通过工作线程扫描控制字段中的所有比特位,并查找其中具有第二二进制符号的比特位,以定位至目标卷。In some embodiments, the method further includes: scanning all bits in the control field by the working thread, and searching for bits having the second binary symbol therein to locate the target volume.
在一些实施例中,方法还包括:响应于卷整合完成,将若干容器节点的控制字段的比特位全部置为第二二进制符号。In some embodiments, the method further includes: in response to volume integration being completed, setting all bits of the control fields of the plurality of container nodes to a second binary symbol.
在一些实施例中,容器节点还包括管理表指针字段,管理表指针字段指向管理表存放区域,管理表用于管理卷。In some embodiments, the container node further includes a management table pointer field, the management table pointer field points to a management table storage area, and the management table is used to manage volumes.
在一些实施例中,管理表包括卷标识号、块的预定大小、与卷对应的磁盘阵列的标识号以及卷状态,卷状态至少包括卷删除状态及卷扩容状态。In some embodiments, the management table includes a volume identification number, a predetermined size of a block, an identification number of a disk array corresponding to the volume, and a volume status, wherein the volume status includes at least a volume deletion status and a volume expansion status.
在一些实施例中,方法还包括:通过控制线程对目标卷对应的管理表中的卷状态进行设置。In some embodiments, the method further includes: setting the volume status in the management table corresponding to the target volume through the control thread.
在一些实施例中,方法还包括:通过工作线程确认目标卷在对应的管理表中的卷状态,并基于确认的卷状态对目标卷进行操作。In some embodiments, the method further includes: confirming, by a working thread, a volume status of the target volume in a corresponding management table, and operating the target volume based on the confirmed volume status.
在一些实施例中,方法还包括:响应于目标卷操作完成,更新目标卷对应的管理表。In some embodiments, the method further includes: in response to the target volume operation being completed, updating a management table corresponding to the target volume.
在一些实施例中,方法还包括:响应于指定数量的磁盘阵列创建完成,判断非易失性随机访问存储器的剩余存储容量是否大于预设容量;响应于剩余存储容量大于预设容量,基于剩余存储容量申请若干容器节点。In some embodiments, the method further includes: in response to the completion of creation of a specified number of disk arrays, determining whether the remaining storage capacity of the non-volatile random access memory is greater than a preset capacity; in response to the remaining storage capacity being greater than the preset capacity, applying for a number of container nodes based on the remaining storage capacity.
在一些实施例中,响应于磁盘阵列卡接收到主机下发的创建命令,基于创建命令创建指定数量的磁盘阵列包括:响应于磁盘阵列卡接收到主机下发的创建命令,解析创建命令,得到命令参数,并基于命令参数创建指定数量的磁盘阵列。In some embodiments, in response to the disk array card receiving a create command sent by the host, creating a specified number of disk arrays based on the create command includes: in response to the disk array card receiving the create command sent by the host, parsing the create command, obtaining command parameters, and creating the specified number of disk arrays based on the command parameters.
以下为基于磁盘阵列卡的存储虚拟化方法的一些实施例: The following are some embodiments of the storage virtualization method based on the disk array card:
本申请在一些实施例中使用容器(docker)对卷(volume)进行管理,设计了容器节点代表存储池中的子池,并由多个容器节点构成存储总池,总池即容器池。In some embodiments of the present application, containers (docker) are used to manage volumes. Container nodes are designed to represent sub-pools in a storage pool, and a plurality of container nodes constitute a total storage pool, which is the container pool.
图3示出了容器节点的数据结构示意图。如图3所示,201指示的control字段可以是uint32类型的数据,uint32中的32个bit(比特)位代表32个卷的卷状态,表示一个容器里最多管理32个卷。bit位为1(即第一二进制符号)则表示对应bit位的卷需要被操作(例如用户操作删除卷、卷扩容和卷迁移等),bit位为0(即第二二进制符号)则表示对应bit位的卷是正常状态,即本次无需操作。图3中202指示的buffer_ptr字段是指向存放对卷进行管理的管理表的具体区域,buffer中存放的是所有卷的管理表,卷的管理表如下表1所示。本申请在一些实施例中,采用双向链表元数据管理容器节点,图3中203指示的pre_pointer字段是指向双向链表中前一个容器节点的前指针,204指示的next_pointer字段是指向双向链表中后一个容器节点的后指针。FIG3 shows a schematic diagram of the data structure of a container node. As shown in FIG3, the control field indicated by 201 can be data of type uint32, and the 32 bits in uint32 represent the volume status of 32 volumes, indicating that a container manages a maximum of 32 volumes. If the bit is 1 (i.e., the first binary symbol), it means that the volume corresponding to the bit needs to be operated (for example, the user operates to delete the volume, expand the volume, and migrate the volume, etc.), and if the bit is 0 (i.e., the second binary symbol), it means that the volume corresponding to the bit is in a normal state, that is, no operation is required this time. The buffer_ptr field indicated by 202 in FIG3 points to a specific area where the management table for managing the volume is stored. The management table of all volumes is stored in the buffer, and the management table of the volume is shown in Table 1 below. In some embodiments of the present application, a bidirectional linked list metadata is used to manage container nodes. The pre_pointer field indicated by 203 in FIG3 is a front pointer pointing to the previous container node in the bidirectional linked list, and the next_pointer field indicated by 204 is a back pointer pointing to the next container node in the bidirectional linked list.
表1:卷的管理表
Table 1: Volume management table
在RAID卡的NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器,指断电后仍能保持数据的一种RAM)硬件资源中新增多个容器节点和卷的管理表。一个容器节点标识一个子池中所管理的所有卷,双向链表通过容器节点中的前指针字段和后指针字段将RAID卡中的所有子池连接在一起,以此实现RAID卡的存储虚拟化,实现对卷更灵活的管理。Multiple container nodes and volume management tables are added to the NVRAM (Non-Volatile Random Access Memory) hardware resources of the RAID card. A container node identifies all volumes managed in a sub-pool. The bidirectional linked list connects all sub-pools in the RAID card through the front pointer field and the back pointer field in the container node, thereby realizing storage virtualization of the RAID card and achieving more flexible management of volumes.
需要特别指出的是,当图3中205指示的bit位为1时,表示该bit位对应的卷需要被用户操作,对应表1中的序号3的卷状态(删除卷、卷扩容、卷迁移等非正常状态);bit位为0时,则对应的卷状态是正常状态。It should be pointed out that when the bit indicated by 205 in Figure 3 is 1, it means that the volume corresponding to the bit needs to be operated by the user, corresponding to the volume status of serial number 3 in Table 1 (abnormal status such as volume deletion, volume expansion, volume migration, etc.); when the bit is 0, the corresponding volume status is normal.
图4示出了采用分层思想实现存储虚拟化方法的结构示意图。如图4所示,本申请在一些实施例中设计的存储虚拟化技术采用由下至上的分层思想,300指示的第一层是由容器节点组成的容器池,每个容器节点管理多个卷;310指示的第二层是多个RAID阵列组成的RAID 层;320指示的第三层是由第二层RAID阵列切分后block(块)组成的block组(块组);330指示的第四层是由第三层的block块组成的卷层。FIG4 shows a schematic diagram of a storage virtualization method using a hierarchical concept. As shown in FIG4, the storage virtualization technology designed in some embodiments of the present application adopts a bottom-up hierarchical concept. The first layer indicated by 300 is a container pool composed of container nodes, each container node manages multiple volumes; the second layer indicated by 310 is a RAID array composed of multiple RAID arrays. The third layer indicated by 320 is a block group (block group) composed of blocks (blocks) after the second layer RAID array is split; the fourth layer indicated by 330 is a volume layer composed of blocks of the third layer.
目前业界RAID卡中创建的卷采用的是图1的技术方案,显而易见,卷volume的LBA都来自于同一个RAID阵列,在同一个RAID阵列上创建的多个卷的LBA是连续的(例如图1中的volume1和volum2),因此当用户操作对卷volume1进行扩容时,需要将紧挨着它的卷volume2向后移动以腾出容量以供卷volume1进行扩容,向后移动卷volume2需要进行数据迁移,而数据迁移是一个非常耗时的过程。不仅如此,如果用户操作删除已创建好的卷,会导致RAID阵列可用LBA被碎片化,即不连续了,使其总可用容量被切分,当用户再次创建卷时,虽然阵列总可用容量满足,但由于碎片化的LBA导致用户无法创建满足容量需求的卷,影响用户业务,致使用户体验下降。At present, the volume created in the RAID card in the industry adopts the technical solution of Figure 1. Obviously, the LBA of the volume volume comes from the same RAID array, and the LBA of multiple volumes created on the same RAID array is continuous (such as volume1 and volume2 in Figure 1). Therefore, when the user expands volume volume1, it is necessary to move the volume volume2 next to it backward to free up capacity for volume1 to expand. Moving volume volume2 backward requires data migration, which is a very time-consuming process. In addition, if the user deletes the created volume, the available LBA of the RAID array will be fragmented, that is, discontinuous, and its total available capacity will be divided. When the user creates a volume again, although the total available capacity of the array is met, the fragmented LBA makes it impossible for the user to create a volume that meets the capacity requirements, affecting the user's business and causing a decline in user experience.
通过采用本申请在一些实施例中设计的存储虚拟化技术可以有效解决上述缺陷,如图4中第四层卷的LBA不再来自于同一个RAID阵列,而是来于block层的各个RAID阵列切分后的block块,这样卷的LBA实际上会分散在多个block中,而block又来自于不同的RAID阵列。所以不仅图4中volume1和volume2的LBA不连续,而且卷内部各个block块之间的LBA也是不连续的。By adopting the storage virtualization technology designed in some embodiments of the present application, the above defects can be effectively solved. For example, the LBA of the fourth-layer volume in Figure 4 no longer comes from the same RAID array, but from the blocks after the RAID arrays at the block layer are divided. In this way, the LBA of the volume will actually be scattered in multiple blocks, and the blocks come from different RAID arrays. Therefore, not only are the LBAs of volume1 and volume2 in Figure 4 discontinuous, but the LBAs between the blocks within the volume are also discontinuous.
因此,如果用户对图4中volume1操作扩容,只需从相应的block组中取出一个block块加入volume1,而不需要对volume2进行数据迁移。当用户操作删除volume1时,只需将组成volume1的block块释放回各自的block组中,因而不会导致RAID阵列可用LBA被碎片化。Therefore, if the user expands volume1 in Figure 4, he only needs to take a block from the corresponding block group and add it to volume1, without migrating data to volume2. When the user deletes volume1, he only needs to release the blocks that make up volume1 back to their respective block groups, so the available LBAs of the RAID array will not be fragmented.
综上,利用本申请在一些实施例中设计的存储虚拟化技术,使用卷管理表对容器池中的卷进行管理,并使用多个容器节点形成容器池,容器池实现对RAID卡容量上的虚拟化管理,不仅可以实现更高效的卷管理,而且能够实现更灵活的容量空间分配。In summary, by utilizing the storage virtualization technology designed in some embodiments of the present application, a volume management table is used to manage the volumes in the container pool, and a plurality of container nodes are used to form a container pool. The container pool implements virtualization management of the RAID card capacity, which can not only achieve more efficient volume management, but also achieve more flexible capacity space allocation.
图5示出了创建容器池的流程示意图。如图5所示,创建容器池的流程包括以下步骤:Figure 5 shows a schematic diagram of the process of creating a container pool. As shown in Figure 5, the process of creating a container pool includes the following steps:
第一步:RAID卡上电后收到主机下发的创建RAID阵列、创建volume卷、创建存储容器池的命令,并解析该命令。Step 1: After the RAID card is powered on, it receives the command from the host to create a RAID array, create a volume, and create a storage container pool, and parses the command.
第二步:RAID卡控制器的驱动程序根据解析的命令参数,创建命令参数指定的一个或多个RAID阵列。Step 2: The driver of the RAID card controller creates one or more RAID arrays specified by the command parameters according to the parsed command parameters.
第三步:RAID卡控制器读取NVRAM硬件资源信息,并判断NVRAM硬件资源里是否还有足够的资源用来申请容器节点。Step 3: The RAID card controller reads the NVRAM hardware resource information and determines whether there are enough resources in the NVRAM hardware resources to apply for a container node.
第四步:如果NVRAM硬件资源满足要求,则通过申请的容器节点将RAID阵列管理起来,形成容器池。 Step 4: If the NVRAM hardware resources meet the requirements, the RAID array is managed through the applied container node to form a container pool.
第五步:RAID卡控制器的驱动程序根据解析的命令参数,创建命令参数指定的一个或多个volume卷。Step 5: The driver of the RAID card controller creates one or more volumes specified by the command parameters according to the parsed command parameters.
第六步:RAID卡控制器读取NVRAM硬件资源信息,判断NVRAM硬件资源里是否还有足够的资源用来申请管理卷的管理表。Step 6: The RAID card controller reads the NVRAM hardware resource information to determine whether there are sufficient resources in the NVRAM hardware resources to apply for the management table of the management volume.
第七步:如果NVRAM硬件资源满足要求,由于新创建的卷都没有被用户操作,所以其卷状态都是正常,因此RAID卡控制器将容器节点中control字段维护的32个bit位全部置位为0。Step 7: If the NVRAM hardware resources meet the requirements, since the newly created volumes have not been operated by users, their volume status is normal. Therefore, the RAID card controller sets all 32 bits maintained by the control field in the container node to 0.
图6示出了RAID卡接收到用户的卷操作命令的流程示意图。如图6所示,具体流程包括以下步骤:Figure 6 shows a schematic diagram of the process of a RAID card receiving a volume operation command from a user. As shown in Figure 6, the specific process includes the following steps:
第一步:RAID卡接收用户下发的卷操作命令,并解析该命令。RAID卡控制器根据解析的命令参数,通过容器节点中RAID阵列层、block层、卷层的映射关系找到用户操作的目标卷。Step 1: The RAID card receives the volume operation command issued by the user and parses the command. The RAID card controller finds the target volume of the user operation through the mapping relationship between the RAID array layer, block layer, and volume layer in the container node according to the parsed command parameters.
第二步:根据解析的用户操作卷命令参数,对管理卷的管理表中序号3的卷状态赋值为删除卷或卷扩容等,例如用户操作卷为删除卷,则卷状态赋值为删除卷。Step 2: According to the parsed user volume operation command parameters, the volume status of sequence number 3 in the management table of the management volume is assigned to volume deletion or volume expansion, etc. For example, if the user operation volume is volume deletion, the volume status is assigned to volume deletion.
第三步:置位容器节点control字段中对应该卷的bit位为1,对卷操作时通过该bit位定位被操作的目标卷。Step 3: Set the bit corresponding to the volume in the control field of the container node to 1. When operating the volume, the target volume to be operated is located through this bit.
第四步:线程池中的工作线程扫描容器节点control字段中的所有bit位,并判断是否扫描到bit位为1。Step 4: The worker thread in the thread pool scans all bits in the control field of the container node and determines whether the scanned bit is 1.
第五步:如果bit位为1,则通过容器节点中RAID阵列层、block层、卷层的映射关系找到管理卷的管理表,查询管理表中序号3的卷状态,确定是对卷扩容还是删除卷等。Step 5: If the bit is 1, find the management table for managing the volume through the mapping relationship between the RAID array layer, block layer, and volume layer in the container node, query the status of the volume with sequence number 3 in the management table, and determine whether to expand or delete the volume.
第六步:进行操作卷特定流程(例如卷迁移、删除卷、卷扩容等)。Step 6: Perform volume-specific operations (such as volume migration, volume deletion, volume expansion, etc.).
第七步:更新容器池中各容器节点与RAID阵列、block块、卷的映射关系。Step 7: Update the mapping relationship between each container node and RAID array, block, and volume in the container pool.
第八步:更新被操作卷的管理表。Step 8: Update the management table of the operated volume.
本申请在一些实施例中还提供了一种基于磁盘阵列卡的存储虚拟化系统。图7示出的是本申请在一些实施例中提供的基于磁盘阵列卡的存储虚拟化系统的示意图。如图7所示,一种基于磁盘阵列卡的存储虚拟化系统包括:容器节点模块10,配置用于响应于磁盘阵列卡接收到主机下发的创建命令,基于创建命令创建指定数量的磁盘阵列,并申请若干容器节点,以使每个容器节点管理多个磁盘阵列;切分与整合模块20,配置用于针对每个容器节点,将其每个磁盘阵列切分为多个预定大小的块以形成块组,并分别从每个块组中获取若干块并整合成卷;以及卷操作模块30,配置用于响应于磁盘阵列卡接收到用户下发的卷操作命令,基 于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作。In some embodiments, the present application also provides a storage virtualization system based on a disk array card. FIG7 shows a schematic diagram of a storage virtualization system based on a disk array card provided in some embodiments of the present application. As shown in FIG7, a storage virtualization system based on a disk array card includes: a container node module 10, configured to create a specified number of disk arrays based on the creation command in response to the disk array card receiving a creation command issued by the host, and apply for a number of container nodes so that each container node manages multiple disk arrays; a splitting and integration module 20, configured to split each disk array of each container node into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume; and a volume operation module 30, configured to respond to the disk array card receiving a volume operation command issued by the user, based on the creation command. The volume operation command finds the target volume through the container node and uses the corresponding block group to operate the target volume.
本申请在一些实施例中还提供了一种基于磁盘阵列卡的存储虚拟化装置,如图4所示,该装置包括:容器节点层300,包括若干容器节点,每个容器节点管理多个磁盘阵列;块组层320,包括多个块组,每个块组由一个磁盘阵列切分成的多个预定大小的块组成;以及卷层330,包括若干卷,每个卷由多个块组中的若干块整合而成。In some embodiments, the present application also provides a storage virtualization device based on a disk array card, as shown in Figure 4, the device includes: a container node layer 300, including a plurality of container nodes, each container node managing a plurality of disk arrays; a block group layer 320, including a plurality of block groups, each block group consisting of a plurality of blocks of a predetermined size divided from a disk array; and a volume layer 330, including a plurality of volumes, each volume being integrated from a plurality of blocks in a plurality of block groups.
在一些实施例中,装置还包括卷操作模块,配置用于响应于磁盘阵列卡接收到用户下发的卷操作命令,基于卷操作命令通过容器节点找到目标卷,并利用相应的块组对目标卷进行操作。In some embodiments, the device also includes a volume operation module, which is configured to respond to the disk array card receiving a volume operation command issued by the user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
本申请在一些实施例中还提供了一种非易失性计算机可读存储介质,图8示出了根据本申请在一些实施例中提供的实现基于磁盘阵列卡的存储虚拟化方法的非易失性计算机可读存储介质的示意图。如图8所示,非易失性计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现上述任意一项实施例的方法。The present application also provides a non-volatile computer-readable storage medium in some embodiments, and FIG8 shows a schematic diagram of a non-volatile computer-readable storage medium for implementing a storage virtualization method based on a disk array card provided in some embodiments of the present application. As shown in FIG8 , the non-volatile computer-readable storage medium 3 stores computer program instructions 31. When the computer program instructions 31 are executed by a processor, the method of any of the above embodiments is implemented.
应当理解,在相互不冲突的情况下,以上针对根据本申请的基于磁盘阵列卡的存储虚拟化方法阐述的所有实施方式、特征和优势同样地适用于根据本申请的基于磁盘阵列卡的存储虚拟化系统和存储介质。It should be understood that, in the absence of conflicts, all the embodiments, features and advantages described above for the storage virtualization method based on the disk array card according to the present application are also applicable to the storage virtualization system and storage medium based on the disk array card according to the present application.
本申请在一些实施例中还提供了一种计算机设备,包括如图9所示的存储器402和处理器401,该存储器402中存储有计算机程序,该计算机程序被该处理器401执行时实现上述任意一项实施例的方法。In some embodiments, the present application further provides a computer device, including a memory 402 and a processor 401 as shown in FIG. 9 , wherein the memory 402 stores a computer program, and when the computer program is executed by the processor 401 , a method of any of the above embodiments is implemented.
如图9所示,为本申请在一些实施例中提供的执行基于磁盘阵列卡的存储虚拟化方法的计算机设备的硬件结构示意图。以如图9所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图9中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与基于磁盘阵列卡的存储虚拟化系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。As shown in FIG9 , it is a schematic diagram of the hardware structure of a computer device for executing a storage virtualization method based on a disk array card provided in some embodiments of the present application. Taking the computer device shown in FIG9 as an example, the computer device includes a processor 401 and a memory 402, and may also include: an input device 403 and an output device 404. The processor 401, the memory 402, the input device 403 and the output device 404 can be connected via a bus or other means, and FIG9 takes the connection via a bus as an example. The input device 403 can receive input digital or character information, and generate key signal input related to user settings and function control of the storage virtualization system based on the disk array card. The output device 404 may include a display device such as a display screen.
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请在一些实施例中的基于磁盘阵列卡的存储虚拟化方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储基于磁盘阵列卡的存储虚拟化方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储 器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件,或其他非易失性固态存储器件。在一些实施例中,存储器402包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。The memory 402 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer executable programs and modules, such as program instructions/modules corresponding to the storage virtualization method based on the disk array card in some embodiments of the present application. The memory 402 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and application programs required for at least one function; the data storage area may store data created by the use of the storage virtualization method based on the disk array card, etc. In addition, the memory 402 may include a high-speed random access storage The processor 401 may further include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other non-volatile solid-state storage device. In some embodiments, the memory 402 includes a memory remotely arranged relative to the processor 401, and these remote memories may be connected to the local module via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于磁盘阵列卡的存储虚拟化方法。The processor 401 executes various functional applications and data processing of the server by running the non-volatile software programs, instructions and modules stored in the memory 402, that is, implements the storage virtualization method based on the disk array card of the above method embodiment.
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM),以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。Finally, it should be noted that the computer-readable storage medium (e.g., memory) herein may be a volatile memory or a non-volatile memory, or may include both a volatile memory and a non-volatile memory. As an example and not by way of limitation, a non-volatile memory may include a read-only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), or a flash memory. A volatile memory may include a random access memory (RAM), which may act as an external cache memory. As an example and not by way of limitation, RAM may be obtained in a variety of forms, such as synchronous RAM (DRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct Rambus RAM (DRRAM). The storage devices of the disclosed aspects are intended to include, but are not limited to, these and other suitable types of memory.
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本申请公开的范围。It will also be appreciated by those skilled in the art that various exemplary logic blocks, modules, circuits and algorithm steps described in conjunction with the disclosure herein can be implemented as electronic hardware, computer software or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, a general description has been given to the functions of various schematic components, blocks, modules, circuits and steps. Whether this function is implemented as software or hardware depends on specific applications and the design constraints imposed on the entire system. Those skilled in the art can implement the function in various ways for each specific application, but this implementation decision should not be interpreted as causing a departure from the scope disclosed in the present application.
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。The various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure herein may be implemented or executed using the following components designed to perform the functions herein: a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination of these components. A general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP, and/or any other such configuration.
以上是本申请公开的示例性实施例,但是应当注意,在不背离权利要求限定的实施例公 开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本申请在一些实施例中公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。The above are exemplary embodiments disclosed in this application, but it should be noted that the embodiments disclosed in this application are not limited to the embodiments defined in the claims. Various changes and modifications may be made within the scope of the disclosure. The functions, steps and/or actions of the method claims according to the disclosed embodiments described herein need not be performed in any particular order. In addition, although the elements disclosed in some embodiments of the present application may be described or required in individual form, they may also be understood as multiple unless explicitly limited to the singular.
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本申请在一些实施例中公开实施例序号仅仅为了描述,不代表实施例的优劣。It should be understood that, as used herein, the singular form "a" or "an" is intended to include the plural form, unless the context clearly supports an exception. It should also be understood that, as used herein, "and/or" refers to any and all possible combinations of one or more items listed in association. The above-mentioned embodiment serial numbers disclosed in some embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments.
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请公开的范围(包括权利要求)被限于这些例子;在本申请一些实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。 A person of ordinary skill in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of the disclosure of this application (including the claims) is limited to these examples; under the idea of some embodiments of this application, the technical features in the above embodiments or different embodiments may also be combined, and there are many other changes in different aspects of the above embodiments of this application, which are not provided in detail for the sake of simplicity. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of this application shall be included in the protection scope of the embodiments of this application.

Claims (23)

  1. 一种基于磁盘阵列卡的存储虚拟化方法,其特征在于,包括以下步骤:A storage virtualization method based on a disk array card, characterized by comprising the following steps:
    响应于磁盘阵列卡接收到主机下发的创建命令,基于所述创建命令创建指定数量的磁盘阵列,并申请若干容器节点,以使每个容器节点管理多个磁盘阵列;In response to the disk array card receiving a creation command sent by the host, creating a specified number of disk arrays based on the creation command, and applying for a number of container nodes so that each container node manages multiple disk arrays;
    针对所述每个容器节点,将其每个磁盘阵列切分为多个预定大小的块以形成块组,并分别从每个块组中获取若干所述块并整合成卷;For each container node, each disk array thereof is divided into a plurality of blocks of a predetermined size to form a block group, and a plurality of blocks are obtained from each block group and integrated into a volume;
    响应于所述磁盘阵列卡接收到用户下发的卷操作命令,基于所述卷操作命令通过所述容器节点找到目标卷,并利用相应的块组对所述目标卷进行操作。In response to the disk array card receiving a volume operation command issued by a user, the target volume is found through the container node based on the volume operation command, and the target volume is operated by using a corresponding block group.
  2. 根据权利要求1所述的方法,其特征在于,响应于所述磁盘阵列卡接收到用户下发的卷操作命令,基于所述卷操作命令通过所述容器节点找到目标卷,并利用相应的块组对所述目标卷进行操作包括:The method according to claim 1 is characterized in that, in response to the disk array card receiving a volume operation command issued by a user, finding a target volume through the container node based on the volume operation command, and operating the target volume using a corresponding block group comprises:
    响应于所述磁盘阵列卡接收到用户下发的删除卷命令,基于所述删除卷命令通过所述容器节点找到目标卷,并将所述目标卷的所有块释放至相应的块组。In response to the disk array card receiving a volume deletion command issued by a user, the target volume is found through the container node based on the volume deletion command, and all blocks of the target volume are released to corresponding block groups.
  3. 根据权利要求1所述的方法,其特征在于,响应于所述磁盘阵列卡接收到用户下发的卷操作命令,基于所述卷操作命令通过所述容器节点找到目标卷,并利用相应的块组对所述目标卷进行操作还包括:The method according to claim 1, characterized in that, in response to the disk array card receiving a volume operation command issued by a user, finding a target volume through the container node based on the volume operation command, and operating the target volume using a corresponding block group further comprises:
    响应于所述磁盘阵列卡接收到用户下发的卷扩容命令,基于所述卷扩容命令通过所述容器节点找到目标卷,并向相应的块组申请所述块以实现所述目标卷的扩容。In response to the disk array card receiving a volume expansion command issued by a user, the target volume is found through the container node based on the volume expansion command, and the block is applied to the corresponding block group to achieve the expansion of the target volume.
  4. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    将所述每个容器节点作为存储子池,并由所述若干容器节点构成容器池,以作为总存储池。Each container node is used as a storage sub-pool, and a container pool is formed by the plurality of container nodes to serve as a total storage pool.
  5. 根据权利要求4所述的方法,其特征在于,由所述若干容器节点构成容器池包括:The method according to claim 4, characterized in that forming a container pool by the plurality of container nodes comprises:
    通过所述每个容器节点的前指针字段和后指针字段将所述若干容器节点连接,以构成容器池。The plurality of container nodes are connected through the front pointer field and the back pointer field of each container node to form a container pool.
  6. 根据权利要求5所述的方法,其特征在于,所述前指针字段指向本容器节点的前一个容器节点,所述后指针字段指向所述本容器节点的后一个容器节点。The method according to claim 5 is characterized in that the front pointer field points to the previous container node of the current container node, and the back pointer field points to the next container node of the current container node.
  7. 根据权利要求1所述的方法,其特征在于,所述容器节点包括控制字段,所述控制字段通过比特位的符号表示对应卷的操作状态。The method according to claim 1 is characterized in that the container node includes a control field, and the control field represents the operation status of the corresponding volume through a bit symbol.
  8. 根据权利要求7所述的方法,其特征在于,还包括:The method according to claim 7, further comprising:
    响应于所述比特位为第一二进制符号,确定所述比特位的对应卷的操作状态为可操 作状态;In response to the bit being a first binary symbol, determining that the operation state of the volume corresponding to the bit is operable Working status;
    响应于所述比特位为第二二进制符号,确定所述比特位的对应卷的操作状态为正常状态。In response to the bit being a second binary symbol, it is determined that the operation state of the volume corresponding to the bit is a normal state.
  9. 根据权利要求7所述的方法,其特征在于,还包括:The method according to claim 7, further comprising:
    通过控制线程对所述目标卷对应的比特位进行设置。The bit corresponding to the target volume is set through the control thread.
  10. 根据权利要求8所述的方法,其特征在于,还包括:The method according to claim 8, further comprising:
    通过工作线程扫描所述控制字段中的所有比特位,并查找其中具有所述第二二进制符号的比特位,以定位至所述目标卷。All bits in the control field are scanned by a working thread, and bits having the second binary symbol are searched therein to locate the target volume.
  11. 根据权利要求8所述的方法,其特征在于,还包括:The method according to claim 8, further comprising:
    响应于所述卷整合完成,将所述若干容器节点的控制字段的比特位全部置为所述第二二进制符号。In response to the volume integration being completed, all bits of the control fields of the plurality of container nodes are set to the second binary symbol.
  12. 根据权利要求1所述的方法,其特征在于,所述容器节点还包括管理表指针字段,所述管理表指针字段指向管理表存放区域,所述管理表用于管理所述卷。The method according to claim 1 is characterized in that the container node also includes a management table pointer field, the management table pointer field points to a management table storage area, and the management table is used to manage the volume.
  13. 根据权利要求12所述的方法,其特征在于,所述管理表包括卷标识号、所述块的所述预定大小、与所述卷对应的磁盘阵列的标识号以及卷状态,所述卷状态至少包括卷删除状态及卷扩容状态。The method according to claim 12 is characterized in that the management table includes a volume identification number, the predetermined size of the block, an identification number of the disk array corresponding to the volume, and a volume status, and the volume status at least includes a volume deletion status and a volume expansion status.
  14. 根据权利要求13所述的方法,其特征在于,还包括:The method according to claim 13, further comprising:
    通过控制线程对所述目标卷对应的管理表中的所述卷状态进行设置。The volume status in the management table corresponding to the target volume is set through a control thread.
  15. 根据权利要求13所述的方法,其特征在于,还包括:The method according to claim 13, further comprising:
    通过工作线程确认所述目标卷在对应的管理表中的卷状态,并基于所述确认的卷状态对所述目标卷进行操作。The volume status of the target volume in the corresponding management table is confirmed through a working thread, and the target volume is operated based on the confirmed volume status.
  16. 根据权利要求12所述的方法,其特征在于,还包括:The method according to claim 12, further comprising:
    响应于所述目标卷操作完成,更新所述目标卷对应的管理表。In response to the target volume operation being completed, a management table corresponding to the target volume is updated.
  17. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    响应于所述指定数量的磁盘阵列创建完成,判断非易失性随机访问存储器的剩余存储容量是否大于预设容量;In response to the specified number of disk arrays being created, determining whether a remaining storage capacity of the non-volatile random access memory is greater than a preset capacity;
    响应于所述剩余存储容量大于所述预设容量,基于所述剩余存储容量申请所述若干容器节点。In response to the remaining storage capacity being greater than the preset capacity, applying for the plurality of container nodes based on the remaining storage capacity.
  18. 根据权利要求1所述的方法,其特征在于,响应于磁盘阵列卡接收到主机下发的创建命令,基于所述创建命令创建指定数量的磁盘阵列包括:The method according to claim 1, characterized in that, in response to the disk array card receiving a creation command sent by the host, creating a specified number of disk arrays based on the creation command comprises:
    响应于磁盘阵列卡接收到主机下发的创建命令,解析所述创建命令,得到命令参 数,并基于所述命令参数创建指定数量的磁盘阵列。In response to the disk array card receiving the creation command sent by the host, parsing the creation command, obtaining command parameters The specified number of disk arrays will be created based on the command parameters.
  19. 一种基于磁盘阵列卡的存储虚拟化系统,其特征在于,包括:A storage virtualization system based on a disk array card, characterized by comprising:
    容器节点模块,配置用于响应于磁盘阵列卡接收到主机下发的创建命令,基于所述创建命令创建指定数量的磁盘阵列,并申请若干容器节点,以使每个容器节点管理多个磁盘阵列;The container node module is configured to, in response to the disk array card receiving a creation command sent by the host, create a specified number of disk arrays based on the creation command, and apply for a number of container nodes so that each container node manages multiple disk arrays;
    切分与整合模块,配置用于针对所述每个容器节点,将其每个磁盘阵列切分为多个预定大小的块以形成块组,并分别从每个块组中获取若干所述块并整合成卷;以及a splitting and integration module configured to split each disk array of each container node into a plurality of blocks of a predetermined size to form a block group, and obtain a plurality of blocks from each block group and integrate them into a volume; and
    卷操作模块,配置用于响应于所述磁盘阵列卡接收到用户下发的卷操作命令,基于所述卷操作命令通过所述容器节点找到目标卷,并利用相应的块组对所述目标卷进行操作。The volume operation module is configured to respond to the disk array card receiving a volume operation command issued by a user, find the target volume through the container node based on the volume operation command, and operate the target volume using the corresponding block group.
  20. 一种基于磁盘阵列卡的存储虚拟化装置,其特征在于,包括:A storage virtualization device based on a disk array card, characterized by comprising:
    容器节点层,包括若干容器节点,每个所述容器节点管理多个磁盘阵列;A container node layer, including a plurality of container nodes, each of which manages a plurality of disk arrays;
    块组层,包括多个块组,每个所述块组由一个所述磁盘阵列切分成的多个预定大小的块组成;以及A block group layer, comprising a plurality of block groups, each of the block groups being composed of a plurality of blocks of a predetermined size divided into the disk array; and
    卷层,包括若干卷,每个所述卷由所述多个块组中的若干所述块整合而成。The volume layer includes a plurality of volumes, each of which is formed by integrating a plurality of the blocks in the plurality of block groups.
  21. 根据权利要求20所述的装置,其特征在于,所述装置还包括卷操作模块,配置用于响应于所述磁盘阵列卡接收到用户下发的卷操作命令,基于所述卷操作命令通过所述容器节点找到目标卷,并利用相应的块组对所述目标卷进行操作。The device according to claim 20 is characterized in that the device also includes a volume operation module, which is configured to respond to the disk array card receiving a volume operation command issued by a user, find the target volume through the container node based on the volume operation command, and operate the target volume using a corresponding block group.
  22. 一种非易失性计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-18任意一项所述的方法。A non-volatile computer-readable storage medium, characterized in that it stores computer program instructions, and when the computer program instructions are executed by a processor, the method according to any one of claims 1 to 18 is implemented.
  23. 一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-18任意一项所述的方法。 A computer device comprises a memory and a processor, wherein a computer program is stored in the memory, and when the computer program is executed by the processor, the method according to any one of claims 1 to 18 is performed.
PCT/CN2023/101683 2022-12-05 2023-06-21 Storage virtualization method, system, apparatus, and device based on disk array card WO2024119771A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211545895.8 2022-12-05
CN202211545895.8A CN115639970B (en) 2022-12-05 2022-12-05 Storage virtualization method, system, device and equipment based on disk array card

Publications (1)

Publication Number Publication Date
WO2024119771A1 true WO2024119771A1 (en) 2024-06-13

Family

ID=84949688

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/101683 WO2024119771A1 (en) 2022-12-05 2023-06-21 Storage virtualization method, system, apparatus, and device based on disk array card

Country Status (2)

Country Link
CN (1) CN115639970B (en)
WO (1) WO2024119771A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115639970B (en) * 2022-12-05 2023-03-31 苏州浪潮智能科技有限公司 Storage virtualization method, system, device and equipment based on disk array card
CN115904255B (en) * 2023-01-19 2023-05-16 苏州浪潮智能科技有限公司 Data request method, device, equipment and storage medium
CN115951845B (en) * 2023-03-14 2023-05-30 苏州浪潮智能科技有限公司 Disk management method, device, equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060248379A1 (en) * 2005-04-29 2006-11-02 Jernigan Richard P Iv System and method for restriping data across a plurality of volumes
US20140372720A1 (en) * 2013-06-12 2014-12-18 Fujitsu Limited Storage system and operation management method of storage system
CN105808157A (en) * 2014-12-31 2016-07-27 中兴通讯股份有限公司 Storage architecture creating method, storage access method and storage system
CN111090394A (en) * 2019-12-05 2020-05-01 烽火通信科技股份有限公司 Volume-level RAID-based magnetic array management method and device
CN112162700A (en) * 2020-09-18 2021-01-01 北京浪潮数据技术有限公司 Storage volume creation method and device, electronic equipment and storage medium
CN115639970A (en) * 2022-12-05 2023-01-24 苏州浪潮智能科技有限公司 Storage virtualization method, system, device and equipment based on disk array card

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060248379A1 (en) * 2005-04-29 2006-11-02 Jernigan Richard P Iv System and method for restriping data across a plurality of volumes
US20140372720A1 (en) * 2013-06-12 2014-12-18 Fujitsu Limited Storage system and operation management method of storage system
CN105808157A (en) * 2014-12-31 2016-07-27 中兴通讯股份有限公司 Storage architecture creating method, storage access method and storage system
CN111090394A (en) * 2019-12-05 2020-05-01 烽火通信科技股份有限公司 Volume-level RAID-based magnetic array management method and device
CN112162700A (en) * 2020-09-18 2021-01-01 北京浪潮数据技术有限公司 Storage volume creation method and device, electronic equipment and storage medium
CN115639970A (en) * 2022-12-05 2023-01-24 苏州浪潮智能科技有限公司 Storage virtualization method, system, device and equipment based on disk array card

Also Published As

Publication number Publication date
CN115639970B (en) 2023-03-31
CN115639970A (en) 2023-01-24

Similar Documents

Publication Publication Date Title
WO2024119771A1 (en) Storage virtualization method, system, apparatus, and device based on disk array card
US20200326855A1 (en) Data write method and solid-state drive array
TWI709073B (en) Distributed storage system, distributed storage method and distributed facility
US7461198B2 (en) System and method for configuration and management of flash memory
US6996696B2 (en) Compressed file system for non-volatile RAM
TWI709864B (en) Memory system, method and device for utilizing a deduplication process
WO2018040591A1 (en) Remote data replication method and system
JP4809040B2 (en) Storage apparatus and snapshot restore method
US11403021B2 (en) File merging method and controller
JP2010525453A (en) Remove-on-delete technology for solid-state drive optimization
US11928053B2 (en) System garbage collection method and method for garbage collection in solid state disk
CN110908927A (en) Data storage device and method for deleting name space thereof
CN111381779A (en) Data processing method, device, equipment and storage medium
WO2019000949A1 (en) Metadata storage method and system in distributed storage system, and storage medium
WO2024113717A1 (en) Zns ssd-based file system control method, apparatus and device
WO2024152614A1 (en) Data request method and apparatus, and device and non-volatile readable storage medium
US6601135B1 (en) No-integrity logical volume management method and system
US10846023B2 (en) Storage device and storage area management method for reducing garbage collection processing
CN110795386A (en) Data writing method and server
TW477932B (en) Memory defragmentation in chipcards
US11226769B2 (en) Large-scale storage system and data placement method in large-scale storage system
US20230409235A1 (en) File system improvements for zoned storage device operations
CN111625477B (en) Processing method and device for read request for accessing erase block
CN111831589B (en) Method and device for improving IO command processing parallelism
CN114780043A (en) Data processing method and device based on multilayer cache and electronic equipment

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: 23899358

Country of ref document: EP

Kind code of ref document: A1