IP Library › Granted Patent US 10,628,060
Granted Patent B2
US 10,628,060 · App. 15/959,276 · Granted Apr 21, 2020

Smart storage management based on dynamic logic capacity for the storage

Inventors: Liming Wu (Shenzhen, CN); Jianye Yao (Chengdu, CN); Bin Huang (Chengdu, CN); Hongqiang Cao (Chengdu, CN); Chao Xu (Chengdu, CN); Yibin Li (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F3/0631G06F3/0604G06F3/0608G06F3/0626G06F3/0658G06F3/0679G06F12/023G06F12/0246G11C7/1006G11C16/06G11C16/10G06F2212/401G06F2212/7204
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,628,060
App. No.
15/959,276
Granted
Apr 21, 2020
Kind
B2
Abstract

Providing a data processing manner, wherein: a SSD compresses a data; the SSD storing the compressed data; the SSD sends a feedback information to a controller, wherein the feedback information indicates a remaining capacity of the SSD after the compressed data is stored.

Claims (70)

1. A data processing method, applied to a solid state disk (SSD) and comprising:

receiving, by the SSD, a write request from a controller, wherein the write request carries to-be-written data;

allocating, by the SSD, a blank logical block to the to-be-written data, wherein the blank logical block is a logical block with a free logical address, the logical block corresponding to a segment of logical capacity of the SSD;

compressing, by the SSD, the to-be-written data to obtain compressed data;

storing, by the SSD, the compressed data;

sending, by the SSD, first feedback information to the controller, wherein the first feedback information indicates a remaining logical capacity of the SSD after the compressed data is stored, wherein the remaining logical capacity of the SSD corresponds to an actual amount of free data blocks on the SSD available for storing data;

converting, by the SSD, the allocated blank logical block into a valid logical block, wherein the valid logical block is a logical block whose logical address is occupied by valid data;

determining, by the SSD, according to a size of the to-be-written data and a size of the compressed data, a quantity of blank logical blocks that need to be added in the SSD,

wherein a quantity M of blank logical blocks to be added in the SSD is equal to a rounded-down result of dividing D by L, wherein D indicates a difference between a length of the to-be-written data and a length of the compressed data, and L indicates a length of a logical block in the SSD;

querying, by the SSD, a quantity of remaining blank logical blocks in the SSD, and

sending, by the SSD, second feedback information to the controller, wherein the second feedback information indicates the quantity of remaining blank logical blocks and/or remaining capacity of the SSD, wherein the remaining capacity is based on the quantity of the remaining blank logical blocks.

2. A data processing method, applied to a solid state disk (SSD) and comprising:

receiving, by the SSD, a write request from a controller, wherein the write request carries to-be-written data;

allocating, by the SSD, a blank logical block to the to-be-written data, wherein the blank logical block is a logical block with a free logical address, the logical block corresponding to a segment of logical capacity of the SSD;

compressing, by the SSD, the to-be-written data to obtain compressed data;

storing, by the SSD, the compressed data;

converting, by the SSD, the allocated blank logical block into a valid logical block, wherein the valid logical block is a logical block whose logical address is occupied by valid data; and

sending, by the SSD, first feedback information to the controller, wherein the first feedback information indicates a remaining logical capacity of the SSD after the compressed data is stored, wherein the remaining logical capacity of the SSD corresponds to an actual amount of free data blocks on the SSD available for storing data;

querying, by the SSD, a quantity of remaining blank logical blocks in the SSD; and,

sending, by the SSD, second feedback information to the controller, wherein the second feedback information indicates a quantity of remaining blank logical blocks and/or remaining capacity of the SSD, wherein the remaining capacity is based on the quantity of the remaining blank logical blocks;

receiving, by the SSD, a command from the controller, wherein the command comprises a logical address range, and the command instructs to mark valid data in the logical address range as invalid data;

converting, by the SSD, a valid logical block in the logical address range into an isolated logical block, wherein the isolated logical block is a logical block whose logical address is not to be used;

determining, by the SSD, a size of physical space occupied by data in the logical address range;

selecting, by the SSD, partial over-provisioning space from over-provisioning space, wherein a size of the partial over-provisioning space is equal to the size of the physical space occupied by the data in the logical address range; and

using, by the SSD, the partial over-provisioning space as a free physical space of the SSD.

3. A solid state disk, comprising:

a communications interface, configured to communicate with a controller;

a storage medium, configured to provide storage space; and

a processor, connected to the communications interface and the storage medium, and configured to:

receive a write request from the controller through the communications interface, wherein the write request carries to-be-written data;

allocate a blank logical block to the to-be-written data, wherein the blank logical block is a logical block with a free logical address, the logical block corresponding to a segment of logical capacity of the storage medium;

compress the to-be-written data to obtain the compressed data;

determine, according to a size of the to-be-written data and a size of the compressed data, a quantity of blank logical blocks that need to be added in the solid state disk,

wherein a quantity M of blank logical blocks that need to be added in the solid state disk is equal to a rounded-down result of dividing D by L, wherein D indicates a difference between a length of the to-be-written data and a length of the compressed data, and L indicates a length of a logical block in the solid state disk;

store the compressed data in the storage medium;

send first feedback information to the controller, wherein the first feedback information indicates a remaining logical capacity of the storage medium after the compressed data is stored, wherein the remaining logical capacity of the SSD corresponds to an actual amount of free data blocks on the SSD available for storing data;

convert the allocated blank logical block into a valid logical block, wherein the valid logical block is a logical block whose logical address is occupied by valid data;

query a quantity of remaining blank logical blocks in the solid state disk; and

send second feedback information to the controller, wherein the second feedback information indicates a quantity of remaining blank logical blocks and/or remaining capacity on the SSD, wherein the remaining capacity is based on the quantity of the remaining blank logical blocks.

4. A solid state disk, comprising:

a communications interface, configured to communicate with a controller;

a storage medium, configured to provide storage space; and

a processor, connected to the communications interface and the storage medium, and configured to:

receive a write request from the controller through the communications interface, wherein the write request carries to-be-written data;

allocate a blank logical block to the to-be-written data, wherein the blank logical block is a logical block with a free logical address, the logical block corresponding to a segment of logical capacity of the storage medium;

compress the to-be-written data to obtain compressed data;

store the compressed data in the storage medium; and

send first feedback information to the controller, wherein the first feedback information indicates a remaining logical capacity of the storage medium after the compressed data is stored, wherein the remaining logical capacity of the SSD corresponds to an actual amount of free data blocks on the SSD available for storing data;

convert the allocated blank logical block into a valid logical block, wherein the valid logical block is a logical block whose logical address is occupied by valid data;

query a quantity of remaining blank logical blocks in the solid state disk;

send second feedback information to the controller, wherein the second feedback information indicates a quantity of remaining blank logical blocks and/or remaining capacity on the SSD, wherein the remaining capacity is based on the quantity of the remaining blank logical blocks;

receive a command from the controller through the communications interface, wherein the command comprises a logical address range, and the command instructs to mark valid data in the logical address range as invalid data;

convert a valid logical block in the logical address range into an isolated logical block, wherein the isolated logical block is a logical block whose logical address cannot be used;

determine a size of physical space occupied by data in the logical address range;

select partial over-provisioning space from over-provisioning space, wherein a size of the partial over-provisioning space is equal to the size of the physical space occupied by the data in the logical address range; and

use the partial over-provisioning space as a free physical space of the storage medium.

5. A storage system, comprising a controller and a solid state disk, wherein

the solid state disk, comprising:

a communications interface, configured to communicate with a controller;

a storage medium, configured to provide storage space; and

a processor, connected to the communications interface and the storage medium, and configured to:

receive a write request from the controller through the communications interface, wherein the write request carries to-be-written data;

compress the to-be-written data to obtain compressed data; store the compressed data in the storage medium; and

send first feedback information to the controller through the communications interface, wherein the first feedback information indicates a remaining capacity of the storage medium after the compressed data is stored; and, wherein

the controller is configured to:

generate a write request comprising the to-be-written data; receive a response message for the write request from the processor through the communications interface, wherein the response message comprises a logical address of the to-be-written data in the storage medium; and

record a mapping relationship between a logical address of the to-be-written data in a disk array and the logical address of the to-be-written data in the storage medium.

6. The storage system according to claim 5 , wherein

the controller is further configured to: receive new to-be-written data from a host; determine a remaining capacity of the solid state disk according to the first feedback information; and

when the remaining capacity of the solid state disk is greater than a size of the new to-be-written data, write the new to-be-written data into the solid state disk.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2018
From: WU, LIMING; YAO, JIANYE; HUANG, BIN; CAO, HONGQIANG; XU, CHAO; LI, YIBIN
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 045994/0625 →
Continuity (2)
Continuation PCTCN2016087096 · Jun 24, 2016
Related Publication 20180246664A1 · Aug 30, 2018