WO2021120218A1 - Method for improving utilization rate of ssd, storage device, and ssd controller - Google Patents

Method for improving utilization rate of ssd, storage device, and ssd controller Download PDF

Info

Publication number
WO2021120218A1
WO2021120218A1 PCT/CN2019/127180 CN2019127180W WO2021120218A1 WO 2021120218 A1 WO2021120218 A1 WO 2021120218A1 CN 2019127180 W CN2019127180 W CN 2019127180W WO 2021120218 A1 WO2021120218 A1 WO 2021120218A1
Authority
WO
WIPO (PCT)
Prior art keywords
service
qos
priority
index
pus
Prior art date
Application number
PCT/CN2019/127180
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 华为技术有限公司
Priority to CN201980102954.4A priority Critical patent/CN114787760A/en
Priority to PCT/CN2019/127180 priority patent/WO2021120218A1/en
Publication of WO2021120218A1 publication Critical patent/WO2021120218A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • This application relates to the storage field, and in particular to a method and device for improving a solid state drive (SSD).
  • SSD solid state drive
  • An SSD is a hard disk made of an array of solid-state electronic storage chips.
  • QoS quality of service
  • the quality of service (QoS) of the SSD refers to the ability of the SSD device to provide a stable, consistent and predictable request response service to the host business.
  • QoS is one of the key factors shaping the competitiveness of enterprise SSD products.
  • read latency is a key dimension to measure QoS.
  • bandwidth can be the number of read and write input and output per second (input output per second, IOPS), read and write bandwidth (bandwidth, BW), etc.; and, the life span can be the total write byte (TWB), The number of erasing and writing (, PE), etc.
  • IOPS input output per second
  • BW read and write bandwidth
  • PE read and write bandwidth
  • TWB total write byte
  • PE erasing and writing
  • the SSD Since the SSD is designed and produced, the specifications of its dimensions have been determined, but the requirements for SSDs are also very different for different usage scenarios, such as various services in the data center or server (such as applications or users, etc.).
  • various services in the data center or server such as applications or users, etc.
  • it is necessary to perform comprehensive management of hardware resources such as pooling and reallocation. After the hardware resource is pooled, it can be shared by multiple services under a certain allocation method, but it will inevitably introduce mutual interference between different services, for example, in a form of conflict or resource contention. The mutual interference between different services will reduce the QoS index.
  • NVMe non-volatile memory express
  • PLM predictable latency mode
  • the embodiment of the present application provides a method and device for improving the utilization rate of a solid-state hard disk, so as to improve the utilization rate of a storage device under the premise of guaranteeing the QoS of the SSD service.
  • the present application provides a storage device.
  • the device includes: a storage medium array and a solid state drive SSD controller coupled to the storage medium array;
  • the storage medium array includes a plurality of concurrent units PU, and the PU includes a master area (master area, At least one of MA) or lease area (LA), where MA is used to be allocated and used by the previous service, and LA is used to be allocated and used by at least one service;
  • SSD controller is used to receive the characteristics of at least one service Information, where the characteristic information includes a service quality QoS indicator; the SSD controller is also used to allocate the MA of the PU to the service with the largest QoS indicator according to the QoS indicator, and allocate the LA of the PU to the rest of the service.
  • the characteristic information also includes typical read/write input/output number IOPS requirements per second, and service storage capacity indicators or typical capacity requirements.
  • the SSD controller is also used to determine service requirements based on typical IOPS requirements.
  • the first number of PUs; the second number of PUs required by the business is determined according to the service storage capacity index or typical capacity requirements; the MA of the PU is allocated to the service with the largest QoS index, and the LA of the PU is allocated to the rest of the service.
  • the characteristic information further includes the write volume requirements of the business, the write amplification factor of the business, and the programming and erasing PE life of the solid-state hard disk.
  • the SSD controller is also used to: according to typical capacity requirements or business storage capacity To determine the OP requirements of oversupply redundant space, including OP requirements and typical capacity requirements or service storage capacity indicators, determine the number of PUs required by the service, as well as the service write volume requirements, the service write amplification factor, and the PE lifetime of solid-state drives. Two quantity.
  • the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA; where the IO operations are business IO operations .
  • the priority scheduling mode is strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
  • strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority; probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than that of scheduling priority. Probability of low-level IO operations; deprivation-priority scheduling is high-priority IO operations under preset conditions, allowing interruption of low-priority IO operations being executed; non-deprivation-priority scheduling is high-priority IO Under any conditions, the operation is not allowed to interrupt the low priority IO operation being executed.
  • the SSD controller is also used to: sort at least one service from high to low according to the QoS index; according to the sort, sequentially assign LAs with different priorities to the remaining services, where the priority of the LA is equal to The QoS indicators of the allocated services are positively correlated.
  • the SSD controller is also used to adjust the ratio of MA and LA in the PU if the service has a margin in the allocated PU to achieve the service index.
  • the SSD controller is also used to: if there is unused storage space in the PU and the service allocated to the PU has margin to achieve the service storage capacity index and the service quality QoS index, adjust the PU internal The ratio of MA to LA.
  • achieving the business storage capacity index with margin includes: the storage capacity allocated to the business is greater than the storage capacity required by the business; or the storage capacity allocated to the business is equal to the storage capacity required by the business, but The storage capacity allocated to the business at the current moment is not fully used by the business.
  • achieving the service QoS index with margin includes: the actual QoS of the service is greater than or equal to the QoS index; or the service ignores the requirement of the QoS index within a certain time.
  • the SSD controller is also used to: determine the first ratio value of the PU according to the service storage capacity index, where the first ratio value is the ratio value of the MA and LA in the PU; through a pilot or model Analyze and estimate to determine the first QoS indicator of the service; if the first QoS indicator is less than the service QoS indicator, adjust the first ratio value, and determine the second QoS indicator of the adjusted service through pilot or model analysis and estimation; if the second If the QoS index is less than the service QoS index, continue to adjust the first ratio value of the PU, and determine whether the new first QoS index is greater than or equal to the service QoS index; if the new first QoS index is still less than the service QoS index, repeat In the above steps, continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
  • the SSD controller is further configured to: keep the first ratio constant and adjust the multiples of the multiple PUs.
  • the third QoS index of the adjusted service is determined through pilot or model analysis and estimation, where the second ratio value is the ratio of MA and LA of one PU among multiple PUs; if the third If the QoS index is less than the service QoS index, adjust the first ratio value, and adjust the second ratio value of one or more PUs in multiple PUs at the same time, and determine the second QoS index of the adjusted service through pilot or model analysis and estimation ; If the second QoS index is less than the service QoS index, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine whether the new third QoS index is greater than or equal to the service QoS index; if new When the third QoS index is still less than the service QoS index,
  • the SSD controller is further configured to: if the PU allocated by the service has an LA, and part of the LA is not used, then the unused part of the LA is allocated to other services.
  • the SSD controller is also used to: if other services ignore the requirements of QoS indicators within a certain period of time, determine to allocate the unused part of the LA to other services; or through pilot or model analysis Estimate and determine whether the QoS indicators of other services are greater than or equal to the business QoS indicators after receiving the allocated unused part of the LA; if the QoS indicators of other services are greater than or equal to the business QoS indicators, then determine the unused part of the LA Assign to other businesses.
  • the storage medium array is also used to: in the same PU, if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
  • the storage medium array is also used to: select the physical block to be rotated from the MA; select an idle block in the LA in the same PU, or select the MA in the same PU Write the valid data in the block to be rotated into the free block; if you select an free block in the LA in the same PU, modify the attribute of the free block to MA, and change the block to be rotated Mark the data as invalid, and modify the attribute to LA; if you select an idle block in the MA in the same PU, mark the data in the block to be rotated as invalid.
  • the specific conditions include: the service triggers the rotation daemon; or the service ignores the requirements of the service QoS index within a specific time; or the PU assigned by the service is operating in the background and does not affect the service QoS index Or at least one host or virtual machine actively initiates it, where the host or virtual machine is also used to deliver at least one service; or the PU fails.
  • the storage medium array is also used to: if the area divided by the current PU cannot match the priority of the service, divide the MA into a first priority MA and a second priority LA; and/or LA is divided into a third priority LA and a fourth priority LA; if the area of the divided PU still cannot match the priority of the service, the area within the PU will continue to be binary division until it matches the priority of the service; , The priority of the area after each binary division does not exceed the priority before the division of the area.
  • the SSD controller and the storage medium array are packaged on an integrated chip; or the SSD controller includes a first SSD controller and a second SSD controller; the first SSD controller is located in at least one host The second SSD controller and storage medium array are packaged on an integrated chip.
  • the storage medium array includes at least one storage medium, and the storage medium is any of flash memory, dynamic random access memory DRAM, static random access memory SRAM, phase change memory PCM, and storage class memory SCM.
  • the storage medium is any of flash memory, dynamic random access memory DRAM, static random access memory SRAM, phase change memory PCM, and storage class memory SCM.
  • this application provides a solid state drive SSD controller, which is coupled with a storage medium array; wherein the storage medium array includes a plurality of concurrent units PU, and the PU includes at least one of the main area MA or the rental area LA.
  • the storage medium array includes a plurality of concurrent units PU, and the PU includes at least one of the main area MA or the rental area LA.
  • MA is used to be allocated and used by one service
  • LA is used to be allocated and used by at least one service
  • SSD controller is used to receive characteristic information of at least one service, where the characteristic information includes service quality QoS indicators
  • SSD control The device is also used to allocate the PU of the PU to the service with the largest QoS index according to the QoS index, and to allocate the PU's LA to the rest of the service.
  • the characteristic information also includes typical read/write input/output number IOPS requirements per second, and service storage capacity indicators or typical capacity requirements.
  • the SSD controller is also used to determine service requirements based on typical IOPS requirements.
  • the first number of PUs; the second number of PUs required by the business is determined according to the service storage capacity index or typical capacity requirements; the MA of the PU is allocated to the service with the largest QoS index, and the LA of the PU is allocated to the rest of the service.
  • the characteristic information further includes the write volume requirements of the business, the write amplification factor of the business, and the programming and erasing PE life of the solid-state hard disk.
  • the SSD controller is also used to: according to typical capacity requirements or business storage capacity To determine the OP requirements of oversupply redundant space, including OP requirements and typical capacity requirements or service storage capacity indicators, determine the number of PUs required by the service, as well as the service write volume requirements, the service write amplification factor, and the PE lifetime of solid-state drives. Two quantity.
  • the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA; where the IO operations are business IO operations .
  • the priority scheduling mode is strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
  • strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority; probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than that of scheduling priority. Probability of low-level IO operations; deprivation-priority scheduling is high-priority IO operations under preset conditions, allowing interruption of low-priority IO operations being executed; non-deprivation-priority scheduling is high-priority IO Under any conditions, the operation is not allowed to interrupt the low priority IO operation being executed.
  • the SSD controller is also used to: sort at least one service from high to low according to the QoS index; according to the sort, sequentially assign LAs with different priorities to the remaining services, where the priority of the LA is equal to The QoS indicators of the allocated services are positively correlated.
  • the SSD controller is also used to adjust the ratio of MA and LA in the PU if the service has a margin in the allocated PU to achieve the service index.
  • the SSD controller is also used to: if there is unused storage space in the PU and the service allocated to the PU has margin to achieve the service storage capacity index and the service quality QoS index, adjust the PU internal The ratio of MA to LA.
  • achieving the business storage capacity index with margin includes: the storage capacity allocated to the business is greater than the storage capacity required by the business; or the storage capacity allocated to the business is equal to the storage capacity required by the business, but The storage capacity allocated to the business at the current moment is not fully used by the business.
  • achieving the service QoS index with margin includes: the actual QoS of the service is greater than or equal to the QoS index; or the service ignores the requirement of the QoS index within a certain time.
  • the SSD controller is also used to: determine the first ratio value of the PU according to the service storage capacity index, where the first ratio value is the ratio value of the MA and LA in the PU; through a pilot or model Analyze and estimate to determine the first QoS indicator of the service; if the first QoS indicator is less than the service QoS indicator, adjust the first ratio value, and determine the second QoS indicator of the adjusted service through pilot or model analysis and estimation; if the second If the QoS index is less than the service QoS index, continue to adjust the first ratio of multiple PUs in the PU, and determine whether the new first QoS index is greater than or equal to the service QoS index; if the new first QoS index is still less than the service QoS index At this time, repeat the above steps and continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
  • the SSD controller is further configured to: keep the first ratio constant and adjust the multiples of the multiple PUs.
  • the third QoS index of the adjusted service is determined through pilot or model analysis and estimation, where the second ratio value is the ratio of MA and LA of one PU among multiple PUs; if the third If the QoS index is less than the service QoS index, adjust the first ratio value, and adjust the second ratio value of one or more PUs in multiple PUs at the same time, and determine the second QoS index of the adjusted service through pilot or model analysis and estimation ; If the second QoS index is less than the service QoS index, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine whether the new second QoS index is greater than or equal to the service QoS index; if new When the second QoS index of is still less than the service QoS index
  • the SSD controller is further configured to: if the PU allocated by the service has an LA, and part of the LA is not used, then the unused part of the LA is allocated to other services.
  • the SSD controller is also used to: if other services ignore the requirements of QoS indicators within a certain period of time, determine to allocate the unused part of the LA to other services; or through pilot or model analysis Estimate and determine whether the QoS indicators of other services are greater than or equal to the business QoS indicators after receiving the allocated unused part of the LA; if the QoS indicators of other services are greater than or equal to the business QoS indicators, then determine the unused part of the LA Assign to other businesses.
  • the SSD controller is also used to: in the same PU, the SSD controller controls the storage medium array, and if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
  • the SSD controller is also used to: control the storage medium array, select the physical block to be rotated from the MA; select an idle block in the LA in the same PU, or select the same An idle block in the MA in the PU; write the valid data in the block to be rotated into the idle block; if an idle block in the LA in the same PU is selected, modify the attribute of the idle block to MA, and Mark the data in the block to be rotated as invalid and modify the attribute to LA; if an idle block in the MA in the same PU is selected, the data in the block to be rotated is marked as invalid.
  • the specific conditions include: the service triggers the rotation daemon; or the service ignores the requirements of the service QoS index within a specific time; or the PU assigned by the service is operating in the background and does not affect the service QoS index Or at least one host or virtual machine actively initiates it, where the host or virtual machine is also used to deliver at least one service; or the PU fails.
  • the SSD controller is also used to: if the area divided by the current PU cannot match the priority of the service, the SSD controller controls the storage medium array and divides the MA into the first priority MA and the second priority Level LA, and/or divide the LA into a third priority LA and a fourth priority LA; if the area of the divided PU still cannot match the priority of the service, continue to divide the area within the PU into binary division until Match the priority of the service; where the priority of the area after each binary division does not exceed the priority before the division of the area.
  • the SSD controller and the storage medium array are packaged on an integrated chip; or the SSD controller includes a first SSD controller and a second SSD controller; the first SSD controller is located in at least one host The second SSD controller and storage medium array are packaged on an integrated chip.
  • the present application provides a method for improving the utilization rate of a solid state drive.
  • the method includes: receiving characteristic information of at least one service, wherein the characteristic information includes a service quality QoS index; and dividing the main area of the concurrent unit PU according to the QoS index
  • the MA is allocated to the service use with the largest QoS index, and the leased area LA of the PU is allocated to the rest of the service use, where the PU includes at least one of the MA or the LA.
  • the characteristic information also includes typical read/write input/output number IOPS requirements per second, and business storage capacity indicators or typical capacity requirements; according to typical IOPS requirements, determine the first number of PUs required by the business; Service storage capacity index or typical capacity requirement, to determine the second number of PUs required by the service; assigning the PU’s MA to the service with the largest QoS index, and assigning the PU’s LA to the rest of the service use includes: The MA of the first PU is allocated to the use of the service with the largest QoS index, and the LA of the first PU is allocated to the use of the remaining services, where the number of PUs included in the first PU is the maximum of the first number and the second number .
  • the characteristic information also includes the write volume requirements of the business, the write amplification factor of the business, and the programming and erasing PE life of the solid-state hard disk; the second PU number is determined according to the business storage capacity index or typical capacity requirements. Including: According to typical capacity requirements or business storage capacity indicators, business write volume requirements, business write amplification factor, solid-state drive PE life, determine the excess redundant space OP requirements; combine OP requirements and typical capacity requirements or business storage The capacity index determines the second number of PUs required by the business.
  • the method further includes: located in the same PU, the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA; wherein, the IO operations are services IO operations.
  • the priority scheduling mode is strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
  • strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority; probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than that of scheduling priority. Probability of low-level IO operations; deprivation-priority scheduling is high-priority IO operations under preset conditions, allowing interruption of low-priority IO operations being executed; non-deprivation-priority scheduling is high-priority IO Under any conditions, the operation is not allowed to interrupt the low priority IO operation being executed.
  • allocating the PU's LA to other services includes: sorting at least one service from high to low according to QoS indicators; according to the sorting, sequentially assigning LAs of different priorities to the remaining services, where LA The priority of is positively correlated with the QoS index of the assigned service.
  • the method further includes: adjusting the ratio of MA and LA in the PU if the service has a margin in the allocated PU to achieve the service index.
  • adjusting the ratio of MA and LA in the PU includes: if the PU has unused storage space and is allocated to the business of the PU If there is margin to achieve the business storage capacity index and the business service quality QoS index, the ratio of MA and LA in the PU will be adjusted.
  • achieving the business storage capacity index with margin includes: the storage capacity allocated to the business is greater than the storage capacity required by the business; or the storage capacity allocated to the business is equal to the storage capacity required by the business, but The storage capacity allocated to the business at the current moment is not fully used by the business.
  • achieving the service QoS index with margin includes: the actual QoS of the service is greater than or equal to the QoS index; or the service ignores the requirement of the QoS index within a certain time.
  • adjusting the ratio of MA and LA in the PU includes: determining a first ratio value of the PU according to a service storage capacity index, where the first ratio value is the ratio value of MA and LA in the PU; Pilot or model analysis and estimation to determine the first QoS index of the service; if the first QoS index is less than the service QoS index, adjust the first ratio value, and determine the adjusted second QoS index of the service through pilot or model analysis and estimation; If the second QoS index is less than the service QoS index, continue to adjust the first ratio value of the PU, and determine whether the new first QoS index is greater than or equal to the service QoS index; if the new first QoS index is still less than the service QoS index , Repeat the above steps and continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
  • the method further includes: keeping the first ratio constant and adjusting multiple second ones in the multiple PUs.
  • the third QoS index of the adjusted service is determined through pilot or model analysis and estimation, where the second ratio value is the ratio of the MA and LA of one PU among the multiple PUs; if the third QoS index is less than For service QoS indicators, adjust the first ratio value, and simultaneously adjust the second ratio value of one or more PUs in multiple PUs, and determine the second QoS indicator of the adjusted service through pilot or model analysis and estimation; 2.
  • the QoS index is less than the service QoS index, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine whether the new second QoS index is greater than or equal to the service QoS index; if the new second QoS index is greater than or equal to the service QoS index; When the QoS index is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the service QoS index is greater than or equal to the service QoS index.
  • the method further includes: if the PU allocated by the service has an LA and part of the LA is not used, allocating the part of the LA that is not used to other services.
  • allocating part of the unused LA to other services includes: if other services ignore the requirements of QoS indicators within a certain period of time, then determining to allocate the part of the unused LA to other services; Or through pilot or model analysis and estimation, it is determined whether the QoS indicators of other services are greater than or equal to the business QoS indicators after receiving the allocated unused part of the LA; if the QoS indicators of other services are greater than or equal to the business QoS indicators, it is determined The unused part of LA is allocated to other services.
  • the method further includes: in the same PU, if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
  • the physical position rotation includes: selecting the physical block to be rotated from the MA; selecting an idle block in the LA in the same PU, or selecting one of the MA in the same PU Free block; write the valid data in the block to be rotated into the free block; if you select an free block in the LA in the same PU, modify the attribute of the free block to MA; mark the data in the block to be rotated It is invalid, and the attribute is changed to LA; if a free block in the MA in the same PU is selected, the data in the block to be rotated will be marked as invalid.
  • the specific conditions include: the service triggers the rotation daemon; or the service ignores the requirements of the service QoS index within a specific time; or the PU assigned by the service is operating in the background and does not affect the service QoS index Or at least one host or virtual machine actively initiates it, where the host or virtual machine is also used to deliver at least one service; or the PU fails.
  • the method further includes: if the area divided by the current PU cannot match the priority of the service, dividing the MA into a first priority MA and a second priority LA; and/or dividing the LA into The third priority LA and the fourth priority LA; if the area of the divided PU still cannot match the priority of the service, continue to divide the area within the PU until the priority of the service is matched; among them, every time The priority of the area after the binary division does not exceed the priority before the division of the area.
  • the present application provides a computer-readable storage medium, including instructions, which when run on a computer, cause the computer to execute the method according to any one of the third aspects.
  • the present application provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the method as in any one of the third aspect.
  • the method and device for improving the utilization rate of solid-state hard disks provided in this application are performed by inputting different services or dimensions of service QoS, IOPS, capacity, etc., and assigning the number of PUs as needed.
  • the proportions of different logical partitions in the concurrent unit by adjusting the proportions of different logical partitions in the concurrent unit, the proportion of PUs occupied by services can be reduced, while free resources are released to further improve the utilization of storage media. And through physical rotation, the wear leveling of the physical blocks in the PU is realized.
  • This application also divides the concurrent units into different logical partitions and assigns different priority dimensions to refine management granularity, increase management flexibility, and improve storage media utilization while ensuring service QoS indicators.
  • FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the application
  • FIG. 2 is a schematic structural diagram of a flash storage medium structure provided by an embodiment of the application.
  • FIG. 3a is a schematic diagram of a non-NVM Sets isolation data arrangement provided by an embodiment of the application.
  • FIG. 3b is a schematic diagram of an isolated data arrangement with NVM Sets according to an embodiment of the application.
  • FIG. 4 is a schematic diagram of an arrangement of concurrent units provided by an embodiment of the application.
  • FIG. 5 is a schematic diagram of a concurrent unit area division provided by an embodiment of the application.
  • FIG. 6 is a structural diagram of a storage device provided by an embodiment of this application.
  • FIG. 7a is a schematic diagram of service distribution of a concurrent unit according to an embodiment of the application.
  • FIG. 7b is a schematic diagram of another concurrent unit service distribution provided by an embodiment of this application.
  • FIG. 8 is a schematic diagram of a concurrent unit area adjustment provided by an embodiment of the application.
  • FIG. 9 is a schematic diagram of a physical location rotation of logical partitions in a concurrent unit according to an embodiment of the application.
  • FIG. 10 is a schematic diagram of another physical location rotation of logical partitions in a concurrent unit provided by an embodiment of the application;
  • FIG. 11 is a schematic diagram of a dichotomy of a logical partition of a concurrent unit according to an embodiment of the application.
  • FIG. 12 is a schematic diagram of a concurrent unit allocation service provided by an embodiment of this application.
  • FIG. 13 is a schematic diagram of another application scenario provided by an embodiment of the application.
  • FIG. 14 is a schematic diagram of another application scenario provided by an embodiment of this application.
  • FIG. 15 is a schematic diagram of yet another application scenario provided by an embodiment of the application.
  • FIG. 16 is a flowchart of a method for improving the utilization rate of a solid state drive provided by an embodiment of the application.
  • FIG. 17 is a flowchart of a method for adjusting the proportion of logical partitions of a concurrent unit according to an embodiment of the application
  • FIG. 18 is a flowchart of a method for rotating the physical position of a concurrent unit according to an embodiment of the application
  • FIG. 19 is a flowchart of a method for refining logical partitions of a concurrent unit according to an embodiment of the application.
  • FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the application.
  • this scenario may include one or more hosts, one or more SSD controllers, and one or more storage medium arrays.
  • one or more hosts communicate with various interfaces such as NVMe, serial attached small computer system interface (SAS), and high-speed serial computer expansion bus interface (peripheral component interconnect express, PCIe).
  • NVMe serial attached small computer system interface
  • SAS serial attached small computer system interface
  • PCIe peripheral component interconnect express
  • the front end of the SSD controller is connected.
  • the back end of each SSD controller is connected to the corresponding storage medium array through a non-flash interface (NFI), so that the SSD controller can read, write, and erase the data in the storage medium array. operating.
  • NFI non-flash interface
  • the storage medium in this application can be flash memory (flash), dynamic random access memory (dynamic random access memory, DRAM), static random access memory (static random-access memory, SRAM), or relative Any storage medium with the concept of a concurrent unit, such as phase change memory (PCM) and storage-class memory (SCM).
  • PCM phase change memory
  • SCM storage-class memory
  • FIG. 2 is a schematic structural diagram of a flash storage medium provided by an embodiment of the application.
  • FIG. 2 shows the storage medium array in FIG. 1.
  • the flash array includes multiple flashes, each flash in the flash array can include multiple channels (channels), each channel can be composed of multiple modules (die), and each die can be composed of multiple planes. (plane), each plane can be composed of multiple blocks.
  • SSDs will face the need to mix the deployment of "high QoS, low IOPS requirements" and "high IOPS, low QoS requirements” services. At the same time, there may be situations where it is necessary to temporarily increase the IOPS of NVM Sets.
  • QoS is improved by using spatial isolation (or called concurrent isolation).
  • the SSD disks are separated into multiple regions according to the concurrency of the media to solve the problem of IO conflicts caused by multi-tenant access, which leads to the problem of deterioration of delay.
  • This problem can be regarded as the main reason for the deterioration of QoS.
  • the tenant refers to the customer who uses the system or computer computing resources, including all data that can be identified as a designated user in the system, such as account and statistical information, various data created by the user in the system, and the user's own customization Application environment, etc., belong to the scope of tenants.
  • each isolated NVM Sets is equivalent to a sub-disk of the SSD disk, which is exclusively shared by a single tenant or shared by a small number of tenants, thereby reducing IO conflicts and improving QoS.
  • FIG. 3a is a schematic diagram of a non-NVM Sets isolation data arrangement provided by an embodiment of the application.
  • Each block shown in FIG. 3a can be understood as a die, and FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a
  • FIG. 3b is a schematic diagram of an isolated data arrangement with NVM Sets according to an embodiment of the application.
  • each block shown in FIG. 3b can be understood as a die, and FIG. 3b is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • FIG. 3b is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel.
  • each tenant is isolated from each other, resulting in a reduction in the maximum number of concurrent media channels for each tenant, and thus the maximum IOPS that each tenant can achieve is also greatly reduced.
  • the services of each tenant are independent of each other, the physical bandwidth of the SSD disk cannot be fully utilized.
  • two or more systems need to be designed accordingly to meet the business needs of different customers.
  • This application divides the concurrent units in the storage medium array into a main area MA and a rental area LA.
  • the services with high QoS requirements are allocated to the MA of the storage media array; for the services with low QoS requirements, they can be allocated to the LA, so that multiple tenants or multiple services can be co-location (co-location) Mutual interference problems arising from time to time.
  • the LA of the storage medium can be shared by multiple services with low QoS, the utilization rate of the storage device is improved while ensuring the QoS of the service.
  • the business involved in this application may also be a business set that includes multiple businesses.
  • FIG. 4 is a schematic diagram of an arrangement of concurrent units provided by an embodiment of the application.
  • the storage medium located in the storage medium array contains multiple parallel units (PU).
  • each PU displayed in each column can be regarded as being in the same channel, as shown by the channel arrow, each PU in the horizontal direction represents a PU in a different channel.
  • the PU in each column represents each die in the channel.
  • the smallest unit that can concurrently and independently execute different operation types or different operation parameter commands is used as the PU.
  • the smallest level that can perform "read/write/erase” operations independently of each other is die, then die is the PU in this application. It is understandable that for more advanced storage devices, if it can support independent and concurrent "read/write/erase" operations between plane levels, then for this type of storage media, plane can be involved in this application ⁇ PU.
  • FIG. 5 is a schematic diagram of a concurrent unit area division provided by an embodiment of the application.
  • this application further divides each PU into a detailed division, for example, into two logical areas, namely the main area MA and the rental area LA.
  • the MA in this application is only allowed to be allocated to a specific service or service set.
  • the storage medium MA can only be used exclusively by a single service or a collection of services.
  • LA it can be allowed to be allocated to one or more services or service sets.
  • the storage medium LA can only be shared by one or more services or service sets.
  • FIG. 6 is a structural diagram of a storage device provided by an embodiment of the application.
  • the device may include: a storage medium array and a solid state hard disk SSD controller coupled to the storage medium array.
  • the SSD controller may include a receiving unit and a processing unit.
  • the device may also include a host. Used to deliver at least one service or service set to the SSD controller.
  • the host may be one or more hosts.
  • one or more virtual machines (VM) or virtual functions (VF) may also run on the host.
  • VM virtual machines
  • VF virtual functions
  • the SSD controller can receive services or service sets delivered from one or more hosts and one or more virtual machines or virtual functions, which is not limited in this application.
  • one or more hosts or virtual machines are connected to the SSD controller through various interfaces such as NVMe, SAS, PCIe, and so on.
  • the receiving unit in the SSD controller receives the characteristic information of at least one service or service set issued by at least one host or virtual machine.
  • the characteristic information includes service quality QoS indicators.
  • the processing unit in the SSD controller can also be used to sort at least one service or service set according to the size of the QoS index of each service or service set. Then the PU's MA is allocated to the service or service set with the largest QoS index for use, and the PU's LA is allocated to the remaining services or service sets for use according to the ranking, so as to perform corresponding operations.
  • the characteristic information further includes a typical read/write input/output number IOPS requirement per second, and a service storage capacity index or typical capacity requirement.
  • the characteristic information may also include any other information that may be used to describe the characteristics of a service or a service set.
  • the SSD controller determines the first number of PUs required by the service or service set according to typical IOPS requirements, which can also be referred to as the first number of PUs. After that, according to the service storage capacity index or typical capacity requirements, the second number of PUs required by the service or service set is determined, which can also be referred to as the second number of PUs.
  • the first PU is the minimum number of PUs required.
  • the SSD controller then allocates the MA of the least number of PUs to the service or service set with the largest QoS index, and allocates the LA of the least number of PUs to the rest of the service or service set according to the ordering.
  • this application divides the minimum number of PUs in the storage medium array into a specific access area. Those skilled in the art should understand that the specific access area is divided only for the convenience of description, and there is no operation of dividing the specific access area in the actual service distribution process.
  • the processing unit divides the first 3 PUs in the first row and the first 3 PUs in the second row in the storage medium 1 into a specific access area.
  • the specific access area is framed with bold lines.
  • the service or service set received by the receiving unit is allocated to the MA or LA in the area through the NFI.
  • each PU may only include MA, or only LA, and may also include MA and LA.
  • assigning a certain service to a PU in this application has the same meaning as “allocating the PU to a certain service for use”.
  • the service or service set when there is only one service or service set, the service or service set is allocated to the MA of the PU in the specific access area. For example, as shown in FIG. 7a, the service or service set is allocated to the MA in a specific access area, that is, the gray area in FIG. 7a.
  • sorting is performed according to the size of the QoS indicators of the at least two services or service sets.
  • the service or service set with the largest QoS index is allocated to the MA of the PU in the specific access area. For example, as shown in FIG. 7a, the service or service set is allocated to the MA in a specific access area, that is, the gray area in FIG. 7a.
  • the remaining services or service sets are sequentially allocated to the LA of the PU in the specific access area.
  • the service or service set is allocated to the LA in the specific access area, that is, the gray area in FIG. 7b.
  • the remaining services or service sets can be assigned to LAs with different priorities in sequence.
  • the priority of LA can be positively correlated with the QoS index of the assigned service or service set.
  • the services or service sets with high QoS requirements in the above ranking may be allocated first, and then the services or service sets with low QoS requirements may be allocated.
  • each PU may include one or more LAs, and different LAs may have different priorities.
  • each PU can only have one MA, and the priority of the MA is the highest.
  • a logical partition with a higher priority has a smaller number of services or service sets that it participates in sharing. It is understandable that the MA with the highest priority is only assigned to one service or service set.
  • the higher the priority LA the fewer services or service sets can be shared.
  • the MA and LA in the same PU are respectively called by different services or service sets. At this time, in the same PU, all IO priorities for accessing MA are higher than those for accessing LA. Where IO is the IO operation of the corresponding business or business set.
  • the priority scheduling method of IO operation can be any priority scheduling method or multiple priority scheduling methods such as strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, non-deprivation priority scheduling, etc.
  • the combination form can be any priority scheduling method or multiple priority scheduling methods such as strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, non-deprivation priority scheduling, etc. The combination form.
  • strict priority scheduling may be that IO operations with high priority are scheduled before IO operations with low priority.
  • Probabilistic priority scheduling may be that the probability of scheduling an IO operation with a high priority is higher than the probability of scheduling an IO operation with a low priority.
  • the deprivation priority scheduling can be that IO operations with high priority are allowed to interrupt the IO operations with low priority being executed under preset conditions.
  • Non-deprivation priority scheduling can be that high-priority IO operations are not allowed to interrupt the low-priority IO operations being performed under any conditions.
  • the priority scheduling mode may also be any other priority scheduling mode, or a combination of multiple priority scheduling modes, which is not limited in this application.
  • determining the minimum number of PUs required for the processing unit in the SSD controller can be specifically determined in the following manner.
  • the processing unit in the SSD controller first determines the typical IOPS requirements of the service or service set issued by one or more hosts or virtual machines. According to the typical IOPS requirements of the service or service set, the first PU number is determined. It can be understood that the first number of PUs is the number of least used PUs determined according to the IOPS required by the service or service set.
  • the processing unit in the SSD controller also needs to determine the service storage capacity index or typical capacity requirements of the service or service set. And according to the service storage capacity index or typical capacity requirement of the service or service set, the second PU number is determined.
  • the second number of PUs is the number of least used PUs determined according to the service storage capacity index or typical capacity requirements of the service or service set requirements.
  • the processing unit will select the largest number of the first PU number and the second PU number as the required minimum number of PUs.
  • the service storage capacity index may be used to indicate how much capacity (capacity) the service or service set needs to use.
  • capacity capacity
  • the characteristic information further includes information such as the write volume requirements of the service or the service set, the write amplification factor of the service or the service set, and the program erase (PE) life of the solid state disk.
  • the processing unit determines the second number of PUs, it can be based on typical capacity requirements or service storage capacity indicators, terabyte write (TBW) requirements of the service or service set, write amplification factor of the service or service set, SSD To determine the over-provision (OP) requirements for the longevity of the PE. The processing unit then combines OP requirements and typical capacity requirements or business storage capacity indicators to determine the second PU number.
  • the number of PUs is allocated on demand.
  • first assign high QoS demand services then assign low QoS demand services; high priority logical partitions are assigned to high QoS demand services first, and low priority logical partitions are first assigned to low QoS demand services; the higher the priority Logical partition, the less the number of businesses involved in sharing.
  • allocating the number of PUs on demand it also allocates services to different logical partitions, which solves the problem of mutual interference when multi-tenant/multi-service co-location, and ensures that the utilization of storage media is maximized under the premise of meeting various business needs ⁇ .
  • FIG. 8 is a schematic diagram of a concurrent unit area adjustment provided by an embodiment of the application.
  • the ratio of MA and LA in the PU of the specific access area is adjusted.
  • the proportions of MA and LA of the PU in the specific access area can be adjusted statically or dynamically. After adjustment, for example, as shown in the right half of FIG. 8, the MA of each PU is divided into a part of the storage space and classified as LA.
  • the service index may include a service storage capacity index and a service QoS index.
  • the processing unit in the SSD controller can adjust the ratio of MA and LA in the PU statically or dynamically.
  • the processing unit determines whether there is unused storage space in the PU in the specific access area. If the processing unit determines that there is unused storage space, it continues to determine whether the service or service set allocated to the specific access area can achieve the service storage capacity index and the service QoS index with margin. If the processing unit determines that the service storage capacity index and the service quality QoS index can be achieved with margin, the ratio of MA and LA in the PU of the specific access area is adjusted.
  • achieving a service storage capacity index with margin may be that the storage capacity allocated to the service or service set allocated to the specific access area is greater than the storage capacity required by the service or service set. It is understandable that for different storage media, the storage capacity of a single PU is also different. For a PU with a large capacity, there is still unused storage capacity after the service or service set is allocated. Or, the storage capacity allocated to the business or business set allocated to the specific access area is equal to the storage capacity required by the business or business set, but the storage capacity allocated to the business or business set at the current moment has not been allocated by the business or business set. The business or business collection is fully used.
  • the business or business set does not fully use the allocated storage capacity temporarily; or because the business or business set will only be fully utilized in the later stage of execution, then the business or business set will not fully use the allocated storage capacity for the time being.
  • the allocated storage capacity cannot be used in the early stage of the business collection. Or it may be that after the initial adjustment of the MA and LA in the specific access area, the storage capacity allocated to the service or service set allocated to the specific access area is still greater than the storage capacity required by the service or service set.
  • the processing unit will compress logical partitions to achieve preliminary adjustments according to the storage capacity required by the service or service set.
  • the initial adjustment of the processing unit is to compress the logical partition to just meet the storage capacity requirements of the service or service set at one time, and use the remaining part as the LA area. It is understandable that for the remaining LA, the allocated service or service set cannot be perfectly matched, so the storage capacity for the service or service set subsequently allocated to the LA may still be excessive.
  • the service QoS index with margin can be that the actual QoS of the service or service set assigned to the specific access area is greater than or equal to the QoS index of the service or service set; or, the actual QoS assigned to the specific access area is greater than or equal to the QoS index of the service or service set;
  • the service or service set in the visit area can ignore the QoS index requirements of the service or service set. For example, if the storage system supports the NVMe protocol, the non-deterministic window (NDWIN) interval in the PLM of the input and output determinism (IOD) in the protocol will not affect the business. Or the QoS of the service set is restricted.
  • the processing unit in the SSD controller can perform the logical partitioning of the service or service set allocated to the specific access area. Proportion adjustment. For example, the logical partition occupied by the service or service set can be compressed until the service storage capacity index and the service QoS index just meet the requirements. Mark the remaining logical partitions as LA and continue to allocate them to other services or service sets for use.
  • the processing unit in the SSD controller can perform the processing of the MA and LA in the PU of the specific access area. The proportion is adjusted.
  • the processing unit in the SSD controller determines the first ratio value in the specific access area according to the service storage capacity index.
  • the first ratio value is the ratio value between MA and LA in the specific access area. Determine the first QoS index of the service or service set allocated to a specific access area through pilot or model analysis and estimation. If the first QoS indicator is less than the service QoS indicator, the first ratio value is adjusted.
  • the first ratio value needs to be adjusted to ensure that the QoS of the service or service set is satisfied. index.
  • the adjusted second QoS index of the service or service set determines whether the second QoS index is greater than or equal to the service QoS index. If the second QoS indicator is still less than the service QoS indicator, continue to adjust the first ratio value of the PU in the specific access area, and determine whether the new first QoS indicator is greater than or equal to the service QoS indicator. If the new first QoS index is still smaller than the service QoS index, repeat the above steps and continue to adjust the first ratio value. Until the QoS index of the service or service set is greater than or equal to the service QoS index.
  • the first ratio value when there are multiple PUs, after determining that the first QoS indicator is less than the service QoS indicator, the first ratio value may be kept unchanged, and the second ratio value of the multiple PUs in the specific access area may be adjusted.
  • adjusting the second ratio value at this time can be understood as the ratio of MA to LA in the special access area unchanged, and the ratio of MA to LA of each PU in the special access area is adjusted.
  • the second ratio value is the ratio value of the MA and LA of each PU in the specific access area.
  • the third QoS index is less than the service QoS index, adjust the first ratio value, and adjust the second ratio value of one or more PUs in multiple PUs at the same time, and determine the adjusted service or service through pilot or model analysis and estimation Set the second QoS indicator; if the second QoS indicator is less than the service QoS indicator, keep the adjusted first ratio unchanged, continue to adjust the second ratio of PU, and determine whether the new third QoS indicator is greater than or equal to Service QoS index; if the new third QoS index is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the QoS index of the service or service set is greater than or equal to the service QoS index.
  • the processing unit in the SSD controller may also have an LA in the PU in the specific access area allocated by the service or service set, and when part of the LA is not used, the unused part of the LA is allocated to other Business or business collection.
  • the LA in this embodiment may be, for example, the LA divided after adjusting the scale in FIG. 8. The processing unit can then redistribute the divided LA to other services or service sets for use.
  • the processing unit may determine that if other services or service sets ignore the requirements of QoS indicators within a specific time, it may allocate the unused part of LA to other services or service sets. It is understandable that all unused LAs can also be allocated to other services or service groups, and then the ratio of MA to LA can be adjusted according to the service indicators of other services or service groups as shown in Figure 8 above. This application is not limited here.
  • it may be determined through pilot projects or model analysis and estimation to determine whether the QoS index of the other service or service group is greater than or equal to the service QoS index after the other service or service group accepts the allocated unused part of the LA.
  • the QoS index of other services or service groups is greater than or equal to the service QoS index, it is determined to allocate the unused part of the LA to other services or service groups. It is understandable that when renting unused LAs for other services or service groups, it is necessary to ensure that the QoS indicators of other services or service groups are not affected. Only then can the LA of other concurrent units be rented to achieve the corresponding purpose.
  • the purpose may be to lease a concurrent unit as an OP for garbage collection (garbage collection, GC) or for wear leveling between different PU collections. Or it can be used to defragment the disk or rebuild data. This application is not limited here.
  • the leased logical partition can have a small capacity ratio relative to the logical partitions allocated by other businesses or the business set itself.
  • the priority of the logical partition is lower than that of other businesses or business sets.
  • the logical partitions of other PUs can be leased to improve the write concurrency. After temporarily improving the write concurrency, the data can be moved from the leased logical partitions to free logic in a short period of time. Partition area to avoid data loss.
  • the proportion of PUs occupied by services can be reduced, and idle resources can be released at the same time, thereby further improving the utilization of storage media.
  • the IOPS of the service is temporarily increased, and the co-location of the “high QoS, low IOPS demand” service and the “low QoS, high IOPS demand” service is realized and solved The problem of repeated construction in the deployment of mixed services is solved.
  • FIG. 9 is a schematic diagram of a physical location rotation of logical partitions in a concurrent unit provided by an embodiment of the application.
  • the service or service set assigned to the MA can actively trigger the physical location rotation.
  • the specific conditions can include: a service or service set triggers a specific round-robin daemon; or a service or service set within a specific time, ignoring the requirements of service QoS indicators.
  • a service or service set triggers a specific round-robin daemon
  • a service or service set within a specific time, ignoring the requirements of service QoS indicators.
  • the indicator for example, may be a necessary background operation such as GC, but the operation does not affect the achievement of the QoS indicator of the service or service set allocated on the MA; or at least one host or virtual machine actively initiates it; or the PU fails and needs to be necessary Applause for detection or repair, etc.
  • Those skilled in the art should note that it may also include other arbitrary preset specific conditions, which are not limited in this application.
  • the physical position rotation can be performed in the following manner.
  • the PU in the storage medium array first selects the physical block to be rotated from the MA. After that, select an idle block in the LA in the same PU. As shown in 1 in Figure 9, first select the physical block to be rotated from the selected MA, that is, the grid area in the white MA area in 1. And then select a free block in the LA in the same PU, that is, the slashed area in the dark LA area in 1. It is understandable that the slash indicates that there is no valid data in idle, the grid indicates valid data, the white indicates that the area attribute is MA, and the dark color indicates that the area attribute is LA.
  • the valid data in the block to be rotated is written into the free block, which is shown in 2 in Fig. 9.
  • the free block in the LA area has written valid data, that is, the dark grid area.
  • modify the attribute of the free block to MA mark the data in the block to be rotated as invalid, and modify the attribute to LA. That is, as shown in Fig. 9 3, modify the block attribute of the valid data to MA, that is, the white grid MA area in 3, and mark the area data to be rotated in the original MA as invalid, and modify the attribute, that is, in 3 The dark slash LA area.
  • FIG. 10 is a schematic diagram of another physical location rotation of logical partitions in a concurrent unit provided by an embodiment of the application.
  • the physical position rotation can also be performed in the following manner.
  • the PU in the storage medium array first selects the physical block to be rotated from the MA. After that, select an idle block in the MA in the same PU. It is understandable that this method is a rotation of the physical position inside the MA. As shown in 1 in Figure 10, first select the physical block to be rotated from the selected MA, that is, the grid area in the white MA area in 1. And then select a free block in the MA in the same PU, that is, the slashed area in the white MA area in 1. It is understandable that the slash indicates that there is no valid data in idle, the grid indicates valid data, and the white indicates that the area attribute is MA.
  • the valid data in the block to be rotated is written into the free block, which is shown in 2 in Fig. 9. It can be seen that the free block in the MA area has written valid data, that is, the white grid area. Then, the data in the block to be rotated is marked as invalid. That is, the area data to be rotated in the original MA shown in 3 in FIG. 10 is marked as invalid, that is, the white diagonal MA area in 3.
  • FIG. 11 is a schematic diagram of a dichotomy of a logical partition of a concurrent unit according to an embodiment of the application.
  • each PU in the storage medium array can also be used to: if the area divided by the current PU cannot match the priority of the service or service set, the MA is divided into the first priority MA and second priority LA. For example, as shown in 1 in Figure 11, if the PU is currently divided into two categories only based on the QoS indicators of the service or service set, that is, MA and LA1. The priority of the service or service set allocated on the MA is higher than the priority of the service or service set allocated on LA1. If there is a third service or service set at this time, but the priority of the third service or service set cannot match the priority of MA and LA 1 in 1.
  • the MA can be divided into two again, that is, as shown in Figure 11 2, the original MA is divided into MA and LA 1, and the original LA 1 becomes LA 11.
  • the priority order of the logical partitions in the PU is MA>LA1>LA11.
  • the original LA 1 can also be divided into two correspondingly, and the LA can be divided into a third priority LA and a fourth priority LA. That is, the original LA 1 is divided into LA 11 and LA12 in 2.
  • the priority order of the logical partitions in the PU is MA>LA1>LA11>LA12.
  • the priority of the new logical partition is a subdivision of the priority of the original logical partition, wherein the priority of the area after each binary division does not exceed the priority before the division of the area.
  • the priority of other logical partitions was originally higher than the priority of the original logical partition, the priority of other logical partitions is still higher than the priority of all new logical partitions.
  • the priority of other logical partitions was originally lower than the priority of the original logical partition, the priority of other logical partitions is still lower than the priority of all new logical partitions.
  • the division may not be continued. If the logical partition of the PU still does not meet the requirements of the service or service set after the division, the logical partitions in the PU are continuously divided into binary divisions until the divided logical partition meets the requirements of the priority of the service or service set. For example, as shown in 3 in Figure 11, you can continue to divide the MA into two, that is, divide the original MA into MA and LA 1. Similarly, divide the original LA 1 into LA 11 and LA12, and divide the original LA 11 into LA 111 And LA112, divide the original LA 12 into LA 121 and LA122.
  • the priority order of the logical partitions in the PU is MA>LA1>LA11>LA12>LA111>LA112>LA121>LA122. If you continue to divide into two, you can repeat the above process, for the convenience of description, I will not repeat it again.
  • This application divides the concurrent units into different logical partitions and assigns different priority dimensions to refine management granularity, increase management flexibility, and improve storage media utilization while ensuring service QoS indicators.
  • Fig. 12 is a schematic diagram of a concurrent unit distribution service provided by an embodiment of the application.
  • the NVMe protocol is supported in this scenario.
  • the figure shows multiple different services, and it is understandable that the service may be a service set that includes multiple services.
  • NVM set A service set, NVM set B service set, and NVM set C service set may be service sets with high QoS requirements
  • NVM set D service set and NVM set E service sets may be service sets with lower QoS requirements.
  • the processing unit of the SSD controller determines that the capacity index and QoS index of the service set at this time are both achieved but not rich. Then the logical partition of the PU in the specific access area may only contain the MA.
  • the NVM set A service set is represented by PU a1 to PU an framed by the solid line frame of the service set.
  • the processing unit of the SSD controller determines that the capacity index and QoS index of the corresponding service set are both affluent at the same time. Then the processing unit can compress the logical partitions allocated by the corresponding service set. And assign the divided logical partitions as LA to other services or service sets for use.
  • the MA occupied by the NVM set B service set and the NVM set C service set are composed of the MAs from PU b1 to PU bn and the MAs from PU c1 to PU cn by the solid line boxes of the respective service sets.
  • the processing unit of the SSD controller determines the capacity index and QoS index of the corresponding service set, which cannot be achieved. At this time, the processing unit can improve the concurrency and maximum bandwidth capacity of the NVM set D service set in the short term by renting the LA of other PUs.
  • the LA occupied by the NVM set D service set shown in FIG. 12 is composed of the dashed box of its service set, including the LAs from PU d1 to PU dn that originally belonged to the NVM set D service set, as well as the LA leased from other PUs. For example, part LA from PU b1 to PU bn and part LA from PU c1 to PU cn.
  • the service set requires the highest IOPS, but there is no clear requirement for the QoS index. At this time, as much LA that is rich in the PU can be leased to the NVM set E service set for use. To ensure that the IOPS and capacity utilization of the storage medium are maximized.
  • the LA occupied by the NVM set E service set shown in Figure 12 is composed of the dashed box of its service set, including the LA leased from other PUs, such as the part of the LA from PU b1 to PU bn and the part of the LA from PU c1 to PU cn. .
  • the storage medium is preferentially allocated based on services or service sets with high QoS requirements. It is understandable that services or service sets with low QoS requirements can also be assigned preferentially, which is not limited in this application.
  • the concept of NVM Set and multi-user/multi-service does not exist.
  • the multi-streaming technology can be to mark data feature tags through the host or to split streams based on the data in the disk.
  • the usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
  • This application also reduces the management complexity and satisfies the application requirements of most scenarios by dually partitioning the PU models.
  • the multi-partition is converted into a binary partition problem, which reduces the application complexity.
  • the present application also provides an SSD controller, which is coupled with the storage medium array.
  • the SSD controller is the same as the SSD controller in FIGS. 2-12, and can execute any function or method of the SSD controller in FIGS. 2-12. For the convenience of description, I will not repeat them here.
  • FIG. 13 is a schematic diagram of another application scenario provided by an embodiment of the application.
  • one or more VMs or VFs can also be run on the host that delivers the service or service set. It is understandable that the host is still connected to the SSD controller through various interfaces such as NVMe, SAS, PCIe.
  • the SSD controller is connected to the corresponding storage medium array through the NFI.
  • the SSD controller can choose to connect to the storage medium through other interfaces according to the interface specifications opened by the actual manufacturer of the storage medium, so as to ensure that the host can perform data on the storage medium array through the SSD controller. Read, write, wipe and other operations
  • the usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
  • FIG. 14 is a schematic diagram of another application scenario provided by an embodiment of the application.
  • the controller circuit for controlling the storage medium array and the storage medium array may also be packaged on an integrated chip.
  • the host is connected to the integrated chip through interfaces such as universal flash storage (UFS) or embedded multimedia card (eMMC), and accesses data.
  • UFS universal flash storage
  • eMMC embedded multimedia card
  • the usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
  • FIG. 15 is a schematic diagram of another application scenario provided by an embodiment of the application.
  • the SSD controller may include a first SSD controller and a second SSD controller.
  • the first SSD controller is located in one of the at least one host, and the second SSD controller and the storage medium array are packaged on an integrated chip.
  • an "open channel storage system” can also be used on the storage medium.
  • the controller that controls the storage medium array part of its functions are moved to the host for implementation, such as the controller 1 shown in FIG. 15.
  • another part of the controller functions and the storage medium array are packaged on an integrated chip, such as the controller 2 shown in FIG. 15.
  • the connection mode between the controller 1 and the controller 2 can be any connection mode in the prior art, which is not limited in this application.
  • the usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
  • FIG. 16 is a flowchart of a method for increasing the utilization rate of a solid state drive provided by an embodiment of the application.
  • the present application also provides a method for improving the utilization rate of a solid state drive.
  • the method may include the following steps:
  • the characteristic information of at least one service or service set delivered by at least one host or virtual machine may be received.
  • the characteristic information includes service quality QoS indicators.
  • S1602 Sort at least one service or service set according to the size of the QoS index of the service or service set.
  • one or more at least one service or service set can be sorted according to the size of the QoS index of the service or service set.
  • the characteristic information includes typical IOPS requirements, service storage capacity indicators, and typical capacity requirements. Determine the number of PUs of the first concurrent unit according to the typical IOPS requirements of the service or service set. And according to the service storage capacity index or typical capacity requirements of the service or service set, the second PU number is determined. The largest number of the first number of PUs and the second number of PUs is taken as the minimum number of PUs required.
  • the characteristic information further includes the write volume requirement of the service or the service set, the write amplification factor of the service or the service set, and the program-erased PE life of the solid-state hard disk.
  • the typical capacity requirements or business storage capacity indicators determine the OP demand for the excess redundant space. Combine OP requirements and typical capacity requirements or business storage capacity indicators to determine the second PU number.
  • the priority of the IO operation that accesses the MA is higher than the priority of the IO operation that accesses the LA.
  • the IO operation is the IO operation of a business or a business set.
  • the priority scheduling method may be any one or a combination of strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
  • strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority.
  • Probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than the probability of scheduling IO operations with low priority.
  • the deprivation priority scheduling is that IO operations with high priority are allowed to interrupt the IO operations with low priority being executed under preset conditions.
  • Non-deprivation priority scheduling is that IO operations with high priority are not allowed to interrupt the IO operations with low priority being executed under any conditions.
  • S1603 Allocate the main area MA of the concurrent unit PU to the service or service set with the largest QoS index for use, and allocate the rental area LA of the PU to other services or service sets for use according to the ranking.
  • the MAs of at least PUs are allocated to the service or service set for use; when at least one host or virtual machine When issuing the characteristic information of at least two services or service sets, sort according to the size of the QoS indicators of the at least two services or service sets; assign the MA with the least number of PUs to the service or service set with the largest QoS indicator for use ; According to the sorting, the LAs of the least PUs are allocated to the remaining services or service sets for use.
  • assigning the LAs of the least PU PUs to the remaining services or service sets according to the sorting includes: according to the sorting order, assigning LAs with different priorities to the remaining services or service sets in sequence, where the priority of the LA is the same as The QoS indicators of the assigned service or service set are positively correlated.
  • the unused part of the LA is allocated to other services or service sets.
  • the host of this application can also combine the multi-stream technology to split the data by marking the data feature label of the host or based on the in-disk data splitting algorithm.
  • the data stream contains one or more of the following characteristic information: QoS indicator characteristics, IOPS indicator characteristics, IO continuity characteristics, whether it is a user request characteristic, etc.
  • QoS indicator characteristics QoS indicator characteristics
  • IOPS indicator characteristics IOPS indicator characteristics
  • IO continuity characteristics whether it is a user request characteristic, etc.
  • the number of data streams that can be shared by a logical partition with a higher priority is smaller.
  • the number of PUs is allocated on demand.
  • first assign high QoS demand services then assign low QoS demand services; high priority logical partitions are assigned to high QoS demand services first, and low priority logical partitions are first assigned to low QoS demand services; the higher the priority Logical partition, the less the number of businesses involved in sharing.
  • allocating the number of PUs on demand it also allocates services to different logical partitions, which solves the problem of mutual interference when multi-tenant/multi-service co-location, and ensures that the utilization of storage media is maximized under the premise of meeting various business needs ⁇ .
  • FIG. 17 is a flowchart of a method for adjusting the proportion of logical partitions of a concurrent unit according to an embodiment of the application.
  • the present application can also adjust the proportions of different logical partitions in the PU, that is, adjust the ratio between MA and LA.
  • the method may further include the following steps:
  • S1701 Determine whether the service or service set has a margin to achieve the service index within the assigned minimum number of PUs.
  • the ratio of MA to LA in the minimum number of PUs is adjusted.
  • a marginal achievement of the business storage capacity index may include: the storage capacity allocated to the business or the business set is greater than the storage capacity required by the business or the business set; or the storage capacity allocated to the business or the business set is equal to the business Or the storage capacity required by the service collection, but the storage capacity allocated to the service or service collection at the current moment is not fully used by the service or service collection.
  • achieving the service QoS index with margin may include: the actual QoS of the service or service set is greater than or equal to the QoS index; or the service or service set ignores the QoS index requirement within a specific time.
  • S1702 Determine a first ratio value of the least number of PUs according to the service storage capacity index, where the first ratio value is the ratio value of MA and LA in the least number of PUs.
  • S1703 Determine the first QoS indicator of the service or service set through pilot projects or model analysis and estimation.
  • S1704 Determine whether the first QoS indicator is less than the service QoS indicator.
  • the first QoS indicator if the first QoS indicator is less than the service QoS indicator, then enter S1705; if the first QoS indicator is greater than or equal to the service QoS indicator, then enter S1711.
  • S1705 Keep the first ratio value unchanged, and adjust the second ratio values of multiple PUs in the least number of PUs.
  • S1706 Determine the adjusted second QoS index of the service or service set through pilot projects or model analysis and estimation, where the second ratio value is the ratio value of the MA and LA of each PU in the least number of PUs.
  • S1707 Determine whether the second QoS indicator is less than the service QoS indicator.
  • the second QoS indicator if the second QoS indicator is less than the service QoS indicator, then enter S1708; if the second QoS indicator is greater than or equal to the service QoS indicator, then enter S1711.
  • S1708 Adjust the first ratio value and simultaneously adjust the second ratio value of one or more PUs in the least number of PUs.
  • S1709 Determine the third QoS indicator of the adjusted service or service set through pilot projects or model analysis and estimation.
  • S1710 Determine whether the third QoS indicator is greater than or equal to the service QoS indicator.
  • the third QoS indicator is less than the service QoS indicator, return to S1705, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of multiple PUs in the least number of PUs, and determine Whether the new second QoS indicator is greater than or equal to the service QoS indicator. If the third QoS indicator is greater than or equal to the service QoS indicator, enter S1711.
  • the proportion of PUs occupied by services can be reduced, and idle resources can be released at the same time, thereby further improving the utilization of storage media.
  • the IOPS of the service is temporarily increased, and the co-location of the “high QoS, low IOPS demand” service and the “low QoS, high IOPS demand” service is realized and solved The problem of repeated construction in the deployment of mixed services is solved.
  • FIG. 18 is a flowchart of a method for rotating the physical position of a concurrent unit according to an embodiment of the application.
  • the present application can also rotate the physical locations of different logical partitions in the PU.
  • the method may also include the following steps:
  • the service or service set located in the MA actively triggers the physical location rotation.
  • the specific conditions may include: the service or service set triggers the rotation daemon; or the service or service set ignores the requirements of the service QoS index within a specific time; or one or more PUs allocated by the service or service set are Perform background operations without affecting service QoS indicators; or at least one host or virtual machine actively initiates them; or PU fails.
  • one free block in the LA in the same PU is selected.
  • an idle block in the MA in the same PU is selected.
  • S1804 Write valid data in the block to be rotated into an idle block.
  • the selected free block is from LA
  • FIG. 19 is a flowchart of a method for refining logical partitions of a concurrent unit according to an embodiment of the application.
  • the logical partitions in the PU can be divided into more detailed divisions by recursive method, that is, the logical partitions are continuously divided into two logical partitions, thereby dividing logical partitions with different priorities.
  • the method can also include the following steps:
  • S1901 Determine whether the area divided by the current PU can match the priority of the service or service set.
  • S1902 is executed.
  • S1905 is executed.
  • S1902 Divide the MA into a first priority MA and a second priority LA.
  • S1904 Determine whether the area of the divided PU can match the priority of the service or service set.
  • S1902 is executed.
  • S1905 is executed.
  • the service or service set with the higher QoS requirement is given priority to the logical partition with the higher priority.
  • the number of services shared on the logical partition is smaller.
  • This application divides the concurrent units into different logical partitions and assigns different priority dimensions to refine management granularity, increase management flexibility, and improve storage media utilization while ensuring service QoS indicators.
  • the functions described in the embodiments of the present application may be implemented by hardware, software, firmware, or any combination thereof. When implemented by software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on the computer-readable medium.
  • the computer-readable medium includes a computer storage medium and a communication medium, where the communication medium includes any medium that facilitates the transfer of a computer program from one place to another.
  • the storage medium may be any available medium that can be accessed by a general-purpose or special-purpose computer.
  • the steps of the method or algorithm described in combination with the embodiments disclosed herein can be implemented by hardware, a software module executed by a processor, or a combination of the two.
  • the software module can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs, or all areas in the technical field. Any other known storage media.

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A device for improving the utilization rate of a solid-state drive (SSD), comprising: an SSD controller and a storage medium array. The SSD controller comprises a receiving unit and a processing unit. The storage medium array comprises at least one PU. The PU is divided into a main area (MA) and/or a lease area (LA). The receiving unit is used for receiving at least one service distributed by at least one host or virtual machine. The processing unit is used for determining the number of required least concurrent unit PUs for each service, and is further used for allocating the service to an MA or an LA of a PU having the least number of PUs.

