CN104111805B - 一种i/o请求处理方法及存储系统 - Google Patents
一种i/o请求处理方法及存储系统 Download PDFInfo
- Publication number
- CN104111805B CN104111805B CN201410337244.9A CN201410337244A CN104111805B CN 104111805 B CN104111805 B CN 104111805B CN 201410337244 A CN201410337244 A CN 201410337244A CN 104111805 B CN104111805 B CN 104111805B
- Authority
- CN
- China
- Prior art keywords
- phy
- type
- storage device
- storage
- storage system
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种I/O请求处理方法,应用于存储系统中,包括:接收I/O请求,I/O请求中携带有I/O的大小以及待访问的地址;根据待访问的地址确定待访问的存储设备的类型;根据I/O的大小以及确定的设备类型从为该类型的存储设备配置的M个PHY中选择传输I/O的PHY,为该类型的存储设备配置的PHY是根据存储系统中PHY的总量、该类型的设备的数量在存储系统中所占的比例、前一个访问周期内该类型的存储设备接收I/O的大小来确定的;通过选择的PHY将I/O发送给存储设备。
Description
技术领域
本发明涉及储存技术领域,尤其涉及一种I/O请求处理方法及存储系统。
背景技术
SAS(Serial Attached SCSI,串行连接小型计算机系统接口)标准是使用SAS串行连接通讯的SCSI(Small Computer Systems Interface,小型计算机系统接口)设备之间交换信息的方式。在基于SAS标准的存储系统中,出于提高带宽利用率的考虑,根据各PHY(Physical Layer,物理通道)的忙碌程度,选择空闲的PHY传输I/O(Input Output,输入输出),使得大量的PHY处于忙碌的状态,从而提高了带宽利用率。
但上述技术至少存在如下技术问题:
单纯根据各PHY的忙碌程度为I/O分配PHY,这样虽然提高了带宽利用率,但在I/O大小不同,且各I/O的待访问的存储设备的设备类型也不同时,存储系统的IOPS(I/O persecond,每秒处理I/O的数量)较低。
发明内容
本发明通过提供一种I/O请求处理方法及存储系统,解决了现有技术中数据存储系统,存在的IOPS较低的问题。
第一方面,本发明提供了一种输入输出I/O请求处理方法,所述方法应用于存储系统中,所述存储系统包括控制器和多种不同类型的存储设备,其中,所述多种不同类型的存储设备通过串行连接小型计算机系统端口SAS与所述控制器进行连接,所述SAS包括多个物理层通道PHY,所述方法包括:
接收I/O请求,所述I/O请求中携带有所述I/O的大小以及待访问的地址;
根据所述待访问的地址确定待访问的存储设备的设备类型;
根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,其中,为所述类型的存储设备配置的PHY是根据所述存储系统中PHY的总量、所述类型的设备的数量在所述存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为的正整数;
通过选择的所述PHY将所述I/O发送给所述存储设备。
结合第一方面,在第一方面的第一种可能的实施方式中,所述根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,包括:
根据确定的设备类型从所述多个PHY中确定M个PHY,其中,所述设备类型的所有存储设备均可以通过所述M个PHY与所述控制器进行通信;
根据所述I/O的大小从所述M个PHY中选择传输所述I/O的N个PHY,其中,所述N个PHY用于传输I/O大小满足预设条件的I/O,N为正整数,且N不大于M。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,当N为不小于2的正整数时,所述方法还包括:
根据所述N个PHY的忙碌程度,在所述N个PHY中选择一个空闲的PHY作为传输所述I/O的PHY。
结合第一方面、或第一方面的第一种可能的实施方式、或第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述方法还包括:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;
根据统计的前一个访问周期内访问所述类型的存储设备的不同大小的I/O的比例,在所述M个PHY中确定下一个访问周期中处理不同大小I/O的PHY。
结合第一方面、或第一方面的第一种可能的实施方式、或第一方面的第二种可能的实施方式,在第一方面的第四种可能的实施方式中,所述方法还包括:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;
根据预设的策略在所述M个PHY确定处理不同大小I/O的PHY。
第二方面,基于同一发明构思,本发明提供了一种存储系统,所述存储系统包括控制器和多种不同类型的存储设备,其中,所述多种不同类型的存储设备通过串行连接小型计算机系统端口SAS与所述控制器进行连接,所述SAS包括多个物理层通道PHY,所述控制器用于:
接收I/O请求,所述I/O请求中携带有所述I/O的大小以及待访问的地址;根据所述待访问的地址确定待访问的存储设备的设备类型;根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,其中,为所述类型的存储设备配置的PHY是根据所述存储系统中PHY的总量、所述类型的设备的数量在所述存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为的正整数;通过选择的所述PHY将所述I/O发送给所述存储设备。
结合第二方面,在第二方面的第一种可能的实施方式中,所述控制器还用于:
根据确定的设备类型从所述多个PHY中确定M个PHY,其中,所述设备类型的所有存储设备均可以通过所述M个PHY与所述控制器进行通信;根据所述I/O的大小从所述M个PHY中选择传输所述I/O的N个PHY,其中,所述N个PHY用于传输I/O大小满足预设条件的I/O,N为正整数,且N不大于M。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,当N为不小于2的正整数时,所述控制器还用于:
根据所述N个PHY的忙碌程度,在所述N个PHY中选择一个空闲的PHY作为传输所述I/O的PHY。
结合第二方面、或第二方面的第一种可能的实施方式、或第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述控制器还用于:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;根据统计的前一个访问周期内访问所述类型的存储设备的不同大小的I/O的比例,在所述M个PHY中确定下一个访问周期中处理不同大小I/O的PHY。
结合第二方面、或第二方面的第一种可能的实施方式、或第二方面的第二种可能的实施方式,在第二方面的第四种可能的实施方式中,所述控制器还用于:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;根据预设的策略在所述M个PHY确定处理不同大小I/O的PHY。
本发明至少具有如下技术效果或优点:
本发明公开了一种I/O请求处理方法,应用于存储系统中的控制器中,存储系统还包括多种不同类型存储设备,其中,多种不同类型的存储设备通过SAS端口与控制器进行连接,SAS端口包括多个PHY,所述方法包括:接收I/O请求,I/O请求中携带有所述I/O的大小以及待访问的地址;根据待访问的地址确定待访问的存储设备的设备类型;根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,其中,为所述类型的存储设备配置的PHY是根据存储系统中PHY的总量、所述类型的设备的数量在存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为正整数。在本发明中,根据I/O的大小和I/O的待访问的存储设备的设备类型,选择传输I/O的PHY,能够有效提高存储系统的IOPS。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中存储系统的结构示意图;
图2为本发明实施例中I/O请求处理方法的应用场景示意图;
图3为本发明实施例中I/O请求处理方法的流程图;
图4为本发明实施例中步骤S13的细化流程图。
具体实施方式
为使本发明一实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
实施例一
本实施例提供了一种I/O请求处理方法,应用于如图1所示的存储系统中,,该存储系统包括控制器和多种不同类型的存储设备,且这些不同类型的存储设备通过SAS端口与控制器进行连接,SAS端口包括多个PHY。
在具体实施过程中,所述多种不同类型的存储设备具体是指:存储设备的存储介质的类型不同。例如,如图1所示,该存储系统中包括两种存储设备(具体表示为:存储设备1和存储设备2),且这两种存储设备的存储介质的类型不同,其中,存储设备1的存储介质为SSD(Solid State Disk,固态硬盘),存储介质2的存储介质为SAS HDD(Serial AttachedSCSI Hard Disk Drive,串行连接小型计算机系统接口硬盘)。此处,对于每种存储设备的数量不做具体限制。
在具体实施过程中,SAS端口包括多个PHY,控制器能够通过这些PHY与存储系统中的每个存储设备进行通信。例如,如图2所示,该存储系统中的SAS端口共包括10个PHY(具体表示为:PHY1、PHY2、PHY3、PHY4、PHY5、PHY6、PHY7、PHY8、PHY9、PHY0),且控制器能够通过这10个PHY中的每个PHY向存储系统中每个存储设备下发I/O。
如图3所示,所述I/O请求处理方法应用于控制器中,包括:
步骤S11:接收I/O请求,I/O请求中携带有所述I/O的大小以及待访问的地址。
在具体实施过程中,该I/O请求可以是读数据请求或写数据请求,在该I/O请求为写数据请求时,该I/O请求中还携带有需要写入到存储设备中的待写入数据。例如,如图2所示,该I/O请求为读数据请求,且该I/O请求的I/O的大小为4K,对应的待访问的地址为存储设备1的地址。
在具体实施过程中,所述I/O的大小具体指I/O请求中包含的总数据量的大小。
在后文叙述中,将执行步骤S11~步骤S14的访问周期表示为第二访问周期,将第二访问周期的上一个访问周期表示为第一访问周期。
步骤S12:根据待访问的地址确定待访问的存储设备的设备类型。例如,如图2所示,根据存储设备的地址与存储设备的设备类型的对应关系,确定出所述I/O的待访问的存储设备的设备类型为SSD。
步骤S13:根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY。其中,为所述类型的存储设备配置的PHY是根据存储系统中PHY的总量、所述类型的设备的数量在存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为正整数。
例如,如图2所示,SSD类型的存储设备共配置了6个PHY(例如:PHY1~PHY6),则需要从这6个PHY中选择用于传输所述I/O的PHY。其中,为SSD类型的存储设备配置的PHY是根据存储系统中PHY的总量、SSD类型的存储设备的数量在存储系统中所占的比例以及在前一个访问周期(即:第一访问周期)内SSD类型的存储设备接收的I/O的大小来确定的。
步骤S14:通过选择的所述PHY将所述I/O发送给所述存储设备。例如,如图2所示,若选择了PHY1为用于传输所述I/O的PHY,则通过PHY1将I/O发送给SSD类型的存储设备(即:存储设备1)。
由于,相同类型的存储设备对不同的大小的I/O的处理速率不同,且不同类型的存储设备对相同大小的I/O速率也不同,所以,单纯根据PHY当前的忙碌程度为I/O分配PHY,虽然可以提高带宽的利用率,但会导致存储系统整体的IOPS较低。而在本实施例中,根据I/O的大小和I/O的待访问的存储设备的设备类型,选择传输I/O的PHY,能够有效提高存储系统整体的IOPS。
可选的,在本实施例中,如图4所示,步骤S13,包括:
步骤S21:根据确定的设备类型从多个PHY中确定M个PHY,其中,所述设备类型的所有存储设备均可以通过所述M个PHY与控制器进行通信。
在具体实施过程中,在第一访问周期结束前(或第二访问周期开始前),控制器已经为第二访问周期内每种类型的存储设备配置了PHY。例如,如图2所示,在该存储系统中,在第一访问周期结束前(或第二访问周期开始前),控制器已经为SSD类型的存储设备配置了6个PHY(例如:PHY1、PHY2、PHY3、PHY4、PHY5、PHY6),为SAS HDD类型的存储设备配置了4个PHY(例如:PHY7、PHY8、PHY9、PHY0)。在确定待访问的存储设备为SSD类型时,即可从该存储系统的10个PHY中确定出DISK类型的存储设备所预先配置的6个PHY。
步骤S22:根据所述I/O的大小从M个PHY中选择传输所述I/O的N个PHY,其中,所述N个PHY用于传输I/O大小满足预设条件的I/O,N为正整数,且N不大于M。
在具体实施过程中,所述N个PHY专门用于传输I/O大小在一预设区间内的I/O,基于待传输的I/O的大小所在的区间,即可从所述M个PHY中选择传输该区间内的I/O的N个PHY。例如,如图2所示,控制器将为SSD类型的存储设备分配的6个PHY进一步划分,将PHY1和PHY2用作传输区间0~16K内的I/O,将PHY3和PHY4用作传输区间17K~32K内的I/O,将PHY5和PHY6用作传输区间33K~48K内的I/O,在待传输的I/O的大小为4K,基于待传输的I/O的大小确定其所在的区间为0~16K,则确定PHY1和PHY2为传输该4K的I/O的PHY。
进一步,当N为不小于2的正整数时,所述方法还包括:
从所述N个PHY中任意选择一个PHY作为传输所述I/O的PHY;例如,如图2所示,从PHY1和PHY2中任意选择一个PHY作为传输所述I/O的PHY;
或
根据所述N个PHY的忙碌程度,在所述N个PHY中选择一个空闲的PHY作为传输所述I/O的PHY;例如,如图2所示,若PHY2处于忙碌状态,PHY1处于空闲状态,则选择PHY1作为传输所述I/O的PHY。
可选的,在本实施例中,所述方法还包括:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;
根据预设的策略在所述M个PHY确定处理不同大小I/O的PHY,例如,根据统计的前一个访问周期(即:第一访问周期)内访问所述类型的存储设备的不同大小的I/O的比例,在所述M个PHY中确定下一个访问周期(即:第二访问周期)中处理不同大小I/O的PHY。
在具体实施过程中,可以基于如下算法确定在第二访问周期内,每种类型的存储设备处理不同大小I/O的PHY。
(1)、针对存储系统中第一访问周期内的全部I/O,基于I/O大小的不同,确定P个区间,并对每个区间进行编号。例如,0~16K为一个区间,编号为1;17K~32K为一个区间,编号为2,32K~48K为一个区间,编号为3,以此类推,获得编号从1至P共P个区间。
(2)、在存储系统中共包含Q种不同类型的存储设备时,对每种类型的存储设备进行编号。例如,在存储系统中共包括SDD、SAS SDD、DISK、三种类型的存储设备时,将SDD类型的存储设备编号为1、将SAS SDD类型的存储设备编号为2、将DISK类型的存储设备编号为3,以此类推,获得编号从1至Q共Q种存储设备。
(3)、确定第一访问周期内存储系统接收到的全部I/O中每个I/O所在的区间、以及待访问存储设备的设备类型,将第一访问周期内存储系统接收到的全部I/O分成P×Q类,并统计出每一类I/O数量,此处,将每一类I/O数量称为每一类I/O的第一统计数,并表示为IOcnt1(j,i)。其中,i为区间的编号,取值范围为1至P中的任一整数;j为设备类型的编号,取值范围为1至Q之间的任一整数。
(4)、由于不同类型的存储设备对每一类I/O的处理速率不同,对每一类I/O分别设置影响因子,具体基于公式(a)确定:
其中,a(j,i)为待访问存储设备的设备类型编号为j、且区间编号为i的I/O的影响因子;IPOS(j,i)为类型编号为j的存储设备处理区间编号为i的I/O所能达到的最大IOPS。
(5)、根据公式(b),确定所述P×Q类I/O中每一类I/O在第二周期内分配PHY的数量占PHY总数的第一比例:
其中,per1(j,i)为待访问存储设备的设备类型编号为j、且区间编号为i的I/O在第二周期分配的PHY的数量占PHY总数的第一比例,IOcnt1(j,i)为待访问存储设备的设备类型编号为j、且区间编号为i的I/O的第一统计数。
(6)、根据公式(c),确定待访问存储设备的类型为所述Q种类型中每一种类型的I/O分配的PHY的数量占PHY总数的第二比例:
其中,per2(j)为待访问存储设备的类型编号为j的I/O在第二访问周期分配的PHY的数量占PHY总数的第二比例。
(7)、根据公式(d),确定待访问存储设备的类型为所述Q种类型中每种类型的I/O在第二周期分配的PHY的数量:
Num(j)=per2(j)×B………………(d)
其中,Num(j)为待访问存储设备的类型编号为j的I/O在第二周期分配的PHY的数量,B为存储系统中PHY的总数。
(8)、若待访问存储设备的类型编号为x的I/O在第二周期分配的PHY的个数量大于等于2,则根据公式(e),得到待访问存储设备的设备类型编号为x、且区间编号为i的I/O的第二统计数:
其中,IOcnt2(x,i)为待访问存储设备的设备类型编号为x、且区间编号为i的I/O的第二统计数;IOcnt1(x,i)为待访问存储设备的设备类型编号为x、且区间编号为i的I/O的第一统计数;IOsizemax(i)为区间编号为i的区间的上限值,例如,区间0~16K,则该区间的上限值为16K。
(9)、根据公式(f),得到待访问存储设备的设备类型编号为x、且区间编号为i的I/O在第二周期需分配的PHY的个数占PHY总数的第三比例:
其中,per3(n,i)为待访问存储设备的设备类型编号为x、且区间编号为i的I/O在第二周期需分配的PHY的个数占PHY总数的第三比例;IOcnt2(x,i)为待
访问存储设备的设备类型编号为x、且区间编号为i的I/O的第二统计数。
(10)、根据公式(g),确定待访问存储设备的设备类型编号为x、且区间编号为i的I/O在第二周期分配的PHY的数量:
Num(x,i)=per3(x)×B………………(g)
其中,Num(x,i)为待访问存储设备的设备类型编号为x、且区间编号为i的I/O在第二周期需分配的PHY的个数。
在本实施例中,由于将类型相同的I/O(即:待访问存储设备的设备类型编号相同、且区间编号相同的I/O)通过相同的PHY进行发送,使得小I/O能够优先传输并存储,从而提高了存储系统整体的IOPS性能。
本发明实施例的应用场景为:针对不同大小I/O混合,以及分级存储中SSD和SASHDD混合应用多种场景,能够提升存储系统整体性能,尤其是降低混合业务下处理小I/O时的时延。
本发明实施例的适用范围:采用SAS后端的所有存储系统。
下面给出一组实验数据,如表一所示,在该实验中,采用两种业务模型对传统方案和本发明实施例中的方案进行对比,其中,传统方案为根据各PHY的忙碌程度为I/O分配PHY通道。从表一中实验数据可知,采用本发明实施例的两种业务模型下的搭建的原型机,IOPS提升10%~30%左右。
表一
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
在本实施例中,采用根据I/O大小和存储介质的不同动态的分配PHY,从而使得PHY的利用效率更高,提高了存储系统整体的IOPS性能。
实施例二
基于同一发明构思,如图1所示,本实施例提供了一种存储系统,存储系统包括控制器和多种不同类型的存储设备,其中,多种不同类型的存储设备通过SAS端口与所述控制器进行连接,SAS端口包括多个PHY,控制器用于:
接收I/O请求,所述I/O请求中携带有所述I/O的大小以及待访问的地址;根据待访问的地址确定待访问的存储设备的设备类型;根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,其中,为所述类型的存储设备配置的PHY是根据存储系统中PHY的总量、所述类型的设备的数量在存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为的正整数;通过选择的所述PHY将所述I/O发送给所述存储设备。
在本发明中,根据I/O的大小和I/O的待访问的存储设备的设备类型,选择传输I/O的PHY,能够有效提高存储系统的IOPS。
可选的,在本实施例中,所述控制器还用于:
根据确定的设备类型从所述多个PHY中确定M个PHY,其中,所述设备类型的所有存储设备均可以通过所述M个PHY与所述控制器进行通信;根据所述I/O的大小从所述M个PHY中选择传输所述I/O的N个PHY,其中,所述N个PHY用于传输I/O大小满足预设条件的I/O,N为正整数,且N不大于M。
可选的,在本实施例中,当N为不小于2的正整数时,所述控制器还用于:
根据所述N个PHY的忙碌程度,在所述N个PHY中选择一个空闲的PHY作为传输所述I/O的PHY。
可选的,在本实施例中,所述控制器还用于:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;根据统计的前一个访问周期内访问所述类型的存储设备的不同大小的I/O的比例,在所述M个PHY中确定下一个访问周期中处理不同大小I/O的PHY。
可选的,在本实施例中,所述控制器还用于:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;根据预设的策略在所述M个PHY确定处理不同大小I/O的PHY。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制。本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。
Claims (8)
1.一种输入输出I/O请求处理方法,所述方法应用于存储系统中,其特征在于,所述存储系统包括控制器和多种不同类型的存储设备,其中,所述多种不同类型的存储设备通过串行连接小型计算机系统端口SAS与所述控制器进行连接,所述SAS包括多个物理层通道PHY,所述方法包括:
接收I/O请求,所述I/O请求中携带有所述I/O的大小以及待访问的地址;
根据所述待访问的地址确定待访问的存储设备的设备类型;
根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,其中,为所述类型的存储设备配置的PHY是根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为正整数;
通过选择的所述PHY将所述I/O发送给所述存储设备;
其中,所述根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,包括:
根据确定的设备类型从所述多个PHY中确定M个PHY,其中,所述设备类型的所有存储设备均可以通过所述M个PHY与所述控制器进行通信;
根据所述I/O的大小从所述M个PHY中选择传输所述I/O的N个PHY,其中,所述N个PHY用于传输I/O大小满足预设条件的I/O,N为正整数,且N不大于M。
2.如权利要求1所述的方法,其特征在于,当N为不小于2的正整数时,所述方法还包括:
根据所述N个PHY的忙碌程度,在所述N个PHY中选择一个空闲的PHY作为传输所述I/O的PHY。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;
根据统计的前一个访问周期内访问所述类型的存储设备的不同大小的I/O的比例,在所述M个PHY中确定下一个访问周期中处理不同大小I/O的PHY。
4.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;
根据预设的策略在所述M个PHY确定处理不同大小I/O的PHY。
5.一种存储系统,其特征在于,所述存储系统包括控制器和多种不同类型的存储设备,其中,所述多种不同类型的存储设备通过串行连接小型计算机系统端口SAS与所述控制器进行连接,所述SAS包括多个物理层通道PHY,所述控制器用于:
接收I/O请求,所述I/O请求中携带有所述I/O的大小以及待访问的地址;根据所述待访问的地址确定待访问的存储设备的设备类型;根据所述I/O的大小以及确定的设备类型从为所述类型的存储设备配置的M个PHY中选择传输所述I/O的PHY,其中,为所述类型的存储设备配置的PHY是根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例以及在前一个访问周期内所述类型的存储设备接收的I/O的大小来确定的,M为正整数;通过选择的所述PHY将所述I/O发送给所述存储设备;
所述控制器还用于:
根据确定的设备类型从所述多个PHY中确定M个PHY,其中,所述设备类型的所有存储设备均可以通过所述M个PHY与所述控制器进行通信;根据所述I/O的大小从所述M个PHY中选择传输所述I/O的N个PHY,其中,所述N个PHY用于传输I/O大小满足预设条件的I/O,N为正整数,且N不大于M。
6.如权利要求5所述的存储系统,其特征在于,当N为不小于2的正整数时,所述控制器还用于:
根据所述N个PHY的忙碌程度,在所述N个PHY中选择一个空闲的PHY作为传输所述I/O的PHY。
7.如权利要求5或6所述的存储系统,其特征在于,所述控制器还用于:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;根据统计的前一个访问周期内访问所述类型的存储设备的不同大小的I/O的比例,在所述M个PHY中确定下一个访问周期中处理不同大小I/O的PHY。
8.如权利要求5或6所述的存储系统,其特征在于,所述控制器还用于:
根据所述存储系统中PHY的总量、所述类型的存储设备的数量在所述存储系统中所占的比例为所述类型的存储设备分配所述M个PHY;根据预设的策略在所述M个PHY确定处理不同大小I/O的PHY。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410337244.9A CN104111805B (zh) | 2014-07-15 | 2014-07-15 | 一种i/o请求处理方法及存储系统 |
EP15822130.9A EP3156891A4 (en) | 2014-07-15 | 2015-06-01 | I/o request processing method and storage system |
PCT/CN2015/080497 WO2016008338A1 (zh) | 2014-07-15 | 2015-06-01 | 一种i/o请求处理方法及存储系统 |
US15/406,337 US20170132161A1 (en) | 2014-07-15 | 2017-01-13 | I/o request processing method and storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410337244.9A CN104111805B (zh) | 2014-07-15 | 2014-07-15 | 一种i/o请求处理方法及存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104111805A CN104111805A (zh) | 2014-10-22 |
CN104111805B true CN104111805B (zh) | 2017-06-13 |
Family
ID=51708611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410337244.9A Active CN104111805B (zh) | 2014-07-15 | 2014-07-15 | 一种i/o请求处理方法及存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170132161A1 (zh) |
EP (1) | EP3156891A4 (zh) |
CN (1) | CN104111805B (zh) |
WO (1) | WO2016008338A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111805B (zh) * | 2014-07-15 | 2017-06-13 | 华为技术有限公司 | 一种i/o请求处理方法及存储系统 |
CN104391656A (zh) * | 2014-11-19 | 2015-03-04 | 华为技术有限公司 | 一种存储设备的io资源分配方法、装置及存储设备 |
CN107688546A (zh) * | 2016-08-04 | 2018-02-13 | 华为技术有限公司 | 一种i/o请求处理方法及设备 |
CN107885673A (zh) * | 2016-09-29 | 2018-04-06 | 华为技术有限公司 | 一种i/o请求处理方法及设备 |
CN110557354B (zh) * | 2018-05-31 | 2020-10-13 | 杭州海康威视数字技术股份有限公司 | 一种实现节点间通讯的方法、装置及电子设备 |
CN112748854B (zh) * | 2019-10-30 | 2024-04-26 | 伊姆西Ip控股有限责任公司 | 对快速存储设备的优化访问 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042632A (zh) * | 2006-03-20 | 2007-09-26 | 株式会社日立制作所 | 控制物理链接分配的计算机系统及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290066B2 (en) * | 2004-03-18 | 2007-10-30 | Lsi Corporation | Methods and structure for improved transfer rate performance in a SAS wide port environment |
US7644168B2 (en) * | 2004-11-05 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | SAS expander |
JP5663950B2 (ja) * | 2010-05-19 | 2015-02-04 | 富士通株式会社 | 接続拡張装置及びストレージシステム |
JP5533252B2 (ja) * | 2010-05-21 | 2014-06-25 | 富士通株式会社 | ディスクアレイ装置及びディスクアレイ装置の制御方法 |
DE102012206283B4 (de) * | 2011-05-06 | 2013-04-11 | International Business Machines Corporation | Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk |
WO2013140435A1 (en) * | 2012-03-19 | 2013-09-26 | Hitachi, Ltd. | Data storage system comprising non-volatile semiconductor storage device, and storage control method |
US8862794B2 (en) * | 2012-08-21 | 2014-10-14 | Lsi Corporation | Non-disruptive selective traffic blocking in a SAS domain |
JP2014130387A (ja) * | 2012-12-27 | 2014-07-10 | Fujitsu Ltd | ストレージコントローラ選択システム、ストレージコントローラ選択方法、およびストレージコントローラ選択プログラム |
CN104111805B (zh) * | 2014-07-15 | 2017-06-13 | 华为技术有限公司 | 一种i/o请求处理方法及存储系统 |
-
2014
- 2014-07-15 CN CN201410337244.9A patent/CN104111805B/zh active Active
-
2015
- 2015-06-01 EP EP15822130.9A patent/EP3156891A4/en not_active Ceased
- 2015-06-01 WO PCT/CN2015/080497 patent/WO2016008338A1/zh active Application Filing
-
2017
- 2017-01-13 US US15/406,337 patent/US20170132161A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042632A (zh) * | 2006-03-20 | 2007-09-26 | 株式会社日立制作所 | 控制物理链接分配的计算机系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016008338A1 (zh) | 2016-01-21 |
CN104111805A (zh) | 2014-10-22 |
EP3156891A4 (en) | 2017-07-26 |
US20170132161A1 (en) | 2017-05-11 |
EP3156891A1 (en) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104111805B (zh) | 一种i/o请求处理方法及存储系统 | |
US11221975B2 (en) | Management of shared resources in a software-defined storage environment | |
US9513968B1 (en) | Dynamic resource allocation based on data transferring to a tiered storage | |
AU2015229200B2 (en) | Coordinated admission control for network-accessible block storage | |
US7290066B2 (en) | Methods and structure for improved transfer rate performance in a SAS wide port environment | |
US10693806B2 (en) | Network bandwidth reservations for system traffic and virtual computing instances | |
US8527697B2 (en) | Virtualized data storage in a network computing environment | |
US20080162735A1 (en) | Methods and systems for prioritizing input/outputs to storage devices | |
US20170293426A1 (en) | Flow control for unaligned writes in network storage device | |
CN107690622A (zh) | 实现硬件加速处理的方法、设备和系统 | |
CN109729106A (zh) | 处理计算任务的方法、系统和计算机程序产品 | |
CN109451051A (zh) | 服务请求处理方法、装置、电子设备及存储介质 | |
US8745232B2 (en) | System and method to dynamically allocate electronic mailboxes | |
US9740404B2 (en) | Control apparatus and control method | |
CN104156663B (zh) | 一种硬件虚拟端口及处理器系统 | |
US9069471B2 (en) | Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access | |
CN109144796B (zh) | 一种存储系统性能测试方法、系统、装置及服务器 | |
WO2016065198A1 (en) | High performance hadoop with new generation instances | |
EP3420452B1 (en) | Interconnected hardware infrastructure resource control | |
EP4134822A2 (en) | Systems, methods, and apparatus for memory access in storage devices | |
CN107608914B (zh) | 一种多路存储设备的访问方法、装置及移动终端 | |
US8203950B2 (en) | Quality of service in a storage area network | |
CN106155810B (zh) | 软件定义混合储存系统中工作负载感知的输入输出调度器 | |
CN107885673A (zh) | 一种i/o请求处理方法及设备 | |
CN107562510A (zh) | 一种应用实例的管理方法及管理设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |