CN113253911A - 存储系统和输入输出控制方法 - Google Patents

存储系统和输入输出控制方法 Download PDF

Info

Publication number
CN113253911A
CN113253911A CN202010805941.8A CN202010805941A CN113253911A CN 113253911 A CN113253911 A CN 113253911A CN 202010805941 A CN202010805941 A CN 202010805941A CN 113253911 A CN113253911 A CN 113253911A
Authority
CN
China
Prior art keywords
data
memory
arithmetic device
processing
storage
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
CN202010805941.8A
Other languages
English (en)
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 CN113253911A publication Critical patent/CN113253911A/zh
Pending legal-status Critical Current

Links

Images

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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0653Monitoring storage devices or systems
    • 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
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0671In-line storage system
    • 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/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种存储系统和输入输出控制方法。该存储系统包括:接受输入输出请求并进行数据的输入输出处理的第一运算装置;与所述第一运算装置连接的第一存储器;和能够存储数据的多个存储驱动器,其中,所述存储系统还具有:第二运算装置;和与所述第二运算装置连接的第二存储器,所述第一运算装置指示所述存储驱动器进行数据的读取,所述存储驱动器读取所述数据,并将所述数据保存在所述第二存储器中,所述第二运算装置将保存在所述第二存储器中的数据保存到所述第一存储器中,所述第一运算装置将保存在所述第一存储器中的数据发送至涉及所述数据的读取请求的请求源。根据本发明,能够实现可靠性和IO处理性能高的存储系统。

Description

存储系统和输入输出控制方法
技术领域
本发明涉及存储系统。
背景技术
存储系统具有控制器和多个存储驱动器。控制器经由后端交换机与多个存储驱动器连接。作为控制器与存储驱动器之间的通信标准,一般使用SAS(Serial Attached SCSI,串行连接SCSI)。SAS的通信路径中,需要进行各协议的通信处理的专用的接口。具有SAS的通信路径的存储系统,能够防止非法的数据写入等,所以能够实现高可靠性。
近年来,作为新的通信标准之一,NVMe(Non-Volatile Memory Express,非易失性存储器标准)得到使用。在采用NVMe的存储系统中,控制器与存储驱动器经由PCI Express总线(PCIe总线)(PCI Express和PCIe是注册商标,下同)连接。存储驱动器能够直接访问控制器中包括的存储器。通过使用NVMe,不需要SAS协议的处理,所以能够期待使IO处理的性能提高。
在采用NVMe的存储系统中,不进行如SAS协议那样的确保可靠性用的控制,所以不能防止从存储驱动器传输非法数据。对此,已知专利文献1中记载的技术。
在专利文献1中,记载了为了避免对缓存区域写入非法数据导致的数据破坏,而根据需要改写IO页表来控制从存储驱动器进行的访问的方法。
现有技术文献
专利文献
专利文献1:国际公开第2017/195324号。
发明内容
发明要解决的技术问题
在使用专利文献1中记载的控制的数据读取处理中,控制器以将数据写入缓冲数据区域中的方式控制存储驱动器,之后从缓冲数据区域将数据写入缓存区域之后,对主机发送数据。
在如上述那样的处理中,在读取处理中进行2次对存储器的数据写入,存在存储器带宽的消耗量多的技术问题。因此,使得数据传输的高速化受到阻碍。
本发明目的在于实现一种可靠性高且数据传输高速的存储系统。
用于解决问题的技术手段
作为本申请中公开的发明的代表性的一例,如下所述。即,一种存储系统,其包括:第一运算装置,其接受输入输出请求,进行数据的输入输出处理;与所述第一运算装置连接的第一存储器;和能够存储数据的多个存储驱动器,所述存储系统的特征在于,具有:第二运算装置;和与所述第二运算装置连接的第二存储器,所述第一运算装置指示所述存储驱动器进行数据的读取,所述存储驱动器读取所述数据,并将所述数据保存在所述第二存储器中,所述第二运算装置将保存在所述第二存储器中的数据保存到所述第一存储器中,所述第一运算装置将保存在所述第一存储器中的数据发送至涉及所述数据的读取请求的请求源。
发明效果
根据本发明,能够实现一种可靠性高且数据传输高速的存储系统。上述以外的问题、结构和效果将通过以下实施例的说明而明了。
附图说明
图1是表示实施例1的计算机系统的结构的一例的图。
图2是表示实施例1的存储器空间管理表的一例的图。
图3是表示实施例1的存储器访问许可表的一例的图。
图4是说明实施例1的存储控制器所执行的初始化处理的一例的流程图。
图5是说明实施例1的存储系统从驱动器读取用户数据的情况下执行的处理的流程的序列图。
图6是说明实施例1的存储控制器读取驱动器中保存的数据的情况下执行的处理的一例的流程图。
图7是说明实施例1的存储控制器从驱动器接收了读取结果的情况下执行的处理的一例的流程图。
图8是说明实施例1的加速器接收了传输指示的情况下执行的处理的一例的流程图。
附图标记的说明
100 存储系统
101 主机终端
102 网络
110 存储控制器
111 处理器
112 存储器
113 主机接口
120 加速器
121 专用电路
122 存储器
130 驱动器
140 控制数据区域
141 缓存区域
142 缓冲区域
150 控制信息
151 用户数据
200 存储器空间管理表
300 存储器访问许可表
具体实施方式
以下,对于本发明的实施例,使用附图进行说明。但是,本发明并不限定解释为以下所示的实施例的记载内容。在不脱离本发明的思想或主旨的范围内可以变更其具体的结构,这一点对于本领域技术人员来说是容易理解的。
以下说明的发明的结构中,对于相同或类似的结构或功能附加同一符号,并省略重复的说明。
本说明书等中的“第一”、“第二”、“第三”等表述是为了识别构成要素而附加的,并不限定数量或顺序。
【实施例1】
图1是表示实施例1的计算机系统的结构的一例的图。
计算机系统由存储系统100和主机终端101构成。存储系统100经由网络102与主机终端101连接。另外,计算机系统也可以包括多个存储系统100。该情况下,各存储系统100经由未图示的网络相互连接。
网络102例如是SAN(Storage Area Network,存储区域网络)、LAN(Local AreaNetwork,局域网)和WAN(Wide Area Network,广域网)。网络102的连接方式可以是无线和有线中的任意者。
主机终端101是对存储系统100所提供的存储区域写入数据、或从存储区域读取数据的计算机。主机终端101具有未图示的处理器、存储器和接口。
存储系统100对主机终端101提供存储区域。存储系统100具有多个存储控制器110、多个加速器120和多个驱动器130。存储控制器110之间经由PCIe总线连接。存储控制器110与加速器120之间经由PCIe总线连接。另外,加速器120与驱动器130之间经由PCIe总线连接。
驱动器130是提供主机终端101所使用的存储区域的装置。实施例1的驱动器130是进行遵照NVMe协议的处理的NVMe驱动器。另外,驱动器130中也可以包括SATA驱动器等。另外,可以是与2个CTL连接的PCI Express Switch上连接的单端口NVMe SSD,也可以是可用性高的双端口NVMe SSD。
存储控制器110是进行存储系统100的控制的硬件。存储控制器110具有处理器111、存储器112和主机接口113。
处理器111是进行各种运算的硬件。处理器111执行存储器112中保存的程序。处理器111通过按照程序执行处理,而作为实现特定功能的功能部(模块)工作。
处理器111具有未图示的多个核心和IOMMU(Input/Output Memory ManagementUnit,输入输出内存管理单元)。核心是执行运算处理的硬件。IOMMU基于IO页表,控制经由PCIe总线与处理器111连接的加速器120和加速器120对存储器112的访问。
存储器112是由DRAM(Dynamic Random Access Memory,随机存取存储器)等易失性的存储元件、以及NAND Flash、STT-RAM(Spin Transfer Torque Random AccessMemory,自旋转移力矩磁阻随机存取存储器)和PCM(Phase-change memory,相变化内存)等非易失性的存储元件中的至少一种构成的存储装置。
在存储器112中,设定有用于保存处理器111所执行的程序和各种信息的存储区域和用于保存数据的存储区域。此处,对于实施例1的存储器112的存储区域进行说明。
存储器112包括控制数据区域140、缓存区域141和缓冲区域142。
控制数据区域140是保存用于控制存储系统100的程序和信息的存储区域。在控制数据区域140中保存有控制程序(省略图示)、控制信息150、和IO页表(省略图示)等。
控制程序是实现存储系统100的控制功能(存储控制部)的程序。
控制信息150是用于控制存储系统100的信息。控制信息150例如包括:缓存目录;用于管理缓存区域141中保存的数据(缓存数据)的数据;用于管理缓冲区域142中保存的数据(缓冲数据)的数据、用于控制各种设备的命令;和在存储控制器110之间共享的数据等。控制信息150包括用于管理RAID结构的数据、用于管理对主机终端101提供的存储区域与驱动器130的对应关系的信息。另外,控制信息150包括存储器空间管理表200(参考图2)和存储器访问许可表300(参考图3)。
IO页表是为了IOMMU控制加速器120对存储器112的访问而使用的表。另外,处理器111能够进行IOMMU的设定和更新。另外,处理器111通过操作IOMMU的寄存器能够使IOMMU保持的IO页表无效化、或将IO页表缓存。
缓存区域141是保存缓存数据的存储区域。缓存数据是预测将来主机终端101请求读取处理的数据。存储控制器110事先从低速的存储驱动器读取该数据,作为缓存数据保存在缓存区域141中,由此在主机终端101对存储系统100发出读取请求时,存储控制器110能够高速地对主机终端101传输该数据。因此,存储控制器110需要保持缓存数据直到接收来自主机终端101的读取请求。进而,存储控制器110需要保护缓存数据不被其他构成要素破坏。作为数据破坏,例如可以举出对于某个缓存数据的保存区域、驱动器130写入不同的数据这样的动作。缓冲区域142是保存缓冲数据的存储区域。缓冲数据是在存储控制器110进行的读取处理和驱动器130的管理处理中暂时保存的数据。作为管理处理,例如可以举出存储控制器110从驱动器130定期地读取温度信息、为了使温度成为一定以下而变更冷却用风扇的转速这样的动作。缓冲数据在存储控制器110进行的读取处理和管理处理完成之后被丢弃。
以上是存储器112的存储区域的说明。返回图1的说明。
主机接口113是与主机终端101连接用的接口。主机接口113是Ethernet适配器(Ethernet是注册商标)、InfiniBand(无限带宽)、Host Bus(主机总线)适配器和PCIExpress桥等。
加速器120是控制从驱动器130读取数据的硬件。加速器120具有专用电路121和存储器122。
专用电路121是进行各种运算的硬件。专用电路121例如是处理器、GPU(GraphicsProcessing Unit,图形处理器)和FPGA(Field Programmable Gate Array,现场可编程门阵列)等。专用电路121执行存储器122中保存的程序。专用电路121通过按照程序执行处理,而作为实现特定功能的功能部(模块)工作。存储器122是与存储器112相同的硬件。
图2是表示实施例1的存储器空间管理表200的一例的图。
存储器空间管理表200是用于管理对存储控制器110的物理地址空间映射的DRAM空间的信息。存储器空间管理表200包括由存储器搭载位置201、物理地址202和虚拟地址203构成的条目。
存储器搭载位置201是保存搭载存储器的位置(硬件)的信息的字段。物理地址202是保存物理地址空间的地址的字段。虚拟地址203是保存对与物理地址202对应的物理地址映射的虚拟地址的字段。
另外,对于存储控制器110的缓存区域141和缓冲区域142用不同的条目来管理。
如图2所示,在本实施例中,不仅将存储控制器110的存储器112,也将加速器120的存储器122映射至存储控制器110的物理地址空间。由此,存储控制器110能够将加速器120的存储器122视为自身的一部分存储器。
图3是表示实施例1的存储器访问许可表300的一例的图。
存储器访问许可表300是用于控制设备对存储控制器110管理的存储器(存储器112、122)的访问的信息。存储器访问许可表300包括由访问源301和虚拟地址302构成的条目。
访问源301是保存对存储器112、122进行访问的设备的信息的字段。虚拟地址302是保存与访问源301对应的设备能够访问的虚拟地址的字段。
图4是说明实施例1的存储控制器110所执行的初始化处理的一例的流程图。
存储控制器110在存储系统100起动之后,开始以下说明的处理。
存储控制器110生成存储器空间管理表200(步骤S101)。存储空间管理表200在计算机的起动处理中的物理地址空间的设定处理中生成。物理存储空间的设定处理是公知的技术,所以省略详细说明。
接着,存储控制器110在存储器访问许可表300中追加存储控制器110的条目(步骤S102)。具体而言,执行如下所述的处理。
(S102-1)存储控制器110识别存储控制器110自身和其他存储控制器110。
(S102-2)存储控制器110从识别出的存储控制器110中选择目标存储控制器110。
(S102-3)存储控制器110识别与目标存储控制器110直接连接的加速器120。
(S102-4)存储控制器110在存储器访问许可表300中追加条目,在追加的条目的访问源301中设定目标存储控制器110中包括的处理器111的识别信息。另外,存储控制器110在追加的条目的虚拟地址302中,设定与目标存储控制器110中包括的存储器112的缓存区域141对应的虚拟地址的行、和识别出的加速器120中包括的存储器122的虚拟地址的行。
(S102-5)存储控制器110判断对于识别出的全部存储控制器110处理是否已完成。对于识别出的全部存储控制器110处理尚未完成的情况下,存储控制器110返回(S102-2),执行同样的处理。对于识别出的全部存储控制器110处理已完成的情况下,存储控制器110结束步骤S102的处理。
接着,存储控制器110在存储器访问许可表300中追加加速器120的条目(步骤S103)。具体而言,执行如下所述的处理。
(S103-1)存储控制器110识别能够访问的加速器120。
(S103-2)存储控制器110从识别出的加速器120中选择目标加速器120。
(S103-3)存储控制器110识别与目标加速器120直接连接的存储控制器110。
(S103-4)存储控制器110在存储器访问许可表300中追加条目,在追加的条目的访问源301中设定目标加速器120中包括的专用电路121的识别信息。另外,存储控制器110在追加的条目的虚拟地址302中,设定目标加速器120中包括的存储器122的虚拟地址的行、和与识别出的存储控制器110中包括的存储器112的缓存区域141对应的虚拟地址的行。
(S103-5)存储控制器110判断对于识别出的全部加速器120处理是否已完成。对于识别出的全部加速器120处理尚未完成的情况下,存储控制器110返回(S103-2),执行同样的处理。对于识别出的全部加速器120处理已完成的情况下,存储控制器110结束步骤S103的处理。
接着,存储控制器110在存储器访问许可表300中追加驱动器130的条目(步骤S104)。之后,存储控制器110结束初始化处理。具体而言,执行如下所述的处理。
(S104-1)存储控制器110识别能够访问的驱动器130。
(S104-2)存储控制器110从识别出的驱动器130中选择目标驱动器130。
(S104-3)存储控制器110识别与存储控制器110直接连接的加速器120。
(S104-4)存储控制器110在存储器访问许可表300中追加条目,在追加的条目的访问源301中设定目标驱动器130的识别信息。另外,存储控制器110在追加的条目的虚拟地址302中,设定与存储控制器110中包括的存储器122的缓冲区域142对应的虚拟地址的行、和识别出的加速器120中包括的存储器122的虚拟地址的行。
(S104-5)存储控制器110判断对于识别出的全部驱动器130处理是否已完成。对于识别出的全部驱动器130处理尚未完成的情况下,存储控制器110返回到(S104-2),执行同样的处理。对于识别出的全部驱动器130处理已完成的情况下,存储控制器110结束步骤S104的处理。
另外,对存储系统100追加了新的驱动器130的情况下,存储控制器110执行步骤S104的处理。
图5是说明实施例1的存储系统100从驱动器130读取用户数据151的情况下执行的处理的流程的序列图。
存储控制器110的处理器111对保存用户数据151的驱动器130发送读取指示(步骤S201)。读取指示中包括用于对加速器120中包括的存储器122进行访问的地址(物理地址)。
驱动器130接收了读取指示的情况下,对该读取指示中包括的地址写入用户数据151(步骤S202)。此时,驱动器130不需要得知数据的写入目标是加速器120。
驱动器130在用户数据151的写入已完成的情况下,对存储控制器110发送读取结果(步骤S203)。
存储控制器110的处理器111接收了读取结果的情况下,对加速器120发送传输指示(步骤S204)。传输指示中包括用于对存储控制器110中包括的存储器112进行访问的地址(物理地址)。
加速器120接收了传输指示的情况下,对该传输指示中包括的地址写入用户数据151(步骤S205)。另外,加速器120在用户数据151的写入已完成的情况下,对存储控制器110发送传输结果(步骤S206)。之后,存储控制器110对请求源发送用户数据151。
如图5所示,实施例1的存储系统100原则上禁止驱动器130对存储控制器110的存储器112写入数据。由此,能够防止从驱动器130传输非法数据,所以能够提高可靠性。另外,在数据传输中,存储控制器110的存储器112的写入次数是1次,所以削减了存储器带宽的消耗量。
图6是说明实施例1的存储控制器110读取驱动器130中保存的数据的情况下执行的处理的一例的流程图。
存储系统100在从外部装置接收了读取请求的情况、或者进行基于访问预测的数据预读的情况下开始以下说明的处理。另外,外部装置是主机终端101、其他存储系统100和维护用的终端等。访问对象的数据是控制信息150、用户数据151和存储系统100的负荷等状态信息等。
处理器111判断读取对象的数据是否是用户数据151(步骤S301)。
在判断为读取对象的数据是用户数据151的情况下,处理器111在存储控制器110的存储器112的缓存区域141中确保规定长度的区域(步骤S302)。此处,确保区域指的是为了不接受来自其他进程的操作而进行互斥控制。在步骤S302中,执行如下所述的处理。
(S302-1)处理器111从存储器访问许可表300中检测存储控制器110的条目。
(S302-2)处理器111参照检索得到的条目的虚拟地址302的与存储控制器110的存储器112对应的行。处理器111基于参照的行,选择规定范围的虚拟地址。此时,也可以确认与虚拟地址对应的存储器112的存储区域的使用状态。
(S302-3)处理器111执行对所选择的虚拟地址的互斥处理。
(S302-4)处理器111从存储器空间管理表200中检索存储控制器110的存储器112的缓存区域141的条目。
(S302-5)处理器111基于检索得到的条目,识别与所选择的虚拟地址对应的物理地址。以上是步骤S302的处理的说明。
接着,处理器111在加速器120的存储器122中确保规定长度的区域(步骤S303)。具体而言,执行如下所述的处理。
(S303-1)处理器111从存储器访问许可表300中检索加速器120的条目。此处,检索与存储控制器110直接连接的加速器120的条目。
(S303-2)处理器111参照检索得到的条目的虚拟地址302的与加速器120的存储器122对应的行。处理器111基于参照的行,选择规定范围的虚拟地址。此时,也可以确认与虚拟地址对应的存储器112的存储区域的使用状态。
(S303-3)处理器111执行对所选择的虚拟地址的互斥处理。
(S303-4)处理器111从存储器空间管理表200中检索加速器120的条目。
(S303-5)处理器111基于检索得到的条目,识别与所选择的虚拟地址对应的物理地址。以上是S303的处理的说明。
接着,处理器111将包括步骤S303中识别出的存储器122的物理地址的读取指示发送至驱动器130(步骤S305)。之后,处理器111结束处理。
在步骤S301中,在判断为读取对象不是用户数据151的情况下,处理器111在存储控制器110的存储器112的缓冲区域142中确保规定长度的区域(步骤S304)。具体而言,执行如下所述的处理。
(S304-1)处理器111从存储器访问许可表300中检索存储控制器110的条目。
(S304-2)处理器111参照检索得到的条目的虚拟地址302的与存储控制器110的存储器112对应的行。处理器111基于参照的行,选择规定范围的虚拟地址。此时,也可以确认与虚拟地址对应的存储器112的存储区域的使用状态。
(S304-3)处理器111执行对所选择的虚拟地址的互斥处理。
(S304-4)处理器111从存储器空间管理表200中选择存储控制器110的存储器112的缓冲区域142的条目。
(S303-5)处理器111基于检索得到的条目,识别与选择的虚拟地址对应的物理地址。以上是步骤S303的处理的说明。
接着,处理器111将包括步骤S303中识别出的存储器112的缓冲区域142的物理地址的读取指示发送至驱动器130(步骤S305)。之后,处理器111结束处理。
图7是说明实施例1的存储控制器110从驱动器130接受了读取结果的情况下执行的处理的一例的流程图。
处理器111判断读取对象的数据是否是用户数据151(步骤S401)。在步骤S401中,也可以直接使用步骤S301中的判断结果。
在判断为读取对象的数据不是用户数据151的情况下,处理器111结束处理。
在判断为读取对象的数据是用户数据151的情况下,处理器111生成检查用的信息和加工用的信息中的至少一者(步骤S402)。
此处,检查用的信息是用于执行数据检查的信息。数据检查是比特非法检查和访问场所的非法检查等。另外,加工用的信息是用于执行数据加工的信息。数据加工是压缩、解压缩和位置信息的变换等。位置信息的变换指的是压缩前的数据的位置信息与压缩后的数据的位置信息的变换。
以下说明中,在不区分数据检查和数据加工的情况下,也记载为任选处理。
接着,处理器111对加速器120发送传输指示(步骤S403)。之后,处理器111结束处理。在传输指示中,包括检查用的信息和加工用的信息中的至少一者、和步骤S302中所确保的区域的物理地址。
图8是说明实施例1的加速器120接收了传输指示的情况下执行的处理的一例的流程图。
专用电路121基于传输指示中包括的信息,对于存储器122中保存的数据执行任选处理(步骤S501)。
具体而言,专用电路121执行数据检查和数据加工中的至少一者。
接着,专用电路121对由传输指示中包括的物理地址指定的存储器112的区域写入被执行任选处理后的数据(步骤S502)。
接着,专用电路121对存储控制器110发送传输结果(步骤S503)。
在现有的数据读取处理中,驱动器130对缓冲区域142写入数据,处理器111从缓冲区域142对缓存区域141写入数据之后,对主机终端101发送数据。
另一方面,实施例1中,驱动器对加速器120的存储器122写入数据,加速器120对存储控制器110的存储器112写入数据,进而,处理器111将对存储器112写入的数据发送至主机终端101。由此,能够防止数据读取处理中从驱动器130传输非法数据,并且削减存储器带宽的消耗量。
另外,通过使加速器120执行数据检查和数据加工中的任意者,能够减少存储控制器110的处理负荷,并且实现数据传输的可靠性、高速化和数据容量的削减等。
另外,本发明不限定于上述实施例,包括各种变形例。另外,例如,上述实施例为了易于理解地说明本发明而详细说明了结构,并不限定于必须具备说明的全部结构。另外,对于各实施例的结构的一部分,能够追加、删除、置换其他结构。
另外,对于上述各结构、功能、处理部、处理单元等,例如可以通过在集成电路中设计等而用硬件实现其一部分或全部。另外,本发明也能够通过实现实施例的功能的软件的程序代码实现。该情况下,对计算机提供记录了程序代码的存储介质,该计算机具备的处理器读取存储介质中保存的程序代码。该情况下,从存储介质读取的程序代码自身实现上述实施例的功能,该程序代码自身、和存储它的存储介质构成本发明。作为供给这样的程序代码用的存储介质,例如使用软盘、CD-ROM、DVD-ROM、硬盘、SSD(Solid State Drive)、光盘、磁光盘、CD-R、磁带、非易失性的存储卡、ROM等。
另外,实现本实施例中记载的功能的程序代码,例如能够用汇编、C/C++、perl、Shell、PHP、Python、Java(注册商标)等广范围的编程或脚本语言实现。
进而,也可以通过经由网络发布实现实施例的功能的软件的程序代码,而将其保存在计算机的硬盘或存储器等存储单元或者CD-RW、CD-R等存储介质中,计算机具备的处理器读取该存储单元或该存储介质中保存的程序代码并执行。
在上述实施例中,控制线和信息线示出了认为说明上必要的,并不一定示出了产品上全部的控制线和信息线。全部结构也可以相互连接。