Description

一种提升SSD利用率的方法、存储装置及SSD控制器Method for improving SSD utilization rate, storage device and SSD controller 技术领域Technical field
本申请涉及存储领域,尤其涉及一种提升固态硬盘(solid state drive,SSD)的方法及装置。This application relates to the storage field, and in particular to a method and device for improving a solid state drive (SSD).
背景技术Background technique
SSD是用固态电子存储芯片阵列而制成的硬盘,其中,SSD的服务质量(quality of service,QoS)是指SSD设备向主机业务提供稳定、一致以及可预测的请求应答服务的能力。QoS是塑造企业级SSD产品竞争力的关键因素之一。在数据中心、服务器或者其它SSD的主要应用场景中,读取延迟(read latency)是衡量QoS比较关键的维度。其中,SSD在多个维度的利用率,例如带宽、容量(capacity)以及寿命。其中,带宽可以是每秒读写输入输出数量(input output per second,IOPS)、读写带宽(band width,BW)等;以及,寿命可以是总写入数据量(total write byte,TWB)、擦写次数(,PE)等。然而在大多数的使用场景下,SSD各维度的利用率都难以与QoS取得两全。An SSD is a hard disk made of an array of solid-state electronic storage chips. Among them, the quality of service (QoS) of the SSD refers to the ability of the SSD device to provide a stable, consistent and predictable request response service to the host business. QoS is one of the key factors shaping the competitiveness of enterprise SSD products. In the main application scenarios of data centers, servers, or other SSDs, read latency is a key dimension to measure QoS. Among them, the utilization rate of the SSD in multiple dimensions, such as bandwidth, capacity, and lifespan. Among them, bandwidth can be the number of read and write input and output per second (input output per second, IOPS), read and write bandwidth (bandwidth, BW), etc.; and, the life span can be the total write byte (TWB), The number of erasing and writing (, PE), etc. However, in most usage scenarios, the utilization of each dimension of SSD is difficult to achieve both.
由于SSD被设计生产出以后,其各维度的规格就已经被确定,但是对于不同使用场景,例如数据中心或者服务器中的各类业务(如应用或用户等)对SSD的需求也是千差万别。为了弥合不同业务的需求以及不同硬件规格的差异,则需要对硬件资源进行池化和再分配等综合管理。在硬件资源池化后,可以在某种分配方式下被多个业务共享,但不可避免地就引入了不同业务之间的相互干扰,例如体现为某种冲突或者资源争夺等形式。而不同业务之间的相互干扰就会降低QoS指标。Since the SSD is designed and produced, the specifications of its dimensions have been determined, but the requirements for SSDs are also very different for different usage scenarios, such as various services in the data center or server (such as applications or users, etc.). In order to bridge the needs of different businesses and the differences in different hardware specifications, it is necessary to perform comprehensive management of hardware resources such as pooling and reallocation. After the hardware resource is pooled, it can be shared by multiple services under a certain allocation method, but it will inevitably introduce mutual interference between different services, for example, in a form of conflict or resource contention. The mutual interference between different services will reduce the QoS index.
为了保障特定的QoS指标,现有技术一般通过资源预留、关键资源隔离等手段抑制业务之间的相互干扰。但此方式会使硬件资源难以被充分利用,以至于最终拉升了总拥有成本(total cost of ownership,TCO)。In order to guarantee specific QoS indicators, the prior art generally suppresses mutual interference between services by means such as resource reservation and key resource isolation. However, this method makes it difficult for hardware resources to be fully utilized, which ultimately increases the total cost of ownership (TCO).
随着云应用的发展,目前SSD对于业务的需求也呈现出两极化。例如一些直接面向用户的应用对QoS的要求越来越高,如信息检索类、社交类应用等;以及还有一些不直接面向用户的应用,对IOPS的要求越来越高,如大数据类应用等。在非易失性存储高速接口规范(non-volatile memory express,NVMe)1.4协议中,通过非易失性存储器组(non-volatile memory,NVM sets)以及可预测延迟模式(predictable latency mode,PLM)分别在空间和时间的维度上为输入输出(input output,IO)提供了隔离便利,从而提升SSD的QoS。其中,NVM sets中组的概念并不是将不同的存储器进行分组,而是将存储器中处于同一层级的不同单元进行分组。但是简单的IO隔离在提升QoS指标的同时,将不可避免的会影响到IOPS指标,并降低SSD产品的带宽利用率。With the development of cloud applications, the current SSD demand for services is also polarized. For example, some applications that directly face users have higher and higher QoS requirements, such as information retrieval, social applications, etc.; and some applications that do not directly face users have higher and higher requirements for IOPS, such as big data. Application etc. In the non-volatile memory high-speed interface specification (non-volatile memory express, NVMe) 1.4 protocol, through non-volatile memory (non-volatile memory, NVM sets) and predictable latency mode (predictable latency mode, PLM) It provides isolation convenience for input and output (IO) in the dimensions of space and time, thereby improving the QoS of SSD. Among them, the concept of groups in NVM sets is not to group different memories, but to group different units at the same level in the memories. However, simple IO isolation will inevitably affect IOPS indicators while improving QoS indicators and reduce the bandwidth utilization of SSD products.
发明内容Summary of the invention
本申请实施例提供了一种提升固态硬盘利用率的方法及装置,以实现保证SSD业务QoS的前提下,提升存储设备的利用率。The embodiment of the present application provides a method and device for improving the utilization rate of a solid-state hard disk, so as to improve the utilization rate of a storage device under the premise of guaranteeing the QoS of the SSD service.
第一方面,本申请提供了一种存储装置,装置包括:存储介质阵列和耦合至存储介质阵列的固态硬盘SSD控制器;存储介质阵列包括多个并发单元PU,PU包括主区(master area,MA)或出租区(lender area,LA)中的至少一个,其中,MA用于被上一个业务分配使用,LA用于被至少一个业务分配使用;SSD控制器,用于接收至少一个业务的特征信息,其中,特征信息包括业务服务质量QoS指标;SSD控制器还用于,根据QoS指标将PU的MA分配给QoS指标最大的业务使用,以及将PU的LA分配给其余业务使用。In the first aspect, the present application provides a storage device. The device includes: a storage medium array and a solid state drive SSD controller coupled to the storage medium array; the storage medium array includes a plurality of concurrent units PU, and the PU includes a master area (master area, At least one of MA) or lease area (LA), where MA is used to be allocated and used by the previous service, and LA is used to be allocated and used by at least one service; SSD controller is used to receive the characteristics of at least one service Information, where the characteristic information includes a service quality QoS indicator; the SSD controller is also used to allocate the MA of the PU to the service with the largest QoS indicator according to the QoS indicator, and allocate the LA of the PU to the rest of the service.
在一种可能的实施方式中,特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求,SSD控制器还用于:根据典型IOPS需求,确定业务所需PU的第一数量;根据业务存储容量指标或典型容量需求,确定业务所需PU的第二数量;将PU的MA分配给QoS指标最大的业务使用,以及将PU的LA分配给其余业务使用包括:将多个PU中的第一PU的MA分配给QoS指标最大的业务使用,以及将第一PU的LA分配给其余业务使用,其中,第一PU中包括的PU的数量为第一数量和第二数量中的最大值。In a possible implementation manner, the characteristic information also includes typical read/write input/output number IOPS requirements per second, and service storage capacity indicators or typical capacity requirements. The SSD controller is also used to determine service requirements based on typical IOPS requirements. The first number of PUs; the second number of PUs required by the business is determined according to the service storage capacity index or typical capacity requirements; the MA of the PU is allocated to the service with the largest QoS index, and the LA of the PU is allocated to the rest of the service. : Allocate the MA of the first PU among the multiple PUs to the service with the largest QoS index, and allocate the LA of the first PU to the remaining services, where the number of PUs included in the first PU is the first number and The maximum value of the second number.
在一种可能的实施方式中,特征信息还包括业务的写入量需求、业务的写放大系数和固态硬盘的编程擦除PE寿命,SSD控制器还用于:根据典型容量需求或业务存储容量指标、业务的写入量需求、业务的写放大系数、固态硬盘的PE寿命,确定超供冗余空间OP需求;结合OP需求以及典型容量需求或业务存储容量指标,确定业务所需PU的第二数量。In a possible implementation manner, the characteristic information further includes the write volume requirements of the business, the write amplification factor of the business, and the programming and erasing PE life of the solid-state hard disk. The SSD controller is also used to: according to typical capacity requirements or business storage capacity To determine the OP requirements of oversupply redundant space, including OP requirements and typical capacity requirements or service storage capacity indicators, determine the number of PUs required by the service, as well as the service write volume requirements, the service write amplification factor, and the PE lifetime of solid-state drives. Two quantity.
在一种可能的实施方式中,在位于同一个PU内,SSD控制器控制访问MA的输入输出IO操作的优先级高于访问LA的IO操作的优先级;其中,IO操作为业务的IO操作。In a possible implementation manner, in the same PU, the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA; where the IO operations are business IO operations .
在一种可能的实施方式中,优先级的调度方式为严格优先级调度、概率性优先级调度、剥夺式优先级调度或非剥夺式优先级调度。In a possible implementation manner, the priority scheduling mode is strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
在一种可能的实施方式中,严格优先级调度为优先级高的IO操作先于优先级低的IO操作被调度;概率性优先级调度为调度优先级高的IO操作的概率高于调度优先级低的IO操作的概率;剥夺式优先级调度为优先级高的IO操作在预设条件下,允许中断正在执行的优先级低的IO操作;非剥夺式优先级调度为优先级高的IO操作在任何条件下,都不允许中断正在执行的优先级低的IO操作。In a possible implementation manner, strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority; probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than that of scheduling priority. Probability of low-level IO operations; deprivation-priority scheduling is high-priority IO operations under preset conditions, allowing interruption of low-priority IO operations being executed; non-deprivation-priority scheduling is high-priority IO Under any conditions, the operation is not allowed to interrupt the low priority IO operation being executed.
在一种可能的实施方式中,SSD控制器还用于:根据QoS指标对至少一个业务由高到低依次排序;依照排序,依次为其余业务分配不同优先级的LA,其中LA的优先级与被分配的业务的QoS指标正相关。In a possible implementation manner, the SSD controller is also used to: sort at least one service from high to low according to the QoS index; according to the sort, sequentially assign LAs with different priorities to the remaining services, where the priority of the LA is equal to The QoS indicators of the allocated services are positively correlated.
在一种可能的实施方式中,SSD控制器还用于:若业务在分配的PU内有余量的达成业务指标时,则调整PU内MA和LA的比例。In a possible implementation manner, the SSD controller is also used to adjust the ratio of MA and LA in the PU if the service has a margin in the allocated PU to achieve the service index.
在一种可能的实施方式中,SSD控制器还用于:若PU存在未使用的存储空间且分配至PU的业务有余量地达成业务存储容量指标和业务服务质量QoS指标,则调整 PU内MA和LA的比例。In a possible implementation manner, the SSD controller is also used to: if there is unused storage space in the PU and the service allocated to the PU has margin to achieve the service storage capacity index and the service quality QoS index, adjust the PU internal The ratio of MA to LA.
在一种可能的实施方式中,有余量地达成业务存储容量指标包括:业务所分配到的存储容量大于业务需求的存储容量;或业务所分配到的存储容量等于业务需求的存储容量,但当前时刻业务所分配到的存储容量并未被业务充分使用。In a possible implementation manner, achieving the business storage capacity index with margin includes: the storage capacity allocated to the business is greater than the storage capacity required by the business; or the storage capacity allocated to the business is equal to the storage capacity required by the business, but The storage capacity allocated to the business at the current moment is not fully used by the business.
在一种可能的实施方式中,有余量地达成业务QoS指标包括:业务的实际QoS大于或等于QoS指标;或业务在特定时间内,忽略QoS指标的要求。In a possible implementation manner, achieving the service QoS index with margin includes: the actual QoS of the service is greater than or equal to the QoS index; or the service ignores the requirement of the QoS index within a certain time.
在一种可能的实施方式中,SSD控制器还用于:根据业务存储容量指标,确定PU的第一比例值,其中,第一比例值为PU内MA和LA的比例值;通过试点或模型分析估计,确定业务的第一QoS指标;若第一QoS指标小于业务QoS指标,则调整第一比例值,并通过试点或模型分析估计,确定调整后的业务的第二QoS指标;若第二QoS指标小于业务QoS指标,则继续调整PU的第一比例值,并确定新的第一QoS标指是否大于等于业务QoS指标;若新的第一QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值,直至业务的QoS指标大于等于业务QoS指标。In a possible implementation manner, the SSD controller is also used to: determine the first ratio value of the PU according to the service storage capacity index, where the first ratio value is the ratio value of the MA and LA in the PU; through a pilot or model Analyze and estimate to determine the first QoS indicator of the service; if the first QoS indicator is less than the service QoS indicator, adjust the first ratio value, and determine the second QoS indicator of the adjusted service through pilot or model analysis and estimation; if the second If the QoS index is less than the service QoS index, continue to adjust the first ratio value of the PU, and determine whether the new first QoS index is greater than or equal to the service QoS index; if the new first QoS index is still less than the service QoS index, repeat In the above steps, continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
在一种可能的实施方式中,当PU为多个PU,在确定第一QoS指标小于业务QoS指标之后,SSD控制器还用于:保持第一比例值不变,调整多个PU内的多个第二比例值,并通过试点或模型分析估计,确定调整后的业务的第三QoS指标,其中,第二比例值为多个PU中的一个PU的MA和LA的比例值;若第三QoS指标小于业务QoS指标,则调整第一比例值,并同时调整多个PU内一个或多个PU的第二比例值,并通过试点或模型分析估计,确定调整后的业务的第二QoS指标;若第二QoS指标小于业务QoS指标,则保持调整后的第一比例值不变,继续调整PU的第二比例值,并确定新的第三QoS标指是否大于等于业务QoS指标;若新的第三QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值,直至业务的QoS指标大于等于业务QoS指标。In a possible implementation manner, when the PU is multiple PUs, after determining that the first QoS indicator is less than the service QoS indicator, the SSD controller is further configured to: keep the first ratio constant and adjust the multiples of the multiple PUs. The third QoS index of the adjusted service is determined through pilot or model analysis and estimation, where the second ratio value is the ratio of MA and LA of one PU among multiple PUs; if the third If the QoS index is less than the service QoS index, adjust the first ratio value, and adjust the second ratio value of one or more PUs in multiple PUs at the same time, and determine the second QoS index of the adjusted service through pilot or model analysis and estimation ; If the second QoS index is less than the service QoS index, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine whether the new third QoS index is greater than or equal to the service QoS index; if new When the third QoS index is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the service QoS index is greater than or equal to the service QoS index.
在一种可能的实施方式中,SSD控制器还用于:若业务分配的PU具有LA,且部分LA未被使用,则将未被使用的部分LA分配给其他业务。In a possible implementation manner, the SSD controller is further configured to: if the PU allocated by the service has an LA, and part of the LA is not used, then the unused part of the LA is allocated to other services.
在一种可能的实施方式中,SSD控制器还用于:若其他业务在特定时间内,忽略QoS指标的要求,则确定将未被使用的部分LA分配给其他业务;或通过试点或模型分析估计,确定其他业务在接受分配的未被使用的部分LA后,其他业务的QoS指标是否大于等于业务QoS指标;若其他业务的QoS指标大于等于业务QoS指标,则确定将未被使用的部分LA分配给其他业务。In a possible implementation manner, the SSD controller is also used to: if other services ignore the requirements of QoS indicators within a certain period of time, determine to allocate the unused part of the LA to other services; or through pilot or model analysis Estimate and determine whether the QoS indicators of other services are greater than or equal to the business QoS indicators after receiving the allocated unused part of the LA; if the QoS indicators of other services are greater than or equal to the business QoS indicators, then determine the unused part of the LA Assign to other businesses.
在一种可能的实施方式中,存储介质阵列还用于:在同一个PU内,若满足特定条件,则位于MA的业务主动触发物理位置轮转。In a possible implementation manner, the storage medium array is also used to: in the same PU, if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
在一种可能的实施方式中,存储介质阵列还用于:从MA中选择待轮转物理块block;选择同一个PU内的LA中的一个空闲block,或选择同一个所述PU内的MA中的一个空闲block;将待轮转block内的有效数据写入空闲block;若选择的是同一个PU内的LA中的一个空闲block,则将空闲block的属性修改为MA,以及将待轮转block内的数据标记为无效,并修改属性为LA;若选择同一个PU内的MA中的一个空闲block,则将待轮转block内的数据标记为无效。In a possible implementation manner, the storage medium array is also used to: select the physical block to be rotated from the MA; select an idle block in the LA in the same PU, or select the MA in the same PU Write the valid data in the block to be rotated into the free block; if you select an free block in the LA in the same PU, modify the attribute of the free block to MA, and change the block to be rotated Mark the data as invalid, and modify the attribute to LA; if you select an idle block in the MA in the same PU, mark the data in the block to be rotated as invalid.
在一种可能的实施方式中,特定条件包括:业务触发轮转守护进程;或业务在特 定时间内,忽略业务QoS指标的要求;或业务所分配的PU正在进行后台操作,并且不影响业务QoS指标;或至少一个主机或虚拟机主动发起,其中,主机或虚拟机还用于下发至少一个业务;或PU出现故障。In a possible implementation manner, the specific conditions include: the service triggers the rotation daemon; or the service ignores the requirements of the service QoS index within a specific time; or the PU assigned by the service is operating in the background and does not affect the service QoS index Or at least one host or virtual machine actively initiates it, where the host or virtual machine is also used to deliver at least one service; or the PU fails.
在一种可能的实施方式中,存储介质阵列还用于:若当前PU划分的区域无法匹配业务的优先级,则将MA划分为第一优先级MA和第二优先级LA;和/或将LA划分为第三优先级LA和第四优先级LA;若划分后的PU的区域仍无法匹配业务的优先级,则继续对PU内的区域进行二元划分,直至匹配业务的优先级;其中,每次二元划分后区域的优先级不超过该区域划分前的优先级。In a possible implementation manner, the storage medium array is also used to: if the area divided by the current PU cannot match the priority of the service, divide the MA into a first priority MA and a second priority LA; and/or LA is divided into a third priority LA and a fourth priority LA; if the area of the divided PU still cannot match the priority of the service, the area within the PU will continue to be binary division until it matches the priority of the service; , The priority of the area after each binary division does not exceed the priority before the division of the area.
在一种可能的实施方式中,SSD控制器与存储介质阵列封装在一个集成芯片上;或SSD控制器包括第一SSD控制器和第二SSD控制器;第一SSD控制器位于至少一个主机中的一个主机内,以及第二SSD控制器与存储介质阵列封装在一个集成芯片上。In a possible implementation manner, the SSD controller and the storage medium array are packaged on an integrated chip; or the SSD controller includes a first SSD controller and a second SSD controller; the first SSD controller is located in at least one host The second SSD controller and storage medium array are packaged on an integrated chip.
在一种可能的实施方式中,存储介质阵列包括至少一个存储介质,存储介质为闪存flash、动态随机存取存储器DRAM、静态随机存取存储器SRAM、相变存储器PCM、储存级存储器SCM中的任意一个。In a possible implementation manner, the storage medium array includes at least one storage medium, and the storage medium is any of flash memory, dynamic random access memory DRAM, static random access memory SRAM, phase change memory PCM, and storage class memory SCM. One.
第二方面,本申请提供了一种固态硬盘SSD控制器,SSD控制器与存储介质阵列相耦合;其中,存储介质阵列包括多个并发单元PU,PU包括主区MA或出租区LA中的至少一个,其中,MA用于被一个业务分配使用,LA用于被至少一个业务分配使用;SSD控制器,用于接收至少一个业务的特征信息,其中,特征信息包括业务服务质量QoS指标;SSD控制器还用于,根据QoS指标将PU的MA分配给QoS指标最大的业务使用,以及将PU的LA分配给其余业务使用。In the second aspect, this application provides a solid state drive SSD controller, which is coupled with a storage medium array; wherein the storage medium array includes a plurality of concurrent units PU, and the PU includes at least one of the main area MA or the rental area LA. One, where MA is used to be allocated and used by one service, and LA is used to be allocated and used by at least one service; SSD controller is used to receive characteristic information of at least one service, where the characteristic information includes service quality QoS indicators; SSD control The device is also used to allocate the PU of the PU to the service with the largest QoS index according to the QoS index, and to allocate the PU's LA to the rest of the service.
在一种可能的实施方式中,特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求,SSD控制器还用于:根据典型IOPS需求,确定业务所需PU的第一数量;根据业务存储容量指标或典型容量需求,确定业务所需PU的第二数量;将PU的MA分配给QoS指标最大的业务使用,以及将PU的LA分配给其余业务使用包括:将多个PU中的第一PU的MA分配给QoS指标最大的业务使用,以及将第一PU的LA分配给其余业务使用,其中,第一PU中包括的PU的数量为第一数量和第二数量中的最大值。In a possible implementation manner, the characteristic information also includes typical read/write input/output number IOPS requirements per second, and service storage capacity indicators or typical capacity requirements. The SSD controller is also used to determine service requirements based on typical IOPS requirements. The first number of PUs; the second number of PUs required by the business is determined according to the service storage capacity index or typical capacity requirements; the MA of the PU is allocated to the service with the largest QoS index, and the LA of the PU is allocated to the rest of the service. : Allocate the MA of the first PU among the multiple PUs to the service with the largest QoS index, and allocate the LA of the first PU to the remaining services, where the number of PUs included in the first PU is the first number and The maximum value of the second number.
在一种可能的实施方式中,特征信息还包括业务的写入量需求、业务的写放大系数和固态硬盘的编程擦除PE寿命,SSD控制器还用于:根据典型容量需求或业务存储容量指标、业务的写入量需求、业务的写放大系数、固态硬盘的PE寿命,确定超供冗余空间OP需求;结合OP需求以及典型容量需求或业务存储容量指标,确定业务所需PU的第二数量。In a possible implementation manner, the characteristic information further includes the write volume requirements of the business, the write amplification factor of the business, and the programming and erasing PE life of the solid-state hard disk. The SSD controller is also used to: according to typical capacity requirements or business storage capacity To determine the OP requirements of oversupply redundant space, including OP requirements and typical capacity requirements or service storage capacity indicators, determine the number of PUs required by the service, as well as the service write volume requirements, the service write amplification factor, and the PE lifetime of solid-state drives. Two quantity.
在一种可能的实施方式中,在位于同一个PU内,SSD控制器控制访问MA的输入输出IO操作的优先级高于访问LA的IO操作的优先级;其中,IO操作为业务的IO操作。In a possible implementation manner, in the same PU, the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA; where the IO operations are business IO operations .
在一种可能的实施方式中,优先级的调度方式为严格优先级调度、概率性优先级调度、剥夺式优先级调度或非剥夺式优先级调度。In a possible implementation manner, the priority scheduling mode is strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
在一种可能的实施方式中,严格优先级调度为优先级高的IO操作先于优先级低的IO操作被调度;概率性优先级调度为调度优先级高的IO操作的概率高于调度优先级 低的IO操作的概率;剥夺式优先级调度为优先级高的IO操作在预设条件下,允许中断正在执行的优先级低的IO操作;非剥夺式优先级调度为优先级高的IO操作在任何条件下,都不允许中断正在执行的优先级低的IO操作。In a possible implementation manner, strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority; probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than that of scheduling priority. Probability of low-level IO operations; deprivation-priority scheduling is high-priority IO operations under preset conditions, allowing interruption of low-priority IO operations being executed; non-deprivation-priority scheduling is high-priority IO Under any conditions, the operation is not allowed to interrupt the low priority IO operation being executed.
在一种可能的实施方式中,SSD控制器还用于:根据QoS指标对至少一个业务由高到低依次排序;依照排序,依次为其余业务分配不同优先级的LA,其中LA的优先级与被分配的业务的QoS指标正相关。In a possible implementation manner, the SSD controller is also used to: sort at least one service from high to low according to the QoS index; according to the sort, sequentially assign LAs with different priorities to the remaining services, where the priority of the LA is equal to The QoS indicators of the allocated services are positively correlated.
在一种可能的实施方式中,SSD控制器还用于:若业务在分配的PU内有余量的达成业务指标时,则调整PU内MA和LA的比例。In a possible implementation manner, the SSD controller is also used to adjust the ratio of MA and LA in the PU if the service has a margin in the allocated PU to achieve the service index.
在一种可能的实施方式中,SSD控制器还用于:若PU存在未使用的存储空间且分配至PU的业务有余量地达成业务存储容量指标和业务服务质量QoS指标,则调整PU内MA和LA的比例。In a possible implementation manner, the SSD controller is also used to: if there is unused storage space in the PU and the service allocated to the PU has margin to achieve the service storage capacity index and the service quality QoS index, adjust the PU internal The ratio of MA to LA.
在一种可能的实施方式中,有余量地达成业务存储容量指标包括:业务所分配到的存储容量大于业务需求的存储容量;或业务所分配到的存储容量等于业务需求的存储容量,但当前时刻业务所分配到的存储容量并未被业务充分使用。In a possible implementation manner, achieving the business storage capacity index with margin includes: the storage capacity allocated to the business is greater than the storage capacity required by the business; or the storage capacity allocated to the business is equal to the storage capacity required by the business, but The storage capacity allocated to the business at the current moment is not fully used by the business.
在一种可能的实施方式中,有余量地达成业务QoS指标包括:业务的实际QoS大于或等于QoS指标;或业务在特定时间内,忽略QoS指标的要求。In a possible implementation manner, achieving the service QoS index with margin includes: the actual QoS of the service is greater than or equal to the QoS index; or the service ignores the requirement of the QoS index within a certain time.
在一种可能的实施方式中,SSD控制器还用于:根据业务存储容量指标,确定PU的第一比例值,其中,第一比例值为PU内MA和LA的比例值;通过试点或模型分析估计,确定业务的第一QoS指标;若第一QoS指标小于业务QoS指标,则调整第一比例值,并通过试点或模型分析估计,确定调整后的业务的第二QoS指标;若第二QoS指标小于业务QoS指标,则继续调整PU内多个PU的第一比例值,并确定新的第一QoS标指是否大于等于业务QoS指标;若新的第一QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值,直至业务的QoS指标大于等于业务QoS指标。In a possible implementation manner, the SSD controller is also used to: determine the first ratio value of the PU according to the service storage capacity index, where the first ratio value is the ratio value of the MA and LA in the PU; through a pilot or model Analyze and estimate to determine the first QoS indicator of the service; if the first QoS indicator is less than the service QoS indicator, adjust the first ratio value, and determine the second QoS indicator of the adjusted service through pilot or model analysis and estimation; if the second If the QoS index is less than the service QoS index, continue to adjust the first ratio of multiple PUs in the PU, and determine whether the new first QoS index is greater than or equal to the service QoS index; if the new first QoS index is still less than the service QoS index At this time, repeat the above steps and continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
在一种可能的实施方式中,当PU为多个PU,在确定第一QoS指标小于业务QoS指标之后,SSD控制器还用于:保持第一比例值不变,调整多个PU内的多个第二比例值,并通过试点或模型分析估计,确定调整后的业务的第三QoS指标,其中,第二比例值为多个PU中的一个PU的MA和LA的比例值;若第三QoS指标小于业务QoS指标,则调整第一比例值,并同时调整多个PU内一个或多个PU的第二比例值,并通过试点或模型分析估计,确定调整后的业务的第二QoS指标;若第二QoS指标小于业务QoS指标,则保持调整后的第一比例值不变,继续调整PU的第二比例值,并确定新的第二QoS标指是否大于等于业务QoS指标;若新的第二QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值,直至业务的QoS指标大于等于业务QoS指标。In a possible implementation manner, when the PU is multiple PUs, after determining that the first QoS indicator is less than the service QoS indicator, the SSD controller is further configured to: keep the first ratio constant and adjust the multiples of the multiple PUs. The third QoS index of the adjusted service is determined through pilot or model analysis and estimation, where the second ratio value is the ratio of MA and LA of one PU among multiple PUs; if the third If the QoS index is less than the service QoS index, adjust the first ratio value, and adjust the second ratio value of one or more PUs in multiple PUs at the same time, and determine the second QoS index of the adjusted service through pilot or model analysis and estimation ; If the second QoS index is less than the service QoS index, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine whether the new second QoS index is greater than or equal to the service QoS index; if new When the second QoS index of is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the service QoS index is greater than or equal to the service QoS index.
在一种可能的实施方式中,SSD控制器还用于:若业务分配的PU具有LA,且部分LA未被使用,则将未被使用的部分LA分配给其他业务。In a possible implementation manner, the SSD controller is further configured to: if the PU allocated by the service has an LA, and part of the LA is not used, then the unused part of the LA is allocated to other services.
在一种可能的实施方式中,SSD控制器还用于:若其他业务在特定时间内,忽略QoS指标的要求,则确定将未被使用的部分LA分配给其他业务;或通过试点或模型分析估计,确定其他业务在接受分配的未被使用的部分LA后,其他业务的QoS指标 是否大于等于业务QoS指标;若其他业务的QoS指标大于等于业务QoS指标,则确定将未被使用的部分LA分配给其他业务。In a possible implementation manner, the SSD controller is also used to: if other services ignore the requirements of QoS indicators within a certain period of time, determine to allocate the unused part of the LA to other services; or through pilot or model analysis Estimate and determine whether the QoS indicators of other services are greater than or equal to the business QoS indicators after receiving the allocated unused part of the LA; if the QoS indicators of other services are greater than or equal to the business QoS indicators, then determine the unused part of the LA Assign to other businesses.
在一种可能的实施方式中,SSD控制器还用于:在同一个PU内,SSD控制器控制存储介质阵列,若满足特定条件,则位于MA的业务主动触发物理位置轮转。In a possible implementation manner, the SSD controller is also used to: in the same PU, the SSD controller controls the storage medium array, and if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
在一种可能的实施方式中,SSD控制器还用于:控制存储介质阵列,从MA中选择待轮转物理块block;选择同一个PU内的LA中的一个空闲block,或选择同一个所述PU内的MA中的一个空闲block;将待轮转block内的有效数据写入空闲block;若选择的是同一个PU内的LA中的一个空闲block,则将空闲block的属性修改为MA,以及将待轮转block内的数据标记为无效,并修改属性为LA;若选择同一个PU内的MA中的一个空闲block,则将待轮转block内的数据标记为无效。In a possible implementation manner, the SSD controller is also used to: control the storage medium array, select the physical block to be rotated from the MA; select an idle block in the LA in the same PU, or select the same An idle block in the MA in the PU; write the valid data in the block to be rotated into the idle block; if an idle block in the LA in the same PU is selected, modify the attribute of the idle block to MA, and Mark the data in the block to be rotated as invalid and modify the attribute to LA; if an idle block in the MA in the same PU is selected, the data in the block to be rotated is marked as invalid.
在一种可能的实施方式中,特定条件包括:业务触发轮转守护进程;或业务在特定时间内,忽略业务QoS指标的要求;或业务所分配的PU正在进行后台操作,并且不影响业务QoS指标;或至少一个主机或虚拟机主动发起,其中,主机或虚拟机还用于下发至少一个业务;或PU出现故障。In a possible implementation manner, the specific conditions include: the service triggers the rotation daemon; or the service ignores the requirements of the service QoS index within a specific time; or the PU assigned by the service is operating in the background and does not affect the service QoS index Or at least one host or virtual machine actively initiates it, where the host or virtual machine is also used to deliver at least one service; or the PU fails.
在一种可能的实施方式中,SSD控制器还用于:若当前PU划分的区域无法匹配业务的优先级,SSD控制器控制存储介质阵列,将MA划分为第一优先级MA和第二优先级LA,和/或将LA划分为第三优先级LA和第四优先级LA;若划分后的PU的区域仍无法匹配业务的优先级,则继续对PU内的区域进行二元划分,直至匹配业务的优先级;其中,每次二元划分后区域的优先级不超过该区域划分前的优先级。In a possible implementation manner, the SSD controller is also used to: if the area divided by the current PU cannot match the priority of the service, the SSD controller controls the storage medium array and divides the MA into the first priority MA and the second priority Level LA, and/or divide the LA into a third priority LA and a fourth priority LA; if the area of the divided PU still cannot match the priority of the service, continue to divide the area within the PU into binary division until Match the priority of the service; where the priority of the area after each binary division does not exceed the priority before the division of the area.
在一种可能的实施方式中,SSD控制器与存储介质阵列封装在一个集成芯片上;或SSD控制器包括第一SSD控制器和第二SSD控制器;第一SSD控制器位于至少一个主机中的一个主机内,以及第二SSD控制器与存储介质阵列封装在一个集成芯片上。In a possible implementation manner, the SSD controller and the storage medium array are packaged on an integrated chip; or the SSD controller includes a first SSD controller and a second SSD controller; the first SSD controller is located in at least one host The second SSD controller and storage medium array are packaged on an integrated chip.
第三方面,本申请提供了一种提升固态硬盘利用率的方法,方法包括:接收至少一个业务的特征信息,其中,特征信息包括业务服务质量QoS指标;根据QoS指标将并发单元PU的主区MA分配给QoS指标最大的业务使用,以及将PU的出租区LA分配给其余业务使用,其中,PU包括MA或LA中的至少一个。In a third aspect, the present application provides a method for improving the utilization rate of a solid state drive. The method includes: receiving characteristic information of at least one service, wherein the characteristic information includes a service quality QoS index; and dividing the main area of the concurrent unit PU according to the QoS index The MA is allocated to the service use with the largest QoS index, and the leased area LA of the PU is allocated to the rest of the service use, where the PU includes at least one of the MA or the LA.
在一种可能的实施方式中,特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求;根据典型IOPS需求,确定业务所需PU的第一数量;根据业务存储容量指标或典型容量需求,确定业务所需PU的第二数量;将PU的MA分配给QoS指标最大的业务使用,以及将PU的LA分配给其余业务使用包括:将多个PU中的第一PU的MA分配给QoS指标最大的业务使用,以及将第一PU的LA分配给其余业务使用,其中,第一PU中包括的PU的数量为第一数量和第二数量中的最大值。In a possible implementation manner, the characteristic information also includes typical read/write input/output number IOPS requirements per second, and business storage capacity indicators or typical capacity requirements; according to typical IOPS requirements, determine the first number of PUs required by the business; Service storage capacity index or typical capacity requirement, to determine the second number of PUs required by the service; assigning the PU’s MA to the service with the largest QoS index, and assigning the PU’s LA to the rest of the service use includes: The MA of the first PU is allocated to the use of the service with the largest QoS index, and the LA of the first PU is allocated to the use of the remaining services, where the number of PUs included in the first PU is the maximum of the first number and the second number .
在一种可能的实施方式中,特征信息还包括业务的写入量需求、业务的写放大系数和固态硬盘的编程擦除PE寿命;根据业务存储容量指标或典型容量需求,确定第二PU数包括:根据典型容量需求或业务存储容量指标、业务的写入量需求、业务的写放大系数、固态硬盘的PE寿命,确定超供冗余空间OP需求;结合OP需求以及典型容量需求或业务存储容量指标,确定业务所需PU的第二数量。In a possible implementation manner, the characteristic information also includes the write volume requirements of the business, the write amplification factor of the business, and the programming and erasing PE life of the solid-state hard disk; the second PU number is determined according to the business storage capacity index or typical capacity requirements. Including: According to typical capacity requirements or business storage capacity indicators, business write volume requirements, business write amplification factor, solid-state drive PE life, determine the excess redundant space OP requirements; combine OP requirements and typical capacity requirements or business storage The capacity index determines the second number of PUs required by the business.
在一种可能的实施方式中,方法还包括:位于同一个PU内,SSD控制器控制访 问MA的输入输出IO操作的优先级高于访问LA的IO操作的优先级;其中,IO操作为业务的IO操作。In a possible implementation manner, the method further includes: located in the same PU, the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA; wherein, the IO operations are services IO operations.
在一种可能的实施方式中,优先级的调度方式为严格优先级调度、概率性优先级调度、剥夺式优先级调度或非剥夺式优先级调度。In a possible implementation manner, the priority scheduling mode is strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
在一种可能的实施方式中,严格优先级调度为优先级高的IO操作先于优先级低的IO操作被调度;概率性优先级调度为调度优先级高的IO操作的概率高于调度优先级低的IO操作的概率;剥夺式优先级调度为优先级高的IO操作在预设条件下,允许中断正在执行的优先级低的IO操作;非剥夺式优先级调度为优先级高的IO操作在任何条件下,都不允许中断正在执行的优先级低的IO操作。In a possible implementation manner, strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority; probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than that of scheduling priority. Probability of low-level IO operations; deprivation-priority scheduling is high-priority IO operations under preset conditions, allowing interruption of low-priority IO operations being executed; non-deprivation-priority scheduling is high-priority IO Under any conditions, the operation is not allowed to interrupt the low priority IO operation being executed.
在一种可能的实施方式中,将PU的LA分配给其余业务使用包括:根据QoS指标对至少一个业务由高到低依次排序;依照排序,依次为其余业务分配不同优先级的LA,其中LA的优先级与被分配的业务的QoS指标正相关。In a possible implementation manner, allocating the PU's LA to other services includes: sorting at least one service from high to low according to QoS indicators; according to the sorting, sequentially assigning LAs of different priorities to the remaining services, where LA The priority of is positively correlated with the QoS index of the assigned service.
在一种可能的实施方式中,方法还包括:若业务在分配的PU内有余量的达成业务指标时,则调整PU内MA和LA的比例。In a possible implementation manner, the method further includes: adjusting the ratio of MA and LA in the PU if the service has a margin in the allocated PU to achieve the service index.
在一种可能的实施方式中,若业务在分配的PU内有余量的达成业务指标时,则调整PU内MA和LA的比例包括:若PU存在未使用的存储空间且分配至PU的业务有余量地达成业务存储容量指标和业务服务质量QoS指标,则调整PU内MA和LA的比例。In a possible implementation, if the business has a margin in the allocated PU to achieve the business index, adjusting the ratio of MA and LA in the PU includes: if the PU has unused storage space and is allocated to the business of the PU If there is margin to achieve the business storage capacity index and the business service quality QoS index, the ratio of MA and LA in the PU will be adjusted.
在一种可能的实施方式中,有余量地达成业务存储容量指标包括:业务所分配到的存储容量大于业务需求的存储容量;或业务所分配到的存储容量等于业务需求的存储容量,但当前时刻业务所分配到的存储容量并未被业务充分使用。In a possible implementation manner, achieving the business storage capacity index with margin includes: the storage capacity allocated to the business is greater than the storage capacity required by the business; or the storage capacity allocated to the business is equal to the storage capacity required by the business, but The storage capacity allocated to the business at the current moment is not fully used by the business.
在一种可能的实施方式中,有余量地达成业务QoS指标包括:业务的实际QoS大于或等于QoS指标;或业务在特定时间内,忽略QoS指标的要求。In a possible implementation manner, achieving the service QoS index with margin includes: the actual QoS of the service is greater than or equal to the QoS index; or the service ignores the requirement of the QoS index within a certain time.
在一种可能的实施方式中,调整PU内MA和LA的比例包括:根据业务存储容量指标,确定PU的第一比例值,其中,第一比例值为PU内MA和LA的比例值;通过试点或模型分析估计,确定业务的第一QoS指标;若第一QoS指标小于业务QoS指标,则调整第一比例值,并通过试点或模型分析估计,确定调整后的业务的第二QoS指标;若第二QoS指标小于业务QoS指标,则继续调整PU的第一比例值,并确定新的第一QoS标指是否大于等于业务QoS指标;若新的第一QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值,直至业务的QoS指标大于等于业务QoS指标。In a possible implementation manner, adjusting the ratio of MA and LA in the PU includes: determining a first ratio value of the PU according to a service storage capacity index, where the first ratio value is the ratio value of MA and LA in the PU; Pilot or model analysis and estimation to determine the first QoS index of the service; if the first QoS index is less than the service QoS index, adjust the first ratio value, and determine the adjusted second QoS index of the service through pilot or model analysis and estimation; If the second QoS index is less than the service QoS index, continue to adjust the first ratio value of the PU, and determine whether the new first QoS index is greater than or equal to the service QoS index; if the new first QoS index is still less than the service QoS index , Repeat the above steps and continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
在一种可能的实施方式中,当PU为多个PU,在确定第一QoS指标小于业务QoS指标之后,方法还包括:保持第一比例值不变,调整多个PU内的多个第二比例值,并通过试点或模型分析估计,确定调整后的业务的第三QoS指标,其中,第二比例值为多个PU中的一个PU的MA和LA的比例值;若第三QoS指标小于业务QoS指标,则调整第一比例值,并同时调整多个PU内一个或多个PU的第二比例值,并通过试点或模型分析估计,确定调整后的业务的第二QoS指标;若第二QoS指标小于业务QoS指标,则保持调整后的第一比例值不变,继续调整PU的第二比例值,并确定新的第二QoS标指是否大于等于业务QoS指标;若新的第二QoS标指仍小于业务QoS指标 时,则重复上述步骤,继续调整第一比例值,直至业务的QoS指标大于等于业务QoS指标。In a possible implementation manner, when the PUs are multiple PUs, after determining that the first QoS indicator is less than the service QoS indicator, the method further includes: keeping the first ratio constant and adjusting multiple second ones in the multiple PUs. The third QoS index of the adjusted service is determined through pilot or model analysis and estimation, where the second ratio value is the ratio of the MA and LA of one PU among the multiple PUs; if the third QoS index is less than For service QoS indicators, adjust the first ratio value, and simultaneously adjust the second ratio value of one or more PUs in multiple PUs, and determine the second QoS indicator of the adjusted service through pilot or model analysis and estimation; 2. If the QoS index is less than the service QoS index, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine whether the new second QoS index is greater than or equal to the service QoS index; if the new second QoS index is greater than or equal to the service QoS index; When the QoS index is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the service QoS index is greater than or equal to the service QoS index.
在一种可能的实施方式中,方法还包括:若业务分配的PU具有LA,且部分LA未被使用,则将未被使用的部分LA分配给其他业务。In a possible implementation manner, the method further includes: if the PU allocated by the service has an LA and part of the LA is not used, allocating the part of the LA that is not used to other services.
在一种可能的实施方式中,将未被使用的部分LA分配给其他业务包括:若其他业务在特定时间内,忽略QoS指标的要求,则确定将未被使用的部分LA分配给其他业务;或通过试点或模型分析估计,确定其他业务在接受分配的未被使用的部分LA后,其他业务的QoS指标是否大于等于业务QoS指标;若其他业务的QoS指标大于等于业务QoS指标,则确定将未被使用的部分LA分配给其他业务。In a possible implementation manner, allocating part of the unused LA to other services includes: if other services ignore the requirements of QoS indicators within a certain period of time, then determining to allocate the part of the unused LA to other services; Or through pilot or model analysis and estimation, it is determined whether the QoS indicators of other services are greater than or equal to the business QoS indicators after receiving the allocated unused part of the LA; if the QoS indicators of other services are greater than or equal to the business QoS indicators, it is determined The unused part of LA is allocated to other services.
在一种可能的实施方式中,方法还包括:在同一个PU内,若满足特定条件,则位于MA的业务主动触发物理位置轮转。In a possible implementation manner, the method further includes: in the same PU, if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
在一种可能的实施方式中,物理位置轮转包括:从MA中选择待轮转物理块block;选择同一个PU内的LA中的一个空闲block,或选择同一个所述PU内的MA中的一个空闲block;将待轮转block内的有效数据写入空闲block;若选择的是同一个PU内的LA中的一个空闲block,则将空闲block的属性修改为MA;将待轮转block内的数据标记为无效,并修改属性为LA;若选择同一个PU内的MA中的一个空闲block,则将待轮转block内的数据标记为无效。In a possible implementation manner, the physical position rotation includes: selecting the physical block to be rotated from the MA; selecting an idle block in the LA in the same PU, or selecting one of the MA in the same PU Free block; write the valid data in the block to be rotated into the free block; if you select an free block in the LA in the same PU, modify the attribute of the free block to MA; mark the data in the block to be rotated It is invalid, and the attribute is changed to LA; if a free block in the MA in the same PU is selected, the data in the block to be rotated will be marked as invalid.
在一种可能的实施方式中,特定条件包括:业务触发轮转守护进程;或业务在特定时间内,忽略业务QoS指标的要求;或业务所分配的PU正在进行后台操作,并且不影响业务QoS指标;或至少一个主机或虚拟机主动发起,其中,主机或虚拟机还用于下发至少一个业务;或PU出现故障。In a possible implementation manner, the specific conditions include: the service triggers the rotation daemon; or the service ignores the requirements of the service QoS index within a specific time; or the PU assigned by the service is operating in the background and does not affect the service QoS index Or at least one host or virtual machine actively initiates it, where the host or virtual machine is also used to deliver at least one service; or the PU fails.
在一种可能的实施方式中,方法还包括:若当前PU划分的区域无法匹配业务的优先级,则将MA划分为第一优先级MA和第二优先级LA;和/或将LA划分为第三优先级LA和第四优先级LA;若划分后的PU的区域仍无法匹配业务的优先级,则继续对PU内的区域进行二元划分,直至匹配业务的优先级;其中,每次二元划分后区域的优先级不超过该区域划分前的优先级。In a possible implementation manner, the method further includes: if the area divided by the current PU cannot match the priority of the service, dividing the MA into a first priority MA and a second priority LA; and/or dividing the LA into The third priority LA and the fourth priority LA; if the area of the divided PU still cannot match the priority of the service, continue to divide the area within the PU until the priority of the service is matched; among them, every time The priority of the area after the binary division does not exceed the priority before the division of the area.
第四方面,本申请提供了一种计算机可读存储介质,包括指令,当指令在计算机上运行时,使计算机执行根据第三方面任一项的方法。In a fourth aspect, the present application provides a computer-readable storage medium, including instructions, which when run on a computer, cause the computer to execute the method according to any one of the third aspects.
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第三方面任一项的方法。In the fifth aspect, the present application provides a computer program product containing instructions, which when run on a computer, causes the computer to execute the method as in any one of the third aspect.
本申请提供的一种提升固态硬盘利用率的方法及装置,通过输入不同业务或业务QoS、IOPS、capacity等维度,并进行PU的数量按需分配。同时遵循以下原则:先分配高QoS需求业务,后分配低QoS需求业务;高优先级逻辑分区优先分配给高QoS需求业务,低优先级逻辑分区优先分配给低QoS需求业务;优先级越高的逻辑分区,参与共享的业务数量越少。在对PU数量按需分配的同时,对不同逻辑分区分配业务,解决了多租户/多业务共址时相互干扰的问题,并保证了在满足业务各需求的前提下,将存储介质利用率最大化。同时,通过对并发单元中不同逻辑分区进行比例调整,从而可以缩小业务所占PU的比例,同时释放出空闲资源,进一步提升存储介质的利用率。以及通过进行物理轮转,实现了PU内物理块的磨损均衡。本申请还通过对并发 单元划分出不同逻辑分区,并赋予不同优先级维度,从而细化了管理粒度,增加了管理的灵活度,保证了业务QoS指标的前提下同时提升存储介质的利用率。The method and device for improving the utilization rate of solid-state hard disks provided in this application are performed by inputting different services or dimensions of service QoS, IOPS, capacity, etc., and assigning the number of PUs as needed. At the same time, follow the following principles: first assign high QoS demand services, then assign low QoS demand services; high priority logical partitions are assigned to high QoS demand services first, and low priority logical partitions are first assigned to low QoS demand services; the higher the priority Logical partition, the less the number of businesses involved in sharing. While allocating the number of PUs on demand, it also allocates services to different logical partitions, which solves the problem of mutual interference when multi-tenant/multi-service co-location, and ensures that the utilization of storage media is maximized under the premise of meeting various business needs化. At the same time, by adjusting the proportions of different logical partitions in the concurrent unit, the proportion of PUs occupied by services can be reduced, while free resources are released to further improve the utilization of storage media. And through physical rotation, the wear leveling of the physical blocks in the PU is realized. This application also divides the concurrent units into different logical partitions and assigns different priority dimensions to refine management granularity, increase management flexibility, and improve storage media utilization while ensuring service QoS indicators.
附图说明Description of the drawings
图1为本申请实施例提供的一种应用场景示意图;FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the application;
图2为本申请实施例提供的flash存储介质结构框架示意图;2 is a schematic structural diagram of a flash storage medium structure provided by an embodiment of the application;
图3a为本申请实施例提供的一种无NVM Sets隔离数据排布示意图;FIG. 3a is a schematic diagram of a non-NVM Sets isolation data arrangement provided by an embodiment of the application;
图3b为本申请实施例提供的一种有NVM Sets隔离数据排布示意图;FIG. 3b is a schematic diagram of an isolated data arrangement with NVM Sets according to an embodiment of the application;
图4为本申请实施例提供的一种并发单元排列示意图;FIG. 4 is a schematic diagram of an arrangement of concurrent units provided by an embodiment of the application;
图5为本申请实施例提供的一种并发单元区域划分示意图;FIG. 5 is a schematic diagram of a concurrent unit area division provided by an embodiment of the application;
图6为本申请实施例提供的一种存储装置结构图;FIG. 6 is a structural diagram of a storage device provided by an embodiment of this application;
图7a为本申请实施例提供的一种并发单元业务分配示意图;FIG. 7a is a schematic diagram of service distribution of a concurrent unit according to an embodiment of the application;
图7b为本申请实施例提供的另一种并发单元业务分配示意图;FIG. 7b is a schematic diagram of another concurrent unit service distribution provided by an embodiment of this application;
图8为本申请实施例提供的一种并发单元区域调整示意图;FIG. 8 is a schematic diagram of a concurrent unit area adjustment provided by an embodiment of the application;
图9为本申请实施例提供的一种并发单元内逻辑分区物理位置轮转示意图;FIG. 9 is a schematic diagram of a physical location rotation of logical partitions in a concurrent unit according to an embodiment of the application;
图10为本申请实施例提供的另一种并发单元内逻辑分区物理位置轮转示意图;10 is a schematic diagram of another physical location rotation of logical partitions in a concurrent unit provided by an embodiment of the application;
图11为本申请实施例提供的一种并发单元逻辑分区二分示意图;FIG. 11 is a schematic diagram of a dichotomy of a logical partition of a concurrent unit according to an embodiment of the application;
图12为本申请实施例提供的一种并发单元分配业务示意图;FIG. 12 is a schematic diagram of a concurrent unit allocation service provided by an embodiment of this application;
图13为本申请实施例提供的另一种应用场景示意图;FIG. 13 is a schematic diagram of another application scenario provided by an embodiment of the application;
图14为本申请实施例提供的又一种应用场景示意图;FIG. 14 is a schematic diagram of another application scenario provided by an embodiment of this application;
图15为本申请实施例提供的再一种应用场景示意图;FIG. 15 is a schematic diagram of yet another application scenario provided by an embodiment of the application;
图16为本申请实施例提供的一种提升固态硬盘利用率的方法流程图;FIG. 16 is a flowchart of a method for improving the utilization rate of a solid state drive provided by an embodiment of the application;
图17为本申请实施例提供的一种调整并发单元逻辑分区占比的方法流程图;FIG. 17 is a flowchart of a method for adjusting the proportion of logical partitions of a concurrent unit according to an embodiment of the application;
图18为本申请实施例提供的一种并发单元物理位置轮转的方法流程图;FIG. 18 is a flowchart of a method for rotating the physical position of a concurrent unit according to an embodiment of the application;
图19为本申请实施例提供的一种并发单元逻辑分区细化的方法流程图。FIG. 19 is a flowchart of a method for refining logical partitions of a concurrent unit according to an embodiment of the application.
具体实施方式Detailed ways
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
本申请主要应用于主机通过SSD控制器对存储介质阵列进行存取数据。图1为本申请实施例提供的一种应用场景示意图。如图1示出的,在该场景可以包括一个或多个主机、一个或多个SSD控制器以及一个或多个存储介质阵列。其中,一个或多个主机通过NVMe、串行连接小型计算机系统接口(serial attached small computer system interface,SAS)、高速串行计算机扩展总线接口(peripheral component interconnect express,PCIe)等多种不同的接口与SSD控制器的前端相连接。以及,每个SSD控制器的后端通过与非型闪存接口(nandflash interface,NFI)与对应的存储介质阵列相连接,以便SSD控制器对存储介质阵列中的数据进行读、写以及擦除等操作。This application is mainly applied to the host accessing data to the storage medium array through the SSD controller. FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the application. As shown in Figure 1, this scenario may include one or more hosts, one or more SSD controllers, and one or more storage medium arrays. Among them, one or more hosts communicate with various interfaces such as NVMe, serial attached small computer system interface (SAS), and high-speed serial computer expansion bus interface (peripheral component interconnect express, PCIe). The front end of the SSD controller is connected. And, the back end of each SSD controller is connected to the corresponding storage medium array through a non-flash interface (NFI), so that the SSD controller can read, write, and erase the data in the storage medium array. operating.
本领域人员应当注意,对于本申请中的存储介质可以是闪存(flash)、动态随机存取存储器(dynamic random access memory,DRAM)、静态随机存取存储器(static random-access memory,SRAM)、相变存储器(phase change memory,PCM)、储存 级存储器(storage-class memory,SCM)等任意一种具有并发单元概念的存储介质。本申请再次不做限定。为方便描述,本申请实施例将以存储介质为flash为例进行说明。Those in the art should note that the storage medium in this application can be flash memory (flash), dynamic random access memory (dynamic random access memory, DRAM), static random access memory (static random-access memory, SRAM), or relative Any storage medium with the concept of a concurrent unit, such as phase change memory (PCM) and storage-class memory (SCM). This application is not limited again. For ease of description, the embodiment of the present application will take the storage medium as flash as an example for description.
图2为本申请实施例提供的flash存储介质结构框架示意图。图2示出了图1中的存储介质阵列,若存储介质选择为flash时,flash的结构示意图。其中,flash阵列中包括多个flash,flash阵列中的每个flash可以包括多个通道(channel),每个channel中可以由多个模组(die)构成,每个die又可以由多个平面(plane)构成,每个plane又可以由多个区块(block)构成。在图1以及图2所示出的场景下,SSD会面临需要混合部署“高QoS、低IOPS需求”以及“高IOPS、低QoS需求”的业务。同时,还有可能面临需要临时性提高NVM Sets的IOPS的情况。FIG. 2 is a schematic structural diagram of a flash storage medium provided by an embodiment of the application. FIG. 2 shows the storage medium array in FIG. 1. If the storage medium is selected as flash, a schematic diagram of the structure of the flash. Among them, the flash array includes multiple flashes, each flash in the flash array can include multiple channels (channels), each channel can be composed of multiple modules (die), and each die can be composed of multiple planes. (plane), each plane can be composed of multiple blocks. In the scenarios shown in Figure 1 and Figure 2, SSDs will face the need to mix the deployment of "high QoS, low IOPS requirements" and "high IOPS, low QoS requirements" services. At the same time, there may be situations where it is necessary to temporarily increase the IOPS of NVM Sets.
在一些方案中,通过利用空间隔离(或称为并发隔离)方式提升QoS。例如NVM Sets的相关技术中,通过将SSD的磁盘按介质的并发性隔离成多个区域,从而解决多租户访问而引发IO冲突,从而导致出现延时恶化的问题。该问题可以看做QoS恶化的主要原因。其中,租户是指使用系统或电脑运算资源的客户,包含在系统中可识别为指定用户的一切数据,例如帐户与统计信息、用户在系统中建置的各式数据、以及用户本身的定制化应用程序环境等,都属于租户的范围。在该方案中,隔离后的每个NVM Sets相当于SSD磁盘的一块子盘,被单租户独享或少量租户共享,从而减少IO冲突,并提升QoS。In some solutions, QoS is improved by using spatial isolation (or called concurrent isolation). For example, in the related technology of NVM Sets, the SSD disks are separated into multiple regions according to the concurrency of the media to solve the problem of IO conflicts caused by multi-tenant access, which leads to the problem of deterioration of delay. This problem can be regarded as the main reason for the deterioration of QoS. Among them, the tenant refers to the customer who uses the system or computer computing resources, including all data that can be identified as a designated user in the system, such as account and statistical information, various data created by the user in the system, and the user's own customization Application environment, etc., belong to the scope of tenants. In this solution, each isolated NVM Sets is equivalent to a sub-disk of the SSD disk, which is exclusively shared by a single tenant or shared by a small number of tenants, thereby reducing IO conflicts and improving QoS.
图3a为本申请实施例提供的一种无NVM Sets隔离数据排布示意图。如图3a示出的每个方块可以理解为一个die,图3a中仅为一种示例示出了4*4的flash阵列,其中每一列4个die可以看做为一个channel。可以看出,在没使用NVM Sets进行隔离数据时,每个die上可以被不同的租户数据进行调用。其中,不同租户通过不同花纹进行区分。例如图3a中每个die上重叠了8种不同花纹,即表示该区域的一个die上同时可以被8个不同租户进行调用。可见当不同租户需要同时使用同一个die时,将会相互产生干扰,从而影响QoS。图3b为本申请实施例提供的一种有NVM Sets隔离数据排布示意图。又如图3b示出的每个方块可以理解为一个die,图3b中仅为一种示例示出了4*4的flash阵列,其中每一列4个die可以看做为一个channel。可以看出,在利用了NVM Sets进行隔离数据时,每个die仅仅被某一个租户单独调用,即被特定租户独享。其中,不同租户仍然通过不同花纹进行区分。但可以看出的是,图3b中特定租户的数据被击中存入特定的一部分die上,例如图3b中示出的,每4个相邻的die被某一特定租户独享。可见,图3b示出的4*4的flash阵列,被分割成8个区域,每个区域的die用于被特定的租户独享。租户之间的数据存取在空间上完全隔离后,相互干扰被降到的最低。FIG. 3a is a schematic diagram of a non-NVM Sets isolation data arrangement provided by an embodiment of the application. Each block shown in FIG. 3a can be understood as a die, and FIG. 3a is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel. It can be seen that when NVM Sets are not used to isolate data, each die can be called by different tenant data. Among them, different tenants are distinguished by different patterns. For example, in Figure 3a, 8 different patterns are overlapped on each die, which means that a die in the area can be called by 8 different tenants at the same time. It can be seen that when different tenants need to use the same die at the same time, they will interfere with each other, thereby affecting QoS. FIG. 3b is a schematic diagram of an isolated data arrangement with NVM Sets according to an embodiment of the application. In addition, each block shown in FIG. 3b can be understood as a die, and FIG. 3b is only an example showing a 4*4 flash array, in which 4 die in each column can be regarded as a channel. It can be seen that when using NVM Sets to isolate data, each die is only called individually by a certain tenant, that is, it is exclusively shared by a specific tenant. Among them, different tenants are still distinguished by different patterns. However, it can be seen that the data of a specific tenant in FIG. 3b is hit and stored on a specific part of the die. For example, as shown in FIG. 3b, every four adjacent die are exclusively shared by a specific tenant. It can be seen that the 4*4 flash array shown in FIG. 3b is divided into 8 areas, and the die in each area is used for exclusive use by specific tenants. After the data access between tenants is completely isolated in space, mutual interference is minimized.
但是相比较所有的租户共享所有介质并发通道,上述方案中每个租户由于相互隔离,导致租户的最大介质并发通道数减小,从而每个租户所能达到的最大IOPS也随之大幅减小。同时由于各个租户的业务相互独立,所以无法充分利用SSD磁盘的物理带宽。并且若处理的“高QoS,低IOPS需求”以及“高IOPS,低QoS需求”等不同的客户业务时,需要相应的设计两种或更多的系统以满足不同客户业务需求。However, compared with all tenants sharing all concurrent media channels, in the above scheme, each tenant is isolated from each other, resulting in a reduction in the maximum number of concurrent media channels for each tenant, and thus the maximum IOPS that each tenant can achieve is also greatly reduced. At the same time, since the services of each tenant are independent of each other, the physical bandwidth of the SSD disk cannot be fully utilized. And when dealing with different customer services such as "high QoS, low IOPS demand" and "high IOPS, low QoS demand", two or more systems need to be designed accordingly to meet the business needs of different customers.
本申请通过将存储介质阵列中的并发单元划分为主区MA以及出租区LA。根据业务的业务需求,将高QoS需求的业务分配至存储介质阵列的MA;对于QoS需求不 高的业务,则可以分配至LA,从而可以实现多租户或多业务在共址(co-location)时产生的相互干扰问题。同时由于存储介质的LA可以被多个低QoS的业务共享,从而保证了业务QoS的前提下,提升了存储设备的利用率。本领域技术人员应当注意,本申请中涉及到的业务也可以是包含多个业务的业务集合。This application divides the concurrent units in the storage medium array into a main area MA and a rental area LA. According to the business needs of the business, the services with high QoS requirements are allocated to the MA of the storage media array; for the services with low QoS requirements, they can be allocated to the LA, so that multiple tenants or multiple services can be co-location (co-location) Mutual interference problems arising from time to time. At the same time, because the LA of the storage medium can be shared by multiple services with low QoS, the utilization rate of the storage device is improved while ensuring the QoS of the service. Those skilled in the art should note that the business involved in this application may also be a business set that includes multiple businesses.
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。The technical solutions in the embodiments of the present application will be described in detail below in conjunction with the drawings in the embodiments of the present application.
图4为本申请实施例提供的一种并发单元排列示意图。FIG. 4 is a schematic diagram of an arrangement of concurrent units provided by an embodiment of the application.
如图4所示,可以看出位于存储介质阵列中的存储介质中包含有多个并发单元(parallel unit,PU)。其中,每一列显示的各个PU可以看做是处于同一个channel中,如channel箭头示出的,横向的每个PU代表了不同channel内的PU。而每一列中的PU则表示了该channel中的每个die。本领域人员应当注意,本申请中将可以并发独立地执行不同操作类型或不同操作参数命令的最小单元作为PU。例如,以主流的flash存储介质为例,其最小的可以相互独立执行“读/写/擦”操作的层级为die,则die即本申请中的PU。可以理解的是对于更为先进的存储设备,若可以支持在plane级之间进行独立并发“读/写/擦”等操作,则对于该类存储介质而言,plane则可以为本申请涉及到的PU。As shown in Figure 4, it can be seen that the storage medium located in the storage medium array contains multiple parallel units (PU). Among them, each PU displayed in each column can be regarded as being in the same channel, as shown by the channel arrow, each PU in the horizontal direction represents a PU in a different channel. The PU in each column represents each die in the channel. Those skilled in the art should note that in this application, the smallest unit that can concurrently and independently execute different operation types or different operation parameter commands is used as the PU. For example, taking mainstream flash storage media as an example, the smallest level that can perform "read/write/erase" operations independently of each other is die, then die is the PU in this application. It is understandable that for more advanced storage devices, if it can support independent and concurrent "read/write/erase" operations between plane levels, then for this type of storage media, plane can be involved in this application的PU.
图5为本申请实施例提供的一种并发单元区域划分示意图。FIG. 5 is a schematic diagram of a concurrent unit area division provided by an embodiment of the application.
如图5所示,可以看出本申请通过将每个PU进一步分进行细致划分,例如划分为两个逻辑区域,即主区MA以及出租区LA。其中,本申请中的MA只允许被分配给某一个特定的业务或业务集合。换句话说,就是存储介质MA只可以被单一的业务或业务集合独享。而对于LA则可以允许被分配给一个或者一个以上的业务或业务集合。也就是说,存储介质LA只可以被一个或多个业务或业务集合共享。As shown in Fig. 5, it can be seen that this application further divides each PU into a detailed division, for example, into two logical areas, namely the main area MA and the rental area LA. Among them, the MA in this application is only allowed to be allocated to a specific service or service set. In other words, the storage medium MA can only be used exclusively by a single service or a collection of services. For LA, it can be allowed to be allocated to one or more services or service sets. In other words, the storage medium LA can only be shared by one or more services or service sets.
图6为本申请实施例提供的一种存储装置结构图。FIG. 6 is a structural diagram of a storage device provided by an embodiment of the application.
如图6中示出了一种存储装置。其中,装置可以包括:存储介质阵列和耦合至存储介质阵列的固态硬盘SSD控制器。其中,SSD控制器可以包括接收单元和处理单元。A storage device is shown in FIG. 6. Wherein, the device may include: a storage medium array and a solid state hard disk SSD controller coupled to the storage medium array. Among them, the SSD controller may include a receiving unit and a processing unit.
在一个例子中,该装置还可以包括主机。用于向SSD控制器下发至少一个业务或业务集合。在另一个例子中,主机可以是一个或多个主机。再一个例子中,主机上还还可以运行一个或多个虚拟机(virtual machine,VM)或虚函数(virtual function,VF)。本领域人员应当注意,SSD控制器可以接收来自一个或多个主机、以及一个或多个虚拟机或虚函数下发的业务或业务集合,本申请在此不做限定。In an example, the device may also include a host. Used to deliver at least one service or service set to the SSD controller. In another example, the host may be one or more hosts. In another example, one or more virtual machines (VM) or virtual functions (VF) may also run on the host. Those skilled in the art should note that the SSD controller can receive services or service sets delivered from one or more hosts and one or more virtual machines or virtual functions, which is not limited in this application.
在一个实施例中,一个或多个主机或虚拟机通过NVMe、SAS、PCIe等多种不同的接口与SSD控制器相连接。SSD控制器中的接收单元,接收至少一个主机或虚拟机下发的至少一个业务或业务集合的特征信息。在一个例子中,该特征信息包括业务服务质量QoS指标。SSD控制器中的处理单元,还可以用于针对每个业务或业务集合的QoS指标的大小,对至少一个业务或业务集合进行排序。然后将PU的MA分配给QoS指标最大的业务或业务集合使用,以及根据排序将PU的LA分配给其余业务或业务集合使用,以便进行相应的操作。In one embodiment, one or more hosts or virtual machines are connected to the SSD controller through various interfaces such as NVMe, SAS, PCIe, and so on. The receiving unit in the SSD controller receives the characteristic information of at least one service or service set issued by at least one host or virtual machine. In an example, the characteristic information includes service quality QoS indicators. The processing unit in the SSD controller can also be used to sort at least one service or service set according to the size of the QoS index of each service or service set. Then the PU's MA is allocated to the service or service set with the largest QoS index for use, and the PU's LA is allocated to the remaining services or service sets for use according to the ranking, so as to perform corresponding operations.
在另一个实施例中,特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求。当然可以理解的是,特征信息还可以包括其他任何可能用于描述业务或业务集合特征的信息。SSD控制器根据典型IOPS需求,确 定业务或业务集合所需PU的第一数量,也可以称之为第一PU数。之后,再根据业务存储容量指标或典型容量需求,确定业务或业务集合所需PU的第二数量,也可以称之为第二PU数。然后,将第一PU数和第二PU数中最大的数值数量个PU作为第一PU,即第一PU为所需最少PU数个PU。SSD控制器再将最少PU数个PU的MA分配给QoS指标最大的业务或业务集合使用,以及根据排序将最少PU数个PU的LA分配给其余业务或业务集合使用。为方便描述,本申请将存储介质阵列中最少PU数个PU划分为一个特定访问区。本领域人员应当理解,该特定访问区仅仅为方便描述而划分,在实际业务分配过程中并不存在划分特定访问区的操作。为方便描述,以下均采用“特定访问区”表示“存储介质阵列中最少PU数个PU”。例如图6示出的,处理单元将存储介质1中的第一行前3个PU和第二行的前3个PU划分为一个特定访问区。其中,特定访问区用加粗线条进行了框选。并且将接收单元接收到的业务或业务集合通过NFI分配至该区域的MA或LA中。In another embodiment, the characteristic information further includes a typical read/write input/output number IOPS requirement per second, and a service storage capacity index or typical capacity requirement. Of course, it can be understood that the characteristic information may also include any other information that may be used to describe the characteristics of a service or a service set. The SSD controller determines the first number of PUs required by the service or service set according to typical IOPS requirements, which can also be referred to as the first number of PUs. After that, according to the service storage capacity index or typical capacity requirements, the second number of PUs required by the service or service set is determined, which can also be referred to as the second number of PUs. Then, the largest number of PUs in the first number of PUs and the second number of PUs is used as the first PU, that is, the first PU is the minimum number of PUs required. The SSD controller then allocates the MA of the least number of PUs to the service or service set with the largest QoS index, and allocates the LA of the least number of PUs to the rest of the service or service set according to the ordering. For the convenience of description, this application divides the minimum number of PUs in the storage medium array into a specific access area. Those skilled in the art should understand that the specific access area is divided only for the convenience of description, and there is no operation of dividing the specific access area in the actual service distribution process. For the convenience of description, the following uses "specific access area" to mean "the minimum number of PUs in the storage medium array". For example, as shown in FIG. 6, the processing unit divides the first 3 PUs in the first row and the first 3 PUs in the second row in the storage medium 1 into a specific access area. Among them, the specific access area is framed with bold lines. And the service or service set received by the receiving unit is allocated to the MA or LA in the area through the NFI.
本领域技术人员应当注意,每个PU内的逻辑分区可以仅包含MA,也可以仅包含LA,同时还可以包含MA和LA。本领域技术人员还应当注意,本申请中“将某某业务分配至PU”与“将该PU分配给某某业务使用”的含义相同。Those skilled in the art should note that the logical partition in each PU may only include MA, or only LA, and may also include MA and LA. Those skilled in the art should also note that “assigning a certain service to a PU” in this application has the same meaning as “allocating the PU to a certain service for use”.
在一个例子中,当仅有一个业务或业务集合时,将该业务或业务集合分配至特定访问区内PU的MA。例如,图7a示出的,将该业务或业务集合分配至特定访问区内的MA即图7a中的灰色区域。在另一个例子中,当存在至少两个业务或业务集合时,根据至少两个业务或业务集合的QoS指标的大小进行排序。将QoS指标最大的业务或业务集合分配至特定访问区内PU的MA。例如,图7a示出的,将该业务或业务集合分配至特定访问区内的MA即图7a中的灰色区域。以及根据上述的排序顺序,依次将其余业务或业务集合分配至特定访问区内PU的LA。例如,图7b示出的,将该业务或业务集合分配至特定访问区内的LA即图7b中的灰色区域。其中,在又一个例子中,可以依次将其余业务或业务集合分配至不同优先级的LA。LA的优先级可以与分配的业务或业务集合的QoS指标正相关。在另一个例子中,可以优先分配上述排序中高QoS需求的业务或业务集合,然后再分配低QoS需求的业务或业务集合。In one example, when there is only one service or service set, the service or service set is allocated to the MA of the PU in the specific access area. For example, as shown in FIG. 7a, the service or service set is allocated to the MA in a specific access area, that is, the gray area in FIG. 7a. In another example, when there are at least two services or service sets, sorting is performed according to the size of the QoS indicators of the at least two services or service sets. The service or service set with the largest QoS index is allocated to the MA of the PU in the specific access area. For example, as shown in FIG. 7a, the service or service set is allocated to the MA in a specific access area, that is, the gray area in FIG. 7a. And according to the above sorting sequence, the remaining services or service sets are sequentially allocated to the LA of the PU in the specific access area. For example, as shown in FIG. 7b, the service or service set is allocated to the LA in the specific access area, that is, the gray area in FIG. 7b. Among them, in another example, the remaining services or service sets can be assigned to LAs with different priorities in sequence. The priority of LA can be positively correlated with the QoS index of the assigned service or service set. In another example, the services or service sets with high QoS requirements in the above ranking may be allocated first, and then the services or service sets with low QoS requirements may be allocated.
在另一个例子中,每个PU内可以包括一个或多个LA,不同的LA可以具有不同的优先级。本领域人员应当注意,每个PU只可以有一个MA,并且MA的优先级是最高的。对于每个PU,优先级越高的逻辑分区,其参与共享的业务或业务集合的数量则越少。可以理解的是优先级最高的MA只被分配给一个业务或业务集合,而对于不同优先级的LA来讲,则优先级越高的LA,可共享的业务或业务集合越少。In another example, each PU may include one or more LAs, and different LAs may have different priorities. Those skilled in the art should note that each PU can only have one MA, and the priority of the MA is the highest. For each PU, a logical partition with a higher priority has a smaller number of services or service sets that it participates in sharing. It is understandable that the MA with the highest priority is only assigned to one service or service set. For LAs with different priorities, the higher the priority LA, the fewer services or service sets can be shared.
在另一个实施例中,在本申请中的实施例中,当业务或业务集合为多个时,则处于同一个PU内的MA和LA分别被不同的业务或业务集合调用。此时位于同一个PU内,所有访问MA的IO优先级均高于访问LA的IO优先级。其中IO为相应业务或业务集合的IO操作。In another embodiment, in the embodiment of the present application, when there are multiple services or service sets, the MA and LA in the same PU are respectively called by different services or service sets. At this time, in the same PU, all IO priorities for accessing MA are higher than those for accessing LA. Where IO is the IO operation of the corresponding business or business set.
相比较其他一些方案,例如通过计算各租户的IO请求对应的预留时间标签,再结合预先设置的租户游戏那几信息,并按优先级从高到低的属性怒应答预留时间标签不大于当前时间的IO请求。同时,其他方案仅适用于封闭系统,容易遭受一些拒绝服务(denial of service,DoS)攻击。并且直接赋予用户优先级,对于低优先级的租户则可 能面临进程饥饿(starvation)问题。而本申请则无需对每个IO进行时间比较,实现复杂度较低。同时适用于开放系统,并且是根据业务或业务集合分配不同优先级的存储介质。所以对于低优先级租户的高优先级业务来讲,则避免了starvation问题。Compared with other solutions, for example, by calculating the reserved time label corresponding to each tenant's IO request, combined with the information of the tenant game set in advance, and responding according to the priority from high to low, the reserved time label is not greater than The IO request at the current time. At the same time, other solutions are only applicable to closed systems and are vulnerable to some denial of service (DoS) attacks. And directly give users priority, for low-priority tenants may face process starvation (starvation) problem. However, in this application, there is no need to compare the time of each IO, and the implementation complexity is low. At the same time, it is suitable for open systems and is a storage medium with different priorities assigned according to the business or business set. Therefore, for high-priority services of low-priority tenants, the starvation problem is avoided.
在一个例子中,IO操作的优先级调度方式可以为严格优先级调度、概率性优先级调度、剥夺式优先级调度、非剥夺式优先级调度等任意优先级调度方式或多种优先级调度方式的组合形式。In an example, the priority scheduling method of IO operation can be any priority scheduling method or multiple priority scheduling methods such as strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, non-deprivation priority scheduling, etc. The combination form.
在一个例子中,严格优先级调度可以是优先级高的IO操作先于优先级低的IO操作被调度。概率性优先级调度可以是调度优先级高的IO操作的概率高于调度优先级低的IO操作的概率。剥夺式优先级调度可以是优先级高的IO操作在预设条件下,允许中断正在执行的优先级低的IO操作。非剥夺式优先级调度可以是优先级高的IO操作在任何条件下,都不允许中断正在执行的优先级低的IO操作。本领域人员应当注意,优先级调度方式还可以为其他任意优先级调度方式,或多种优先级调度方式的组合形式,本申请在此不作限定。In one example, strict priority scheduling may be that IO operations with high priority are scheduled before IO operations with low priority. Probabilistic priority scheduling may be that the probability of scheduling an IO operation with a high priority is higher than the probability of scheduling an IO operation with a low priority. The deprivation priority scheduling can be that IO operations with high priority are allowed to interrupt the IO operations with low priority being executed under preset conditions. Non-deprivation priority scheduling can be that high-priority IO operations are not allowed to interrupt the low-priority IO operations being performed under any conditions. Those skilled in the art should note that the priority scheduling mode may also be any other priority scheduling mode, or a combination of multiple priority scheduling modes, which is not limited in this application.
在一个实施例中,对于SSD控制器中的处理单元确定所需最少PU数,具体可以通过以下方式进行确定。SSD控制器中的处理单元首先确定一个或多个主机或虚拟机下发的业务或业务集合的典型IOPS需求。根据业务或业务集合的典型IOPS需求,确定第一PU数。可以理解的是第一PU数是根据该业务或业务集合需求的IOPS确定出的最少使用的PU的数量。SSD控制器中的处理单元还需要确定该业务或业务集合的业务存储容量指标或典型容量需求。并根据该业务或业务集合的业务存储容量指标或典型容量需求,确定第二PU数。可以理解的是第二PU数是根据该业务或业务集合需求的业务存储容量指标或典型容量需求确定出的最少使用的PU的数量。最后,处理单元将选取第一PU数和第二PU数中最大的数值,作为所需最少PU数。In an embodiment, determining the minimum number of PUs required for the processing unit in the SSD controller can be specifically determined in the following manner. The processing unit in the SSD controller first determines the typical IOPS requirements of the service or service set issued by one or more hosts or virtual machines. According to the typical IOPS requirements of the service or service set, the first PU number is determined. It can be understood that the first number of PUs is the number of least used PUs determined according to the IOPS required by the service or service set. The processing unit in the SSD controller also needs to determine the service storage capacity index or typical capacity requirements of the service or service set. And according to the service storage capacity index or typical capacity requirement of the service or service set, the second PU number is determined. It can be understood that the second number of PUs is the number of least used PUs determined according to the service storage capacity index or typical capacity requirements of the service or service set requirements. Finally, the processing unit will select the largest number of the first PU number and the second PU number as the required minimum number of PUs.
其中,业务存储容量指标可以是用于表示该业务或业务集合需要用到的多少容量(capacity)。而对于典型容量需求,则是考虑到SSD在执行业务或业务的IO操作时,实际真实需要的容量需求。由于在执行IO操作时,存储介质在进行擦除时需要将该介质上的信息先写入其他空余的介质上。然后再将该介质整体进行擦除,即此时会出现须擦除改写的部分比新数据实际需要的大得多。此时需要将这部分容量需求一并考虑进去,即典型容量需求。Wherein, the service storage capacity index may be used to indicate how much capacity (capacity) the service or service set needs to use. As for the typical capacity requirements, it is the capacity requirements that SSDs actually need when performing services or business IO operations. Because when performing an IO operation, the storage medium needs to write the information on the medium to other spare mediums first when erasing the storage medium. Then the entire medium is erased, that is, the part that needs to be erased and rewritten at this time is much larger than the new data actually needs. At this time, this part of the capacity requirement needs to be taken into consideration, that is, the typical capacity requirement.
在另一个实施例中,特征信息还包括业务或业务集合的写入量需求、业务或业务集合的写放大系数和固态硬盘的编程擦除(program erease,PE)寿命等信息。处理单元在确定第二PU数时,可以根据典型容量需求或业务存储容量指标、业务或业务集合的太字节写入量(terabyte write,TBW)需求、业务或业务集合的写放大系数、SSD的PE寿命,确定超供冗余空间(over provision,OP)需求。处理单元再结合OP需求以及典型容量需求或业务存储容量指标,确定第二PU数。In another embodiment, the characteristic information further includes information such as the write volume requirements of the service or the service set, the write amplification factor of the service or the service set, and the program erase (PE) life of the solid state disk. When the processing unit determines the second number of PUs, it can be based on typical capacity requirements or service storage capacity indicators, terabyte write (TBW) requirements of the service or service set, write amplification factor of the service or service set, SSD To determine the over-provision (OP) requirements for the longevity of the PE. The processing unit then combines OP requirements and typical capacity requirements or business storage capacity indicators to determine the second PU number.
本申请通过输入不同业务或业务QoS、IOPS、capacity等维度,并进行PU的数量按需分配。同时遵循以下原则:先分配高QoS需求业务,后分配低QoS需求业务;高优先级逻辑分区优先分配给高QoS需求业务,低优先级逻辑分区优先分配给低QoS需求业务;优先级越高的逻辑分区,参与共享的业务数量越少。在对PU数量按需分配的同时,对不同逻辑分区分配业务,解决了多租户/多业务共址时相互干扰的问题, 并保证了在满足业务各需求的前提下,将存储介质利用率最大化。In this application, by entering dimensions such as different services or service QoS, IOPS, capacity, etc., the number of PUs is allocated on demand. At the same time, follow the following principles: first assign high QoS demand services, then assign low QoS demand services; high priority logical partitions are assigned to high QoS demand services first, and low priority logical partitions are first assigned to low QoS demand services; the higher the priority Logical partition, the less the number of businesses involved in sharing. While allocating the number of PUs on demand, it also allocates services to different logical partitions, which solves the problem of mutual interference when multi-tenant/multi-service co-location, and ensures that the utilization of storage media is maximized under the premise of meeting various business needs化.
图8为本申请实施例提供的一种并发单元区域调整示意图。FIG. 8 is a schematic diagram of a concurrent unit area adjustment provided by an embodiment of the application.
如图8所示,在一个实施例中,若业务或业务集合在分配的特定访问区内有余量的达成业务指标时,则调整特定访问区的PU内MA和LA的比例。正如图8左半部分示出的,在特定访问区内,若此时多个PU共同被分配给某一个业务或业务集合后,此时若业务或业务集合可以有余量的达成业务指标,则可以进行静态或动态地调整该特定访问区内PU的MA和LA的占比。经过调整后,例如图8右半部分示出的,每个PU的MA都划分出一部分存储空间归为LA。As shown in FIG. 8, in one embodiment, if the service or service set has a margin to achieve the business index in the assigned specific access area, the ratio of MA and LA in the PU of the specific access area is adjusted. As shown in the left half of Figure 8, in a specific access area, if multiple PUs are jointly allocated to a certain service or service set at this time, if the service or service set has margin to achieve the service index, Then, the proportions of MA and LA of the PU in the specific access area can be adjusted statically or dynamically. After adjustment, for example, as shown in the right half of FIG. 8, the MA of each PU is divided into a part of the storage space and classified as LA.
在一个例子中,业务指标可以包括业务存储容量指标和业务QoS指标。In an example, the service index may include a service storage capacity index and a service QoS index.
在一个例子中,SSD控制器中的处理单元可以静态或动态的对PU内MA和LA的比例进行调整。处理单元确定特定访问区内的PU是否存在未使用的存储空间。若处理单元确定存在未使用的存储空间,则继续确定分配至该特定访问区的业务或业务集合是否可以有余量地达成业务存储容量指标和业务QoS指标。若处理单元确定可以有余量地达成业务存储容量指标和业务服务质量QoS指标后,则对该特定访问区的PU内MA和LA的比例进行调整。In one example, the processing unit in the SSD controller can adjust the ratio of MA and LA in the PU statically or dynamically. The processing unit determines whether there is unused storage space in the PU in the specific access area. If the processing unit determines that there is unused storage space, it continues to determine whether the service or service set allocated to the specific access area can achieve the service storage capacity index and the service QoS index with margin. If the processing unit determines that the service storage capacity index and the service quality QoS index can be achieved with margin, the ratio of MA and LA in the PU of the specific access area is adjusted.
在另一个例子中,有余量地达成业务存储容量指标可以是,分配至该特定访问区内的业务或业务集合所分配到的存储容量大于该业务或业务集合所需求的存储容量。可以理解的是,对于不同的存储介质,其单PU的存储容量也是不同的。对于容量大的PU来讲,则在业务或业务集合分配后仍然存在未使用的存储容量。又或者,分配至该特定访问区内的业务或业务集合所分配到的存储容量等于该业务或业务集合需求的存储容量,但当前时刻该业务或业务集合所分配到的存储容量并未被该业务或业务集合进行充分地使用。例如可以是在某个特定时间段内,该业务或业务集合暂时并未完全使用分配的存储容量;又或者是由于该业务或业务集合只有在执行的后期才会充分利用,则在该业务或业务集合的前期并不能未完全使用分配的存储容量。又或者可以是该特定访问区内的MA和LA经过初步调整后,分配至该特定访问区内的业务或业务集合所分配到的存储容量仍然大于该业务或业务集合所需求的存储容量。在一个例子中,当业务或业务集合分配至特定访问区后,处理单元会根据业务或业务集合所需求的存储容量,进行压缩逻辑分区以实现初步调整。通常情况下,处理单元的初步调整是可以一次性将逻辑分区压缩至刚好满足业务或业务集合的存储容量需求,并将剩余部分作为LA区域。可以理解的是,对于剩余的LA,并非能够完美匹配分配的业务或业务集合,所以对于后续分配至LA的业务或业务集合的存储容量可能仍然过量。In another example, achieving a service storage capacity index with margin may be that the storage capacity allocated to the service or service set allocated to the specific access area is greater than the storage capacity required by the service or service set. It is understandable that for different storage media, the storage capacity of a single PU is also different. For a PU with a large capacity, there is still unused storage capacity after the service or service set is allocated. Or, the storage capacity allocated to the business or business set allocated to the specific access area is equal to the storage capacity required by the business or business set, but the storage capacity allocated to the business or business set at the current moment has not been allocated by the business or business set. The business or business collection is fully used. For example, during a certain period of time, the business or business set does not fully use the allocated storage capacity temporarily; or because the business or business set will only be fully utilized in the later stage of execution, then the business or business set will not fully use the allocated storage capacity for the time being. The allocated storage capacity cannot be used in the early stage of the business collection. Or it may be that after the initial adjustment of the MA and LA in the specific access area, the storage capacity allocated to the service or service set allocated to the specific access area is still greater than the storage capacity required by the service or service set. In one example, after a service or service set is allocated to a specific access area, the processing unit will compress logical partitions to achieve preliminary adjustments according to the storage capacity required by the service or service set. Normally, the initial adjustment of the processing unit is to compress the logical partition to just meet the storage capacity requirements of the service or service set at one time, and use the remaining part as the LA area. It is understandable that for the remaining LA, the allocated service or service set cannot be perfectly matched, so the storage capacity for the service or service set subsequently allocated to the LA may still be excessive.
在又一个例子中,有余量地达成业务QoS指标可以是,分配至该特定访问区内的业务或业务集合的实际QoS大于或等于该业务或业务集合的QoS指标;或者,分配至该特定访问区内的业务或业务集合在特定时间内,可以忽略该业务或业务集合的QoS指标的要求。例如,若存储系统支持NVMe协议,则在该协议中输入输出决定论(input output determinism,IOD)的PLM内的非确定性窗口(non-deterministic window,NDWIN)区间,此时则不存在对业务或业务集合的QoS进行约束。In another example, the service QoS index with margin can be that the actual QoS of the service or service set assigned to the specific access area is greater than or equal to the QoS index of the service or service set; or, the actual QoS assigned to the specific access area is greater than or equal to the QoS index of the service or service set; Within a certain period of time, the service or service set in the visit area can ignore the QoS index requirements of the service or service set. For example, if the storage system supports the NVMe protocol, the non-deterministic window (NDWIN) interval in the PLM of the input and output determinism (IOD) in the protocol will not affect the business. Or the QoS of the service set is restricted.
在一个例子中,若同时满足有余量地达成上述业务存储容量指标和业务QoS指标,则SSD控制器中的处理单元可以对分配至该特定访问区的业务或业务集合所使用的逻 辑分区进行比例调整。例如,可以对该业务或业务集合所占用的逻辑分区进行压缩,直至压缩到业务存储容量指标和业务QoS指标刚好满足要求。将剩余逻辑分区标记为LA并继续分配给其他业务或业务集合进行使用。In an example, if the above-mentioned service storage capacity index and service QoS index are satisfied at the same time, the processing unit in the SSD controller can perform the logical partitioning of the service or service set allocated to the specific access area. Proportion adjustment. For example, the logical partition occupied by the service or service set can be compressed until the service storage capacity index and the service QoS index just meet the requirements. Mark the remaining logical partitions as LA and continue to allocate them to other services or service sets for use.
本领域人员可以理解的是,对于各个PU所属的逻辑分区比例可以不一致。Those skilled in the art can understand that the proportion of logical partitions to which each PU belongs may be inconsistent.
在另一个实施例中,若分配的业务或业务集合的业务QoS指标未达到该业务或业务集合的QoS指标,SSD控制器中的处理单元则可以对该特定访问区的PU内MA和LA的比例进行调整。In another embodiment, if the service QoS index of the assigned service or service set does not meet the QoS index of the service or service set, the processing unit in the SSD controller can perform the processing of the MA and LA in the PU of the specific access area. The proportion is adjusted.
在一个例子中,SSD控制器中的处理单元根据业务存储容量指标,确定特定访问区内的第一比例值。其中,第一比例值为特定访问区内MA和LA之间的比例值。通过试点或模型分析估计,确定分配至特定访问区的业务或业务集合的第一QoS指标。若第一QoS指标小于业务QoS指标,则调整第一比例值。本领域人员应当注意,此时由于处理单元遍历了所有第一比例值的组合,仍然无法满足该业务或业务集合的QoS指标,则需要调整第一比例值以保证满足该业务或业务集合的QoS指标。通过试点或模型分析估计,确定调整后的业务或业务集合的第二QoS指标,并确定第二QoS指标是否大于等于业务QoS指标。若第二QoS指标仍然小于业务QoS指标,则继续调整特定访问区内PU的第一比例值,并确定新的第一QoS标指是否大于等于业务QoS指标。若新的第一QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值。直至业务或业务集合的QoS指标大于等于业务QoS指标。In an example, the processing unit in the SSD controller determines the first ratio value in the specific access area according to the service storage capacity index. Wherein, the first ratio value is the ratio value between MA and LA in the specific access area. Determine the first QoS index of the service or service set allocated to a specific access area through pilot or model analysis and estimation. If the first QoS indicator is less than the service QoS indicator, the first ratio value is adjusted. Those skilled in the art should note that at this time, since the processing unit traverses all combinations of the first ratio values, but still cannot meet the QoS index of the service or service set, the first ratio value needs to be adjusted to ensure that the QoS of the service or service set is satisfied. index. Through pilot or model analysis and estimation, determine the adjusted second QoS index of the service or service set, and determine whether the second QoS index is greater than or equal to the service QoS index. If the second QoS indicator is still less than the service QoS indicator, continue to adjust the first ratio value of the PU in the specific access area, and determine whether the new first QoS indicator is greater than or equal to the service QoS indicator. If the new first QoS index is still smaller than the service QoS index, repeat the above steps and continue to adjust the first ratio value. Until the QoS index of the service or service set is greater than or equal to the service QoS index.
在另一个例子中,当存在多个PU时,在确定第一QoS指标小于业务QoS指标之后,可以保持第一比例值不变,调整特定访问区内多个PU的第二比例值。并领域人员应当注意,此时调整第二比例值可以理解为该特殊访问区内的MA与LA比值不变,而调整该特殊访问区内各个PU的MA与LA比值。通过试点或模型分析估计,确定调整后的业务或业务集合的第三QoS指标。其中,第二比例值为特定访问区内每个PU的MA和LA的比例值。若第三QoS指标小于业务QoS指标,则调整第一比例值,并同时调整多个PU内一个或多个PU的第二比例值,并通过试点或模型分析估计,确定调整后的业务或业务集合的第二QoS指标;若第二QoS指标小于业务QoS指标,则保持调整后的第一比例值不变,继续调整PU的第二比例值,并确定新的第三QoS标指是否大于等于业务QoS指标;若新的第三QoS标指仍小于业务QoS指标时,则重复上述步骤,继续调整第一比例值,直至业务或业务集合的QoS指标大于等于业务QoS指标。In another example, when there are multiple PUs, after determining that the first QoS indicator is less than the service QoS indicator, the first ratio value may be kept unchanged, and the second ratio value of the multiple PUs in the specific access area may be adjusted. Those in the field should note that adjusting the second ratio value at this time can be understood as the ratio of MA to LA in the special access area unchanged, and the ratio of MA to LA of each PU in the special access area is adjusted. Determine the third QoS index of the adjusted service or service set through pilot or model analysis and estimation. Wherein, the second ratio value is the ratio value of the MA and LA of each PU in the specific access area. If the third QoS index is less than the service QoS index, adjust the first ratio value, and adjust the second ratio value of one or more PUs in multiple PUs at the same time, and determine the adjusted service or service through pilot or model analysis and estimation Set the second QoS indicator; if the second QoS indicator is less than the service QoS indicator, keep the adjusted first ratio unchanged, continue to adjust the second ratio of PU, and determine whether the new third QoS indicator is greater than or equal to Service QoS index; if the new third QoS index is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the QoS index of the service or service set is greater than or equal to the service QoS index.
在又一个实施例中,SSD控制器中的处理单元还可以在业务或业务集合分配的特定访问区内的PU具有LA,且部分LA未被使用时,将未被使用的部分LA分配给其他业务或业务集合。应当理解的是,在该实施例中的LA可以是例如图8中经过调整比例后划分出的LA。处理单元则可以将划分出的LA再分配给其他业务或业务集合使用。In another embodiment, the processing unit in the SSD controller may also have an LA in the PU in the specific access area allocated by the service or service set, and when part of the LA is not used, the unused part of the LA is allocated to other Business or business collection. It should be understood that the LA in this embodiment may be, for example, the LA divided after adjusting the scale in FIG. 8. The processing unit can then redistribute the divided LA to other services or service sets for use.
当然,需要理解的是,对于其他的业务或业务集合来讲,也需要满足一定条件,才可以租用划分出的LA。在一个例子中,处理单元可以确定,若其他业务或业务集合在特定时间内,忽略QoS指标的要求,则可以将未被使用的部分LA分配给其他业务或业务集合。可以理解的是也可以将全部未被使用的LA都分配给其他业务或业务集 合,然后在根据其他业务或业务集合的业务指标进行上述如图8示出的方式调整MA与LA比例。本申请在此不作限定。在另一个例子中,又或者通过试点或模型分析估计,确定其他业务或业务集合在接受分配的未被使用的部分LA后,其他业务或业务集合的QoS指标是否大于等于业务QoS指标。当其他业务或业务集合的QoS指标大于等于业务QoS指标,则确定将未被使用的部分所述LA分配给其他业务或业务集合。可以理解的是,对于其他业务或业务集合在租用未被使用的LA时,需要保证在不影响其他业务或业务集合的QoS指标的前提下。才可以租用其他并发单元的LA,以到达相应目的。Of course, what needs to be understood is that for other businesses or business sets, certain conditions must also be met before the allocated LA can be leased. In an example, the processing unit may determine that if other services or service sets ignore the requirements of QoS indicators within a specific time, it may allocate the unused part of LA to other services or service sets. It is understandable that all unused LAs can also be allocated to other services or service groups, and then the ratio of MA to LA can be adjusted according to the service indicators of other services or service groups as shown in Figure 8 above. This application is not limited here. In another example, it may be determined through pilot projects or model analysis and estimation to determine whether the QoS index of the other service or service group is greater than or equal to the service QoS index after the other service or service group accepts the allocated unused part of the LA. When the QoS index of other services or service groups is greater than or equal to the service QoS index, it is determined to allocate the unused part of the LA to other services or service groups. It is understandable that when renting unused LAs for other services or service groups, it is necessary to ensure that the QoS indicators of other services or service groups are not affected. Only then can the LA of other concurrent units be rented to achieve the corresponding purpose.
在又一个例子中,其目的可以是租借并发单元作为OP,以进行垃圾回收(garbage collection,GC)或者用于不同PU集合之间的磨损均衡。又或者用于进行盘内的碎片整理或是数据重建等。本申请在此不作限定。In another example, the purpose may be to lease a concurrent unit as an OP for garbage collection (garbage collection, GC) or for wear leveling between different PU collections. Or it can be used to defragment the disk or rebuild data. This application is not limited here.
本领域人员应当注意,对于其他业务或业务集合来讲,租借的逻辑分区相对于其他业务或业务集合本身分配的逻辑分区,可以是小容量比例的同时逻辑分区的优先级也低于其他业务或业务集合本身分配的逻辑分区的优先级。对于其他业务或业务集合,通过租借其他PU的逻辑分区以到达提升写并发能力,在临时提升写并发能力之后,可以通过短时间内的数据搬移,将数据从租借的逻辑分区搬移到自由的逻辑分区区域,从而避免数据的丢失。Those skilled in the art should note that for other businesses or business sets, the leased logical partition can have a small capacity ratio relative to the logical partitions allocated by other businesses or the business set itself. At the same time, the priority of the logical partition is lower than that of other businesses or business sets. The priority of the logical partition assigned by the service set itself. For other businesses or business collections, the logical partitions of other PUs can be leased to improve the write concurrency. After temporarily improving the write concurrency, the data can be moved from the leased logical partitions to free logic in a short period of time. Partition area to avoid data loss.
本申请通过对并发单元中不同逻辑分区进行比例调整,从而可以缩小业务所占PU的比例,同时释放出空闲资源,进一步提升存储介质的利用率。同时,对于某些业务或业务集合通过租借其他PU的LA,从而临时提升业务的IOPS,实现了“高QoS,低IOPS需求”业务与“低QoS,高IOPS需求”业务的共址,并解决了混合业务部署时的重复建设问题。In this application, by adjusting the proportions of different logical partitions in the concurrent unit, the proportion of PUs occupied by services can be reduced, and idle resources can be released at the same time, thereby further improving the utilization of storage media. At the same time, for certain services or service sets, by leasing the LA of other PUs, the IOPS of the service is temporarily increased, and the co-location of the “high QoS, low IOPS demand” service and the “low QoS, high IOPS demand” service is realized and solved The problem of repeated construction in the deployment of mixed services is solved.
图9为本申请实施例提供的一种并发单元内逻辑分区物理位置轮转示意图。FIG. 9 is a schematic diagram of a physical location rotation of logical partitions in a concurrent unit provided by an embodiment of the application.
如图9所示,在一个实施例中,对于存储介质阵列中的PU,位于同一个PU内,若满足特定条件,则被分配至MA的业务或业务集合可以主动触发物理位置轮转。As shown in FIG. 9, in one embodiment, for PUs in the storage medium array, which are located in the same PU, if certain conditions are met, the service or service set assigned to the MA can actively trigger the physical location rotation.
在一个例子中,特定条件可以包括:业务或业务集合触发特定的轮转守护进程;或业务或业务集合在特定时间内,忽略业务QoS指标的要求,可以理解的是,例如若存储系统支持NVMe协议,则在该协议中IOD的PLM内的NDWIN区间,则不存在对业务或业务集合的QoS进行约束;或业务或业务集合所分配的一个或多个PU正在进行后台操作,并且不影响业务QoS指标,例如可以是GC等必要的后台操作,但该操作不影响MA上分配的业务或业务集合的QoS指标的达成;或至少一个主机或虚拟机主动发起;或PU出现故障,需要进行必要的鼓掌检测或修复等。本领域人员应当注意,还可包括其他任意预设的特定条件,本申请在此不作限定。In an example, the specific conditions can include: a service or service set triggers a specific round-robin daemon; or a service or service set within a specific time, ignoring the requirements of service QoS indicators. It can be understood that, for example, if the storage system supports the NVMe protocol , Then in the NDWIN interval in the PLM of the IOD in the agreement, there is no restriction on the QoS of the service or service set; or one or more PUs allocated by the service or service set are performing background operations and do not affect the service QoS The indicator, for example, may be a necessary background operation such as GC, but the operation does not affect the achievement of the QoS indicator of the service or service set allocated on the MA; or at least one host or virtual machine actively initiates it; or the PU fails and needs to be necessary Applause for detection or repair, etc. Those skilled in the art should note that it may also include other arbitrary preset specific conditions, which are not limited in this application.
在另一个例子中,进行物理位置轮转可以通过以下方式进行。存储介质阵列中的PU从MA中首先选择待轮转物理块block。之后,再选择同一个PU内的LA中的一个空闲block。如图9中①示出的,首先从选择出MA中选择待轮转物理块block,即①中白色MA区域中网格区域。并且再选择同一个PU内的LA中的一个空闲block,即①中深色LA区域中斜线区域。可以理解的是,斜线表示空闲无有效数据,网格表示有效数据,白色表示区域属性为MA,深色表示区域属性为LA。之后,将待轮转 block内的有效数据写入空闲block中,即图9中②示出的,可以看出,LA区域的空闲block写入了有效数据,即深色网格区域。然后,将空闲block的属性修改为MA,并将待轮转block内的数据标记为无效,并修改属性为LA。即图9中③示出的将写入有效数据的block属性修改为MA,即③中白色网格MA区域,并且将原MA中待轮转的区域数据标记为无效,并修改属性,即③中深色斜线LA区域。In another example, the physical position rotation can be performed in the following manner. The PU in the storage medium array first selects the physical block to be rotated from the MA. After that, select an idle block in the LA in the same PU. As shown in ① in Figure 9, first select the physical block to be rotated from the selected MA, that is, the grid area in the white MA area in ①. And then select a free block in the LA in the same PU, that is, the slashed area in the dark LA area in ①. It is understandable that the slash indicates that there is no valid data in idle, the grid indicates valid data, the white indicates that the area attribute is MA, and the dark color indicates that the area attribute is LA. After that, the valid data in the block to be rotated is written into the free block, which is shown in ② in Fig. 9. It can be seen that the free block in the LA area has written valid data, that is, the dark grid area. Then, modify the attribute of the free block to MA, mark the data in the block to be rotated as invalid, and modify the attribute to LA. That is, as shown in Fig. 9 ③, modify the block attribute of the valid data to MA, that is, the white grid MA area in ③, and mark the area data to be rotated in the original MA as invalid, and modify the attribute, that is, in ③ The dark slash LA area.
图10为本申请实施例提供的另一种并发单元内逻辑分区物理位置轮转示意图。FIG. 10 is a schematic diagram of another physical location rotation of logical partitions in a concurrent unit provided by an embodiment of the application.
如图10所示,在又一个例子中,进行物理位置轮转还可以通过以下方式进行。存储介质阵列中的PU从MA中首先选择待轮转物理块block。之后,再选择同一个PU内的MA中的一个空闲block。可以理解的是,该方式为MA内部物理位置轮转。如图10中①示出的,首先从选择出MA中选择待轮转物理块block,即①中白色MA区域中网格区域。并且再选择同一个PU内的MA中的一个空闲block,即①中白色MA区域中斜线区域。可以理解的是,斜线表示空闲无有效数据,网格表示有效数据,白色表示区域属性为MA。之后,将待轮转block内的有效数据写入空闲block中,即图9中②示出的,可以看出,MA区域的空闲block写入了有效数据,即白色网格区域。然后,将待轮转block内的数据标记为无效。即图10中③示出的将原MA中待轮转的区域数据标记为无效即③中白色斜线MA区域。As shown in FIG. 10, in another example, the physical position rotation can also be performed in the following manner. The PU in the storage medium array first selects the physical block to be rotated from the MA. After that, select an idle block in the MA in the same PU. It is understandable that this method is a rotation of the physical position inside the MA. As shown in ① in Figure 10, first select the physical block to be rotated from the selected MA, that is, the grid area in the white MA area in ①. And then select a free block in the MA in the same PU, that is, the slashed area in the white MA area in ①. It is understandable that the slash indicates that there is no valid data in idle, the grid indicates valid data, and the white indicates that the area attribute is MA. After that, the valid data in the block to be rotated is written into the free block, which is shown in ② in Fig. 9. It can be seen that the free block in the MA area has written valid data, that is, the white grid area. Then, the data in the block to be rotated is marked as invalid. That is, the area data to be rotated in the original MA shown in ③ in FIG. 10 is marked as invalid, that is, the white diagonal MA area in ③.
本领域人员应当注意,对于图9、图10所示出的物理轮转方式,其轮转顺序可以根据实际情况进行任意调整,本申请在此不作限定。Those skilled in the art should note that for the physical rotation modes shown in FIG. 9 and FIG. 10, the rotation sequence can be arbitrarily adjusted according to actual conditions, which is not limited in this application.
可以理解的是,通过图9、图10示出的物理轮转方式,通过分配在高优先级逻辑分区的业务或业务集合满足特定条件后主动触发轮转,而用于被交换的block可以来自本逻辑分区或优先级更低的逻辑分区。从而实现了存储介质物理元件的磨损均衡。对于一些静态的PU逻辑分区占比,同样可以通过物理块的轮转,通过数据搬移实现分区占比的动态调整。It is understandable that through the physical rotation mode shown in Figure 9 and Figure 10, the rotation is actively triggered by the service or service set allocated in the high-priority logical partition after meeting specific conditions, and the block used to be exchanged can come from the logic Partition or logical partition with lower priority. In this way, the wear leveling of the physical components of the storage medium is realized. For some static PU logical partition ratios, the dynamic adjustment of the partition ratio can also be achieved through the rotation of physical blocks and data movement.
本申请通过进行物理轮转,实现了PU内物理块的磨损均衡。对于一些静态的逻辑分区占比,同样通过进行物理轮转,可以较方便的实现逻辑分区占比的动态调整。In this application, physical rotation is performed to achieve the wear leveling of the physical blocks in the PU. For some static proportions of logical partitions, the dynamic adjustment of the proportions of logical partitions can be achieved more conveniently through physical rotation.
图11为本申请实施例提供的一种并发单元逻辑分区二分示意图。FIG. 11 is a schematic diagram of a dichotomy of a logical partition of a concurrent unit according to an embodiment of the application.
如图11所示,在一个实施例中,存储介质阵列中的每个PU还可以用于:若当前PU划分的区域无法匹配业务或业务集合的优先级,则将MA划分为第一优先级MA和第二优先级LA。例如图11中①示出的,若PU当前仅仅根据业务或业务集合的QoS指标划分为两类,即MA和LA 1。其中MA上分配的业务或业务集合的优先级高于LA 1上分配的业务或业务集合的优先级。若此时出现第三业务或业务集合,但第三业务或业务集合的优先级并不能匹配①中MA和LA 1的优先级。则此时可以将MA再进行二分,即如图11中②示出的,将原MA划分为MA和LA 1,原LA 1则变为LA 11。此时该PU内各逻辑分区的优先级顺序为MA>LA 1>LA 11。在另一个例子中,还可以将原LA 1也进行相应的二分,将LA划分为第三优先级LA和第四优先级LA。即将原LA 1划分为②中的LA 11和LA12。此时该PU内各逻辑分区的优先级顺序为MA>LA 1>LA 11>LA 12。本领域人员应当注意,划分出的新逻辑分区的优先级为原逻辑分区优先级的细分,其中,每次二元划分后区域的优先级不超过该区域划分前的优先级。换句话说,若其他逻辑分区优先级原本高于原逻辑分区优先级,则其他逻 辑分区优先级仍然高于所有新逻辑分区优先级。同理,若其他逻辑分区优先级原本低于原逻辑分区优先级,则其他逻辑分区优先级仍然低于所有新逻辑分区优先级。As shown in FIG. 11, in one embodiment, each PU in the storage medium array can also be used to: if the area divided by the current PU cannot match the priority of the service or service set, the MA is divided into the first priority MA and second priority LA. For example, as shown in ① in Figure 11, if the PU is currently divided into two categories only based on the QoS indicators of the service or service set, that is, MA and LA1. The priority of the service or service set allocated on the MA is higher than the priority of the service or service set allocated on LA1. If there is a third service or service set at this time, but the priority of the third service or service set cannot match the priority of MA and LA 1 in ①. At this time, the MA can be divided into two again, that is, as shown in Figure 11 ②, the original MA is divided into MA and LA 1, and the original LA 1 becomes LA 11. At this time, the priority order of the logical partitions in the PU is MA>LA1>LA11. In another example, the original LA 1 can also be divided into two correspondingly, and the LA can be divided into a third priority LA and a fourth priority LA. That is, the original LA 1 is divided into LA 11 and LA12 in ②. At this time, the priority order of the logical partitions in the PU is MA>LA1>LA11>LA12. Those skilled in the art should note that the priority of the new logical partition is a subdivision of the priority of the original logical partition, wherein the priority of the area after each binary division does not exceed the priority before the division of the area. In other words, if the priority of other logical partitions was originally higher than the priority of the original logical partition, the priority of other logical partitions is still higher than the priority of all new logical partitions. Similarly, if the priority of other logical partitions was originally lower than the priority of the original logical partition, the priority of other logical partitions is still lower than the priority of all new logical partitions.
在另一个例子中,若划分后PU的逻辑分区的优先级满足业务或业务集合的需求,则可以不继续划分。若划分后PU的逻辑分区仍然不满足业务或业务集合的需求,则继续对PU内的逻辑分区进行二元划分,直至划分出的逻辑分区满足业务或业务集合优先级的需求。例如图11中③示出的,则可以继续将MA进行二分,即将原MA划分为MA和LA 1,同理,将原LA 1划分为LA 11和LA12,以及将原LA 11划分为LA 111和LA112,将原LA 12划分为LA 121和LA122。此时,该PU内各逻辑分区的优先级顺序为MA>LA 1>LA 11>LA 12>LA 111>LA 112>LA 121>LA 122。若继续进二分则可以通过重复上述过程,为方便描述,再次不再赘述。In another example, if the priority of the logical partition of the PU after the division meets the requirements of the service or service set, the division may not be continued. If the logical partition of the PU still does not meet the requirements of the service or service set after the division, the logical partitions in the PU are continuously divided into binary divisions until the divided logical partition meets the requirements of the priority of the service or service set. For example, as shown in ③ in Figure 11, you can continue to divide the MA into two, that is, divide the original MA into MA and LA 1. Similarly, divide the original LA 1 into LA 11 and LA12, and divide the original LA 11 into LA 111 And LA112, divide the original LA 12 into LA 121 and LA122. At this time, the priority order of the logical partitions in the PU is MA>LA1>LA11>LA12>LA111>LA112>LA121>LA122. If you continue to divide into two, you can repeat the above process, for the convenience of description, I will not repeat it again.
本申请通过对并发单元划分出不同逻辑分区,并赋予不同优先级维度,从而细化了管理粒度,增加了管理的灵活度,保证了业务QoS指标的前提下同时提升存储介质的利用率。This application divides the concurrent units into different logical partitions and assigns different priority dimensions to refine management granularity, increase management flexibility, and improve storage media utilization while ensuring service QoS indicators.
图12为本申请实施例提供的一种并发单元分配业务示意图。Fig. 12 is a schematic diagram of a concurrent unit distribution service provided by an embodiment of the application.
如图12所示,在一个较为具体的例子中,在该场景下支持NVMe协议。图中示出了多个不同的业务,可以理解的是该业务可以是包含多个业务的业务集合。例如,NVM set A业务集合、NVM set B业务集合和NVM set C业务集合可以是QoS需求高的业务集合,NVM set D业务集合和NVM set E业务集合可以是QoS需求较低的业务集合。如图12示出的将NVM set A业务集合优先分配至该业务集合的特定访问区后,SSD控制器的处理单元确定此时该业务集合的容量指标和QoS指标均达成但并无富裕。则该特定访问区内PU的逻辑分区可以仅包含MA。例如图12中NVM set A业务集合由该业务集合的实线框框出的PU a1至PU an。As shown in Figure 12, in a more specific example, the NVMe protocol is supported in this scenario. The figure shows multiple different services, and it is understandable that the service may be a service set that includes multiple services. For example, NVM set A service set, NVM set B service set, and NVM set C service set may be service sets with high QoS requirements, and NVM set D service set and NVM set E service sets may be service sets with lower QoS requirements. As shown in FIG. 12, after the NVM set A service set is preferentially allocated to the specific access area of the service set, the processing unit of the SSD controller determines that the capacity index and QoS index of the service set at this time are both achieved but not rich. Then the logical partition of the PU in the specific access area may only contain the MA. For example, in Fig. 12, the NVM set A service set is represented by PU a1 to PU an framed by the solid line frame of the service set.
对于NVM set B业务集合和NVM set C业务集合分配至对应业务集合的特定访问区后,SSD控制器的处理单元确定对应业务集合的容量指标和QoS指标均达成同时存在富裕。则处理单元可以对相应业务集合所分配的逻辑分区进行压缩。并将划分出的逻辑分区作为LA分配给其他业务或业务集合使用。如图12示出的NVM set B业务集合和NVM set C业务集合所占用的MA由各自业务集合的实线框构成PU b1至PU bn的MA以及PU c1至PU cn的MA。After the NVM set B service set and the NVM set C service set are allocated to the specific access area of the corresponding service set, the processing unit of the SSD controller determines that the capacity index and QoS index of the corresponding service set are both affluent at the same time. Then the processing unit can compress the logical partitions allocated by the corresponding service set. And assign the divided logical partitions as LA to other services or service sets for use. As shown in Fig. 12, the MA occupied by the NVM set B service set and the NVM set C service set are composed of the MAs from PU b1 to PU bn and the MAs from PU c1 to PU cn by the solid line boxes of the respective service sets.
对于NVM set D业务集合分配至对应业务集合的特定访问区后,SSD控制器的处理单元确定对应业务集合的容量指标和QoS指标并不能达成。则此时处理单元通过租借其他PU的LA,实现短期内提升NVM set D业务集合的并发能力和最大带宽能力。例如图12示出的NVM set D业务集合所占用的LA由其业务集合的虚线框构成,包括原本属于NVM set D业务集合的PU d1至PU dn的LA,以及包括从其他PU租借的LA,如PU b1至PU bn的部分LA以及PU c1至PU cn的部分LA。After the NVM set D service set is allocated to the specific access area of the corresponding service set, the processing unit of the SSD controller determines the capacity index and QoS index of the corresponding service set, which cannot be achieved. At this time, the processing unit can improve the concurrency and maximum bandwidth capacity of the NVM set D service set in the short term by renting the LA of other PUs. For example, the LA occupied by the NVM set D service set shown in FIG. 12 is composed of the dashed box of its service set, including the LAs from PU d1 to PU dn that originally belonged to the NVM set D service set, as well as the LA leased from other PUs. For example, part LA from PU b1 to PU bn and part LA from PU c1 to PU cn.
对于NVM set E业务集合,其业务集合最求高IOPS,但是对QoS指标没有明确的需求,则此时可以尽可能多地将PU中富裕出的LA租借给NVM set E业务集合使用。以保证最大限度地提升存储介质的IOPS和容量的利用率。例如图12示出的NVM set E业务集合所占用的LA由其业务集合的虚线框构成,包括从其他PU租借的LA,如PU b1至PU bn的部分LA以及PU c1至PU cn的部分LA。For the NVM set E service set, the service set requires the highest IOPS, but there is no clear requirement for the QoS index. At this time, as much LA that is rich in the PU can be leased to the NVM set E service set for use. To ensure that the IOPS and capacity utilization of the storage medium are maximized. For example, the LA occupied by the NVM set E service set shown in Figure 12 is composed of the dashed box of its service set, including the LA leased from other PUs, such as the part of the LA from PU b1 to PU bn and the part of the LA from PU c1 to PU cn. .
本领域人员应当注意,本申请中图4至图12中,以高QoS需求的业务或业务集合进行优先分配存储介质。可以理解的是,也可以优先分配低QoS需求的业务或业务集合,本申请在此不作限定。Those skilled in the art should note that in Figures 4 to 12 in this application, the storage medium is preferentially allocated based on services or service sets with high QoS requirements. It is understandable that services or service sets with low QoS requirements can also be assigned preferentially, which is not limited in this application.
在一个实施例中,若在上述图4至图12中提供的存储介质上运行的存储系统不支持NVMe协议的情况下,也并不存在NVM Set和多用户/多业务的概念。则在该场景下,可以通过结合多流技术,将QoS需求高的数据存储在PU中的MA区域,以及将QoS需求较低的数据存储在PU中的LA区域。其中,多流技术可以是通过主机进行标记数据特征标签或者基于盘内数据进行分流。对于该场景下存储介质中PU的使用方式如图4至图12中示出的相同,为方便描述,在此不再赘述。In an embodiment, if the storage system running on the storage medium provided in FIGS. 4 to 12 does not support the NVMe protocol, the concept of NVM Set and multi-user/multi-service does not exist. In this scenario, by combining multi-stream technology, data with high QoS requirements can be stored in the MA area of the PU, and data with lower QoS requirements can be stored in the LA area of the PU. Among them, the multi-streaming technology can be to mark data feature tags through the host or to split streams based on the data in the disk. The usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
本申请还通过对PU机型二元分区,从而降低了管理复杂度,并满足绝大多数场景的应用需求。通过递归法,将多分区转换为二元分区问题,降低了应用复杂度。This application also reduces the management complexity and satisfies the application requirements of most scenarios by dually partitioning the PU models. Through the recursive method, the multi-partition is converted into a binary partition problem, which reduces the application complexity.
本申请还提供了一种SSD控制器,该SSD控制器与存储介质阵列相耦合。其中SSD控制器与上述图2至图12中的SSD控制器相同,并可以执行上述图2至图12中SSD控制器的任意功能或方法。为方便描述,在此不再赘述。The present application also provides an SSD controller, which is coupled with the storage medium array. The SSD controller is the same as the SSD controller in FIGS. 2-12, and can execute any function or method of the SSD controller in FIGS. 2-12. For the convenience of description, I will not repeat them here.
图13为本申请实施例提供的另一种应用场景示意图。FIG. 13 is a schematic diagram of another application scenario provided by an embodiment of the application.
如图13所示,在又一个实施例中,如图中示出的应用场景,其中下发业务或业务集合的主机上,还可以运行一个或多个VM或VF。可以理解的是主机仍然通过NVMe、SAS、PCIe等多种接口与SSD控制器相连接。SSD控制器通过NFI与对应的存储介质阵列相连接。本领域人员应当注意,可以SSD控制器根据实际的生产存储介质的厂商开放的接口规范,而选择通过其他接口与存储介质相连接,以保证主机可以通过SSD控制器对存储介质阵列中的数据进行读写擦等操作。对于该场景下存储介质中PU的使用方式如图4至图12中示出的相同,为方便描述,在此不再赘述。As shown in FIG. 13, in another embodiment, in the application scenario shown in the figure, one or more VMs or VFs can also be run on the host that delivers the service or service set. It is understandable that the host is still connected to the SSD controller through various interfaces such as NVMe, SAS, PCIe. The SSD controller is connected to the corresponding storage medium array through the NFI. Those in the art should note that the SSD controller can choose to connect to the storage medium through other interfaces according to the interface specifications opened by the actual manufacturer of the storage medium, so as to ensure that the host can perform data on the storage medium array through the SSD controller. Read, write, wipe and other operations The usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
图14为本申请实施例提供的又一种应用场景示意图。FIG. 14 is a schematic diagram of another application scenario provided by an embodiment of the application.
如图14所示,在一个实施例中,如图中示出的应用场景,还可将用于控制存储介质阵列的控制器电路与存储介质阵列封装在一个集成芯片上。主机通过通用闪存(universal flash storage,UFS)或嵌入式多媒体卡(embedded multi media card,eMMC)等接口连接集成芯片,并进行存取数据。对于该场景下存储介质中PU的使用方式如图4至图12中示出的相同,为方便描述,在此不再赘述。As shown in FIG. 14, in an embodiment, in the application scenario shown in the figure, the controller circuit for controlling the storage medium array and the storage medium array may also be packaged on an integrated chip. The host is connected to the integrated chip through interfaces such as universal flash storage (UFS) or embedded multimedia card (eMMC), and accesses data. The usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
图15为本申请实施例提供的再一种应用场景示意图。FIG. 15 is a schematic diagram of another application scenario provided by an embodiment of the application.
如图15所示,在一个实施例中,SSD控制器可以包括第一SSD控制器和第二SSD控制器。第一SSD控制器位于至少一个主机中的一个主机内,以及第二SSD控制器与存储介质阵列封装在一个集成芯片上。As shown in FIG. 15, in one embodiment, the SSD controller may include a first SSD controller and a second SSD controller. The first SSD controller is located in one of the at least one host, and the second SSD controller and the storage medium array are packaged on an integrated chip.
在一个例子中,对于存储介质上还可使用“开放通道(open channel)存储系统”。在此类系统中,对于控制存储介质阵列的控制器,其部分功能被移至主机中实现,例如图15中示出的控制器1。同时,另外部分控制器功能与存储介质阵列封装在一个集成芯片上,例如图15中示出的控制器2。本领域人员可以理解的是,对于控制器1和控制器2之间连接的方式可以是现有技术中的任意一种连接方式,本申请在此不作限定。对于该场景下存储介质中PU的使用方式如图4至图12中示出的相同,为方便描述,在此不再赘述。In an example, an "open channel storage system" can also be used on the storage medium. In this type of system, for the controller that controls the storage medium array, part of its functions are moved to the host for implementation, such as the controller 1 shown in FIG. 15. At the same time, another part of the controller functions and the storage medium array are packaged on an integrated chip, such as the controller 2 shown in FIG. 15. Those skilled in the art can understand that the connection mode between the controller 1 and the controller 2 can be any connection mode in the prior art, which is not limited in this application. The usage mode of the PU in the storage medium in this scenario is the same as that shown in FIG. 4 to FIG. 12, and for convenience of description, it is not repeated here.
图16为本申请实施例提供的一种升固态硬盘利用率的方法流程图。FIG. 16 is a flowchart of a method for increasing the utilization rate of a solid state drive provided by an embodiment of the application.
如图16所示,本申请还提供了一种提升固态硬盘利用率的方法,该方法可以包括以下步骤:As shown in FIG. 16, the present application also provides a method for improving the utilization rate of a solid state drive. The method may include the following steps:
S1601,接收至少一个业务或业务集合的特征信息。S1601. Receive characteristic information of at least one service or service set.
在一个例子中,可以接收至少一个主机或虚拟机下发的至少一个业务或业务集合的特征信息。其中,特征信息包括业务服务质量QoS指标。In an example, the characteristic information of at least one service or service set delivered by at least one host or virtual machine may be received. Among them, the characteristic information includes service quality QoS indicators.
S1602,根据业务或业务集合的QoS指标的大小,对至少一个业务或业务集合进行排序。S1602: Sort at least one service or service set according to the size of the QoS index of the service or service set.
在一个例子中,可以根据业务或业务集合的QoS指标的大小,对一个或多个至少一个业务或业务集合进行排序。In an example, one or more at least one service or service set can be sorted according to the size of the QoS index of the service or service set.
在又一个例子中,还可以针对每个业务或业务集合的特征信息,确定所需最少并发单元PU数。In another example, it is also possible to determine the minimum number of concurrent unit PUs required for the characteristic information of each service or service set.
在一个实施例中,特征信息包括典型IOPS需求、业务存储容量指标和典型容量需求。根据业务或业务集合的典型IOPS需求,确定第一并发单元PU数。并根据业务或业务集合的业务存储容量指标或典型容量需求,确定第二PU数。将第一PU数和第二PU数中最大的数值,作为所需最少PU数。In one embodiment, the characteristic information includes typical IOPS requirements, service storage capacity indicators, and typical capacity requirements. Determine the number of PUs of the first concurrent unit according to the typical IOPS requirements of the service or service set. And according to the service storage capacity index or typical capacity requirements of the service or service set, the second PU number is determined. The largest number of the first number of PUs and the second number of PUs is taken as the minimum number of PUs required.
在另一个实施例中,特征信息还包括业务或业务集合的写入量需求、业务或业务集合的写放大系数和固态硬盘的编程擦除PE寿命。根据典型容量需求或业务存储容量指标、业务或业务集合的写入量需求、业务或业务集合的写放大系数、固态硬盘的PE寿命,确定超供冗余空间OP需求。结合OP需求以及典型容量需求或业务存储容量指标,确定第二PU数。In another embodiment, the characteristic information further includes the write volume requirement of the service or the service set, the write amplification factor of the service or the service set, and the program-erased PE life of the solid-state hard disk. According to the typical capacity requirements or business storage capacity indicators, the write volume requirements of the business or business set, the write amplification factor of the business or business set, and the PE lifetime of the solid state drive, determine the OP demand for the excess redundant space. Combine OP requirements and typical capacity requirements or business storage capacity indicators to determine the second PU number.
在一个例子中,位于同一个所述PU内,访问MA的IO操作的优先级高于访问LA的IO操作的优先级。其中,IO操作为业务或业务集合的IO操作。In an example, in the same PU, the priority of the IO operation that accesses the MA is higher than the priority of the IO operation that accesses the LA. Among them, the IO operation is the IO operation of a business or a business set.
在一个例子中,优先级的调度方式可以是严格优先级调度、概率性优先级调度、剥夺式优先级调度或非剥夺式优先级调度中的任意一个或多种组合。In an example, the priority scheduling method may be any one or a combination of strict priority scheduling, probabilistic priority scheduling, deprivation priority scheduling, or non-deprivation priority scheduling.
在一个例子中,严格优先级调度为优先级高的IO操作先于优先级低的IO操作被调度。概率性优先级调度为调度优先级高的IO操作的概率高于调度优先级低的IO操作的概率。剥夺式优先级调度为优先级高的IO操作在预设条件下,允许中断正在执行的优先级低的IO操作。非剥夺式优先级调度为优先级高的IO操作在任何条件下,都不允许中断正在执行的优先级低的IO操作。In one example, strict priority scheduling is that IO operations with high priority are scheduled before IO operations with low priority. Probabilistic priority scheduling is that the probability of scheduling IO operations with high priority is higher than the probability of scheduling IO operations with low priority. The deprivation priority scheduling is that IO operations with high priority are allowed to interrupt the IO operations with low priority being executed under preset conditions. Non-deprivation priority scheduling is that IO operations with high priority are not allowed to interrupt the IO operations with low priority being executed under any conditions.
S1603,将并发单元PU的主区MA分配给QoS指标最大的业务或业务集合使用,以及根据排序将PU的出租区LA分配给其余业务或业务集合使用。S1603: Allocate the main area MA of the concurrent unit PU to the service or service set with the largest QoS index for use, and allocate the rental area LA of the PU to other services or service sets for use according to the ranking.
在一个实施例中,当至少一个主机或虚拟机下发的一个业务或业务集合的特征信息时,将最少PU数个PU的MA分配给该业务或业务集合使用;当至少一个主机或虚拟机下发的至少两个业务或业务集合的特征信息时,根据至少两个业务或业务集合的QoS指标的大小进行排序;将最少PU数个PU的MA分配给QoS指标最大的业务或业务集合使用;依照排序将最少PU数个PU的LA分配给其余业务或业务集合使用。In one embodiment, when at least one host or virtual machine delivers the characteristic information of a service or service set, the MAs of at least PUs are allocated to the service or service set for use; when at least one host or virtual machine When issuing the characteristic information of at least two services or service sets, sort according to the size of the QoS indicators of the at least two services or service sets; assign the MA with the least number of PUs to the service or service set with the largest QoS indicator for use ; According to the sorting, the LAs of the least PUs are allocated to the remaining services or service sets for use.
在一个实施例中,根据排序将最少PU数个PU的LA分配给其余业务或业务集合使用包括:依照排序顺序,依次为其余业务或业务集合分配不同优先级的LA,其中 LA的优先级与被分配的业务或业务集合的QoS指标正相关。In one embodiment, assigning the LAs of the least PU PUs to the remaining services or service sets according to the sorting includes: according to the sorting order, assigning LAs with different priorities to the remaining services or service sets in sequence, where the priority of the LA is the same as The QoS indicators of the assigned service or service set are positively correlated.
在一个实施例中,若业务或业务集合分配的最少PU数个PU具有LA,且部分LA未被使用,则将未被使用的部分LA分配给其他业务或业务集合。In one embodiment, if the minimum number of PUs allocated by a service or service set has an LA, and part of the LA is not used, then the unused part of the LA is allocated to other services or service sets.
在一个例子中,若其他业务或业务集合在特定时间内,忽略QoS指标的要求,则确定将未被使用的部分LA分配给所述其他业务或业务集合;或通过试点或模型分析估计,确定其他业务或业务集合在接受分配的未被使用的部分LA后,其他业务或业务集合的QoS指标是否大于等于业务QoS指标;若其他业务或业务集合的QoS指标大于等于业务QoS指标,则确定将未被使用的部分LA分配给其他业务或业务集合。In one example, if other services or service sets neglect the requirements of QoS indicators within a certain period of time, it is determined to allocate the unused part of LA to the other services or service sets; or through pilot or model analysis and estimation, it is determined After other services or service sets accept the allocated unused part of the LA, whether the QoS indicators of other services or service sets are greater than or equal to the business QoS indicators; if the QoS indicators of other services or service sets are greater than or equal to the business QoS indicators, it is determined to be The unused part of the LA is allocated to other services or service sets.
在又一个实施例中,若执行上述方法的系统不支持NVMe协议,则本申请主机还可以结合多流技术,通过主机标记数据特征标签或基于盘内数据分流算法,对数据进行分流,每个数据流含下述一种或多种特征信息:QoS指标特征,IOPS指标特征,IO连续性特征,是否为用户请求特征等。并将QoS指标需求高的数据存储在PU的高优先级逻辑分区,例如MA。将QoS指标需求相对较低的数据存储在PU的低优先逻辑分区,例如LA。其中,本领域人员应当注意,越高优先级的逻辑分区可参与共享的数据流的数量越少。In another embodiment, if the system that executes the above method does not support the NVMe protocol, the host of this application can also combine the multi-stream technology to split the data by marking the data feature label of the host or based on the in-disk data splitting algorithm. The data stream contains one or more of the following characteristic information: QoS indicator characteristics, IOPS indicator characteristics, IO continuity characteristics, whether it is a user request characteristic, etc. And store the data with high QoS index requirements in the high-priority logical partition of the PU, such as MA. Store data with relatively low QoS index requirements in a low-priority logical partition of the PU, such as LA. Among them, those skilled in the art should note that the number of data streams that can be shared by a logical partition with a higher priority is smaller.
本申请通过输入不同业务或业务QoS、IOPS、capacity等维度,并进行PU的数量按需分配。同时遵循以下原则:先分配高QoS需求业务,后分配低QoS需求业务;高优先级逻辑分区优先分配给高QoS需求业务,低优先级逻辑分区优先分配给低QoS需求业务;优先级越高的逻辑分区,参与共享的业务数量越少。在对PU数量按需分配的同时,对不同逻辑分区分配业务,解决了多租户/多业务共址时相互干扰的问题,并保证了在满足业务各需求的前提下,将存储介质利用率最大化。In this application, by entering dimensions such as different services or service QoS, IOPS, capacity, etc., the number of PUs is allocated on demand. At the same time, follow the following principles: first assign high QoS demand services, then assign low QoS demand services; high priority logical partitions are assigned to high QoS demand services first, and low priority logical partitions are first assigned to low QoS demand services; the higher the priority Logical partition, the less the number of businesses involved in sharing. While allocating the number of PUs on demand, it also allocates services to different logical partitions, which solves the problem of mutual interference when multi-tenant/multi-service co-location, and ensures that the utilization of storage media is maximized under the premise of meeting various business needs化.
图17为本申请实施例提供的一种调整并发单元逻辑分区占比的方法流程图。FIG. 17 is a flowchart of a method for adjusting the proportion of logical partitions of a concurrent unit according to an embodiment of the application.
如图17所示,本申请在S1603之后,还可以对PU内不同逻辑分区的占比进行调整,即调整MA与LA之间的比例,该方法还可以包括以下步骤:As shown in FIG. 17, after S1603, the present application can also adjust the proportions of different logical partitions in the PU, that is, adjust the ratio between MA and LA. The method may further include the following steps:
S1701,确定业务或业务集合在分配的最少PU数个PU内是否有余量的达成业务指标。S1701: Determine whether the service or service set has a margin to achieve the service index within the assigned minimum number of PUs.
在一个实施例中,若业务或业务集合在分配的最少PU数个PU内有余量的达成业务指标时,则调整最少PU数个PU内MA和LA的比例。In one embodiment, if the service or service set has a margin to achieve the service index in the assigned minimum number of PUs, the ratio of MA to LA in the minimum number of PUs is adjusted.
在另一个实施例中,若最少PU数个PU存在未使用的存储空间且分配至最少PU数个PU的业务或业务集合有余量地达成业务存储容量指标和业务服务质量QoS指标,则调整最少PU数个PU内MA和LA的比例。In another embodiment, if there is unused storage space in the least number of PUs and the service or service set allocated to the least number of PUs has margin to achieve the service storage capacity index and the service quality QoS index, then adjust The ratio of MA and LA in the minimum number of PUs.
在一个例子中,有余量地达成业务存储容量指标可以包括:业务或业务集合所分配到的存储容量大于业务或业务集合需求的存储容量;或业务或业务集合所分配到的存储容量等于业务或业务集合需求的存储容量,但当前时刻业务或业务集合所分配到的存储容量并未被业务或业务集合充分使用。In an example, a marginal achievement of the business storage capacity index may include: the storage capacity allocated to the business or the business set is greater than the storage capacity required by the business or the business set; or the storage capacity allocated to the business or the business set is equal to the business Or the storage capacity required by the service collection, but the storage capacity allocated to the service or service collection at the current moment is not fully used by the service or service collection.
在一个例子中,有余量地达成业务QoS指标可以包括:业务或业务集合的实际QoS大于或等于QoS指标;或业务或业务集合在特定时间内,忽略QoS指标的要求。In an example, achieving the service QoS index with margin may include: the actual QoS of the service or service set is greater than or equal to the QoS index; or the service or service set ignores the QoS index requirement within a specific time.
S1702,根据业务存储容量指标,确定最少PU数个PU的第一比例值,其中,第一比例值为最少PU数个PU内MA和LA的比例值。S1702: Determine a first ratio value of the least number of PUs according to the service storage capacity index, where the first ratio value is the ratio value of MA and LA in the least number of PUs.
S1703,通过试点或模型分析估计,确定业务或业务集合的第一QoS指标。S1703: Determine the first QoS indicator of the service or service set through pilot projects or model analysis and estimation.
S1704,确定第一QoS指标是否小于业务QoS指标。S1704: Determine whether the first QoS indicator is less than the service QoS indicator.
在一个实施例中,若第一QoS指标小于业务QoS指标,则进入S1705;若第一QoS指标大于等于业务QoS指标,则进入S1711。In one embodiment, if the first QoS indicator is less than the service QoS indicator, then enter S1705; if the first QoS indicator is greater than or equal to the service QoS indicator, then enter S1711.
S1705,保持第一比例值不变,调整最少PU数个PU内多个PU的第二比例值。S1705: Keep the first ratio value unchanged, and adjust the second ratio values of multiple PUs in the least number of PUs.
S1706,通过试点或模型分析估计,确定调整后的业务或业务集合的第二QoS指标,其中,第二比例值为最少PU数个PU内每个PU的MA和LA的比例值。S1706: Determine the adjusted second QoS index of the service or service set through pilot projects or model analysis and estimation, where the second ratio value is the ratio value of the MA and LA of each PU in the least number of PUs.
S1707,确定第二QoS指标是否小于业务QoS指标。S1707: Determine whether the second QoS indicator is less than the service QoS indicator.
在一个实施例中,若第二QoS指标小于业务QoS指标,则进入S1708;若第二QoS指标大于等于业务QoS指标,则进入S1711。In one embodiment, if the second QoS indicator is less than the service QoS indicator, then enter S1708; if the second QoS indicator is greater than or equal to the service QoS indicator, then enter S1711.
S1708,调整第一比例值,并同时调整最少PU数个PU内一个或多个PU的第二比例值。S1708: Adjust the first ratio value and simultaneously adjust the second ratio value of one or more PUs in the least number of PUs.
S1709,通过试点或模型分析估计,确定调整后的业务或业务集合的第三QoS指标。S1709: Determine the third QoS indicator of the adjusted service or service set through pilot projects or model analysis and estimation.
S1710,确定第三QoS指标是否大于等于所述业务QoS指标。S1710: Determine whether the third QoS indicator is greater than or equal to the service QoS indicator.
在一个实施例中,若第三QoS指标小于业务QoS指标,则返回S1705,保持调整后的第一比例值不变,继续调整最少PU数个PU内多个PU的第二比例值,并确定新的第二QoS标指是否大于等于所述业务QoS指标。若第三QoS指标大于等于业务QoS指标,则进入S1711。In one embodiment, if the third QoS indicator is less than the service QoS indicator, return to S1705, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of multiple PUs in the least number of PUs, and determine Whether the new second QoS indicator is greater than or equal to the service QoS indicator. If the third QoS indicator is greater than or equal to the service QoS indicator, enter S1711.
S1711,结束调整。S1711, end the adjustment.
本申请通过对并发单元中不同逻辑分区进行比例调整,从而可以缩小业务所占PU的比例,同时释放出空闲资源,进一步提升存储介质的利用率。同时,对于某些业务或业务集合通过租借其他PU的LA,从而临时提升业务的IOPS,实现了“高QoS,低IOPS需求”业务与“低QoS,高IOPS需求”业务的共址,并解决了混合业务部署时的重复建设问题。In this application, by adjusting the proportions of different logical partitions in the concurrent unit, the proportion of PUs occupied by services can be reduced, and idle resources can be released at the same time, thereby further improving the utilization of storage media. At the same time, for certain services or service sets, by leasing the LA of other PUs, the IOPS of the service is temporarily increased, and the co-location of the “high QoS, low IOPS demand” service and the “low QoS, high IOPS demand” service is realized and solved The problem of repeated construction in the deployment of mixed services is solved.
图18为本申请实施例提供的一种并发单元物理位置轮转的方法流程图。FIG. 18 is a flowchart of a method for rotating the physical position of a concurrent unit according to an embodiment of the application.
如图18所示,本申请在S1603之后,还可以对PU内不同逻辑分区的物理位置进行轮转。该方法还可以包括以下步骤:As shown in FIG. 18, after S1603, the present application can also rotate the physical locations of different logical partitions in the PU. The method may also include the following steps:
S1801,确定是否满足特定条件。S1801: Determine whether a specific condition is met.
在一个实施例中,在同一个所述PU内,若满足特定条件,则位于MA的业务或业务集合主动触发物理位置轮转。In one embodiment, in the same PU, if a specific condition is met, the service or service set located in the MA actively triggers the physical location rotation.
在一个例子中,特定条件可以包括:业务或业务集合触发轮转守护进程;或业务或业务集合在特定时间内,忽略业务QoS指标的要求;或业务或业务集合所分配的一个或多个PU正在进行后台操作,并且不影响业务QoS指标;或至少一个主机或虚拟机主动发起;或PU出现故障。In an example, the specific conditions may include: the service or service set triggers the rotation daemon; or the service or service set ignores the requirements of the service QoS index within a specific time; or one or more PUs allocated by the service or service set are Perform background operations without affecting service QoS indicators; or at least one host or virtual machine actively initiates them; or PU fails.
S1802,若满足特定条件,则从MA中选择待轮转物理块block。S1802: If a specific condition is met, select a physical block to be rotated from the MA.
S1803,选择同一个PU内的一个空闲block。S1803: Select an idle block in the same PU.
在一个实施例中,选择同一个PU内的LA中的一个空闲block。In one embodiment, one free block in the LA in the same PU is selected.
在另一个实施例中,选择同一个PU内的MA中的一个空闲block。In another embodiment, an idle block in the MA in the same PU is selected.
S1804,将待轮转block内的有效数据写入空闲block。S1804: Write valid data in the block to be rotated into an idle block.
S1805,将待轮转block内的数据标记为无效。S1805: Mark the data in the block to be rotated as invalid.
在一个实施例中,若选择的空闲block来自LA,则还需将写入有效数据的空闲block的属性修改为MA,以及将原待轮转block的属性修改为LA。In one embodiment, if the selected free block is from LA, it is also necessary to modify the attribute of the free block to which valid data is written to MA, and to modify the attribute of the original block to be rotated to LA.
本申请通过进行物理轮转,实现了PU内物理块的磨损均衡。对于一些静态的逻辑分区占比,同样通过进行物理轮转,可以较方便的实现逻辑分区占比的动态调整。In this application, physical rotation is performed to achieve the wear leveling of the physical blocks in the PU. For some static proportions of logical partitions, the dynamic adjustment of the proportions of logical partitions can be achieved more conveniently through physical rotation.
图19为本申请实施例提供的一种并发单元逻辑分区细化的方法流程图。FIG. 19 is a flowchart of a method for refining logical partitions of a concurrent unit according to an embodiment of the application.
如图19所示,本申请在S1603之后,还可以通过递归法对PU内的逻辑分区再进行更为细致的划分,即不断二分逻辑分区,从而划分出多个不同优先级的逻辑分区,该方法还可以包括以下步骤:As shown in Figure 19, after S1603 in this application, the logical partitions in the PU can be divided into more detailed divisions by recursive method, that is, the logical partitions are continuously divided into two logical partitions, thereby dividing logical partitions with different priorities. The method can also include the following steps:
S1901,确定当前PU划分的区域是否可以匹配业务或业务集合的优先级。S1901: Determine whether the area divided by the current PU can match the priority of the service or service set.
在一个实施例中,若当前PU划分的区域无法匹配业务或业务集合的优先级,则执行S1902。在另一个实施例中,若当前PU划分的区域可以匹配业务或业务集合的优先级,则执行S1905。In one embodiment, if the area divided by the current PU cannot match the priority of the service or service set, S1902 is executed. In another embodiment, if the area divided by the current PU can match the priority of the service or service set, S1905 is executed.
S1902,将MA划分为第一优先级MA和第二优先级LA。S1902: Divide the MA into a first priority MA and a second priority LA.
S1903,将LA划分为第三优先级LA和第四优先级LA。S1903: Divide the LA into a third priority LA and a fourth priority LA.
S1904,确定划分后的PU的区域是否可以匹配业务或业务集合的优先级。S1904: Determine whether the area of the divided PU can match the priority of the service or service set.
在一个实施例中,若划分后的PU的区域无法匹配业务或业务集合的优先级,则执行S1902。在另一个实施例中,若划分后的PU划分的区域可以匹配业务或业务集合的优先级,则执行S1905。In an embodiment, if the divided PU area cannot match the priority of the service or service set, S1902 is executed. In another embodiment, if the divided area of the divided PU can match the priority of the service or service set, S1905 is executed.
在又一个实施例中,可以理解的是,若划分后的PU的区域仍无法匹配业务或业务集合的优先级,则继续对PU内的区域进行二元划分,直至匹配业务或业务集合的优先级。其中,每次二元划分后区域的优先级不超过该区域划分前的优先级。In another embodiment, it can be understood that if the divided PU area still cannot match the priority of the service or service set, the binary division of the area within the PU will continue until the priority of the service or service set is matched. level. Among them, the priority of the area after each binary division does not exceed the priority before the division of the area.
S1905,结束细分。S1905, end subdivision.
本领域人员应当注意,当PU内逻辑分区多于两个以上时,则QoS需求越高的业务或业务集合,优先分配优先级越高的逻辑分区。对于优先级越高的逻辑分区,在该逻辑分区上共享的业务数量则越少。Those skilled in the art should note that when there are more than two logical partitions in the PU, the service or service set with the higher QoS requirement is given priority to the logical partition with the higher priority. For a logical partition with a higher priority, the number of services shared on the logical partition is smaller.
本申请通过对并发单元划分出不同逻辑分区,并赋予不同优先级维度,从而细化了管理粒度,增加了管理的灵活度,保证了业务QoS指标的前提下同时提升存储介质的利用率。This application divides the concurrent units into different logical partitions and assigns different priority dimensions to refine management granularity, increase management flexibility, and improve storage media utilization while ensuring service QoS indicators.
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。Those skilled in the art should be aware that, in one or more of the foregoing examples, the functions described in the embodiments of the present application may be implemented by hardware, software, firmware, or any combination thereof. When implemented by software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on the computer-readable medium. The computer-readable medium includes a computer storage medium and a communication medium, where the communication medium includes any medium that facilitates the transfer of a computer program from one place to another. The storage medium may be any available medium that can be accessed by a general-purpose or special-purpose computer.
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移 动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。The steps of the method or algorithm described in combination with the embodiments disclosed herein can be implemented by hardware, a software module executed by a processor, or a combination of the two. The software module can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs, or all areas in the technical field. Any other known storage media.
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。The specific implementations described above further describe the purpose, technical solutions, and beneficial effects of the application. It should be understood that the foregoing are only specific implementations of the application and are not intended to limit the scope of the application. The scope of protection, any modification, equivalent replacement, improvement, etc. made on the basis of the technical solution of this application shall be included in the scope of protection of this application.

