CN105009099B - 计算机系统及数据控制方法 - Google Patents

计算机系统及数据控制方法 Download PDF

Info

Publication number
CN105009099B
CN105009099B CN201380073532.1A CN201380073532A CN105009099B CN 105009099 B CN105009099 B CN 105009099B CN 201380073532 A CN201380073532 A CN 201380073532A CN 105009099 B CN105009099 B CN 105009099B
Authority
CN
China
Prior art keywords
server
storage
processor
storage device
memory
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
Application number
CN201380073532.1A
Other languages
English (en)
Other versions
CN105009099A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN105009099A publication Critical patent/CN105009099A/zh
Application granted granted Critical
Publication of CN105009099B publication Critical patent/CN105009099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices

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)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

计算机系统具有第一存储控制模块和至少一个服务器模块。第一存储控制模块具有多个存储处理器。各服务器模块具有服务器处理器和将该服务器处理器与多个存储处理器中的至少两个存储处理器连接的服务器I/F。发行服务器的服务器I/F通过参照指派信息,来确定出存储处理器,并向特定出存储处理器送出基于I/O请求的指令,其中,发行服务器为至少一个服务器模块中的某一个服务器,指派信息是指,将从发行服务器的服务器处理器发行的I/O请求的发行服务器识别信息、该I/O请求的接收目的地存储设备储存区域的识别信息、担当该接收目的地存储设备储存区域的所述存储处理器的识别信息建立对应关系的信息。

Description

