CN109766056A - A kind of storage array controllers IO array dispatching method and device - Google Patents
A kind of storage array controllers IO array dispatching method and device Download PDFInfo
- Publication number
- CN109766056A CN109766056A CN201811430620.3A CN201811430620A CN109766056A CN 109766056 A CN109766056 A CN 109766056A CN 201811430620 A CN201811430620 A CN 201811430620A CN 109766056 A CN109766056 A CN 109766056A
- Authority
- CN
- China
- Prior art keywords
- request
- priority
- queue
- unit
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
The invention proposes a kind of storage array controllers IO array dispatching method and devices, including I/O request Dispatching Unit, I/O request scheduling unit, I/O request execution unit and status monitor;IO Dispatching Unit receives the I/O request from host, is divided into IO and reads to write with IO;I O scheduling unit receives the I/O request from IO Dispatching Unit, it is sent into different queues, and it sorts by priority, I O scheduling unit receives the information from status monitor about medium state, the priority for introducing IO write request calculates weighted factor and carries out priority scaling, by the I/O request of highest priority, it is sent to IO execution unit;IO execution unit receives the I/O request from I O scheduling unit, is sent to lower module.The present invention solves the problems, such as that controller storage medium interface bandwidth usage is insufficient, while meeting user's QoS satisfaction, improves the read or write speed of memory and the ability of processing I/O request per second.
Description
Technical field
The invention belongs to computer network data field of storage, and in particular to the IO queue scheduling in a kind of storage array
Method and apparatus.
Background technique
Data assets are saved with the enhancing with using consciousness along with cloud computing rapid proliferation and every profession and trade, and is passed through
The wish that internet, big data change industry, the array memory technology using large capacity non-volatile flash memory as medium
It is just rapidly growing in data center, quickly replace traditional mechanical hard disk technology.Data center, server are connected by communication network
Numerous client computers.I/O request, by communication network, is sent to array storage controller, completes number by user in client
According to acquisition and update, such as attached drawing 1.
The I/O request that user is sent to data center generally employs a kind of technology for being known as tab command queue (TCQ), uses
To mark priority and the queue type of I/O request.TCQ technology supports 256 grades of queues towards more hosts, more equipment application environment
Depth is used for server and data center.Since terminal user is numerous, the I/O request substantial amounts of data center are sent to, if
It does not take effective strategy to be scheduled, I/O request is easily caused to accumulate, the problem of storage medium interface bandwidth availability ratio deficiency, into
And customer satisfaction with services is caused to decline.
Solid state hard disk such as must be wiped first before writing due to a few thing mechanism, be existed and write enlarge-effect
(write amplification), read or write speed has differences.The speed that usual IO is read is 3~5 times of IO writing rate.Consider
IO, which writes, is significantly higher than I O read requests to the occupancy of bandwidth, and in scheduling scheme design, reduction IO appropriate writes dispatching priority energy
Improve the overall performance performance of storage array.
Existing queue scheduling technology existing defects in terms of queue management scheme, easily lead to storage medium interface bandwidth usage
Insufficient problem.
Summary of the invention
In view of the deficiencies of the prior art, the invention proposes a kind of storage array controllers IO array dispatching methods and dress
It sets.Core of the invention is an I/O scheduler, including I/O request Dispatching Unit, I/O request scheduling unit, I/O request execute list
Member and status monitor.
I/O request Dispatching Unit receives the I/O request from host, and queue is divided into two major classes by I/O request type, respectively
It is that IO is read and IO writes;Storage medium unit of the I O read requests as where reading target physical address is further discriminated between and divides difference into
Queue, the identical I/O request of storage medium unit where reading target physical address is divided into same queue.
I/O request scheduling unit receives the I/O request from I/O request Dispatching Unit, is sent into different queues, and by preferential
The sequence sequence of grade from big to small.The I/O request of same queue equal priority sorts by first in first out.I/O request scheduling
Unit receives the information from status monitor about medium state, is denoted as A.Use Ai=1 expression monitor has received i-th
Storage medium unit executes the operating result of nearest I/O request, uses Ai=0 expression monitor does not receive i-th of storage medium unit
Execute the operating result of nearest I/O request.Write/erase is introduced except the priority of/Trim one kind I/O request calculates weighted factor, to this
The priority of a kind of I/O request zooms in and out, wherein α ∈ (0,1].Use ρijIndicate the i-th queue, the preferential of I/O request of sorting for j-th
Grade.By { ρij*AiCalculate the real-time priority that each IO reads queue highest priority IO;By { α * ρij*AiCalculate IO write/erase
Except the real-time priority of/Trim queue highest priority IO, wherein * indicates multiplying.Calculated result is ranked up, it will most
The I/O request of high priority is sent to I/O request execution unit.
I/O request execution unit receives the I/O request from I/O request scheduling unit, is sent to lower module and carries out execution read-write
Deng operation.
Further, the priority that the i-th queue, the IO that sorts for j-th are indicated with ρ ij, if the I/O request of the priority is more than 1
It is a, then it is dispatched by first in first out, i.e. ρ ij0 > ρ ij1 > ρ ij2.
Further, it is to the scheduling process of IO queue:
1) real-time priority that each IO reads queue highest priority IO is calculated by { ρ ij*Ai };
2) real-time priority of IO write request queue highest priority IO is calculated by { α * ρ ij*Ai };
3) calculated result is divided into 3 kinds of situation descriptions: first is that it is all 0, the IO that can be scheduled at this time, or have for adjusting
The IO but storage medium of degree are in busy state;Second is that an only non-zero value, then be sent to IO execution unit for the I/O request;Three
It is to have more than one non-zero value, then calculated result is ranked up, therefrom select IO corresponding to maximum value, is sent to IO execution
Unit.
A kind of storage array controllers IO queue scheduling device, including I/O request Dispatching Unit, I/O request scheduling unit, IO
Request execution unit, status monitor;
The I/O request Dispatching Unit receives the I/O request from host, queue is divided into two major classes by I/O request type,
The first kind includes I O read requests, and the second class includes IO write request;To storage of the I O read requests as where reading target physical address
The further zoning of media units is divided into different queues;
The I/O request scheduling unit receives the I/O request from I/O request Dispatching Unit, is sent into different queues, and press
The sequence sequence of priority from big to small, the I/O request of same queue equal priority sort by first in first out;The IO
Request scheduling unit receives the information from status monitor about medium state, remembers A, indicates monitor with Ai=1
The operating result that i-th of storage medium executes nearest I/O request is received, indicates that monitor does not receive i-th of storage and is situated between with Ai=0
Matter executes the operating result of nearest I/O request;The priority for introducing IO write request calculates weighted factor, to this kind of I/O requests
Priority zooms in and out, wherein α ∈ (0,1], with ρ ij indicate the i-th queue, j-th sequence I/O request priority, press { ρ ij*
Ai } calculate the real-time priority that each IO reads queue highest priority IO;IO write request queue highest is calculated by { α * ρ ij*Ai }
The real-time priority of priority IO, wherein * indicates multiplying, is ranked up to calculated result, the IO of highest priority is asked
It asks, is sent to I/O request execution unit;
The I/O request execution unit receives the I/O request from I/O request scheduling unit, is sent to lower module and is held
The operations such as row read-write;
The status monitor monitors the information about medium state.
Key technology of the invention first is that various dimensions (priority, I/O request type, storage medium status information) information is about
Queue scheduling technology under beam, second is that the priority zoom technology of IO write request.Compared with prior art, creativeness is embodied in:
Queue is divided into two major classes by I/O request type, is that IO is read and IO writes respectively;To I O read requests by reading target physical address institute
Storage medium unit further discriminate between as different queues;Weighted factor is introduced to the priority of IO write request to carry out preferentially
Grade scaling.
Technical solution of the present invention technological progress is embodied in, and while meeting user's QoS satisfaction, improves memory
The performance of two aspects of read or write speed and processing I/O request ability per second.
The present invention solves the problems, such as that controller storage medium interface bandwidth usage is insufficient, has simple, practical, Yi Shi
Existing advantage, while meeting user's QoS satisfaction, improve memory read or write speed and processing I/O request energy per second
The performance of two aspects of power, the good effect of presentation have: one, the QoS service of different user especially high-priority users
Satisfaction is protected;Two, memory read/write speed ability is promoted;Three, the capability improving of memory processing I/O request per second.
Detailed description of the invention
Fig. 1 is computer network architecture figure;
Fig. 2 is storage array hardware structure diagram;
Fig. 3 is storage array controllers software function structure chart;
Fig. 4 is present invention I O scheduler architecture figure;
Fig. 5 is I/O request distribution processor process;
Fig. 6 is sorted IO queue;
Fig. 7 is the first in first out schematic diagram that equal priority I/O request follows in same queue;
Fig. 8 is I/O request scheduling processing flow figure.
Specific embodiment
The object, technical solutions and advantages of the present invention are understood in order to be more clearly understood, below with reference to embodiment and attached drawing,
The present invention is described in further detail, exemplary embodiment of the invention and its explanation for explaining only the invention, and
It is not as a limitation of the invention.
Referring to Fig. 1, the I/O request from client computer is sent to data center by communication network, storage array is logical
It crosses host interface and receives the I/O request for carrying out automatic network, refering to Fig. 2 and Fig. 3.Wherein, Fig. 2 is the hardware structure diagram of storage array, is deposited
Array control unit is stored up by more storage medium units of storage medium interface carry, these storage medium units can independent parallel work
Make.Fig. 3 is the software function structure chart of storage array controllers, and the software of operation mainly includes antenna array control software, SSD
(Solid State Drives) firmware, I/O scheduler.
Host accesses storage control by logical address block (LBA), and storage control is deposited by physical address access
Storage media.Storage control service logic address to physical address mapping table, this table can be stored on piece RAM resource,
Solid storage medium or onboard DRAM resource.In the present embodiment, mapping table is stored in onboard DRAM.
The incoming all kinds of I/O requests of I/O scheduler receiving host interface, and classify by the type of I/O request.IO reading is asked
It asks and is divided into one kind, IO write request is divided into one kind.I O read requests are continued to classify by destination media address is read.I O read requests
Metadata includes object element ID, this is a logical address.With this logical address to the logical address for being stored in onboard DRAM
Physical address mapping table searches corresponding physical address.The physical address ownership storage medium -1 such as found, then the I/O request arranges
Enter the I O read requests queue of storage medium -1, such as Fig. 2.Fig. 5 describes the I/O request distribution flow.Fig. 6 is point by Fig. 5 description
The IO queue that class method obtains.
The IO queue that Fig. 6 is obtained according to priority is ranked up from big to small as unit of queue.To equal priority
I/O request is arranged by first in first out.It is successive by arrival time if Fig. 7, queue i have the priority of 3 I/O requests identical
It arranges from right to left in proper order, number 0/1/2, dispatching sequence is from right to left.
Storage array as shown in Figure 2, more flash storage mediums of carry, these flash on a channel flash
Particle is worked with one or a set of for unit independent parallel.After completing the operation of the I/O requests such as read/write, operating result is returned
(success or failure) gives storage array controllers.Monitor in storage array controllers monitors this status information, it can be seen that
The working condition of storage medium.Use AiIndicate the working condition of i-th of storage medium unit, 1 indicates to have received nearest one
The operating result of I/O request, storage medium are in idle state;0 indicates the operating result for not receiving a nearest I/O request, deposits
Storage media is in busy state.
Due to solid-state storage exists and writes enlarge-effect etc., the speed that IO is read will significantly be faster than IO and write, this causes to adjust
Degree device will significantly be longer than IO on the time for waiting IO to write complete and read.In order to improve the readwrite performance performance of storage array entirety
With processing I/O request ability per second, real-time priority is introduced to the second class IO queue i.e. IO write queue and calculates weighted factor.
α be one be greater than 0, it is small be equal to 1 decimal.In the present embodiment, α=0.618.
Use ρijThe priority for indicating the i-th queue, the IO that sorts for j-th, if the I/O request more than one of the priority, is pressed
First in first out scheduling, i.e. ρij0>ρij1>ρij2。
Scheduling process to IO queue is:
1) { ρ is pressedij*AiCalculate the real-time priority that each IO reads queue highest priority IO;
2) { α * ρ is pressedij AiCalculate IO write queue highest priority IO real-time priority;
3) calculated result is divided into 3 kinds of situation descriptions: first is that it is all 0, the IO that can be scheduled at this time, or have for adjusting
The IO but storage medium of degree are in busy state;Second is that an only non-zero value, then be sent to IO execution unit for the I/O request;Three
It is to have more than one non-zero value, then calculated result is ranked up, therefrom select IO corresponding to maximum value, is sent to IO execution
Unit.
The I O scheduling process can also be described with Fig. 8.The process and the above process of Fig. 8 description are medium state information benefit
Sequence is different, but process is of equal value, result is identical.
Claims (4)
1. a kind of storage array controllers IO array dispatching method characterized by comprising
I/O request Dispatching Unit receives the I/O request from host, and queue is divided into two major classes, first kind packet by I/O request type
I O read requests are included, the second class includes IO write request;
Storage medium unit of the I O read requests as where reading target physical address is further discriminated between and divides different queues into, is read
The identical I/O request of storage medium unit where taking target physical address is divided into same queue;
I/O request scheduling unit receive the I/O request from I/O request Dispatching Unit, be sent into different queues, and according to priority from
Small sequence sequence is arrived greatly, and the I/O request of same queue equal priority sorts by first in first out;
I/O request scheduling unit receives the information from status monitor about medium state, is denoted as A, uses Ai=1 indicates monitor
The operating result that i-th of storage medium unit executes nearest I/O request has been received, A is usedi=0 expression monitor does not receive i-th
A storage medium unit executes the operating result of nearest I/O request;
The priority for introducing the second class I/O request calculates weighted factor, zooms in and out to the priority of this kind of I/O requests,
Wherein α ∈ (0,1], use ρijThe priority for indicating the i-th queue, the I/O request that sorts for j-th, presses { ρij*AiCalculate each IO reading team
The real-time priority of column highest priority IO;By { α * ρij*AiCalculate the real-time of IO write request request queue highest priority IO
Priority, wherein * indicates multiplying, is ranked up to calculated result, by the I/O request of highest priority, is sent to I/O request and holds
Row unit;
I/O request execution unit receives the I/O request from I/O request scheduling unit, is sent to lower module and is written and read.
2. a kind of storage array controllers IO array dispatching method according to claim 1 characterized by comprising
Use ρijThe priority for indicating the i-th queue, the IO that sorts for j-th, if the I/O request more than one of the priority, by advanced
First go out principle scheduling, i.e. ρij0>ρij1>ρij2。
3. a kind of storage array controllers IO array dispatching method according to claim 1 characterized by comprising
Scheduling process to IO queue is:
1) { ρ is pressedij*AiCalculate the real-time priority that each IO reads queue highest priority IO;
2) { α * ρ is pressedij*AiCalculate IO write request queue highest priority IO real-time priority;
3) calculated result is divided into the description of 3 kinds of situations: first is that be all 0, the IO that can be scheduled at this time, or have and can be scheduled for
IO but storage medium is in busy state;Second is that an only non-zero value, then be sent to IO execution unit for the I/O request;Third is that having
More than one non-zero value, then be ranked up calculated result, therefrom selects IO corresponding to maximum value, is sent to IO execution unit.
4. a kind of storage array controllers IO queue scheduling device characterized by comprising I/O request Dispatching Unit, I/O request
Scheduling unit, I/O request execution unit, status monitor;
The I/O request Dispatching Unit receives the I/O request from host, and queue is divided into two major classes by I/O request type, and first
Class includes I O read requests, and the second class includes IO write request;To storage medium of the I O read requests as where reading target physical address
The further zoning of unit is divided into different queues;
The I/O request scheduling unit receives the I/O request from I/O request Dispatching Unit, is sent into different queues, and by preferential
The sequence sequence of grade from big to small, the I/O request of same queue equal priority sort by first in first out;The I/O request
Scheduling unit receives the information from status monitor about medium state, is denoted as A, uses Ai=1 expression monitor has received
I-th of storage medium executes the operating result of nearest I/O request, uses Ai=0 expression monitor does not receive i-th of storage medium and holds
The operating result of the nearest I/O request of row;The priority for introducing IO write request calculates weighted factor, to the preferential of this kind of I/O requests
Grade zoom in and out, wherein α ∈ (0,1], use ρijThe priority for indicating the i-th queue, the I/O request that sorts for j-th, presses { ρij*AiCalculate
Each IO reads the real-time priority of queue highest priority IO;By { α * ρij*AiCalculate IO write request queue highest priority IO
Real-time priority, wherein * indicate multiplying, calculated result is ranked up, by the I/O request of highest priority, is sent to IO
Request execution unit;
The I/O request execution unit receives the I/O request from I/O request scheduling unit, is sent to lower module and is written and read behaviour
Make;
The status monitor monitors the information about medium state.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430620.3A CN109766056A (en) | 2018-11-28 | 2018-11-28 | A kind of storage array controllers IO array dispatching method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430620.3A CN109766056A (en) | 2018-11-28 | 2018-11-28 | A kind of storage array controllers IO array dispatching method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766056A true CN109766056A (en) | 2019-05-17 |
Family
ID=66449644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811430620.3A Pending CN109766056A (en) | 2018-11-28 | 2018-11-28 | A kind of storage array controllers IO array dispatching method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766056A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209597A (en) * | 2019-05-24 | 2019-09-06 | 北京百度网讯科技有限公司 | Handle method, apparatus, equipment and the storage medium of access request |
CN112748883A (en) * | 2021-01-15 | 2021-05-04 | 苏州浪潮智能科技有限公司 | IO request pipeline processing device, method, system and storage medium |
CN117406936A (en) * | 2023-12-14 | 2024-01-16 | 成都泛联智存科技有限公司 | IO request scheduling method and device, electronic equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125678A1 (en) * | 2007-11-09 | 2009-05-14 | Seisuke Tokuda | Method for reading data with storage system, data managing system for storage system and storage system |
CN106681661A (en) * | 2016-12-23 | 2017-05-17 | 郑州云海信息技术有限公司 | Read-write scheduling method and device in solid state disk |
CN107305473A (en) * | 2016-04-21 | 2017-10-31 | 华为技术有限公司 | The dispatching method and device of a kind of I/O Request |
CN108021516A (en) * | 2017-12-19 | 2018-05-11 | 联芸科技(杭州)有限公司 | The command scheduling management system and method for a kind of parallel memorizing media storage controller |
-
2018
- 2018-11-28 CN CN201811430620.3A patent/CN109766056A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125678A1 (en) * | 2007-11-09 | 2009-05-14 | Seisuke Tokuda | Method for reading data with storage system, data managing system for storage system and storage system |
CN107305473A (en) * | 2016-04-21 | 2017-10-31 | 华为技术有限公司 | The dispatching method and device of a kind of I/O Request |
CN106681661A (en) * | 2016-12-23 | 2017-05-17 | 郑州云海信息技术有限公司 | Read-write scheduling method and device in solid state disk |
CN108021516A (en) * | 2017-12-19 | 2018-05-11 | 联芸科技(杭州)有限公司 | The command scheduling management system and method for a kind of parallel memorizing media storage controller |
Non-Patent Citations (1)
Title |
---|
HAIROSS: "IO队列和IO调度", 《CSDN博客》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209597A (en) * | 2019-05-24 | 2019-09-06 | 北京百度网讯科技有限公司 | Handle method, apparatus, equipment and the storage medium of access request |
US11307801B2 (en) | 2019-05-24 | 2022-04-19 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus, device and storage medium for processing access request |
CN112748883A (en) * | 2021-01-15 | 2021-05-04 | 苏州浪潮智能科技有限公司 | IO request pipeline processing device, method, system and storage medium |
CN112748883B (en) * | 2021-01-15 | 2023-01-10 | 苏州浪潮智能科技有限公司 | IO request pipeline processing device, method, system and storage medium |
CN117406936A (en) * | 2023-12-14 | 2024-01-16 | 成都泛联智存科技有限公司 | IO request scheduling method and device, electronic equipment and storage medium |
CN117406936B (en) * | 2023-12-14 | 2024-04-05 | 成都泛联智存科技有限公司 | IO request scheduling method and device, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575664B2 (en) | Workload-aware I/O scheduler in software-defined hybrid storage system | |
US20220057940A1 (en) | Method and Apparatus for SSD Storage Access | |
JP5439581B2 (en) | Storage system, storage apparatus, and storage system optimization method for storage system | |
US20200089537A1 (en) | Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants | |
US10394606B2 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
CN109766056A (en) | A kind of storage array controllers IO array dispatching method and device | |
US20050240934A1 (en) | Task management based on system utilization | |
CN107885456A (en) | Reduce the conflict that I/O command accesses NVM | |
JP2009238114A (en) | Storage management method, storage management program, storage management apparatus, and storage management system | |
US10884667B2 (en) | Storage controller and IO request processing method | |
US8301805B2 (en) | Managing I/O request in a storage system | |
CN108121601B (en) | Application resource scheduling device and method based on weight | |
CN102402401A (en) | Method for scheduling input output (IO) request queue of disk | |
US20220179585A1 (en) | Management of Idle Time Compute Tasks in Storage Systems | |
WO2018024214A1 (en) | Io flow adjustment method and device | |
JP2013196389A (en) | Information processing apparatus, information processing program and information processing method | |
US9201598B2 (en) | Apparatus and method for sharing resources between storage devices | |
WO2016008338A1 (en) | I/o request processing method and storage system | |
CN1155891C (en) | Equity elevator scheduling calculating method used for direct access storage device | |
CN109144908A (en) | A kind of data-storage system and method based on cascade Expander | |
CN107885667B (en) | Method and apparatus for reducing read command processing delay | |
EP3550421B1 (en) | Storage controller and io request processing method | |
US6732196B2 (en) | Allowing slots belonging to a second slot category to receive I/O access requests belonging to a first and a second access request categories in a round robin fashion | |
CN107193487B (en) | A kind of random access recognition methods and system | |
CN110874192B (en) | Storage management apparatus and storage management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190517 |