Claims (30)

  1. 一种存储装置,其特征在于,包括:存储介质阵列和耦合至所述存储介质阵列的固态硬盘SSD控制器;A storage device, characterized by comprising: a storage medium array and a solid-state hard drive (SSD) controller coupled to the storage medium array;
    所述存储介质阵列包括多个并发单元PU,所述PU包括主区MA或出租区LA中的至少一个,其中,所述MA用于被一个业务分配使用,所述LA用于被至少一个业务分配使用;The storage medium array includes a plurality of concurrent units PU, the PU includes at least one of the main area MA or the lease area LA, wherein the MA is used to be allocated and used by one service, and the LA is used to be used by at least one service. Allocation
    所述SSD控制器,用于接收至少一个业务的特征信息,其中,所述特征信息包括业务服务质量QoS指标;The SSD controller is configured to receive characteristic information of at least one service, where the characteristic information includes a service quality QoS indicator;
    所述SSD控制器还用于,根据所述QoS指标将所述PU的MA分配给所述QoS指标最大的业务使用,以及将所述PU的LA分配给其余所述业务使用。The SSD controller is further configured to allocate the MA of the PU to the service use with the largest QoS indicator according to the QoS indicator, and allocate the LA of the PU to the rest of the service use.
  2. 根据权利要求1所述的装置,其特征在于,所述特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求,所述SSD控制器还用于:The device according to claim 1, wherein the characteristic information further includes a typical read/write input/output number IOPS requirement per second, and a service storage capacity index or typical capacity requirement, and the SSD controller is further used for:
    根据所述典型IOPS需求,确定所述业务所需PU的第一数量;Determine the first number of PUs required by the service according to the typical IOPS requirements;
    根据所述业务存储容量指标或典型容量需求,确定所述业务所需PU的第二数量;Determine the second number of PUs required by the service according to the service storage capacity index or the typical capacity requirement;
    所述将所述PU的MA分配给所述QoS指标最大的业务使用至,以及将所述PU的LA分配给其余所述业务使用包括:The allocating the PU of the PU to the service use with the largest QoS index, and allocating the PU of the PU to the rest of the service use includes:
    将所述多个PU中的第一PU的MA分配给所述QoS指标最大的业务使用,以及将所述第一PU的LA分配给其余所述业务使用,其中,所述第一PU中包括的PU的数量为所述第一数量和所述第二数量中的最大值。Allocate the MA of the first PU among the multiple PUs to the service use with the largest QoS index, and allocate the LA of the first PU to the rest of the service use, where the first PU includes The number of PUs is the maximum value of the first number and the second number.
  3. 根据权利要求1所述的装置,其特征在于,在同一个所述PU内,所述SSD控制器控制访问所述MA的输入输出IO操作的优先级高于访问所述LA的IO操作的优先级;其中,所述IO操作为所述业务的IO操作。The device according to claim 1, wherein in the same PU, the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA Level; wherein, the IO operation is the IO operation of the service.
  4. 根据权利要求1所述的装置,其特征在于,所述SSD控制器还用于:The device according to claim 1, wherein the SSD controller is further configured to:
    根据所述QoS指标对至少一个所述业务由高到低依次排序;Sort at least one of the services from high to low according to the QoS index;
    依照所述排序,依次为其余所述业务分配不同优先级的LA,其中所述LA的优先级与被分配的所述业务的QoS指标正相关。According to the ordering, LAs with different priorities are assigned to the remaining services in sequence, wherein the priority of the LA is positively correlated with the QoS index of the assigned service.
  5. 根据权利要求1-4任一所述的装置,其特征在于,所述SSD控制器还用于:The device according to any one of claims 1-4, wherein the SSD controller is further configured to:
    若所述业务在分配的所述PU内有余量的达成业务指标时,则调整所述PU内MA和LA的比例。If the service has a margin in the allocated PU to achieve the service index, the ratio of MA and LA in the PU is adjusted.
  6. 根据权利要求5所述的装置,其特征在于,所述SSD控制器还用于:The device according to claim 5, wherein the SSD controller is further configured to:
    根据业务存储容量指标,确定所述PU的第一比例值,其中,所述第一比例值为所述PU内MA和LA的比例值;Determining a first ratio value of the PU according to a service storage capacity index, where the first ratio value is a ratio value of MA and LA in the PU;
    通过试点或模型分析估计,确定所述业务的第一QoS指标;Determine the first QoS indicator of the service through pilot or model analysis and estimation;
    若所述第一QoS指标小于所述业务QoS指标,则调整所述第一比例值,并通过试点或模型分析估计,确定调整后的所述业务的第二QoS指标;If the first QoS indicator is less than the service QoS indicator, adjust the first ratio value, and determine the adjusted second QoS indicator of the service through pilot or model analysis and estimation;
    若所述第二QoS指标小于所述业务QoS指标,则继续调整所述PU的所述第一比例值,并确定新的第一QoS标指是否大于等于所述业务QoS指标;If the second QoS indicator is less than the service QoS indicator, continue to adjust the first ratio value of the PU, and determine whether the new first QoS indicator is greater than or equal to the service QoS indicator;
    若所述新的第一QoS标指仍小于所述业务QoS指标时,则重复上述步骤,继续调 整所述第一比例值,直至所述业务的QoS指标大于等于所述业务QoS指标。If the new first QoS index is still less than the service QoS index, repeat the above steps and continue to adjust the first ratio value until the QoS index of the service is greater than or equal to the service QoS index.
  7. 根据权利要求6所述的装置,其特征在于,当所述PU为多个PU,在确定所述第一QoS指标小于所述业务QoS指标之后,所述SSD控制器还用于:The device according to claim 6, wherein when the PU is multiple PUs, after determining that the first QoS index is less than the service QoS index, the SSD controller is further configured to:
    保持所述第一比例值不变,调整所述多个PU内的多个第二比例值,并通过试点或模型分析估计,确定调整后的所述业务的第三QoS指标,其中,所述第二比例值为所述多个PU中的一个PU的MA和LA的比例值;Keep the first ratio value unchanged, adjust multiple second ratio values in the multiple PUs, and determine the adjusted third QoS indicator of the service through pilot or model analysis and estimation, where the The second ratio value is a ratio value of MA and LA of one PU of the plurality of PUs;
    若所述第三QoS指标小于所述业务QoS指标,则调整所述第一比例值,并同时调整所述多个PU内一个或多个PU的所述第二比例值,并通过试点或模型分析估计,确定调整后的所述业务的所述第二QoS指标;If the third QoS indicator is less than the service QoS indicator, adjust the first ratio value, and simultaneously adjust the second ratio value of one or more PUs in the multiple PUs, and pass a pilot or model Analyze and estimate, and determine the adjusted second QoS indicator of the service;
    若所述第二QoS指标小于所述业务QoS指标,则保持调整后的所述第一比例值不变,继续调整所述PU的所述第二比例值,并确定新的第三QoS标指是否大于等于所述业务QoS指标;If the second QoS indicator is less than the service QoS indicator, keep the adjusted first ratio value unchanged, continue to adjust the second ratio value of the PU, and determine a new third QoS indicator Whether it is greater than or equal to the service QoS index;
    若所述新的第三QoS标指仍小于所述业务QoS指标时,则重复上述步骤,继续调整所述第一比例值,直至所述业务的QoS指标大于等于所述业务QoS指标。If the new third QoS indicator is still less than the service QoS indicator, repeat the above steps and continue to adjust the first ratio value until the QoS indicator of the service is greater than or equal to the service QoS indicator.
  8. 根据权利要求1-7任一所述的装置,其特征在于,所述SSD控制器还用于:The device according to any one of claims 1-7, wherein the SSD controller is further configured to:
    若所述业务分配的所述PU具有所述LA,且部分所述LA未被使用,则将未被使用的部分所述LA分配给其他所述业务。If the PU allocated by the service has the LA, and part of the LA is not used, then the unused part of the LA is allocated to other services.
  9. 根据权利要求8所述的装置,其特征在于,所述SSD控制器还用于:The device according to claim 8, wherein the SSD controller is further configured to:
    若所述其他业务在特定时间内,忽略所述QoS指标的要求,则确定将未被使用的部分所述LA分配给所述其他业务;或If the other service ignores the requirements of the QoS indicator within a specific time, it is determined to allocate the unused part of the LA to the other service; or
    通过试点或模型分析估计,确定所述其他业务在接受分配的未被使用的部分所述LA后,所述其他业务的QoS指标是否大于等于所述业务QoS指标;若所述其他业务的QoS指标大于等于所述业务QoS指标,则确定将未被使用的部分所述LA分配给所述其他业务。Through pilot or model analysis and estimation, it is determined whether the QoS index of the other service is greater than or equal to the QoS index of the service after the other service receives the allocated unused part of the LA; if the QoS index of the other service is If it is greater than or equal to the service QoS index, it is determined to allocate the unused part of the LA to the other service.
  10. 根据权利要求1-9任一所述的装置,其特征在于,所述存储介质阵列还用于:The device according to any one of claims 1-9, wherein the storage medium array is further used for:
    在同一个所述PU内,若满足特定条件,则位于所述MA的所述业务主动触发物理位置轮转。In the same PU, if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
  11. 根据权利要求10所述的装置,其特征在于,所述存储介质阵列还用于:The device according to claim 10, wherein the storage medium array is further used for:
    从所述MA中选择待轮转物理块block;Select a physical block to be rotated from the MA;
    选择同一个所述PU内的所述LA中的一个空闲block,或选择同一个所述PU内的所述MA中的一个空闲block;Selecting an idle block in the LA in the same PU, or selecting an idle block in the MA in the same PU;
    将所述待轮转block内的有效数据写入所述空闲block;Writing valid data in the to-be-rotated block into the idle block;
    若选择的是同一个所述PU内的所述LA中的一个空闲block,则将所述空闲block的属性修改为MA,以及将所述待轮转block内的数据标记为无效,并修改属性为LA;If a free block in the LA in the same PU is selected, the attribute of the free block is modified to MA, the data in the block to be rotated is marked as invalid, and the attribute is modified to LA;
    若选择同一个所述PU内的所述MA中的一个空闲block,则将所述待轮转block内的数据标记为无效。If an idle block in the MA in the same PU is selected, the data in the to-be-rotated block is marked as invalid.
  12. 根据权利要求10或11所述的装置,其特征在于,所述特定条件包括:The device according to claim 10 or 11, wherein the specific condition comprises:
    所述业务触发轮转守护进程;或The service triggers the rotation daemon; or
    所述业务在特定时间内,忽略所述业务QoS指标的要求;或The service ignores the requirements of the service QoS index within a certain period of time; or
    所述业务所分配的PU正在进行后台操作,并且不影响所述业务QoS指标;或The PU allocated by the service is undergoing background operation and does not affect the service QoS index; or
    至少一个主机或虚拟机主动发起,其中,所述主机或虚拟机还用于下发至少一个所述业务;或At least one host or virtual machine actively initiates, wherein the host or virtual machine is also used to deliver at least one of the services; or
    所述PU出现故障。The PU is malfunctioning.
  13. 根据权利要求1-12任一所述的装置,其特征在于,所述存储介质阵列还用于:The device according to any one of claims 1-12, wherein the storage medium array is further used for:
    若当前所述PU划分的区域无法匹配所述业务的优先级,则将所述MA划分为第一优先级MA和第二优先级LA;和/或If the area currently divided by the PU cannot match the priority of the service, divide the MA into a first priority MA and a second priority LA; and/or
    将所述LA划分为第三优先级LA和第四优先级LA;Divide the LA into a third priority LA and a fourth priority LA;
    若划分后的所述PU的区域仍无法匹配所述业务的优先级,则继续对所述PU内的区域进行二元划分,直至匹配所述业务的优先级;其中,每次二元划分后所述区域的优先级不超过该区域划分前的优先级。If the divided area of the PU still cannot match the priority of the service, continue to divide the area in the PU into binary divisions until the priority of the service is matched; wherein, after each binary division The priority of the area does not exceed the priority before the area is divided.
  14. 根据权利要求1-13任一所述的装置,其特征在于,所述SSD控制器与所述存储介质阵列封装在一个集成芯片上;或The device according to any one of claims 1-13, wherein the SSD controller and the storage medium array are packaged on an integrated chip; or
    所述SSD控制器包括第一SSD控制器和第二SSD控制器;所述第一SSD控制器位于至少一个主机内,以及所述第二SSD控制器与所述存储介质阵列封装在一个集成芯片上。The SSD controller includes a first SSD controller and a second SSD controller; the first SSD controller is located in at least one host, and the second SSD controller and the storage medium array are packaged in an integrated chip on.
  15. 根据权利要求1-14任一所述的装置,其特征在于,所述存储介质阵列包括至少一个存储介质,所述存储介质为闪存flash、动态随机存取存储器DRAM、静态随机存取存储器SRAM、相变存储器PCM、储存级存储器SCM中的任意一个。The device according to any one of claims 1-14, wherein the storage medium array comprises at least one storage medium, and the storage medium is flash memory, dynamic random access memory DRAM, static random access memory SRAM, Any one of phase change memory PCM and storage-level memory SCM.
  16. 一种固态硬盘SSD控制器,其特征在于,所述SSD控制器与存储介质阵列相耦合;其中,所述存储介质阵列包括多个并发单元PU,所述PU包括主区MA或出租区LA中的至少一个,其中,所述MA用于被一个业务分配使用,所述LA用于被至少一个业务分配使用;A solid state hard disk SSD controller, characterized in that the SSD controller is coupled with a storage medium array; wherein, the storage medium array includes a plurality of concurrent units PU, and the PU includes a main area MA or a rental area LA. At least one of, wherein the MA is used to be allocated and used by one service, and the LA is used to be allocated and used by at least one service;
    所述SSD控制器,用于接收至少一个业务的特征信息,其中,所述特征信息包括业务服务质量QoS指标;The SSD controller is configured to receive characteristic information of at least one service, where the characteristic information includes a service quality QoS indicator;
    所述SSD控制器还用于,根据所述QoS指标将所述PU的MA分配给所述QoS指标最大的业务使用,以及将所述PU的LA分配给其余所述业务使用。The SSD controller is further configured to allocate the MA of the PU to the service use with the largest QoS indicator according to the QoS indicator, and allocate the LA of the PU to the rest of the service use.
  17. 根据权利要求16所述的控制器,其特征在于,所述特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求,所述SSD控制器还用于:The controller according to claim 16, wherein the characteristic information further includes a typical read/write input/output number IOPS requirement per second, and a service storage capacity index or typical capacity requirement, and the SSD controller is also used for:
    根据所述典型IOPS需求,确定所述业务所需PU的第一数量;Determine the first number of PUs required by the service according to the typical IOPS requirements;
    根据所述业务存储容量指标或典型容量需求,确定所述业务所需PU的第二数量;Determine the second number of PUs required by the service according to the service storage capacity index or the typical capacity requirement;
    所述将所述PU的MA分配给所述QoS指标最大的业务使用,以及将所述PU的LA分配给其余所述业务使用包括:The allocating the MA of the PU to the service use with the largest QoS index and allocating the LA of the PU to the remaining service uses include:
    将所述多个PU中的第一PU的MA分配给所述QoS指标最大的业务使用,以及将所述第一PU的LA分配给其余所述业务使用,其中,所述第一PU中包括的PU的数量为所述第一数量和所述第二数量中的最大值。Allocate the MA of the first PU among the multiple PUs to the service use with the largest QoS index, and allocate the LA of the first PU to the rest of the service use, where the first PU includes The number of PUs is the maximum value of the first number and the second number.
  18. 根据权利要求16所述的控制器,其特征在于,所述SSD控制器还用于,控 制访问同一个所述PU内的所述MA输入输出IO操作的优先级高于访问所述LA IO操作的优先级;其中,所述IO操作为所述业务的IO操作。The controller according to claim 16, wherein the SSD controller is further configured to control access to the MA input and output IO operations in the same PU with a higher priority than access to the LA IO operation The priority; wherein, the IO operation is the IO operation of the service.
  19. 根据权利要求16-18任一所述的控制器,其特征在于,所述SSD控制器还用于:The controller according to any one of claims 16-18, wherein the SSD controller is further configured to:
    若所述业务在分配的所述PU内有余量的达成业务指标时,则调整所述PU内MA和LA的比例。If the service has a margin in the allocated PU to achieve the service index, the ratio of MA and LA in the PU is adjusted.
  20. 根据权利要求16-18任一所述的装置,其特征在于,所述SSD控制器还用于:The device according to any one of claims 16-18, wherein the SSD controller is further configured to:
    若当前所述PU划分的区域无法匹配所述业务的优先级,所述SSD控制器控制所述存储介质阵列,将所述MA划分为第一优先级MA和第二优先级LA,和/或将所述LA划分为第三优先级LA和第四优先级LA;If the area divided by the PU currently cannot match the priority of the service, the SSD controller controls the storage medium array to divide the MA into a first priority MA and a second priority LA, and/or Divide the LA into a third priority LA and a fourth priority LA;
    若划分后的所述PU的区域仍无法匹配所述业务的优先级,则继续对所述PU内的区域进行二元划分,直至匹配所述业务的优先级;其中,每次二元划分后所述区域的优先级不超过该区域划分前的优先级。If the divided area of the PU still cannot match the priority of the service, continue to divide the area in the PU into binary divisions until the priority of the service is matched; wherein, after each binary division The priority of the area does not exceed the priority before the area is divided.
  21. 一种提升固态硬盘利用率的方法,其特征在于,所述方法包括:A method for improving the utilization rate of a solid state drive, characterized in that the method includes:
    接收至少一个业务的特征信息,其中,所述特征信息包括业务服务质量QoS指标;Receiving characteristic information of at least one service, where the characteristic information includes a service quality QoS indicator;
    根据所述QoS指标将并发单元PU的主区MA分配给所述QoS指标最大的业务使用,以及将所述PU的出租区LA分配给其余所述业务使用,其中,PU包括MA或LA中的至少一个。According to the QoS index, the main area MA of the concurrent unit PU is allocated to the service use with the largest QoS index, and the rental area LA of the PU is allocated to the rest of the service use, where PU includes MA or LA at least one.
  22. 根据权利要求21所述的方法,其特征在于,所述特征信息还包括典型每秒读写输入输出数量IOPS需求,以及业务存储容量指标或典型容量需求,所述方法还包括:The method according to claim 21, wherein the characteristic information further includes a typical read/write input/output number IOPS requirement per second, and a service storage capacity index or typical capacity requirement, and the method further comprises:
    根据所述典型IOPS需求,确定所述业务所需PU的第一数量;Determine the first number of PUs required by the service according to the typical IOPS requirements;
    根据所述业务存储容量指标或典型容量需求,确定所述业务所需PU的第二数量;Determine the second number of PUs required by the service according to the service storage capacity index or the typical capacity requirement;
    所述将所述PU的MA分配给所述QoS指标最大的业务使用,以及将所述PU的LA分配给其余所述业务使用包括:The allocating the MA of the PU to the service use with the largest QoS index and allocating the LA of the PU to the remaining service uses include:
    将所述多个PU中的第一PU的MA分配给所述QoS指标最大的业务使用,以及将所述第一PU的LA分配给其余所述业务使用,其中,所述第一PU中包括的PU的数量为所述第一数量和所述第二数量中的最大值。Allocate the MA of the first PU among the multiple PUs to the service use with the largest QoS index, and allocate the LA of the first PU to the rest of the service use, where the first PU includes The number of PUs is the maximum value of the first number and the second number.
  23. 根据权利要求21所述的方法,其特征在于,位于同一所述PU内,所述SSD控制器控制访问所述MA的输入输出IO操作的优先级高于访问所述LA的IO操作的优先级;其中,所述IO操作为所述业务的IO操作。The method according to claim 21, characterized in that, in the same PU, the SSD controller controls the priority of the input and output IO operations that access the MA is higher than the priority of the IO operations that access the LA ; Wherein, the IO operation is the IO operation of the service.
  24. 根据权利要求21-23任一所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 21-23, wherein the method further comprises:
    若所述业务在分配的所述最少PU数个PU内有余量的达成业务指标时,则调整所述最少PU数个PU内MA和LA的比例。If the service has a margin to achieve the service index in the assigned minimum number of PUs, the ratio of MA and LA in the minimum number of PUs is adjusted.
  25. 根据权利要求21-24任一所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 21-24, wherein the method further comprises:
    若所述业务分配的所述PU具有所述LA,且部分所述LA未被使用,则将未被使用的部分所述LA分配给其他所述业务。If the PU allocated by the service has the LA, and part of the LA is not used, then the unused part of the LA is allocated to other services.
  26. 根据权利要求21-25任一所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 21-25, wherein the method further comprises:
    在同一个所述PU内,若满足特定条件,则位于所述MA的所述业务主动触发物理位置轮转。In the same PU, if a specific condition is met, the service located in the MA actively triggers the physical location rotation.
  27. 根据权利要求26所述的方法,其特征在于,所述满足特定条件包括:The method according to claim 26, wherein the satisfying a specific condition comprises:
    所述业务触发轮转守护进程;或The service triggers the rotation daemon; or
    所述业务在特定时间内,忽略所述业务QoS指标的要求;或The service ignores the requirements of the service QoS index within a certain period of time; or
    所述业务所分配的一个或多个PU正在进行后台操作,并且不影响所述业务QoS指标;或One or more PUs allocated by the service are performing background operations and do not affect the QoS indicators of the service; or
    至少一个主机或虚拟机主动发起,其中,所述主机或虚拟机还用于下发至少一个所述业务;或At least one host or virtual machine actively initiates, wherein the host or virtual machine is also used to deliver at least one of the services; or
    所述PU出现故障。The PU is malfunctioning.
  28. 根据权利要求21-25任一所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 21-25, wherein the method further comprises:
    若当前所述PU划分的区域无法匹配所述业务的优先级,则将所述MA划分为第一优先级MA和第二优先级LA;和/或If the area currently divided by the PU cannot match the priority of the service, divide the MA into a first priority MA and a second priority LA; and/or
    将所述LA划分为第三优先级LA和第四优先级LA;Divide the LA into a third priority LA and a fourth priority LA;
    若划分后的所述PU的区域仍无法匹配所述业务的优先级,则继续对所述PU内的区域进行二元划分,直至匹配所述业务的优先级;其中,每次二元划分后所述区域的优先级不超过该区域划分前的优先级。If the divided area of the PU still cannot match the priority of the service, continue to divide the area in the PU into binary divisions until the priority of the service is matched; wherein, after each binary division The priority of the area does not exceed the priority before the area is divided.
  29. 一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行根据权利要求21至28任一项所述的方法。A computer-readable storage medium, comprising instructions, which when run on a computer, cause the computer to execute the method according to any one of claims 21 to 28.
  30. 一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求21至28任一项所述的方法。A computer program product containing instructions that, when run on a computer, causes the computer to execute the method according to any one of claims 21 to 28.
PCT/CN2019/127180 2019-12-20 2019-12-20 Method for improving utilization rate of ssd, storage device, and ssd controller WO2021120218A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980102954.4A CN114787760A (en) 2019-12-20 2019-12-20 Method for improving SSD utilization rate, storage device and SSD controller
PCT/CN2019/127180 WO2021120218A1 (en) 2019-12-20 2019-12-20 Method for improving utilization rate of ssd, storage device, and ssd controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/127180 WO2021120218A1 (en) 2019-12-20 2019-12-20 Method for improving utilization rate of ssd, storage device, and ssd controller

Publications (1)

Publication Number Publication Date
WO2021120218A1 true WO2021120218A1 (en) 2021-06-24

Family

ID=76478408

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/127180 WO2021120218A1 (en) 2019-12-20 2019-12-20 Method for improving utilization rate of ssd, storage device, and ssd controller

Country Status (2)

Country Link
CN (1) CN114787760A (en)
WO (1) WO2021120218A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008017A (en) * 2013-02-26 2014-08-27 希捷科技有限公司 Assigning a weighting to host quality of service indicators
CN105224474A (en) * 2014-06-03 2016-01-06 深圳市腾讯计算机系统有限公司 The system that realizes of solid state hard disc flash translation layer (FTL) and the implement device of flash translation layer (FTL)
US20190155546A1 (en) * 2017-11-17 2019-05-23 SK Hynix Memory Solutions America Inc. Memory system with soft-read suspend scheme and method of operating such memory system
CN110362275A (en) * 2019-07-10 2019-10-22 深圳大普微电子科技有限公司 Promote the method and solid state hard disk of solid state hard disk service quality

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617024B (en) * 2013-11-07 2016-01-13 华为技术有限公司 A kind of concurrent data disposal route, device and system
JP2015143945A (en) * 2014-01-31 2015-08-06 富士通株式会社 Storage control device, storage device and control program
CN109154883A (en) * 2017-03-22 2019-01-04 波利伍德有限责任公司 Driving stage internal service quality
CN108132759B (en) * 2018-01-15 2021-04-16 网宿科技股份有限公司 Method and device for managing data in file system
CN108848039B (en) * 2018-04-24 2021-11-02 平安科技(深圳)有限公司 Server, message distribution method and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008017A (en) * 2013-02-26 2014-08-27 希捷科技有限公司 Assigning a weighting to host quality of service indicators
CN105224474A (en) * 2014-06-03 2016-01-06 深圳市腾讯计算机系统有限公司 The system that realizes of solid state hard disc flash translation layer (FTL) and the implement device of flash translation layer (FTL)
US20190155546A1 (en) * 2017-11-17 2019-05-23 SK Hynix Memory Solutions America Inc. Memory system with soft-read suspend scheme and method of operating such memory system
CN110362275A (en) * 2019-07-10 2019-10-22 深圳大普微电子科技有限公司 Promote the method and solid state hard disk of solid state hard disk service quality

Also Published As

Publication number Publication date
CN114787760A (en) 2022-07-22

Similar Documents

Publication Publication Date Title
US11048442B2 (en) Scalable in-memory object storage system using hybrid memory devices
US9009397B1 (en) Storage processor managing solid state disk array
CN103902474B (en) Mixed storage system and method for supporting solid-state disk cache dynamic distribution
US9652379B1 (en) System and method for reducing contentions in solid-state memory access
US20200089537A1 (en) Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants
CN108845960B (en) Memory resource optimization method and device
CN110226157A (en) Dynamic memory for reducing row buffering conflict remaps
Gao et al. Exploiting parallelism for access conflict minimization in flash-based solid state drives
CN102207830B (en) Cache dynamic allocation management method and device
US20180067850A1 (en) Non-volatile memory device
US11861196B2 (en) Resource allocation method, storage device, and storage system
CN104346284A (en) Memory management method and memory management equipment
WO2023051715A1 (en) Data processing method and apparatus, processor, and hybrid memory system
US20240231653A1 (en) Memory management method and apparatus, processor, and computing device
US20240231654A1 (en) Method and Apparatus for Controlling Internal Memory Bandwidth, Processor, and Computing Device
US20240241826A1 (en) Computing node cluster, data aggregation method, and related device
Liu et al. Improving fairness for SSD devices through DRAM over-provisioning cache management
Liu et al. Fair-zns: Enhancing fairness in zns ssds through self-balancing I/O scheduling
LU102091B1 (en) Zone hints for zoned namespace storage devices
CN116795735B (en) Solid state disk space allocation method, device, medium and system
WO2021120218A1 (en) Method for improving utilization rate of ssd, storage device, and ssd controller
US20230393877A1 (en) Apparatus with dynamic arbitration mechanism and methods for operating the same
CN111582739B (en) Method for realizing high bandwidth under condition of multi-tenant solid-state disk performance isolation
Wang et al. A resource allocation model for hybrid storage systems
Wang et al. Oc-cache: An open-channel ssd based cache for multi-tenant systems

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19956836

Country of ref document: EP

Kind code of ref document: A1