计算机系统及数据控制方法
技术领域
本发明大概涉及储存控制,例如涉及从服务器向存储设备的I/O(Input/Output:输入/输出)。
背景技术
通常,在具有服务器装置和存储装置的计算机系统中,通过经由通信网络(例如FC(Fibre Channel:光纤通道)网络或IP(Internet Protocol:互联网协议))连接由不同的供应商制造的服务器装置和存储装置来构成。在进行来自服务器装置的I/O的处理时,若在存储装置内搭载的多个的MP(Micro Processor:微处理器)(实施数据保存处理的处理器)及各MP所利用的存储器产生偏差,则I/O性能不会如预期一样上升。与之相对,存在存储设备的控制器能够动态地变更处理执行MP的技术(例如参照专利文献1)。
另外,若采用将多个服务器装置分别与不同的存储装置连接的结构,则由于各服务器装置的访问范围被限定,所以信息分散,导致管理成本的增加及便利性的下降。另外,会因服务器装置的维护、存储容量的追加等的管理任务而产生不能够访问特定的保存数据的状态。因此,在通信网络之间设置网络交换机(例如FC交换机或路由器),使得从服务器装置向存储装置的I/O能够通过基于网络交换机设备的路由选择而将多个服务器与同一个存储装置连接。通过使多个服务器装置共用存储装置,实现从哪个服务器装置都能够访问相同的数据,例如,即使在服务器装置发生故障时也能从其他服务器装置访问数据。另外,能够实现存储容量的一元管理等,在管理成本及便利性方面很有益。
现有技术文献
专利文献
专利文献1:美国公报2008/0263190号公报
发明内容
为了配合因服务器及存储设备各自的性能提高及快闪储存装置的存储设备利用而使后端宽带化,服务器与存储设备之间的连接带宽也需要进一步实现宽带化。另外,为了配合服务器性能上升,使来自存储设备的响应时间提高也成为课题。作为其解决策略,有增加FC的端口数量、利用新时代物品等,但都需要高成本。若以用低成本实现更宽的宽带、更低延迟时间为目标器,则适合用总线连接这种简单且能够连接得更粗的方法。因此,期待通过不依赖于网络交换机的转发功能而将服务器与存储设备直接连接(直接连结)以构成一体型底盘(chassis)结构,来解决带宽和延迟时间的课题。另外,在该结构中,考虑实现存储设备MP的负载降低并且将MP之间的负载均等化。而且,将采用直接连结服务器和存储设备的结构并且保持系统的灵活性、扩张性作为课题。
本发明的目的在于,实现服务器与存储设备之间的更紧密的连接,并且降低计算系统的灵活性或扩张性的下降情况。
计算机系统具有第一存储控制模块和至少一个服务器模块。第一存储控制模块具有多个存储处理器。各服务器模块具有服务器处理器和服务器接口设备,该服务器接口设备为服务器I/F,与该服务器处理器和多个存储处理器中的至少两个存储处理器连接。发行服务器的服务器处理器发行I/O请求,该发行服务器为至少一个服务器模块中的某一个服务器。发行服务器的服务器I/F从发行服务器的服务器处理器接收I/O请求,通过参照指派信息来确定出存储处理器,并向确定出的存储处理器送出基于所述I/O请求的指令,其中,指派信息是指,将接收到的I/O请求的发行服务器识别信息、该I/O请求的接收目的地存储设备储存区域的识别信息、担当该接收目的地存储设备储存区域的所述存储处理器的识别信息建立对应关系的信息。
发明的效果
能够实现服务器与存储设备之间的更紧密的连接,并且降低计算系统的灵活性或扩张性的下降情况。
附图说明
图1示出实施例1的计算机系统的结构。
图2示出SVIF(服务器接口)的结构。
图3示出发行源ID及发行目的地ID的结构。
图4示出MP检索表的结构。
图5示出初始化处理的流程。
图6示出实施例1的写处理的流程。
图7示出实施例1的读处理的流程。
图8示出实施例2的计算机系统的结构。
图9示出实施例2的存储设备存储器的结构。
图10示出实施例2的写处理的流程。
图11示出高速缓存判断结果处理的详细。
图12示出实施例2的读处理的流程。
图13示出实施例3的计算机系统的结构。
图14示出BEIF部的端口编号与MP的编号之间的对应关系的第一例及第二例。
具体实施方式
以下,说明几个实施例。
在以下的说明中,有时利用“×××表”的表现形式说明信息,但信息可以用任何数据结构来表现。即,为了表示信息不依赖于数据结构,能够将“×××表”称为“×××信息”。
另外,在以下的说明中,使用编号来作为各种各样的对象(例如框体、端口)的识别信息,也可以取代编号或在编号的基础上,使用其他种类的识别信息。
另外,在以下的说明中,“VOL”为逻辑卷的简称,是逻辑性的储存设备。VOL可以为实体的VOL(RVOL),也可以为虚拟的VOL(VVOL)。另外,VOL可以包括向与提供该VOL的存储装置连接的外部的装置(例如服务器装置)提供的在线(online)VOL和不向外部的装置提供的(外部的装置不识别的)脱机(offline)VOL。“RVOL”为基于具有该RVOL的存储装置所具有的物理性的储存资源(例如,由多个PDEV构成的RAID(Redundant Array of Independent(orInexpensive)Disks:磁盘阵列)组)的VOL。作为“VVOL”,可以例举有:外部连接VOL(EVOL),其为基于与具有该VVOL的存储装置连接的外部的存储装置的储存资源(例如VOL),且遵照存储虚拟化技术的VOL;VOL(TPVOL),其由多个虚拟页面(虚拟化的储存区域)构成,且遵照容量虚拟化技术(典型地为自动精简配置技术(Thin Provisioning));和快照VOL,其为作为原始的VOL的快照而被提供的VOL。TPVOL典型地为在线VOL。快照VOL可以为RVOL。“PDEV”为非易失性的物理性储存设备的简称。可以利用多个PDEV来构成多个RAID组。可以将RAID组称为奇偶校验组。“池”为逻辑性的储存区域(例如多个池VOL的集合),可以根据不同用途来准备“池”。例如,池可以包括TP池和快照池。TP池为由多个实际页(实体的储存区域)构成的储存区域。可以从TP池向TPVOL的虚拟页分配实际页。快照池可以为保存有从原始的VOL备份的数据的储存区域。“池VOL”为作为池的结构要素的VOL。池VOL可以为RVOL,也可以为EVOL。池VOL典型地为脱机VOL。
实施例1
图1示出实施例1的计算机系统的结构。
首先,说明实施例1的概要。
计算机系统具有服务器模块(以下,称为服务器)111和用总线与服务器111连接的存储控制模块113。在本实施例中,存在多个服务器模块,所有这些都与存储控制模块连接。存储控制模块113具有多个MP(Micro Processor)141。另外,多个服务器111的每一个可以与存储控制模块113内的多个控制器131的每一个都连接,确保面向一个控制器131(例如CTL A)的路径和面向其他控制器131(例如CTL B)的冗余路径。各服务器111具有发行I/O(Input/Output)请求的CPU(Central Processing Unit:中央处理器)122和服务器I/F(以下,称为SVIF)123,该服务器I/F为通信接口电路。SVIF123基于发行的I/O请求,使用MP检索表(MP检索用的管理表),从多个MP141中确定出成为目标器(target)的MP141,向目标器MP141发行针对该目标器MP141的I/O指令。也就是,SVIF123按照每个I/O请求指定用来处理I/O指令的MP141。该I/O指令由被指定的目标器MP141处理。这样一来,SVIF123指定包含冗余路径在内的多个路径中所使用的路径及位于该路径的目的地的用来处理I/O指令的目标器MP141,并发送I/O指令,由此,能够以无网络交换机的方式连接多个服务器111和存储控制模块113,并且能够降低计算机系统的灵活性或扩张性的下降。此外,基于I/O指令的I/O对象数据的传送通过DMA(Direct Memory Access:直接存储器访问)来进行。另外,I/O指令本体也可以通过DMA来传送。通过DMA,从服务器存储器121向存储设备存储器143直接传送数据或指令。
以下,详细地说明实施例1。
计算机系统具有底盘101。底盘101具有N台服务器111和与N台服务器111连接的存储模块(以下,称为存储设备)112。也就是,计算机系统为事先使服务器111及存储设备112以结合的方式装入同一底盘101的综合型系统,提供(实现)基于构成完毕的导入容易化、运用管理的一元化。在实施例1中,N=8,但N只要为2以上的整数即可,N台服务器111共用存储设备112。存储设备112具有存储控制模块113和与存储控制模块113连接的多个PDEV 132。存储控制模块113具有能够用于控制针对PDEV 132进行I/O(Input/Output:输入/输出)的控制器(以下,称为CTL)131。
各服务器111为例如印刷基板(例如所谓的刀片服务器)。各服务器111具有服务器存储器(memory)121、SVIF123以及与这些连接的CPU122。服务器存储器121保存计算机程序及数据。CPU122执行在服务器存储器121中保存的计算机程序。作为计算机程序,例举有服务器虚拟化程序(例如管理程序(hypervisor))及应用程序。CPU122执行服务器虚拟化程序,作为结果,能够执行一个或多个虚拟机(以下,称为VM)。另外,CPU122也能够执行应用程序。CPU122通过执行这种计算机程序,能够发行包含I/O目的地信息在内的I/O请求。I/O目的地信息为表示VOL中的区域的信息,可以为例如包含LUN(Logical Unit Number:逻辑单元号)和LBA(Logical Block Address:逻辑区块地址)的信息。SVIF123为通信接口电路,例如为ASIC(Application Specific Integrated Circuit:专用集成电路)。SVIF能够基于发行的I/O请求来发送I/O指令,该I/O指令具有I/O请求所具有的I/O目的地信息。
CTL131为例如印刷基板。CTL131具有存储端口142、存储设备存储器(memory)143、PDEV I/F(以下,称为PIF)145、存储I/F(以下,称为STIF)144和与这些连接的MP(MicroProcessor)141。PIF145与一个以上PDEV 132连接。存储设备存储器143保存计算机程序及数据。作为数据,例如有MP检索表。如后述那样,MP检索表由MP141来创建。MP141通过执行在存储设备存储器143中保存的计算机程序,能够按照I/O指令经由PIF145对PDEV 132进行I/O。在PIF145与PDEV 132之间,能够以规定的协议例如FC(Fibre Channel)或SAS(SerialAttached SCSI:串行连接小型计算机系统接口)进行通信。可以针对每个MP141设置存储设备存储器143。可以针对每个MP141设置PIF145及STIF144中的至少一个。STIF144为通信接口电路,例如为ASIC。STIF144能够与其他存储控制模块(未图示)内的STIF连接。这样一来,能够实现存储控制模块113的横向扩展(scale out)(利用实施例2说明具有横向扩展了的存储控制模块的计算机系统的一个例子)。此外,在实施例1及实施例3中,可以不设置STIF144。另外,取代STIF,可以采用仅设置PIF的结构。此外,STIF与SVIF可以为相同硬件。
CTL131具有一个或多个MP141。每个MP141的担当VOL(能够设为I/O目的地的VOL)可以不同。另外,CTL131被双重化,因此,MP141被双重化。可以在被双重化后的MP141之间(在被双重化的CTL131之间)进行通信,在一个MP141发生故障的情况下,可以在与被双重化后的另一个CTL之间进行故障复原。
8台服务器111利用总线与存储控制模块113连接。由于采用将该总线也用于各服务器111或存储控制模块113中的要素间连接的内部总线连接方式,因此,与通常的外部连接方式相比,能够获得宽带。作为例子,利用了PCIe(PCI-Express)协议。通过利用内部总线,无需创建FC帧,能够减轻处理负担。而且,能够从服务器存储器121直接向存储设备存储器143传送数据,由此,能够减轻MP的负担,实现低延迟时间。而且,通过利用PCIe直接连接服务器111和存储设备112,无需设置以往必要的FC交换机这种网络交换机,另外,通过构成为一个框体,能够削减电缆的长度,因此,能够获得降低成本的优点。
各SVIF123具有F个后端接口部(以下,称为BEIF部)(在图1中未图示)。因此,N台服务器111具有(N×F)个BEIF部。另外,各CTL131具有G个存储端口142。由于CTL131被H重化(在实施例1中H=2),所以存储控制模块113具有(G×H)个存储端口142。(N×F)与(G×H)可以为不同的值,但在实施例1中,(N×F)与(G×H)为相同的值,N=8、F=2、G=N=8、H=F=2。各SVIF123所具有的两个BEIF部分别与两个CTL131的存储端口142连接。此外,H也可以不是2以上的整数而是1。另外,SVIF123不必须位于服务器111内,可以位于服务器111与控制器131之间,只要发挥在本实施例中说明的功能即可。若将SVIF123置于服务器111内,则能够担保服务器111与存储设备112之间的冗余化,从而能够提高可靠性。可以使一个服务器111具备多个SVIF123。
各CTL131具有p个MP141(p为1以上的整数),因此,存储控制模块113具有(p×H)个MP141。存储控制模块113通过具备多个MP141,能够分散地处理多个服务器111的I/O处理,从而能够期待提高响应时间。(p×H)个MP141与(G×H)个存储端口142连接。一个MP141与具有该MP141的CTL131所具有的G个存储端口142中的G/p个存储端口142连接。在实施例1中,由于p=2、G=8,所以一个MP141与4个存储端口142连接。
在图1中,为了区别同种要素,对同种要素标付了连贯编号。例如,对服务器111标付了01、02、…这种连贯编号,对CTL131标付了A、B这种连贯编号。另外,在图1中,为了便于理解上位要素与子要素(上位要素所具有的要素)之间的关系,对子要素标付有与标付给上位要素的连贯编号相同的连贯编号。例如,对标付有连贯编号“01”的服务器111的服务器存储器121、CPU122及SVIF123分别标付有相同的连贯编号“01”,对标付有连贯编号“A”的CTL131的MP141、存储设备存储器143、PIF145及STIF144分别标付有包含相同的连贯编号“A”在内的连贯编号。以下,有时在不区别说明同种要素的情况下,使用参照附图标记,在区别说明同种要素的情况下,使用连贯编号。
以几个要素为例更详细地说明实施例1。此外,就对该要素进行的说明而言,针对同种的其他要素也能够适用同样的说明。
MP A1包括存储设备存储器A1及A2、PIF A1、STIF A1。如图所示,可以分别将MP A1及MP A2双重化为MP B1及MP B2。双重化后的PIF A1及PIF B1与同一个PDEV(例如PDEV 1及2)连接。双重化后的MP A1及B1以能够通信的方式连接。
MP A1(或A2)和MP B1(或B2)构成MP簇。若一方的MP A1(或A2)发生故障,则可向另一方的MP B1(或B2)进行故障复原。可以将MP A1及A2的每一个与一个以上的担当VOL建立关联。例如,在VOL1~4(未图示)中,MP A1的担当VOL可以为VOL1及2,MP A2的担当VOL可以为VOL3及4。换言之,VOL1及2各自的担当MP可以为MP A1,VOL3及4各自的担当MP可以为MPA2。可以将各存储端口142与从该存储端口142可提供的VOL建立关联。与存储端口142建立了关联的VOL可以为与该存储端口连接的MP141的担当VOL。
MP A1创建例如上述的MP检索表,各SVIF123能够参照其一部分或全部。此外,可以利用SFIV123、服务器、存储设备的某一个或任意的组合来保存或复制MP检索表的一部分或全部以参照这些。
图1的虚线示出写对象数据(以下,称为WR数据)的流程。CPU01在服务器存储器01中保存将基于PDEV 2的VOL(例如,PDEV 2用来作为基础的RVOL或分配有基于PDEV 2的区域的TPVOL)作为写入目的地的写请求及WR数据。写请求包括发行源ID(参照图3)、存储端口编号及写入目的地LUN。SVIF01从服务器存储器01获取写请求,基于该写请求中的发行源ID和写入目的地LUN,从MP检索表中确定出目标器MP A1。SVIF01从与目标器MP A1对应的BEIF部发送写指令,该写指令包括包含目标器MP A1的编号在内的发行目的地ID(参照图3),或者,经由与目标器MP A1对应的BEIF部,在根据发行目的地ID确定出的目标器MP A1用的写指令处理等待存储器区域(例如排队存储器(queuing memory))中保存写指令。在为后者的情况下,写指令可以不包含目标器MP A1的编号,该写指令保存在与目标器MP A1的编号建立了关联的写指令处理等待存储器区域中。写指令处理等待存储器区域设置于目标器MP A1的存储设备存储器A1(或A2)。例如,在图9示出的存储设备存储器A1中存在指令用区域902,在其中存在MP A1用、MP A2用的区域。若MP检索表的更新来不及,则以更新前的MP检索表为基础来决定I/O指令的目标器MP,在这种情况下,有时会将I/O指令保存在错误的存储器区域(与基于更新后的MP检索表决定的目标器MP对应的存储器区域)中。例如,有时具有要进行处理的MP的CTL与具有保存了将该MP作为目标器的I/O指令的存储器区域的CTL不同。考虑这种情况,可以在存储设备存储器A1的指令用区域902(例如传送用区域912及914)中设有MP B1、MP B2用的区域,以应对在存储设备存储器A1中塞入MP B1或B2用的指令的情况。在这种情况下,该CTL A的代表MP(例如MP A1)可以向CTL B侧的存储器的MP B1或B2用的存储器传送指令。从存储设备侧按顺序读取在指令处理等待存储器区域中保存的数据。此外,在I/O指令(及存储器区域的至少一方)中规定并保存有优先顺序的情况下,可以将该优先顺序纳入I/O指令并读取出来。目标器MP A1获取该写指令,并将传送请求发送至SVIF01。SVIF01按照该传送请求,从服务器存储器01向存储设备存储器A1(或A2)通过DMA传送WR数据。此外,传送请求也可以与上述的I/O指令同样地,例如保存在与SVIF01对应的处理等待存储器区域(例如,设置于存储设备存储器A1并与SVIF01对应的存储器区域)中,SVIF01从该存储器区域读取传送请求。另外,在上述的MP检索表的更新来不及,具有要进行处理的MP的CTL与具有保存了I/O指令的存储器区域的CTL不同的情况下,或在SVIF01对CTL A发行了I/O指令时却在CTL B的存储器中高速缓存命中的情况下等,存储控制模块113可以从与具有接收了I/O指令的存储端口的CTL(例如CTL A)不同的其他CTL(例如CTL B)的存储端口,向SVIF01发行传送请求。另外,传送请求的存储器区域与I/O指令响应的存储器区域可以为同一个存储器区域,同样地,传送响应的存储器区域与I/O指令请求的存储器区域可以为同一个存储器区域(排队存储器),MP可以从存储器区域中提取对象(object),并判断提取出的对象是请求还是响应。这样一来,可以采用如下的结构:就存储容量而言,少设置排队存储器个数(存储器区域数),而多设置一个排队存储器的排队数量(在一个排队存储器中能够保存的对象的数量)。目标器MP A1在将与写指令对应的响应返回至服务器01之前或返回之后,将存储设备存储器A1内的WR数据写入成为写入目的地VOL(与写入目的地LUN建立了关联的VOL)的基础的PDEV 2。
此外,在通过CPU01发行了将与写入目的地VOL相同的VOL作为读取源的读请求的情况下,基于该读请求,从SVIF01向目标器MP A1发送读指令,通过目标器MP A1从PDEV 2将基于该读指令的读对象数据(以下,称为RD数据)读入存储设备存储器A1(或A2)。然后,SVIF01从存储设备存储器A1(或A2)通过DMA将RD数据传送至服务器存储器01。像这样,由于无论是WR数据还是RD数据都通过DMA在服务器111与存储控制模块113之间从存储器直接传送至存储器,所以能够削减FC这种帧创建负担,从而能够削减I/O延迟时间。另外,由于指定目标器MP并使其进行传送处理,所以通过使MP负担分散而削减I/O延迟时间,并且有效地利用带宽,而且由于向具有目标器MP的CTL和其他CTL发行了I/O请求,所以通过临时取消向具有目标器MP的CTL传送I/O请求等的处理,进而将I/O请求直接保存在目标器MP用的存储器区域中,能够削减系统开销,从而期待I/O的高速化,系统开销是指,在缓冲寄存器用的存储器中临时接收I/O请求,再重新将其配置于目标器MP用的存储器区域等。在将服务器111及存储设备112直接结合(不设网络交换机地进行结合)的本系统结构中,所有服务器111与所有MP141连接,但服务器111及MP141之间的路径有多个。例如,作为向CTL B的MP B1发行I/O指令的方法有:从服务器111向CTL A的MP A1发行I/O指令,MP A1使用在CTL A与CTL B之间的路径来向MP B1横传(传送)I/O指令,从而使MP B1处理I/O指令的方法;从服务器111向CTL B的MP B1发行I/O指令,并使MP B1直接进行处理的方法。另外,在横向扩展的情况下,进而,经由方法也变为多个。根据使用多个端口(BEIF部)中的哪个端口来发行指令的,指令经由的路径会变化,到达目标器MP为止的延迟时间及使用的路径的带宽会增加。而且,若在MP中实施了上述这样的横传,则MP负担增加,成为I/O低下的主要原因。由于结构是固定的,所以为了减少延迟时间,优选从最初就向适当的MP送出指令。因此,在本系统中,掌握在指令送出之前访问数据的存储设备的储存区域(VOL)与MP之间的关系,确定出应作为目标器的MP,然后经由适当的BEIF部来交接指令。
图2示出SVIF123的结构。
如上所述,SVIF123为ASIC,该SVIF123具有前端接口部(以下,称为FEIF部)203、内部处理器202、寄存器部201、BEIF部204以及与这些连接的内部交换机205。在SVIF123所具有的要素中,内部处理器202及BEIF部204各存在两个以上,但这些要素中的至少一方也可以为一个。另外,内部处理器202及BEIF部204以外的至少一个要素也可以存在多个。
FEIF部203为与前段设备连接的通信接口部(例如端口),BEIF部204为与后段设备连接的通信接口部(例如端口)。具体来说,FEIF部203与具有该SVIF123的服务器111内的CPU122连接,BEIF部204与MP141(存储端口142)连接。寄存器部201储存MP检索表的一部分或全部。寄存器部201也能够储存通过DMA传送的数据。内部交换机205用来切换SVIF123内的要素间的连接。
内部处理器202通过执行固件这种计算机程序,来作为指派部211、DMA部212及控制部213起作用。指派部211进行指派处理。指派处理包括:基于由CPU122发行的I/O请求来确定目标器MP141;和决定从两个BEIF部204中的哪一个发送针对确定出的MP141的I/O指令。DMA部212通过DMA传送基于I/O指令的I/O对象数据。控制部213进行故障系统、初始化处理等SFIV123整体的控制。此外,也可以为支持内部处理器的处理的专用硬件。另外,虽未图示,但还可以额外设有进行I/O指令或其他控制数据的DMA部。而且,也可以额外设有各内部处理器共同使用的DMA部。此外,在FEIF部、BEIF部可以设有DMA部,也可以设有作为排队接口进行动作的专用硬件,也可以设有进行协议转换的硬件。
以上为SVIF123的结构,但SVIF123的结构可以与STIF144的结构相同。即,相同结构的通信接口电路(ASIC)可以搭载到各服务器111和存储控制模块113中。另外,也可以在各服务器111和存储控制模块113中搭载多个SVIF123及STIF144。另外,还可以使SVIF123分离,将一部分置于服务器,将另一部分置于存储设备。但是,在这种情况下,使指派部等主要的功能位于服务器侧,将SVIF123的存储设备侧端口设为两个以上,并将这些存储设备侧端口与多个CTL连接。
图3示出发行源ID及发行目的地ID的结构。
发行源ID为在由CPU122发行的I/O请求中包含的ID,例如可以称为服务器标识符(S_ID)。以下,有时将发行了I/O请求的CPU称为“发行CPU”,将具有发行CPU的服务器称为“发行服务器”,将发行服务器所具有的服务器存储器称为“发行服务器存储器”,将发行服务器所具有的SVIF称为“发行SVIF”。发行源ID包括例如底盘编号、刀片编号及服务器端口编号等。底盘编号为具有发行服务器的底盘的编号。刀片编号为发行服务器的编号。服务器端口编号为由发行CPU执行且发行了I/O请求的VM的端口的编号。另外,在不利用VM这种环境下,服务器端口编号也可以为SVIF123的BEIF部204的编号。在存在多个BEIF部204的情况下,将这些分别与服务器端口编号建立关联,内部处理器202可以使服务器111(CPU122)将多个BEIF部204分别作为多个端口而识别出,或者使服务器111(CPU122)将一个BEIF部204作为一个端口而识别出,并将其他BEIF部204作为冗余端口(冗余路径),使SVIF123用于冗余化。此外,在内部处理器202使服务器111识别出多个端口的情况下,服务器111(CPU122)可以将任意的端口用作为冗余端口,也可以使SVIF123将任意的端口用作冗余端口。
在本实施例中,在CTL A的存储设备存储器143内设置MP A1用的区域和MP A2用的区域。这些区域分别用来作为保存MP A1和MP A2的处理等待指令的区域。
发行目的地ID包括能够确定出例如底盘编号、簇编号、处理器编号及存储端口编号等I/O指令的路径的编号。底盘编号为具有处理I/O指令的MP的底盘的编号。簇编号为具有处理上述底盘内的I/O指令的MP的簇的编号。处理器编号为与上述簇内的存储端口对应的MP的编号,可以不必须与处理I/O指令的MP编号一致。存储端口编号为与处理器编号建立了关联的存储端口的编号。这样一来,由于为一体型结构,所以事先根据结构按照各自的配置状况唯一地决定了编号(也可以为其他种类的识别信息),因此,不使用交换机等进行调停也能够设定唯一的发行目的地ID。另外,发行目的地ID可以为端口编号自身,参照上述内容,也能够根据结构来唯一地决定端口编号。例如,在服务器01向MP A2发行I/O请求的情况下,将具有将路径上的MP的处理器编号即MP A1的编号作为处理器编号包含在内的发行目的地ID的I/O指令,保存在与该路径上的MP A1对应的存储设备存储器A1(或A2)中的目标器MP A2用的指令处理等待存储器区域(例如排队存储器)中。这样一来,能够使MP A2经由与MP A1建立了关联的端口来处理I/O指令。因此,可以不必须使发行目的地ID内的处理器编号与处理I/O指令的MP的处理器编号一致,而是利用处理I/O指令的目标器的队列来获知最终目的地。在这种情况下,作为SVIF123与存储设备112之间的I/F的队列与作为指派对象的MP数量相同。此外,发行目的地ID中的处理器编号可以为直接处理I/O指令的MP的处理器编号。在这种情况下,目标器MP不同的多个I/O指令可以混合在一个队列中,即,可以不具备与MP数量对应的队列。SVIF123能够根据在后述的初始化处理中获得的信息来决定发行目的地ID。
图4示出MP检索表的结构。
MP检索表401可以由一个表或多个表构成。在本实施例中,MP检索表401包括多个表,例如包括第一子表411和第二子表412。
第一子表411具有多个记录,各记录储存源信息(服务器111及该服务器111上的VM(虚拟服务器)的识别编号)和记录该源信息的地址(第一地址)。第二子表412具有多个记录,各记录储存地址(第二地址)和目的地信息(存储设备112侧的信息)。
根据记录源信息(例如VM的识别编号)的第一地址和例如LUN,来创建第二子表412的第二地址,在与该第二地址对应的记录中作为目的地信息而保存有存储设备112侧的信息。存储设备112侧的信息包括VOL信息(例如VOL编号、容量)、与对应的存储端口142有关的端口信息(例如存储端口编号)、与和对应的存储端口142连接的MP141有关的信息(例如MP编号(MP的处理器编号))。此外,MP检索表401可以由一个表构成。另外,MP检索表401还可以与其他表建立关联。例如,可以将第二子表412的MP编号虚拟化,另外,准备表示虚拟MP编号(被虚拟化的MP编号)与实际MP编号之间的对应关系的表(第三子表),在实际MP发生了故障时,仅更新第三子表(例如,将与发生了故障的实际MP的实际MP编号对应的虚拟MP编号与其他实际MP编号建立对应关系),而不更新第二子表412,由此,降低表检索负担等。另外,可以将检索存储器这种逻辑存储器用于MP检索表401,还可以利用与通常存储器的组合。
MP141在进行服务器111的登录处理时,根据识别该服务器111的标识符(识别信息)来创建第一子表411,并对SVIF123设定创建了的第一子表411。存储设备存储器143的一部分能够用作共用存储器,能够从所有MP141访问该共用存储器。存储设备112的MP141事先在该存储设备112的共用存储器中保存有与所有VOL有关的控制信息。在控制信息中包含有存储设备112所提供的各VOL的信息、和用于确定具有该VOL的所有者权限的MP的信息(例如MP编号)。为了担保冗余性,多个MP141能够访问一个VOL,但所有者权限意味着,通常哪一个MP141主体性地担当针对该VOL的处理。另外,为了使负担在多个MP141之间分散,优选使所提供的多个VOL与以不同的多个MP141作为主担当的方式建立关联。这样一来,针对来自服务器111的I/O请求而需要进行的处理分散在MP间。特别是,在由多个服务器111共用一个存储设备112的本实施例结构中,实现在MP141间的负担均衡化,因此,能够防止作为系统整体的性能下降。MP141根据共用存储器内的控制信息,创建具有以从第一子表411的服务器标识符提取出的第一地址和LUN作为地址的第二地址的第二子表412,并将第二子表412配置在存储设备存储器143的规定的位置。在第二子表412中,作为与第二地址对应的目的地信息(存储设备侧的信息),保存有与服务器标识符和LUN建立了关联的VOL信息、和对该VOL信息所表示的VOL进行I/O处理的MP的MP编号。就各VOL而言,存储设备侧的识别出的识别信息与在服务器侧识别出的识别信息(LUN)不必须一致。例如,不同的两个VOL也能够通过两个服务器分别利用相同的LUN来进行管理。因此,在本实施例中,根据服务器的识别信息和根据来自服务器的I/O请求指定的接收目的地记录区域的识别信息(更具体来说,为卷的识别信息即LUN)确定出一个VOL,并确定该VOL的所有者MP。
能够通过可掌握存储设备状况的MP141来进行MP检索表401的更新。SVIF123可以从存储设备112接收与存储设备112有关的信息,控制部213基于该信息来创建或更新MP检索表401。为了减少在参照时的延迟时间,可以将第一子表411储存在SVIF123的寄存器部201中,且根据每个服务器111而不同。第二子表412可以储存在至少一个存储设备存储器143中,供服务器01~08共用。这是因为第二子表412的大小很大。此外,只要为SVIF123能够参照的范围,可以将第一及第二子表412及412的两方或单方储存在寄存器部201中,也可以储存在存储设备存储器143,还可以储存在服务器存储器121中。此外,可以在多个场所存在相同的第一子表411和相同的第二子表412的两方或单方,各个第一子表411和第二子表412可以分别同步。在本实施例中,在存储设备112参照了来自服务器111的访问状况、负载状况的基础上,能够使MP141创建MP检索表401。因此,在多个服务器111共用存储设备112的系统结构中,能够利用多个MP141将I/O指令的处理的负载分散。
作为MP检索表401的更新时间,可以考虑在例如开始数据传送之前的初始化时、在改变存储设备侧的结构时。具体来说,可以在改变数据的位置而使I/O的分布能够变更的数据迁移时、在对上述任意的卷的所有者权限变更时(例如在后述的MP指派表的更新时),在某一个MP的负载超过了规定值的情况下,在某一个MP发生故障时进行更新。MP141对MP指派表(表示VOL与具有该VOL的所有者权限的MP之间的对应关系的表)进行的更新,在包含某一个MP的负载超过了规定值的情况、变更了卷结构的情况在内的任意时间都可以进行。根据上述结构,能够执行符合存储设备的状况的适当的指派。若在MP检索表401的更新之前发行了I/O指令的情况下,接收了I/O指令的MP141对照该I/O指令中的发行目的地ID(或与保存有该I/O指令的指令处理等待存储器区域(例如排队存储器)建立了关联的MP的编号),向自己进行处理或担当的MP横传处理。此外,在为没有LUN的请求的情况下,可以按照该请求的内容,决定要处理的MP141,也可以事先决定在该情况下的处理MP。
指派部211(SVIF123)将I/O请求中的发行源ID作为秘钥,并从第一子表411中确定与该秘钥对应的第一地址。此外,有时服务器111被虚拟化了,有时使一个服务器111具有多个发行源的服务器标识符。指派部211(SVIF123)将第一地址和I/O请求中的LUN的组合作为秘钥,从第二子表412确定与该秘钥对应的目的地信息。确定出的目的地信息包括MP编号。这样一来,确定出与发行源ID和发行目的地LUN对应的目标器的MP141,指派部211能够生成包含确定出的MP编号在内的发行目的地ID,或者,获取与确定出的MP编号对应的指令处理等待存储器区域(例如排队存储器)。另外,通过获取MP编号,指派部211也决定从哪一个BEIF部204发行I/O指令。例如,在BEIF部204为两个(两个端口),MP为四个(MP A1、A2、B1、B2)的情况下,通过SVIF123事先保持MP A1(或A2)与第一端口(一方的BEIF部204)、MP B1(或B2)与第二端口(另一方的BEIF部204)这样的对应关系(通过SVIF123的寄存器部201事先保持如图14的对应关系表1401所示的信息),指派部211能够决定I/O指令经由的BEIF部204。另外,由于根据一体型结构事先决定了端口编号与MP之间的关系,所以通过使端口编号的比特与MP的任意的比特位置对应(通过将例如用图14的参照附图标记1402表示的对应关系设定于指派部211),可以采用哪一个端口与哪个MP对应的表现形式,而不采用具有对应关系表的结构。此外,由于本系统采用了事先将服务器111和存储设备112连接的结构,所以BEIF部204和与其连接的MP141的结构已定,因此,能够事先设定BEIF部204与MP141之间的对应关系。另外,假设MP141发生了故障等,MP141生成最适当的表示BEIF部204与MP141之间的关联的信息,并保存在SVIF123的能够参照的位置(例如,存储设备存储器143、SVIF123内的寄存器部201等)。此外,如上所述,MP检索表401可以分开配置于SVIF123和存储设备112,还可以分开配置于SVIF123和服务器111等,可以设置于服务器111、SVIF123、存储设备112的任意的组合或任意的场所。此外,各目的地信息可以包含发行目的地ID的要素即底盘编号、簇编号及存储端口编号。
以下,说明在本实施例中进行的处理的流程。此外,在以下的说明中,以SVIF01为例子,对SVIF02~08的任一个都进行同样的处理。在本实施例中,进行初始化处理,在该初始化处理中,创建了MP检索表401,计算机系统处于能够开始I/O的状态。此后,任一个服务器111都能够发行I/O请求,并将基于该I/O请求的I/O对象数据保存在I/O目的地VOL中。实际上,将在I/O目的地VOL中保存的I/O对象数据写入一个或多个PDEV。在本实施例中,为了简化说明,将在一个VOL中保存的I/O对象数据作为在一个PDEV内保存的I/O对象数据。
图5示出初始化处理的流程。
在服务器01与CTL A之间,进行在物理层的初始化,以便于能够在物理层进行通信(S501)。此外,由于该初始化与通信领域中的通常的物理层初始化相同,所以省略详细内容。另外,省略示出服务器01与CTL B之间的处理。
在物理层初始化结束之后,与SVIF01连接的MP A1进行针对SVIF01的登录处理(S502)。另外,CPU01(例如VM)也进行针对SVIF01的登录处理(S503)。在该登录处理中,CPU01将能够指定的发行源ID发送至SVIF01。在针对SVIF01的登录处理(S503)结束之后,服务器进行针对存储设备112的登录处理(S504)。
MP A1通过例如通常的LU设定机构,使用户生成LU,并建立通过存储设备、服务器的初始化处理生成的LU与服务器之间的对应关系,在将存储设备112内的所有MP141共用的存储器中管理的VOL控制信息与服务器标识符建立了关联之后,以该关联为基础来创建上述的MP检索表401(S505),将该MP检索表401中的至少第一子表411保存在SVIF01的寄存器部201中。另外,如上所述,SVIF01的控制部213能够对MP141与BEIF部204建立关联。此外,控制部213可以以MP141与BEIF部204之间的关联信息为基础,生成路径管理表(图14)并保存在寄存器部201中。路径管理表可以表示BEIF部204与MP编号之间的对应关系。可以设为能够根据路径管理表,确定出应该从哪一个BEIF部204发送针对哪一个MP的I/O指令。另外,如上所述,可以不设置表而对端口编号与MP编号建立对应关系。
在创建MP检索表401之后,通过在服务器01与CTL A之间进行规定的处理,使计算机系统处于能够开始I/O的状态(S506)。
图6示出写处理的流程的一个例子。
进行数据准备(S601)。具体来说,CPU01(VM)将写请求及WR数据保存在服务器存储器01中。写请求包括发行源ID。SVIF01的DMA部212从服务器存储器01获取写请求(S602)。该写请求可以临时保存在寄存器部201中。在写请求中,包含发行源的服务器ID、示出写数据的保存目的地的传送源地址以及写数据保存目的地的LUN。该传送源地址的指定方法没有限定,可以为保存有传送源地址的服务器侧的存储器地址的指针。另外,写数据的保存目的地可以分散在多个区域中,在这种情况下,可以将能够指定多个区域(接收目的地)的列表构造(例如,具有多个传送源地址的列表构造、具有传送源地址和保存有指向下一个地址的指针的列表构造、或具有传送源地址及示出保存有指向下一个传送源地址的指针的地址的指针的列表构造、或具有示出保存有指向传送源地址的指针及指向传送源地址的指针的地址的指针的列表构造)包含在写请求中。SVIF01实际上可以在直到实施数据传送为止的任意时间,利用列表构造来获取数据的传送源地址。
SVIF01的指派部211进行指派处理(S603)。在指派处理中,指派部211利用写请求中的发行源ID和写请求中的LUN,从MP检索表401中确定出目标器MP A1,并决定从两个BEIF部204中的哪一个发送写指令。此外,写指令可以具有包括确定出的MP A1的编号在内的发行目的地ID,还可以保存在MP A1用的写指令处理等待存储器区域(例如排队存储器)中。该写指令也可以保存在寄存器部201中。SVIF01的DMA部212经由决定出的BEIF部204向MP A1的存储设备存储器A1(例如MP A1用的写指令处理等待存储器区域(例如排队存储器))传送(保存)写指令,目标器MP A1从存储设备存储器A1中获取写指令(S604)。写指令包括写目的地信息(例如LUN、VOL编号及LBA)。MP A1准备保存目的地(S605)。例如,MP A1进行高速缓存判断,来判断是否将与根据写指令确定出的写入目的地相同的写入目的地的数据高速缓存在存储设备存储器A1中,根据该判断结果是真是假,来从存储设备存储器A1(及该冗余存储器B1)中确保高速缓存区域。
MP A1将传送请求保存在存储设备存储器A1中,SVIF01的DMA部212从存储设备存储器A1获取传送请求(S606)。该传送请求包括WR数据的传送目的地地址或用于确定传送目的地地址的指针或这两者。另外,WR数据的传送目的地地址为存储设备存储器A1中的确保了的高速缓存区域的地址。此外,也可以向SVIF01告知冗余化目的地的存储设备存储器B1的高速缓存区域的地址,来接替传送处理(也就是,SVIF01可以在存储设备存储器B1的高速缓存区域内保存WR数据)。SVIF01的DMA部212根据传送请求中的指令ID来确定SVIF01从服务器获取的传送源地址,从传送源地址示出的区域(服务器存储器01的区域)向传送源请求中的传送目的地地址示出的区域(存储设备存储器A1的区域)传送WR数据(S607)。这样一来,将WR数据保存在存储设备存储器A1中的确保了的高速缓存区域中。此外,也可以将SVIF01的写请求处理所需的传送源地址、传送目的地地址划分成多个来进行发送/接收。例如,能够采用包含了划分出的地址信息及指向保存有指向下一个地址信息的指针的存储器的指针在内的列表构造(SGL),或者能够采用由划分的地址信息和指向下一个地址信息的指针构成的列表构造。
SVIF01的DMA部212将传送响应(对传送请求的响应)保存在存储设备存储器A1中,MP A1从存储设备存储器A1获取传送响应(S608)。MP A1将存储设备存储器A1中的WR数据复制到冗余存储器A1中的确保了的高速缓存区域中(S609)。此外,SVIF01可以向存储设备存储器A1和冗余存储器A1双方写入数据。在这种情况下,传送响应(S608)在数据冗余化(S609)之后进行。MP A1将指令响应(对写指令的响应)保存在存储设备存储器A1中,SVIF01的DMA部212从存储设备存储器A1获取该指令响应(S610)。SVIF01的DMA部212将请求响应(对写请求的响应)传送(保存)至服务器存储器01,CPU01从服务器存储器01获取请求响应(S611)。另外,SVIF01向MP A1通知指令响应处理结束(S612)。
此外,针对用作存储设备用的数据保障编码的DIF(Data Integrity Feature:数据完整性)等的计算、赋予、确认及削除可以由SVIF123来实施,在这种情况下,也可以在内部处理器202中实施。在写入时的DIF计算及赋予可以在例如S607中在SVIV01从服务器存储器01读取数据时实施。
图7示出读处理的流程的一个例子。
进行保存目的地准备(S701)。具体来说,CPU01(VM)将读请求保存在服务器存储器01中。读请求包括发行源ID。SVIF01的DMA部212从服务器存储器01获取读请求(S702)。可以将该读请求临时保存在寄存器部201中。在读请求中可以包含保存所读取的数据的传送目的地地址。该传送目的地地址的形式可以为发送写数据的形式。SVIF01实际上可以在直到实施数据传送为止的任意时间,利用列表构造来获取数据的传送目的地地址。
SVIF01的指派部211进行指派处理(S703)。在指派处理中,指派部211利用读请求中的发行源ID和读请求中的LUN,从MP检索表401中确定目标器MP A1,并决定从两个BEIF部204中的哪一个发送读指令。另外,也决定保存在MP A1或MP A2各自的担当存储器中的哪一个。此外,读指令可以具有包含确定出的MP A1的编号を在内的发行目的地ID,也可以保存在MP A1用的读指令处理等待存储器区域(例如排队存储器)中。可以将该读指令保存在寄存器部201中。SVIF01的DMA部212经由决定了的BEIF部204向MP A1的存储设备存储器A1((例如MP A1用的读指令处理等待存储器区域(例如排队存储器)))传送(保存)读指令,目标器MP A1从存储设备存储器A1获取读指令(S704)。读指令包括读取源的信息(例如LUN、VOL编号及LBA)。MP A1进行数据准备(S705)。例如,MP A1进行高速缓存判断,来根据读指令确定出读取源的RD数据是否高速缓存在存储设备存储器A1中,根据其判断结果是真还是假,来从存储设备存储器A1(及其冗余存储器A1)确保高速缓存区域。在该判断结果为假的情况下,MP A1在存储设备存储器A1中确保高速缓存区域,从作为读取源的基础的PDEV132读取RD数据,并将读取出的RD数据保存在确保了的高速缓存区域中。
MP A1将传送请求保存在存储设备存储器A1中,SVIF01的DMA部212从存储设备存储器A1获取传送请求(S706)。该传送请求包括RD数据的传送源地址或用于确定传送源地址的指针或这两者。RD数据的传送源地址为存储设备存储器A1中的确保出的高速缓存区域的地址。SVIF01的DMA部212根据传送请求中的指令ID,确定SVIF01从服务器获取的传送目的地地址,并从传送源地址表示的区域(存储设备存储器A1的区域)向传送目的地地址表示的区域(服务器存储器01的区域)通过DMA传送RD数据(S707)。这样一来,将RD数据保存在服务器存储器01中的确保了的区域中。SVIF01的DMA部212将传送响应保存在存储设备存储器A1中,MP A1从存储设备存储器A1获取传送响应(S708)。MP A1将指令响应(对读指令的响应)保存在存储设备存储器A1中,SVIF01的DMA部212从存储设备存储器A1获取该指令响应(S709)。SVIF01的DMA部212将请求响应(对读请求的响应)保存在服务器存储器01中,CPU01从服务器存储器01获取请求响应(S710)。此外,可以将SVIF01的读请求处理所需的传送源地址、传送目的地地址划分成多个来进行发送/接收。例如,能够采用包含了划分出的地址信息及指向保存有指向下一个地址信息的指针的存储器的指针的列表构造(SGL),或者采用由划分出的地址信息和指向下一个地址信息的指针构成的列表构造。另外,SVIF01向MPA1通知指令响应处理结束(S711)。
另外,针对用作存储设备用的数据保障编码的DIF(Data Integrity Feature:数据完整性)等的计算、赋予、确认及削除可以由SVIF123来实施,在这种情况下,也可以在内部处理器202中实施。在读取时的DIF确认及削除可以在例如S707中在SVIV01从存储设备存储器A1读取数据时实施。
此外,在本实施例中,可以采用自动响应。自动响应是指,传送请求既为请求也为疑似(模拟)的响应。在采用了自动响应的情况下,取代上述的传送请求而发行特殊传送请求。特殊传送请求为与意味着自动响应的值建立了关联的传送请求。另外,特殊传送请求也包括用于生成指令响应的信息。具体来说,通过SVIF01获取MP A1发行的特殊传送请求,但在SVIF01识别出传送请求为特殊传送请求的情况下,若RD数据的DMA传送结束,则将请求响应保存在服务器存储器01中。也就是,在S706的传送请求为特殊传送请求的情况下,在S707之后,不进行S709,而进行S710。此外,为了传达传送正常结束,可以在指令响应(S709)之前或之后实施传送响应(S708),也可以设置表示SVIF01的传送结束的计数器等,MP A1根据需要来参照该计数器等。这样一来,与自动响应无效的情况相比,能够高速地进行读处理。另外,在进行WR数据的DMA传送时也同样,在SVIF01实施了数据冗余化(S609)之后,可以不实施指令响应(S610),而是发行请求响应(S611)。此时,可以在请求响应(S611)之前或之后实施传送响应(S608),也可以设置表示SVIF01的传送结束的计数器等,MP A1根据需要参照该计数器等。此外,在实施自动响应,并且SVIF01在CPU01进行指令响应之后向MP A1返回请求响应的情况下,结束通知可以包含在请求响应中。
在读处理及写处理中,可以通过MP来判断是否采用自动响应。
以上,根据实施例1,SVIF123确定目标器MP141。发送指定了目标器MP141的I/O指令。本系统为将服务器与存储设备用宽带化的总线连接的一体型系统。因此,在SVIF123送出指令时能够参照确定MP141侧的信息,并能够向确定出的MP送出指令。这样一来,能够无网络交换机地连接多个服务器111和存储设备112间。此外,在各SVIF123设有与CTL A的MP连接的路径(物理路径)和与CTL B的MP连接的路径(物理路径),在一方的路径产生了故障的情况下,各SVIF123从另一方的路径发送I/O指令。在这种情况下,即使MP(例如MP B1)不是该I/O指令的目标器MP(例如MP A1),也是该目标器MP的冗余MP,因此,能够处理该I/O指令。与此相对应地,可以改写MP检索表401中的指派目的地MP。如上所述,若将第二子表412的MP编号虚拟化并准备上述的第三子表,则仅改写第三子表的实际MP编号,由此,例如第二子表可以不进行更新,也能够降低表更新负担。另外,通过在存储设备存储器A1和存储设备存储器B1双方中彼此同步地保存MP检索表401的全部或一部分(例如第二子表412),以便于在CTL A闭塞时,将MP检索表401的参照目的地从作为闭塞前的参照目的地的存储设备存储器A1切换成存储设备存储器B1,由此,SVIF01能够根据存储设备存储器B1的MP检索表401(例如第二子表412)获取信息,并能够继续进行适当的MP指派处理。
另外,根据实施例1,被传送的I/O指令可以包含目标器MP的处理器编号,也可以保存在与分别和多个MP(MP编号)建立了关联的多个指令处理等待存储器区域中的目标器MP建立了关联的指令处理等待存储器区域(例如排队存储器)中。在为后者的情况下,I/O指令包括与接收目的地的端口(存储端口)连接的MP的编号,但也可以不包括目标器MP的处理器编号。另外,分别与多个MP(MP编号)建立了关联的多个指令处理等待存储器区域设置在传送目的地的存储器(例如存储设备存储器A1或A2)中,并经由传送源的I/F(例如SVIF01的指派部211)保存在与多个指令处理等待存储器区域中的目标器MP建立了关联的指令处理等待存储器区域中。因此,传送源的I/F可以储存表示MP的处理器编号与指令处理等待存储器区域的地址(传送目的地存储器中的地址)之间的对应关系的信息(例如地址映射表(address map)),也可以以该信息为基础确定出传送目的地的指令处理等待存储器区域。另外,每个MP的指令处理等待存储器区域可以包含像写指令处理等待存储器区域和读指令处理等待存储器区域等这样的基于每个指令种类的指令处理等待存储器区域,也可以为多个指令种类共用的区域。
实施例2
以下,说明实施例2。此时,以与实施例1之间的不同点为主进行说明,省略或简略说明与实施例1之间的共同点。
在实施例2中,将存储设备112(存储控制模块113)横向扩展。具体来说,串联(多段地)连接K个存储控制模块113,并且能够将N台服务器111(N为2以上的整数,例如N=8))与K个存储控制模块113的第一个存储控制模块113连接。例如,具有P个底盘101(P为2以上的整数),各底盘101可以具有至少一个存储控制模块。通过使STIF144彼此连接,能够串联(多段地)连接P个底盘101内的K个存储控制模块113。
在实施例1中,K=1(及P=1),但K可以为2以上的整数,在实施例2中,K=2。以下,详细说明实施例2。此外,在以下的说明中,有时使用“第n个存储控制模块”这一表现形式,但就n的值而言,开头的存储控制模块最小(n=1),末尾的存储控制模块最大(n=K=2)。
图8示出实施例2的计算机系统的结构。此外,在图8中,省略示出存储端口。另外,省略示出底盘的参照附图标记以外的参照附图标记。
通过横向扩展包含存储控制模块在内的计算机子系统,来构建计算机系统。一个计算机子系统由一个底盘101内的多个要素构成。在本实施例中,准备两个在实施例1中说明的结构的底盘(计算机子系统),将2个底盘(以下,称为第一及第二底盘)101A及101B中的STIF彼此连接。在图8中,第一底盘101A内的各要素的连贯编号与实施例1相同,第二底盘101B内的各要素的连贯编号为与第一底盘内的要素的连贯编号不重复的编号。在第二底盘101B中,存储控制模块(双重化后的CTL C、D)也与8台服务器11~18连接。第一底盘101A内的STIF A1、A2、B1及B2分别与第二底盘101B内的STIF C1、C2、D1及D2连接。STIF144的结构与SVIF123的结构相同,因此,STIF144的两个BEIF部204分别与另一个STIF144的两个BEIF部204连接。此外,一个STIF144的两个BEIF部204可以与不同的两个存储控制模块的STIF144连接。在以下的说明中,有时将对第n个存储控制模块来说的第(n+1)个存储控制模块(或,对服务器111来说的第一个存储控制模块)称为“后段模块”。另外,有时将对第n个存储控制模块来说的第(n-1)个存储控制模块(或,对第一个存储控制模块来说的服务器111)称为“前段模块”。对服务器01~08来说的第一个存储控制模块为具有CTL A、B的存储控制模块,对服务器11~18来说的第一个存储控制模块为具有CTL C、D的存储控制模块。
除了将图示的CTL A与CTL C、CTL B与CTL D的STIF连接以外,也可以将CTL A与CTL D、CTL B与CTL C的STIF连接。另外,连接的端口数量就可以为任意的数量。
后段模块的MP141经由前段模块对SVIF123实施登录处理。例如,MP C1创建MP检索表401,并经由STIF C1及STIF A1向存储设备存储器A1发送创建出的MP检索表401的全部或一部分(例如第二子表412),还可以经由与STIF C1、STIF A1及MP A1连接的存储端口向SVIF01发送创建出的MP检索表401的全部或一部分(例如第一子表411)。该MP检索表401(第二子表412)中的目的地信息可以包括与MP C1担当的VOL有关的信息。与前段模块的MP A1同样地,MP C1能够创建MP检索表401。也就是,第二个存储控制模块的MP C1能够经由第一个存储控制模块将与该MP C1担当的VOL有关的信息提供至服务器01。即,在SVIF01及存储设备存储器A1的至少一方中保存前段MP检索表401和后段MP检索用的MP检索表401。也可以生成将这些MP检索表401合并的MP检索表401。SVIF01针对由MP C1确定出的VOL作为I/O目的地的I/O指令,指派目标器MP为MP C1。另外,SVIF01可以从存储设备112获取信息并创建或更新MP检索表401,STIF C1可以从存储设备112获取信息并创建或更新MP检索表401。在前段和后段的存储设备存储器的多个场所中可以存在相同的MP检索表401,并可以使彼此同步。
在彼此连接的STIF144中,从一方的STIF(作为启动器(initiator)的STIF)144接收I/O指令或I/O对象数据的另一方的STIF144只要桥接该指令或数据即可。例如,在STIFA1与STIF C1彼此之间,在STIF A为启动器的情况下,MP C1从STIF A1接收I/O指令并桥接该I/O指令。将被桥接的I/O指令传送并保存在存储设备存储器C1中。
图9示出实施例2的存储设备存储器143的结构。在此,以存储设备存储器A1为例。
存储设备存储器A1具有指令用区域902、响应用区域903、剩余区域901。在指令用区域902中保存有I/O指令,在响应用区域903中保存有指令响应。此外,针对传送请求、传送响应也同样地,可以在指令用区域中保存有传送请求,在响应用区域中保存有传送响应。另外,可以使I/O指令和传送共用排队存储器区域,例如,在指令用区域中保存有I/O指令和传送响应,在响应用区域中保存有I/O响应、传送请求,根据面向存储设备是带内(inbound)还是带外(outbound),来划分排队存储器区域。另外,也可以在剩余区域901中保存有传送请求、传送响应等的其他指令,还可以在剩余区域中保存有控制系统的请求、响应。另外,可以从剩余区域901中确保高速缓存区域。而且,也可以在剩余区域中保存控制系统的信息、表信息。
指令用区域902具有非传送用区域913和传送用区域912,同样地,响应用区域903具有非传送用区域915和传送用区域914。在非传送用区域913中保存有MP A1作为目标器MP的I/O指令,在非传送用区域915中保存有来自MP A1的I/O响应。在传送用区域912中保存有MP A1不为目标器MP的I/O指令(需要向后段模块传送的I/O指令),在传送用区域914中保存有MP A1不为目标器MP的上述I/O指令的请求。MP A1处理在非传送用区域913中保存的I/O指令。MP A1可以以将在传送用区域912中保存的I/O指令传送至后段模块的方式指示STIFA1的DMA部212。或者,传送用区域912内的I/O指令也可以是通过来自后段模块的STIF144的轮询(polling)而获得的。而且,MP A1也可以指示向SVIF01的DMA部传送响应,也可以通过来自SVIF的轮询来获得响应。像这样,不是针对接收了I/O指令、响应的MP141进行判断,而是判断发送、接收I/O指令、响应的I/F(SVIF123或STIF144)是否需要传送I/O指令。这样一来,能够减轻后段模块的传送处理负担或来自后段模块的传送处理。SVIF123经由哪一个CTL131向后段的目标器MP发行I/O指令,是通过参照指派哪个MP的上述MP检索表401来决定的。MP A1(或设为MP A2,哪一个代表MP实施处理都可以,分别实施处理也可以)进行在增设后段存储设备(存储控制模块)时的队列初始化,识别出在队列初始化中存在MP C1和MPC2,在存储设备存储器A1(或A2)中创建保存有来自SVIF01的I/O指令即向MP C1传送的I/O指令的传送队列(例如与MP C1建立了关联的指令处理等待存储器区域)。然后,在SVIF01访问MP C1时,对SVIF01进行用于与MP A1处理的传送队列建立对应关系的设定。这样一来,SVIF01识别MP C1用的传送队列。同样地,例如,在访问MP D1时,对SVIF01进行与MP B1的传送队列建立对应关系的设定。此外,该设定可以由MP A1代表并实施,也可以由MP B1实施,也可以由两者分别实施。由此,来决定从哪一个端口输出。通过识别出队列,来实施从MP C1向SVIF01的登录处理,在MP C1与SVIF01之间互换端口编号等。另外,MP C1创建MP检索表401,通过MP A1将MP C1的MP检索表401的区域确保为储存有MP A1的MP检索表401的存储器中的区域,在确保出的存储器区域中设置MP C1的MP检索表401,以便于SVIF01能够参照MPC1的MP检索表401。在MP C1设置的MP检索表401中设定有如下内容:从服务器01向后段存储设备的哪个VOL访问是由哪个MP(C1或C2,登记是由单方的MP C1、C2的某一个代表进行的,也可以是由两者分别进行的)担当的。此外,针对MP D1及D2的MP检索表401可以由MP B1(或B2)设定,也可以作为代表由MP C1(或C2)来设定。在由MP B1(或B2)来设定时,MP B1(或B2)可以将上述MP检索表401复制到与储存有其他MP检索表401的存储器相同的存储器内。相同的MP检索表401可以位于多个场所,例如,在CTL A和CTL B中可以具有相同的MP检索表401,该相同的MP检索表401彼此同步,可以在设定(或更新)了单方之后,进行用于另一方设定(或更新)的复制。在上述例中,MP C1(或C2)的MP检索表设定于CTL A的存储设备存储器,MPD1(或D2)的MP检索表设定于CTL B的存储设备存储器,彼此互相复制,最终,在CTL A的存储设备存储器和CTL B的存储设备存储器中登记有相同的所有MP检索表。或者,可以将MP C1(或C2)和MP D1(或D2)的MP检索表设定于CTL A的存储设备存储器,并将该MP检索表复制到CTL B。在这些处理中,MP检索表401的设定及复制可以通过复制源的CTL及复制目的地的CTL中的至少一个中的一个或多个MP来进行。此外,传送处理可以由担当各个传送队列的MP来实施。这样一来,在SVIF01访问上述的后段的存储设备的VOL时,经由与上述发行目的地ID中的处理器编号对应的MP向MP C1的队列设定I/O指令。此外,也可以在传送用区域中设定MP C1的队列。这样一来,SVIF能够通过指派而唯一地指定I/O指令的处理MP,由此,能够减少因通过很长的路径而导致延迟时间的增加、因占用多余的路径而导致利用带宽的增加及MP多余地横传而导致MP负担的增大情况。此外,CTL A的STIF A1(或A2)可以与CTL B的STIFB1(或B2)连接,也可以由STIF A1、A2、B1及B2中的至少一个实施上述指派处理。在这种情况下,将通过前段的指派向D1(或D2)进行的指派设定在A1(或、B1)的传送区域中。
在串联(多段)存储控制模块的结构中,通过DMA的协作,来传送I/O指令及I/O对象数据。因此,通过将服务器、前段存储设备、后段存储设备分别进行PCIe直结,与前段存储控制模块同样地,MP能够以低负载并且协议处理的系统开销少的低延迟时间来进行数据传送。另外,能够维持宽带,并增设存储设备及服务器的资源。因此,在进行服务器及存储设备的横向扩展时也能够期待低延迟时间、宽带的I/O的高速化。
图10示出实施例2的写处理的流程。
通过进行与图6的S601~S604及S606~S608同样的处理,来将写指令及WR数据保存在存储设备存储器A1中。此外,在本实施例的指派处理中,SVIF01的指派部211根据包含目标器MP的编号在内的发行目的地ID中的底盘编号(参照图3),判断目标器MP是否位于第一个存储控制模块。在该判断结果为真的情况下,指派部211将写指令的保存目的地决定为存储设备存储器A1中的非传送用区域913。在该判断结果为假的情况下,指派部211将写指令的保存目的地决定为存储设备存储器A1中的传送用区域912。SVIF01的DMA部212按照该决定来保存写指令。此外,在各SVIF(及各STIF)的寄存器部201中储存有后段模块的底盘编号。SVIF01能够以发行目的地ID中的底盘编号是否储存在SVIF01的寄存器部201中为基础,判断目标器MP是否为后段模块。另外,各STIF(及各SVIF)的寄存器部201可以不储存后段模块的底盘编号,各STIF(及各SVIF)的指派部211在并非自身底盘的编号而是没有储存的底盘编号的I/O指令到达的情况下,将其传送至后段模块。
在写指令保存在存储设备存储器A1中的非传送用区域913的情况下,写处理以与实施例1同样的流程结束。
在写指令保存在存储设备存储器A1中的传送用区域912的情况下,STIF A1的DMA部212从存储设备存储器A1中的传送用区域912获取写指令,STIF A1的指派部211根据写指令内的发行目的地ID中的底盘编号判断在后段模块中是否有目标器MP(S1001)。在该判断结果为真的情况(例如目标器MP为MP C1的情况)。指派部211将写指令的保存目的地决定为存储设备存储器C1中的非传送用区域913。在该判断结果为假的情况下,指派部211将写指令的保存目的地决定为存储设备存储器C1中的传送用区域912。在此,假设决定为非传送用区域913。STIF A1的DMA部212根据该决定,经由STIF C1将写指令传送(保存)至存储设备存储器C1的非传送用区域913,MP C1从存储设备存储器C1的非传送用区域913中获取该写指令(S1002)。然后,准备保存目的地(S1003)。例如,目标器MP C1进行高速缓存判断,来判断在存储设备存储器C1中是否高速缓存有与写入目的地相同的数据。根据该高速缓存判断的结果,进行高速缓存区域的确保及WR数据的DMA传送(高速缓存判断结果处理)(S1004)。这样一来,在存储设备存储器C1中的确保了的高速缓存区域保存有WR数据。MP C1将该WR数据复制于存储设备存储器C1的冗余存储器D1中的确保了的高速缓存区域(S1005)。此外,可以交叉连接图8的STIF A1和STIFD1,由STIF A1来实施数据冗余化(S1005)的处理。此后,MPC1将指令响应保存在存储设备存储器C1中,STIF A1从存储设备存储器C1中获取该指令响应,并将指令响应保存在存储设备存储器A1中(S1006)。SVIF01从存储设备存储器A1获取指令响应(S1007)。然后,SVIF01将请求响应保存在服务器存储器01中,CPU01从服务器存储器01获取请求响应(S1008)。此外,S1004的流程为与S605~S608同样的处理,不同点在于,是来自前端的服务器的请求还是来自后端的存储设备的请求不同。此外,图6示出高速缓存未命中(miss)的例子。另外,为了区别前端和后端的处理,可以向各个处理等待存储器区域(例如排队存储器)配置请求、响应等,或者在请求、响应内设定可区别的标识符。
图11示出高速缓存判断结果处理的详细。
根据高速缓存判断结果处理,存在:高速缓存命中处理,其为在高速缓存命中的情况(高速缓存判断的结果为真的情况)下进行的处理;和高速缓存未命中处理,其为在高速缓存未命中的情况(高速缓存判断的结果为假的情况)下进行的处理。作为高速缓存命中处理,有通常命中处理、缩短命中处理。通常命中处理为包含图11示出的所有处理在内的处理,缩短命中处理及高速缓存未命中处理分别为通常命中处理的一部分的处理。
在通常命中处理中,进行以下的处理。即,目标器MP C1从存储设备存储器C1中临时确保高速缓存区域(S1101)。临时确保出的高速缓存区域(以下,称为临时区域)为作为例如缓冲寄存器区域来进行管理的区域。MP C1将传送请求保存在存储设备存储器C1中,STIFA1从存储设备存储器C1获得传送请求。在传送请求中,传送目的地地址为临时区域的地址,传送源地址为存储设备存储器A1中的区域(保存有WR数据的区域)的地址。STIF A1按照传送请求,从存储设备存储器A1向存储设备存储器C1的临时区域通过DMA传送WR数据(S1103),将传送响应保存在存储设备存储器C1中,MP C1从存储设备存储器C1获取传送响应(S1104)。此后,再次进行与S1101~S1104大致同样的处理。具体来说,MP C1从存储设备存储器C1正式地确保高速缓存区域(S1111)。确保出的高速缓存区域为高速缓存有与写入目的地相同的数据的区域。MP C1将传送请求保存在存储设备存储器C1中,STIF A1从存储设备存储器C1获取传送请求(S1112)。STIF A1按照该传送请求从存储设备存储器A1向存储设备存储器C1中的确保出的高速缓存区域通过DMA传送WR数据(S1113),将传送响应保存在存储设备存储器C1中,MP C1从存储设备存储器C1获取传送响应(S1114)。此外,也可以不是从存储设备存储器A1,而是从在存储设备存储器C1中临时确保出的区域通过DMA传送S1113的WR数据。这样一来,即使在前段存储设备发生故障,也能够在后段中使用传送完毕的数据来完成处理。另外,S1112~S1114可以由MP C1实施。这样一来,即使在前段存储设备发生故障而不能利用STIF C1的情况下,也能够在MP C1进行的DMA和后段中使用传送完毕的数据来完成处理。
在通过采用两个阶段来实施通常命中处理,而在改写高速缓存上的数据时,实现在临时区域中保存数据。因此,能够防止如下的情况:在盖写高速缓存命中率时,在STIF A1与STIF C1之间的连接断开等使写数据中断的情况下呈现新旧数据混合在一起的半途而废的状态,导致不能恢复。另外,为了使多个服务器共用高速缓存,需要排他地控制向在同时发行了多个I/O指令的情况下的高速缓存进行的访问,但通过在临时区域中保存数据,能够在MP C1的时间实施盖写处理,从而易于操纵(handling)处理。此外,可以在S1103中实际不传送数据,而是在正式确保之后,在S1113中传送数据。这样一来,能够提高带宽的利用率,还能够防止上述数据破坏等的问题。根据通常命中处理,利用WR数据来更新高速缓存区域中的高速缓存完毕的数据。在通常命中处理之后,MP C1能够在发行指令响应之前或发行之后,将在高速缓存区域中保存的更新完毕数据保存在PDEV中。
在缩短命中处理中,不进行在通常命中处理中正式确保高速缓存区域的步骤。也就是,缩短命中处理由通常命中处理的S1101~S1104构成,而不包含通常命中处理中的S1111~S1114。根据缩短命中处理,与在通常命中处理时相比,能够更早地返回指令响应。可以交叉连接图8的STIF A1和STIFD1,使STIF A1实施数据冗余化。此外,在缩短命中处理之后,MP C1在发行指令响应之前或发行之后,能够将基于在临时区域中保存的WR数据和高速缓存有与写入目的地相同的数据的区域内的数据的数据(根据WR数据而将高速缓存完毕的数据更新之后的数据)保存在PDEV中。此外,MP C1或STIF A1可以在任意的时间实施从存储设备存储器C1的临时确保的区域向正式确保的区域的数据传送。目标器MP可以选择进行通常命中处理和缩短命中处理的某一个。例如,在将数据保存在快闪等的比较高速的介质中时,可以出于重视响应的原因而选择缩短命中处理,或者在将数据保存在HDD等的比较低速的介质中时,可以比响应时间更优先选择高速缓存命中率,从而实施通常命中处理。这是因为,在为缩短命中处理的情况下,由于数据被置于多处,所以需要使将更新前的数据和更新后的数据合并之后的数据命中,从而在命中处理中会包含一些处理。另外,也可以根据连续(sequential)访问、随机访问的不同来选择通常命中处理和缩短命中处理。目标器MP C1(或其他MP(例如C2))可以在存储设备存储器C1的脏比例小于规定比例的情况下,选择缩短命中处理,在脏比例在规定比例以上的情况下,选择通常命中处理。“脏比例”是指,脏容量相对于高速缓存区域组的容量的比例。“脏容量”为脏的高速缓存区域(保存有在PDEV中至今未保存的数据的高速缓存区域)的总容量。
在高速缓存未命中处理中,不进行在通常命中处理中临时确保高速缓存区域的步骤。也就是,高速缓存未命中处理由通常命中处理的S1111~S1114构成,不包含通常命中处理中的S1101~S1104。在高速缓存未命中处理中确保出的高速缓存区域为自由的高速缓存区域或绿色的高速缓存区域(仅储存了在PDEV中保存完毕的数据的高速缓存区域)。在命中未命中处理之后,MP C1能够在发行指令响应之前或发行之后,将在确保出的高速缓存区域中保存的WR数据保存在PDEV中。
图12示出实施例2的读处理的流程。此外,在实施例2中,示出了采用自动响应的例子。
与图10示出的写处理中的写指令同样地,读指令保存在存储设备存储器C1中。具体来说,进行与实施例1的S701~S704同样的处理。此后,由于STIF A1的指派部211通过指派处理(S1201),使具有目标器MP C1的模块作为后段模块,因此,将读指令传送(保存)至存储设备存储器C1的非传送用区域913,MP C1从存储设备存储器C1的非传送用区域913获取读指令(S1202)。然后,进行数据准备(S1203)。例如,目标器MP C1进行高速缓存判断,来判断在存储设备存储器C1中是否高速缓存有RD数据。若高速缓存判断的结果为假,则MP C1在存储设备存储器C1中确保高速缓存区域,并从PDEV向高速缓存区域读取RD数据。MP C1将特殊传送请求保存在存储设备存储器C1中,STIF A1从存储设备存储器C1获取特殊传送请求(S1204)。STIF A1按照特殊传送请求,从存储设备存储器C1的高速缓存区域向存储设备存储器A1通过DMA传送RD数据(S1205)。STIF A1将传送响应保存在存储设备存储器C1中,MPC1从存储设备存储器C1获取传送响应(S1206)。STIF A1将指令响应保存在存储设备存储器A1中,MP A1从存储设备存储器A1获取指令响应(S1207)。MP A1将特殊传送请求保存在存储设备存储器A1中,SVIF01从存储设备存储器A1获取特殊传送请求(S1208)。SVIF01按照特殊传送请求,从存储设备存储器A1向服务器存储器01通过DMA传送RD数据(S1209)。SVIF01将传送响应保存在存储设备存储器A1中,MP A1从存储设备存储器A1获取传送响应(S1210),SVIF01将请求响应保存在服务器存储器01中,CPU01从服务器存储器01获取请求响应(S1211)。
以上,以K=2(存储控制模块有两个)的情况作为了例子,但采用K=3以上的整数,服务器111与目标器MP之间的指令及数据的流程也是同样的。即,在服务器111与目标器MP之间,通过DMA传送的协作,来传送指令及数据。具体来说,传送模块依次向后段侧位移。因此,传送模块为服务器111或第n个存储控制模块(n为1至(K-1)为止的任意的整数)。另外,所有底盘内的结构可以不相同。例如,可以混合存在具有存储控制模块113但不具有服务器111的底盘,在多个底盘中服务器111的个数可以不同。
实施例3
以下,说明实施例3。此时,以与实施例1及2之间的不同点为主进行说明,省略或简略说明与实施例1及2之间的共同点。
在实施例3中,将服务器111横向扩展(而且,如实施例2那样,也可以将存储设备横向扩展)。具体来说,存储控制模块在与N台服务器111(在实施例1及2中N=8)连接的基础上,还与Q台的服务器111连接(Q为1以上的整数)。(N+Q)台服务器111经由多个端口扩张模块与存储控制模块连接。端口扩张模块例如进行从存储设备将PCIe x4接出的16个端口中的12个输出至其他底盘的切换,利用剩余的4个端口来支持原本的8台服务器。向其他底盘输出的12个端口以4个为单位分别与三个底盘连接,各个底盘供8台服务器利用。在图13中记载有:SCM(Server-Storage Connect Module:服务器-存储设备连接模块)1302与SCM1301的连接集中了两个PCIe x4,即利用PCIe x8进行连接。像这样,来分割带宽,以增加端口为目的利用交换机。此外,存储控制模块113与SCM1302之间也可以设置PCIe x8,即利用8个来进行连接。该交换机为内部总线交换机,与FC交换机等相比成本更低。另外,向其他框体连接的线在SCM内经由内部总线交换机之前,可以像多路复用器那样,利用硬件电路切换路径以与其他框体的SCM内的内部总线交换机连接,也可以避免将内部总线交换机构成为多段的结构,而使机构简化。此外,也可以将SCM的内部总线彼此连接,采用增加框体的结构。各端口扩张模块(内部总线交换机)能够利用PCIe进行通信。即,各端口扩张模块能够利用与在CPU与SVIF之间的通信的协议相同的通信协议进行通信。在以下的例子中,端口扩张模块搭载于进行信号的调整处理的SCM内。
图13示出实施例3的计算机系统的结构。
根据图13,Q=N=24。即,除了8台服务器01~08与存储控制模块连接以外,其他24台服务器21~48也与存储控制模块连接。服务器21~28搭载于与搭载了服务器01~08的底盘101C不同的底盘101D。服务器31~38搭载于底盘101E,服务器1~48搭载于底盘101F。在图13中,底盘101E、101F的内部采用与底盘101D同样的结构,省略了该结构。在底盘101D中搭载有服务器21~28,但没有搭载存储控制模块。也就是,该底盘101D可以为服务器扩张用的底盘。底盘101E、底盘101F也同样。该底盘具有服务器21~28和与这些连接的多个SCM1301。如上所述,SCM1301在内部搭载有多个端口扩张模块。此外,底盘101D、101E、101F与101C同样地,可以为搭载有存储控制模块113的底盘。在这种情况下,内部结构与101C相同。另外,在图13中示出了底盘为101C、101D、101E、101F这4台的情况,但底盘的数量可以为任意的台数。另外,在图13中,省略了与存储控制模块113连接的多个PDEV 132。另外,存储设备与SCM之间的连接端口数、SCM与SCM之间连接的端口数、服务器与SCM之间的连接端口数可以为任意的数量。另外,也可以从SCM引出端口,作为外接用的端口,例如利用FC连接存储设备等。
底盘101C具有位于服务器01~08与存储控制模块113之间的多个SCM1302。SCM1302为在内部具有端口扩张模块的SCM。多个SCM1302与另一个底盘101D内的多个SCM1301连接。此外,例如在将上述简单的交换机用于端口扩张模块的情况下,为了不因SCM1301和SCM1302而使交换机成为两段,而在SCM1301与SCM1302的连接端口之间采用连接有直接存储控制模块的形式。这样一来,能够避免因交换机多段化而导致故障处理系统复杂化。多个SCM1301和多个SCM1302间的通信的协议也为PCIe。
各SCM1302具有多个前段端口和多个后段端口。前段端口为与某一个服务器111连接的端口,后段端口为与存储控制模块113的存储端口连接的端口。在各SCM1302中,在将交换机电路用于端口扩张模块的情况下,切换前段端口与后段端口之间的连接,即,控制将哪个服务器111与K个存储控制模块(K为1以上的整数)中的第一个存储控制模块连接。该交换机电路例如为内部总线交换机和多路复用器的组合。
在采用图13的结构时的各服务器的写及读的I/O流程在其间插入SCM,但基本上如图6、图7所示。如本实施例那样,通过将1台共用存储器与多个服务器连接,达到如下的效果:面对服务器负载变大、向存储设备的I/O比较小的用途,将服务器与存储设备的成本平衡最优化。此外,在将存储控制模块的服务器侧作为前端的情况下,可以在SAS侧的后端侧连接SCM,来衡量(scale)服务器及存储设备。
以上,说明了一个实施例,但本发明不限于该实施例,自然在不脱离其思想的范围内能够进行各种各样的变更。
例如,SVIF123及STIF144中的至少一个也可以采用FPGA(Field ProgrammableGate Array:现场可编程门阵列)这样的电路来代替ASIC。
另外,I/O指令和I/O对象数据中的I/O指令也可以用与DMA不同的方法来传送。
另外,各SVIF123的多个BEIF部204可以分别与构成MP簇的多个MP连接。MP141可以在确定出获取到的I/O指令的目标器MP为MP簇内的另一个MP的情况下,将该I/O指令传送至目标器MP。
另外,SVIF123及STIF144从存储器121或143获取指令或请求等可以是通过轮询来进行的,也可以通过响应来自CPU122或MP141的指示来进行的。
另外,在实施例2的存储控制模块彼此的连接中,可以使STIV的BEIF部的数量增加,并与2台以上的存储控制模块连接。
附图标记说明
111:服务器模块,113:存储控制模块。