Claims (12)

1.一种存储系统,其包括:
第一运算装置,其接受输入输出请求,进行数据的输入输出处理;
与所述第一运算装置连接的第一存储器;和
能够存储数据的多个存储驱动器,
所述存储系统的特征在于,具有:
第二运算装置;和
与所述第二运算装置连接的第二存储器,
所述第一运算装置指示所述存储驱动器进行数据的读取,
所述存储驱动器读取所述数据,并将所述数据保存在所述第二存储器中,
所述第二运算装置将保存在所述第二存储器中的数据保存到所述第一存储器中,
所述第一运算装置将保存在所述第一存储器中的数据发送至涉及所述数据的读取请求的请求源。
2.如权利要求1所述的存储系统,其特征在于:
所述第一运算装置,在接受所述读取请求之前,指示所述存储驱动器进行所述数据的读取,在接受了所述读取请求的情况下,将所述数据发送至请求源。
3.如权利要求2所述的存储系统,其特征在于:
通过使所述存储驱动器不能够访问所述第一存储器,来防止所述存储驱动器破坏所述第一存储器内的数据。
4.如权利要求3所述的存储系统,其特征在于:
为了使所述数据从所述第二存储器移动至所述第一存储器,所述第一运算装置对所述第二运算装置发送指示,
该指示包含用于对所述数据执行任选处理的信息,
所述第二运算装置基于所述信息,对保存在所述第二存储器中的所述数据执行所述任选处理,并将被执行所述任选处理后的所述数据写入所述第一存储器中。
5.如权利要求4所述的存储系统,其特征在于:
所述任选处理是用于确认所述数据的错误的处理和用于对所述数据进行加工的处理中的至少任一处理。
6.如权利要求4所述的存储系统,其特征在于:
所述第一运算装置和所述第一存储器包含在控制器中,
所述第二运算装置和所述第二存储器包含在加速器中。
7.一种由存储系统执行的输入输出控制方法,所述存储系统包括:接受输入输出请求并进行数据的输入输出处理的第一运算装置;与所述第一运算装置连接的第一存储器;和能够存储数据的多个存储驱动器,所述输入输出控制方法的特征在于:
所述存储系统具有第二运算装置和与所述第二运算装置连接的第二存储器,
所述输入输出控制方法包括:
第一步骤,所述第一运算装置指示所述存储驱动器进行数据的读取;
第二步骤,所述存储驱动器读取所述数据,并将所述数据保存在所述第二存储器中;
第三步骤,所述第二运算装置将保存在所述第二存储器中的数据保存到所述第一存储器中;和
第四步骤,所述第一运算装置将保存在所述第一存储器中的数据发送至涉及所述数据的读取请求的请求源。
8.如权利要求7所述的输入输出控制方法,其特征在于:
在所述第一步骤中,所述第一运算装置在接受所述读取请求之前,指示所述存储驱动器进行所述数据的读取,
在所述第四步骤中,所述第一运算装置在接受了所述读取请求的情况下,将所述数据发送至请求源。
9.如权利要求8所述的输入输出控制方法,其特征在于:
包括为了防止所述存储驱动器破坏所述第一存储器内的数据,所述第一运算装置进行控制以使所述存储驱动器不能够访问所述第一存储器的步骤。
10.如权利要求9所述的输入输出控制方法,其特征在于:
所述第二步骤包括为了使所述数据从所述第二存储器移动至所述第一存储器,所述第一运算装置对所述第二运算装置发送指示的步骤;
该指示包含用于对所述数据执行任选处理的信息,
所述第三步骤包括:
所述第二运算装置基于所述信息,对保存在所述第二存储器中的所述数据执行所述任选处理的步骤;和
所述第二运算装置将被执行所述任选处理后的所述数据写入所述第一存储器中的步骤。
11.如权利要求10所述的输入输出控制方法,其特征在于:
所述任选处理是用于确认所述数据的错误的处理和用于对所述数据进行加工的处理中的至少任一处理。
12.如权利要求10所述的输入输出控制方法,其特征在于:
所述第一运算装置和所述第一存储器包含在控制器中,
所述第二运算装置和所述第二存储器包含在加速器中。
CN202010805941.8A 2020-02-07 2020-08-12 存储系统和输入输出控制方法 Pending CN113253911A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-019794 2020-02-07
JP2020019794A JP7028902B2 (ja) 2020-02-07 2020-02-07 ストレージシステム及び入出力制御方法

