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 PDF

Info

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
Application number
CN201811430620.3A
Other languages
Chinese (zh)
Inventor
邱赐云
吴春
叶韬
吴佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai V-Kool Information Technology Ltd By Share Ltd
Original Assignee
Shanghai V-Kool Information Technology Ltd By Share Ltd
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 Shanghai V-Kool Information Technology Ltd By Share Ltd filed Critical Shanghai V-Kool Information Technology Ltd By Share Ltd
Priority to CN201811430620.3A priority Critical patent/CN109766056A/en
Publication of CN109766056A publication Critical patent/CN109766056A/en
Pending legal-status Critical Current

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

A kind of storage array controllers IO array dispatching method and device
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. ρij0ij1ij2
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. ρij0ij1ij2
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.
CN201811430620.3A 2018-11-28 2018-11-28 A kind of storage array controllers IO array dispatching method and device Pending CN109766056A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
HAIROSS: "IO队列和IO调度", 《CSDN博客》 *

Cited By (6)

* Cited by examiner, † Cited by third party
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