Claims (18)

1.一种计算机系统,其特征在于,具有:
第一存储控制模块,其具有多个存储处理器和存储设备存储器;和
至少一个服务器模块,其分别具有服务器存储器、服务器处理器和服务器接口设备,所述服务器接口设备为服务器I/F,与所述服务器处理器和所述多个存储处理器中的至少两个存储处理器连接,
发行服务器的所述服务器处理器发行I/O请求,所述发行服务器为所述至少一个服务器模块中的某一个服务器,
所述发行服务器的服务器I/F从所述发行服务器的所述服务器处理器接收I/O请求,通过来自所述发行服务器的所述I/O请求,获取所述I/O请求所指定的数据的所述服务器存储器上的保存目的地地址,通过参照指派信息,来确定出所述存储处理器,所述指派信息是指,将接收到的所述I/O请求的发行服务器识别信息、该I/O请求的接收目的地存储设备储存区域的识别信息、担当该接收目的地存储设备储存区域的所述存储处理器的识别信息建立对应关系的信息,
所述发行服务器的服务器I/F向确定出的所述存储处理器送出基于所述I/O请求的指令,
响应于发送至确定出的所述存储处理器的指令,所述服务器I/F从确定出的所述存储处理器获取所述I/O请求所指定的数据的所述存储设备存储器上的保存目的地地址,
所述服务器I/F在获取到的所述服务器存储器上的保存目的地地址与获取到的所述存储设备存储器上的保存目的地地址之间,进行所述数据的存储器间传送。
2.如权利要求1所述的计算机系统,其特征在于,
所述指派信息由所述多个存储处理器中的至少一个存储处理器生成,
生成的所述指派信息供所述发行服务器的所述服务器I/F参照。
3.如权利要求1所述的计算机系统,其特征在于,
通过将所述服务器处理器和所述服务器I/F连接的总线,来连接所述服务器I/F和所述存储处理器。
4.如权利要求1所述的计算机系统,其特征在于,
所述服务器I/F与所述存储处理器之间的连接是通过PCIexpress协议进行的。
5.如权利要求1所述的计算机系统,其特征在于,
所述I/O请求的接收目的地存储设备储存区域的识别信息为由与所述第一存储控制模块连接的至少一个储存设备的储存区域提供的卷的识别信息,
所述指派信息针对每个所述卷,建立与担当该卷的所述存储处理器之间的对应关系,
多个所述卷被分配给不同的所述存储处理器。
6.如权利要求5所述的计算机系统,其特征在于,
所述指派信息在某一个所述存储处理器处于发生故障时和在变更了某一个所述卷的结构时的至少任一种情况下被更新。
7.如权利要求1所述的计算机系统,其特征在于,
所述第一存储控制模块还具有传送I/F,
所述第一存储控制模块的所述存储处理器经由所述传送I/F,与第二存储控制模块所包含的多个存储处理器的某一个连接,
所述服务器I/F有时将所述第二存储控制模块内的所述存储处理器确定为处理所述I/O请求的所述存储处理器。
8.如权利要求7所述的计算机系统,其特征在于,
所述传送I/F基于所述I/O请求,接收所述服务器I/F发行的指令,
所述发行服务器的所述服务器I/F及所述传送I/F中的至少一方在通过基于所述I/O请求的指令确定出的存储处理器包含在所述第一存储控制模块中的情况下,将该指令写入所述第一存储控制模块内的所述存储设备存储器中的非传送用区域,
所述发行服务器的所述服务器I/F及所述传送I/F中的至少一方在通过基于所述I/O请求的指令确定出的存储处理器不包含在所述第一存储控制模块中的情况下,将所述指令写入所述第一存储控制模块内的所述存储设备存储器中的传送用区域。
9.如权利要求1所述的计算机系统,其特征在于,
在所述至少一个服务器模块与所述第一存储控制模块之间具有端口扩张模块,
经由所述端口扩张模块,使其他所述至少一个服务器模块与所述第一存储控制模块连接,
所述端口扩张模块控制将与该端口扩张模块连接的多台服务器模块中的哪一个连接于所述第一存储控制模块。
10.一种数据控制方法,其为在计算机系统中执行的数据控制方法,所述计算机系统具有:
第一存储控制模块,其具有多个存储处理器和存储设备存储器;和
至少一个服务器模块,其分别具有服务器存储器、服务器处理器和服务器接口设备,所述服务器接口设备为服务器I/F,与所述服务器处理器和所述多个存储处理器中的至少两个存储处理器连接,
所述数据控制方法的特征在于,
通过发行服务器的服务器处理器来发行I/O请求,所述发行服务器为所述至少一个服务器模块中的某一个服务器,
所述数据控制方法还包括通过所述发行服务器的服务器I/F从所述发行服务器的所述服务器处理器接收I/O请求的步骤,
通过来自所述发行服务器的所述I/O请求,获取所述I/O请求所指定的数据的所述服务器存储器上的保存目的地地址,
参照指派信息来确定出所述存储处理器,所述指派信息是指,将接收到的所述I/O请求的发行服务器识别信息、该I/O请求的接收目的地存储设备储存区域的识别信息、担当该接收目的地存储设备储存区域的所述存储处理器的识别信息建立对应关系的信息,
向确定出的所述存储处理器送出基于所述I/O请求的指令,
响应于发送至确定出的所述存储处理器的指令,从确定出的所述存储处理器获取所述I/O请求所指定的数据的所述存储设备存储器上的保存目的地地址,
在获取到的所述服务器存储器上的保存目的地地址与获取到的所述存储设备存储器上的保存目的地地址之间,进行所述数据的存储器间传送。
11.如权利要求10所述的数据控制方法,其特征在于,还包括:
通过所述多个存储处理器中的至少一个存储处理器,来生成所述指派信息,
通过所述发行服务器的所述服务器I/F,来参照生成的所述指派信息。
12.如权利要求10所述的数据控制方法,其特征在于,还包括:
通过将所述服务器处理器和所述服务器I/F连接的总线,来连接所述服务器I/F和所述存储处理器。
13.如权利要求10所述的数据控制方法,其特征在于,还包括:
所述服务器I/F与所述存储处理器之间的连接是通过PCIexpress协议进行的。
14.如权利要求10所述的数据控制方法,其特征在于,还包括:
所述I/O请求的接收目的地存储设备储存区域的识别信息为由与所述第一存储控制模块连接的至少一个储存设备的储存区域提供的卷的识别信息,
所述指派信息针对每个所述卷,建立与担当该卷的所述存储处理器之间的对应关系,
对不同的所述存储处理器分配多个所述卷。
15.如权利要求14所述的数据控制方法,其特征在于,还包括:
在某一个所述存储处理器处于发生故障时和在变更了某一个所述卷的结构时的至少任一种情况下更新所述指派信息。
16.如权利要求10所述的数据控制方法,其特征在于,还包括:
所述第一存储控制模块具有传送I/F,
所述第一存储控制模块的所述存储处理器经由所述传送I/F,与第二存储控制模块所包含的多个存储处理器的某一个连接,
所述服务器I/F有时将所述第二存储控制模块内的所述存储处理器确定为处理所述I/O请求的所述存储处理器。
17.如权利要求16所述的数据控制方法,其特征在于,还包括:
所述传送I/F基于所述I/O请求,接收所述服务器I/F发行的指令,
所述发行服务器的所述服务器I/F及所述传送I/F中的至少一方在通过基于所述I/O请求的指令确定出的存储处理器包含在所述第一存储控制模块中的情况下,将该指令写入所述第一存储控制模块内的所述存储设备存储器中的非传送用区域,
所述发行服务器的所述服务器I/F及所述传送I/F中的至少一方在通过基于所述I/O请求的指令确定出的存储处理器不包含在所述第一存储控制模块中的情况下,将所述指令写入所述第一存储控制模块内的所述存储设备存储器中的传送用区域。
18.如权利要求10所述的数据控制方法,其特征在于,还包括:
在所述至少一个服务器模块与所述第一存储控制模块之间具有端口扩张模块,
经由所述端口扩张模块,使其他所述至少一个服务器模块与所述第一存储控制模块连接,
所述端口扩张模块控制将与该端口扩张模块连接的多台服务器模块中的哪一个连接于所述第一存储控制模块。
CN201380073532.1A 2013-11-07 2013-11-07 计算机系统及数据控制方法 Active CN105009099B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/080133 WO2015068239A1 (ja) 2013-11-07 2013-11-07 計算機システムおよびデータ制御方法