Publications (1)

Publication Number Publication Date
CN113253911A true CN113253911A (zh) 2021-08-13

Family

ID=77178311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010805941.8A Pending CN113253911A (zh) 2020-02-07 2020-08-12 存储系统和输入输出控制方法

Country Status (3)

Country Link
US (2) US11327660B2 (zh)
JP (1) JP7028902B2 (zh)
CN (1) CN113253911A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7028902B2 (ja) * 2020-02-07 2022-03-02 株式会社日立製作所 ストレージシステム及び入出力制御方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167782A (ja) * 2001-11-30 2003-06-13 Toshiba Corp 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
US20060047899A1 (en) * 2004-08-27 2006-03-02 Junichi Ilda Storage device control apparatus
KR20140103755A (ko) * 2013-02-19 2014-08-27 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
CN104956311A (zh) * 2013-10-09 2015-09-30 株式会社日立制作所 存储系统以及存储控制方法
US20160094619A1 (en) * 2014-09-26 2016-03-31 Jawad B. Khan Technologies for accelerating compute intensive operations using solid state drives
CN109983449A (zh) * 2018-06-30 2019-07-05 华为技术有限公司 数据处理的方法和存储系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865642B2 (en) * 1998-06-24 2005-03-08 International Business Machines Corporation Method and apparatus for disk caching for an intermediary controller
JP2001307420A (ja) 2000-04-25 2001-11-02 Sharp Corp ディスク記録再生装置
US6981070B1 (en) * 2000-07-12 2005-12-27 Shun Hang Luk Network storage device having solid-state non-volatile memory
JP4412981B2 (ja) 2003-11-26 2010-02-10 株式会社日立製作所 ストレージシステム及同システムにおけるデータキャッシング方法
US7461101B2 (en) * 2004-07-13 2008-12-02 International Business Machines Corporation Method for reducing data loss and unavailability by integrating multiple levels of a storage hierarchy
JP2008225915A (ja) 2007-03-13 2008-09-25 Fujitsu Ltd プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法
JP2009075759A (ja) 2007-09-19 2009-04-09 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
JP5330702B2 (ja) 2008-01-31 2013-10-30 株式会社日立製作所 複数のコントローラモジュールを備えた記憶装置システム
JP5963228B2 (ja) 2013-05-30 2016-08-03 株式会社日立製作所 ストレージシステム及びデータバックアップ方法
WO2017195324A1 (ja) 2016-05-12 2017-11-16 株式会社日立製作所 ストレージ装置
JP6802209B2 (ja) 2018-03-27 2020-12-16 株式会社日立製作所 ストレージシステム
US11200168B2 (en) * 2018-12-10 2021-12-14 International Business Machines Corporation Caching data from remote memories
JP7028902B2 (ja) * 2020-02-07 2022-03-02 株式会社日立製作所 ストレージシステム及び入出力制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167782A (ja) * 2001-11-30 2003-06-13 Toshiba Corp 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
US20060047899A1 (en) * 2004-08-27 2006-03-02 Junichi Ilda Storage device control apparatus
KR20140103755A (ko) * 2013-02-19 2014-08-27 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
CN104956311A (zh) * 2013-10-09 2015-09-30 株式会社日立制作所 存储系统以及存储控制方法
US20160094619A1 (en) * 2014-09-26 2016-03-31 Jawad B. Khan Technologies for accelerating compute intensive operations using solid state drives
CN109983449A (zh) * 2018-06-30 2019-07-05 华为技术有限公司 数据处理的方法和存储系统

Also Published As

Publication number Publication date
JP7028902B2 (ja) 2022-03-02
US11327660B2 (en) 2022-05-10
US11740799B2 (en) 2023-08-29
JP2021125113A (ja) 2021-08-30
US20220229561A1 (en) 2022-07-21
US20210247911A1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
JP6190045B2 (ja) 高性能でかつ低コストのフラッシュ変換層のためのシステムおよび方法
EP3049944B1 (en) Block storage apertures to persistent memory
US7613876B2 (en) Hybrid multi-tiered caching storage system
US6754765B1 (en) Flash memory controller with updateable microcode
US10782917B2 (en) Storage device
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US10802734B2 (en) Method for fast boot read
US9304710B2 (en) Storage system and data transfer method of storage system
KR20030075356A (ko) 고 용량 플래시 메모리 카드 시스템에서의 데이터 운영 방법
WO2011075477A1 (en) Efficient use of flash memory in flash drives
US10209897B2 (en) Storage device and control method of the same
US20090240876A1 (en) Information processing apparatus, information processing method and storage system
US20220138096A1 (en) Memory system
WO2007146845A2 (en) Configurable and scalable hybrid multi-tiered caching storage system
US11740799B2 (en) Storage system and input and output control method
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
US9734117B2 (en) Data storage device and method for integrated bridge firmware to be retrieved from a storage system on chip (SOC)
US11816336B2 (en) Storage system and control method thereof
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
CN105653478A (zh) 串行闪存控制器、串行闪存控制方法及串行闪存控制系统
JP7242928B2 (ja) ストレージシステム及び入出力制御方法
KR20230112362A (ko) 데이터 처리 시스템 및 그 동작 방법과, 이를 위한 스토리지 장치
US10719461B2 (en) Solid state device with distributed bit buckets
US11200172B2 (en) Storage system and method of controlling storage system
US11366614B2 (en) Storage system

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