Publications (2)

Publication Number Publication Date
CN105009099A CN105009099A (zh) 2015-10-28
CN105009099B true CN105009099B (zh) 2018-02-06

Family

ID=52597937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380073532.1A Active CN105009099B (zh) 2013-11-07 2013-11-07 计算机系统及数据控制方法

Country Status (6)

Country Link
US (2) US8977781B1 (zh)
JP (1) JP6074056B2 (zh)
CN (1) CN105009099B (zh)
DE (1) DE112013006549T5 (zh)
GB (1) GB2535558A (zh)
WO (1) WO2015068239A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9146890B1 (en) * 2013-01-25 2015-09-29 Pmc—Sierra Us, Inc. Method and apparatus for mapped I/O routing in an interconnect switch
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9524103B2 (en) * 2014-09-10 2016-12-20 Netapp, Inc. Technique for quantifying logical space trapped in an extent store
JP2016058033A (ja) * 2014-09-12 2016-04-21 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
JP6825263B2 (ja) * 2016-08-22 2021-02-03 富士通株式会社 ストレージ制御装置、およびストレージシステム
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
JP2018081346A (ja) * 2016-11-14 2018-05-24 日本電気株式会社 ストレージ装置、ストレージシステム、ストレージ制御方法、および、ストレージ制御プログラム
US11212209B2 (en) * 2019-07-16 2021-12-28 Hewlett Packard Enterprise Development Lp Speed determination for network ports
CN111061510B (zh) * 2019-12-12 2021-01-05 湖南毂梁微电子有限公司 一种可扩展的asip结构平台及指令处理方法
CN111092817A (zh) * 2019-12-23 2020-05-01 中国联合网络通信集团有限公司 一种数据传输方法及装置
JP7197545B2 (ja) * 2020-09-29 2022-12-27 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US20220291874A1 (en) * 2021-03-15 2022-09-15 Hitachi, Ltd. Data integrity checking mechanism for shared external volume
CN116708571B (zh) * 2023-07-22 2024-05-14 武汉船舶职业技术学院 一种基于5g通信的智能终端服务方法、系统及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136131A (zh) * 2013-02-28 2013-06-05 浪潮集团有限公司 一种龙芯刀片服务器中实现计算刀片识别显示器的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991797A (en) * 1997-12-23 1999-11-23 Intel Corporation Method for directing I/O transactions between an I/O device and a memory
US6584513B1 (en) * 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US7080190B2 (en) * 2002-05-30 2006-07-18 Lsi Logic Corporation Apparatus and method for providing transparent sharing of channel resources by multiple host machines
JP4740763B2 (ja) * 2006-02-15 2011-08-03 株式会社日立製作所 ストレージシステム及びストレージコントローラ
JP5106913B2 (ja) 2007-04-23 2012-12-26 株式会社日立製作所 ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP4774085B2 (ja) * 2008-07-31 2011-09-14 富士通株式会社 ストレージシステム
JP5266590B2 (ja) * 2009-09-18 2013-08-21 株式会社日立製作所 計算機システムの管理方法、計算機システム及びプログラム
WO2012007999A1 (en) * 2010-07-16 2012-01-19 Hitachi, Ltd. Storage control apparatus and storage system comprising multiple storage control apparatuses
WO2012046278A1 (en) * 2010-10-07 2012-04-12 Hitachi, Ltd. Storage control apparatus and storage control apparatus control method
JP5637873B2 (ja) * 2011-01-19 2014-12-10 株式会社日立製作所 計算機システムおよびpciカードのhba識別子引き継ぎ方式
CN103814365B (zh) * 2012-02-06 2016-07-20 株式会社日立制作所 计算机系统及数据输入输出方法
US8554963B1 (en) 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
KR101709118B1 (ko) * 2012-05-04 2017-02-22 한국전자통신연구원 하이브리드 스토리지 시스템의 파일 관리 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136131A (zh) * 2013-02-28 2013-06-05 浪潮集团有限公司 一种龙芯刀片服务器中实现计算刀片识别显示器的方法

Also Published As

Publication number Publication date
GB201513883D0 (en) 2015-09-23
US10162567B2 (en) 2018-12-25
JP6074056B2 (ja) 2017-02-01
CN105009099A (zh) 2015-10-28
JPWO2015068239A1 (ja) 2017-03-09
US20150143002A1 (en) 2015-05-21
GB2535558A (en) 2016-08-24
WO2015068239A1 (ja) 2015-05-14
US8977781B1 (en) 2015-03-10
DE112013006549T5 (de) 2015-11-05

Similar Documents

Publication Publication Date Title
CN105009099B (zh) 计算机系统及数据控制方法
US10445018B2 (en) Switch and memory device
CN102880626B (zh) 在虚拟化服务器和虚拟化存储环境中的去重复
US10257273B2 (en) Systems, methods and devices for RDMA read/write operations
US10514855B2 (en) NVRAM path selection
US11623140B2 (en) High-speed save data storage for cloud gaming
CN101784990B (zh) 向卷管理器中的镜像卷的快速写入操作
CN107241913A (zh) 信息处理装置
CN102467352A (zh) 减少存储系统请求的响应延迟
JP2003162377A (ja) ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
JP2001331355A (ja) 計算機システム
WO2017088342A1 (zh) 业务割接方法、存储控制装置及存储设备
CN105739930B (zh) 一种存储架构及其初始化方法和数据存储方法及管理装置
CN104937564B (zh) 组表格的数据冲洗
CN108064374A (zh) 一种数据访问方法、装置和系统
TW201432474A (zh) 應用伺服器至非依電性隨機存取記憶體之路徑選取技術
CN106020731A (zh) 存储设备、存储设备阵列和网络适配器
CN104410531B (zh) 冗余的系统架构方法
Xu et al. Rethink the storage of virtual machine images in clouds
US7441009B2 (en) Computer system and storage virtualizer
US10310995B1 (en) Arbitration control system and method for storage systems
US10157020B1 (en) Optimizing copy processing between storage processors
CN104750614B (zh) 用于管理存储器的方法和装置
US20230198740A1 (en) Systems and methods for integrating fully homomorphic encryption (fhe) with a storage device
US20090007149A1 (en) Aggregating storage elements using a virtual controller

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