CN112346653B - 驱动器箱、存储系统和数据传送方法 - Google Patents

驱动器箱、存储系统和数据传送方法 Download PDF

Info

Publication number
CN112346653B
CN112346653B CN202010081473.4A CN202010081473A CN112346653B CN 112346653 B CN112346653 B CN 112346653B CN 202010081473 A CN202010081473 A CN 202010081473A CN 112346653 B CN112346653 B CN 112346653B
Authority
CN
China
Prior art keywords
drive
storage
command
data
data transfer
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
CN202010081473.4A
Other languages
English (en)
Other versions
CN112346653A (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 CN112346653A publication Critical patent/CN112346653A/zh
Application granted granted Critical
Publication of CN112346653B publication Critical patent/CN112346653B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0629Configuration or reconfiguration of storage 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0683Plurality of storage devices
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B33/00Constructional parts, details or accessories not provided for in the other groups of this subclass
    • G11B33/02Cabinets; Cases; Stands; Disposition of apparatus therein or thereon
    • G11B33/04Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers
    • G11B33/0405Cabinets; Cases; Stands; Disposition of apparatus therein or thereon modified to store record carriers for storing discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology

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

Abstract

本发明的存储系统不对主计算机施加驱动器箱添加导致的影响地持续进行I/O处理,其包括:能够与发送用于数据的读或写的命令的计算机装置经由网络连接的多个驱动器箱,分别搭载有驱动器;和与多个驱动器箱连接的存储控制器,多个驱动器箱中的第1驱动器箱提供第1存储区域,存储控制器存储有管理第1存储区域与构成第1存储区域的驱动器的物理存储区域的对应的地址管理表,第1驱动器箱在接收到对第1存储区域的命令时将命令传送至存储控制器,存储控制器生成包括数据存储目的地的信息的数据传送命令并传送至第1驱动器箱,第1驱动器箱在包含于数据传送命令的数据存储目的地为多个驱动器箱中的第2驱动器箱时将数据传送命令传送至第2驱动器箱。

Description

驱动器箱、存储系统和数据传送方法
技术领域
本发明主要涉及驱动器箱、存储系统和存储系统的数据传送方法,例如适于应用于搭载有闪存驱动器的系统。
背景技术
存储系统中,在存储器的前端网络连接主计算机,在与前端网络彼此独立的后端网络连接驱动器箱。
当存储控制器接收到来自主计算机的命令时,例如在为读命令时,存储控制器从驱动器箱内的驱动器读出数据,对主计算机进行数据传送。
现有技术中,前端网络的主流是FC(Fibre Channel,光纤通道)网络、Ether网络(以态网),后端网络主流的是SAS(Serial Attached SCSI,串行SCSI)网络,驱动器箱是JBOD(Just a Bunch Of Disks,磁盘簇),在驱动器箱的插槽中搭载多个存储数据的SAS/SATA驱动器。
近年来,为了提高存储系统的性能,目的在于高性能化的SSD(Solid StateDrive,固态驱动器)等闪存驱动器出现,适于闪存驱动器的NVMe协议标准化。
此外,为了基于网络连接的驱动器连接的高扩展性,能够在网络上使用NVMe协议的NVMe over Fabrics(NVMeoF,基于光纤的NVMe)的标准出现,作为与NVMe-oF对应的驱动器箱的FBOF(Fabric-attached Bunch of Flash,网络化闪存簇)出现。
但是,主计算机、存储控制器、驱动器箱的数据传送的路径与现有技术相同,因此作为驱动器箱,即使设置有多台FOBF,存储控制器的数据传送带宽成为瓶颈,存在不能够发挥FBOF的性能的问题。
对此,在专利文献1公开了,综合前端网络和后端网络,将主计算机、存储控制器、驱动器箱与共用的网络直接连接而进行数据传送,从而消除存储控制器的数据传送带宽的瓶颈。
例如,专利文献1公开了,在主计算机运行的代理软件,对存储控制器询问与主计算机的访问目的地数据对应的FBOF内的驱动器和其地址,基于得到的信息,直接访问FBOF内的驱动器。
现有技术文献
专利文献
专利文献1:美国专利第9800661号说明书
发明内容
发明要解决的技术课题
根据专利文献1,采用主计算机和FBOF直接连接的结构,因此主计算机能够直接访问FBOF的驱动器,但是必须由代理软件进行用于存储功能的控制、计算,对主计算机侧施加了用于进行高可靠性处理的计算负荷。
例如,在存储控制器动作的、RAID等数据保护功能、快照等的、存储装置的功能的动作和代理软件的动作必须同步,需要经由网络的控制,导致性能下降。
此外,在利用精简配置,定义比搭载于FBOF的驱动器的合计容量大的虚拟化存储容量时,在使用超过驱动器的合计容量的容量时,需要添加新的FBOF。
现有技术中,主计算机与FBOF之间的存储控制器将FBOF的物理变更对主计算机隐藏,因此即使添加新的FBOF,也没有变更主计算机的必要,但专利文献1的结构中主计算机和FBOF直接连接,因此在主计算机侧需要应对物理结构变更。
于是,本发明的目的在于,提供在将主计算机和FBOF直接连接的结构中,即使由于驱动器的添加等使容量增加,也不需要变更主计算机的设定的驱动器箱、存储系统和数据传送方法。
用于解决课题的技术方案
用于达成上述目的的存储系统的实施方式之一是,一种存储系统,其包括:构成为能够与发送用于数据的读或写的命令的计算机装置经由网络连接的多个驱动器箱,其分别搭载有作为存储装置的驱动器;和与多个驱动器箱连接的存储控制器,该存储系统中,多个驱动器箱中的第1驱动器箱对计算机装置提供第1存储区域,存储控制器存储有地址管理表,该地址管理表管理第1存储区域与构成第1存储区域的驱动器的物理存储区域的对应,第1驱动器箱在从计算机装置接收到对第1存储区域的命令时,将命令传送至存储控制器,接收到命令的存储控制器,基于地址管理表,生成包括数据存储目的地的信息的数据传送命令并将其传送至第1驱动器箱,接收到数据传送命令的第1驱动器箱,在包含于数据传送命令的数据存储目的地为多个驱动器箱的第2驱动器箱时,将数据传送命令传送至第2驱动器箱。
发明效果
根据本发明的代表性的实施例,在主计算机与驱动器箱之间直接进行数据传送的结构中,能够不变更主计算机的设定地实现利用驱动器、驱动器箱等的添加进行的容量的扩展。
上述内容以外的课题、结构和效果,能够通过以下的实施例的说明而明确。
附图说明
图1是表示实施例1的信息系统的结构例的框图。
图2是表示实施例1的驱动器箱的结构例的框图。
图3是表示实施例1的主计算机、存储控制器、驱动器箱的程序结构例的框图。
图4是表示实施例1的信息系统的逻辑构造、数据构造例的框图。
图5是表示实施例1的地址管理表的例子的图。
图6是表示实施例1的驱动器箱添加流程的图。
图7是表示实施例1的执行主机命令的方法的概要的图。
图8是表示基于实施例1的数据配置判断方法的驱动器箱选择流程的图。
图9是表示实施例1的执行主机命令的方法的概要的图。
图10是表示实施例1的数据移动处理流程的图。
图11是表示实施例1的数据配置判断表的图。
图12是表示实施例2的执行主机命令的方法的对主机的总线添加的概要的图。
图13是表示实施例2的信息系统的网络共用化的结构例的框图。
具体实施方式
以下,基于附图说明本发明的实施方式。
其中,以下的记载和附图是用于说明本发明的例示,为了说明的明确化,适当地省略和简单化,本发明能够以其它各种方式实施,只要没有特别限定,各构成要素可以是单数也可以为多个。
另外,以下说明的实施例并不限定专利要保护的范围的发明,实施例中说明的要素的全部组合并非是必需的发明的解决方案。
以下的说明中,以“表”、“列表”、“列”、“DB”等的表达方式说明各种信息,但各种信息可以由它们以外的数据构造表达,为了表示不依赖于数据构造,有时将“xxx表”、“xxx列表”、“xxx列”、“xxxDB”等称为“xxx信息”。
以下的说明中,在说明识别信息时,使用“识别信息”、“识别符”、“名”、“ID”、“编号”的表达方式,但它们也可以相互置换。
以下的说明中,存在多个具有相同或同样的功能的构成要素时,基本上标注相同的附图标记进行说明,但存在即使功能相同,用于实现功能的手段不同的情况。
进而,后述的本发明的实施例可以通过在通用计算机上运行的软件实现,也可以通过专用硬件或软件与硬件的组合实现。
此外,以下的说明中以“程序”为主语说明处理,但程序通过被处理器(例如CPU:Central Processing Unit,中央处理单元)执行,而对于决定的处理适当地使用存储资源(例如存储器)、和/或接口器件(通信端口)等进行,因此也可以将处理器作为主体进行说明。
以程序作为主语说明的处理可以是具有处理器的计算机(例如计算主机、存储装置)进行的处理。
此外,以下的说明中,“控制器”的表达方式可以指处理器或进行处理器所进行的处理的一部分或全部的硬件电路。
程序可以从程序源(例如程序分发服务器、计算机可读取的存储介质)安装于各计算机,此时,程序分发服务器包括CPU和存储资源,存储资源还存储分发程序和作为分发对象的程序,通过CPU执行分发程序,程序分发服务器的CPU将分发对象的程序向其它计算机分发。
此外,以下的说明中,2个以上的程序可以作为1个程序实现,1个程序也可以作为2个以上的程序实现。
此外,以下的说明中,“PDEV”是指物理上的存储器件,典型来说,可以是非易失性的存储器件(例如辅助存储器件)。PDEV例如可以是HDD(Hard Disk Drive,硬盘驱动器)或SSD(Solid State Drive,固态驱动器)。在存储系统中可以存在不同种类的PDEV。
此外,以下的说明中,“RAID”是Redundant Array of Inexpensive Disks(独立磁盘冗余阵列)的简称。RAID组由多个PDEV(典型的是同种的PDEV)构成,存储根据与该RAID组关联的RAID级别的数据。RAID组也可以称为奇偶校验组。奇偶校验组例如可以是存储奇偶校验信息的RAID组。
此外,以下的说明中,“VOL”是卷的简称,可以是物理上的存储器件或逻辑上的存储器件。VOL可以是实体的VOL(RVOL),也可以是虚拟的VOL(VVOL)。“RVOL”可以是基于具有该RVOL的存储系统所具有的物理的存储资源(例如1个以上的RAID组)的VOL。“VVOL”可以是外部连接VOL(EVOL)、容量扩展VOL(TPVOL)和快照VOL中的任一者。EVOL可以是基于外部的存储系统的存储空间(例如VOL),依据存储虚拟化技术的VOL。TPVOL可以是由多个虚拟区域(虚拟的存储区域)构成,依据容量虚拟化技术(典型的是Thin Provisioning,精简配置)的VOL。
“池(POOL)”是逻辑的存储区域(例如多个池VOL的集合),可以按照用途来准备。例如,作为池可以有TP池。TP池可以是由多个页(实体的存储区域)构成的存储区域。存储控制器在页没有被分配到从主计算机(以下称为主机)接收到的写请求所指定的地址所属的虚拟区域(TPVOL的虚拟区域)时,从TP池将页分配至该虚拟区域(写目的地虚拟区域)(即使页已分配至写目的地虚拟区域,也可以重新将页分配至写目的地虚拟区域)。“池VOL”可以是作为池的构成要素的VOL。池VOL可以是RVOL,也可以是EVOL。
此外,以下的说明中,将从主机识别的VOL(能够对主机提供的VOL)称为“LDEV”。以下的说明中,LDEV是TPVOL(或RVOL),池是TP池。但是,本发明也能够应用于没有采用容量扩展技术(Thin Provisioning,精简配置)的存储装置。
此外,以下的说明中,将SCSI的卷称为“Logical Unit(以后称为LU),逻辑单元”。LU在应用LU Size Expansion(以后称为LUSE,LU大小扩展)功能时,与LDEV以1:N对应。
此外,以下的说明中,将NVMe的卷称为“Name Space(以后称为NS,命名空间)”。NS与SCSI的LU对应。
实施例1
实施例1中,在包括主计算机、存储控制器、驱动器箱的信息系统中,以高可靠性的存储控制器管理数据保存目的地,主计算机与驱动器箱之间直接进行数据传送。添加驱动器箱时,经由原来连接的驱动器箱与主计算机进行数据传送(2级传送)。此外,通过数据配置的优化,抑制2段传送的开销。
图1表示用于表示实施例1的信息系统的结构例的框图。
该第1实施方式的信息处理系统包括:1个或多个主计算机100;和搭载有作为存储装置的1个或多个驱动器140的、1个或多个的驱动器箱110,它们经由包括LAN(Local AreaNetwork,局域网)或互联网等的网络130相互连接。驱动器箱110和具有1个或多个2重化构造的存储控制器120由LAN(Local Area Network)或PCI Express(外围组件快速互连)等连接。
由存储控制器120和驱动器箱110构成存储系统,例如驱动器箱110可以使用FBOF。
网络130例如是Ethernet(以太网,注册商标)、Infiniband(无限带宽,注册商标)等高性能的网络,与NVMe over Fabrics(NVMe-oF)对应。
主计算机100是具有CPU(Central Processing Unit,中央处理器)和存储器等存储装置的计算机装置,根据用户操作、来自安装的程序的请求而经由网络130,对包括驱动器箱110和存储控制器120的存储系统发送写命令、读命令(IO命令)。
主计算机100经由网络130进行与存储控制器120通信时的协议控制,进行与驱动器箱110的数据交换。
存储系统对主计算机100提供作为存储器的功能,因此包括冗余化的存储控制器120A和存储控制器120B。存储控制器120包括CPU和存储器等存储装置。存储控制器120A和存储控制器120B为相同结构。
存储控制器120具有1个或多个CPU核心,各CPU核心根据来自主计算机100的读命令、写命令,指示传送在对应的驱动器箱110中存储的数据。
存储控制器120的存储器例如由SDRAM(Synchronous Dynamic Random AccessMemory,同步动态随机存储器)等半导体存储器构成,也可以与SCM(Storage ClassMemory,存储级存储器)等非易失存储器组合构成,作为CPU的主存储器,存储执行程序(存储控制程序等)、CPU所参照的管理表等。此外,存储器也用作存储控制器120的磁盘缓存(cashe memory)。
存储控制器120例如具有与驱动器箱110的接口,使将从主计算机100指示的关于涉及数据传送、数据复制等存储处理的处理的信息对驱动器箱110进行通信。
驱动器箱110搭载有1个或多个驱动器140,与主计算机100经由网络130连接,存储主计算机100的数据。此外,根据来自存储控制器120的指示,实施与主计算机100的数据传送。
驱动器箱110可以采用例如具有冗余总线,在某部分的总线的连接切断时,也能够与主计算机100进行数据通信的结构。此外,存储控制器120也具有冗余总线,同样采用在某部分的总线的连接切断时,也能够与存储控制器120进行通信的结构。
在驱动器箱110中,存储OS、存储控制程序、管理表的备份等。搭载于驱动器箱110的驱动器140例如是HDD、SSD。
图2表示实施例1的驱动器箱的结构例。
驱动器箱110由冗余化的机壳组件(enclosure)200构成,搭载有1个或多个驱动器140。
机壳组件200由接口160、处理器210、存储器150、开关250构成,是处理来自主计算机100的命令,在与驱动器140之间进行数据的传送控制的控制部。
接口160具有前端口180,经由前总线190与连接于主计算机100或其它驱动器箱的网络130连接。此外,接口160与处理器210连接,进行与主计算机100或其它驱动器箱110的命令、数据等的通信。
处理器210与接口160、存储器150、开关250连接,与连接于用于冗余化的其它处理器210的机壳组件总线170连接。处理器210例如进行与主计算机100、其它驱动器箱、存储控制器120的命令、数据的处理、驱动器箱110和驱动器140的控制。此外,也可以将存储控制器120的功能的一部分减载(Offload)处理。
存储器150例如包括SDRAM(Synchronous Dynamic Random Access Memory)等半导体存储器,也可以与SCM(Storage Class Memory)等非易失存储器组合构成,作为处理器210的主存储器,存储执行程序(驱动器箱110控制程序等)、处理器所参照的管理表等。此外,存储器150也能够用作数据传送时的缓冲存储器、缓存。
开关250例如是PCI Express的开关,与处理器210连接,经由开关端口220与驱动器140的驱动器端口240连接。利用开关与1个或多个驱动器140连接。另外,为了冗余化,驱动器140可以与多个机壳组件200的开关250连接。此外,也可以经由开关端口220并经由后端总线230而与存储控制器120连接。此时,为了冗余化,可以从某开关250经由多个后端总线230与多个存储控制器120连接。
驱动器140搭载于1台或多台驱动器箱110,例如为了冗余化,具有多个驱动器端口240,与多个机壳组件200内的开关250连接。
图3表示用于表示实施例1的信息系统的主计算机、存储控制器、驱动器箱的程序结构例的框图。
程序在例如主计算机100、存储控制器120中,存储于存储器,通过由CPU的CPU核心执行而执行各种处理。此外,在驱动器箱110中,存储于存储器150,通过由处理器210执行而执行各种处理。另外,也可以不使用CPU、处理器210,而使用GPU、ASIC、FPGA等硬件来执行程序,程序的处理可以为专用硬件而进行处理。以下为了容易理解,说明该程序由CPU、处理器210执行的情况。
主计算机100具有应用270和起动驱动器280的程序。此处,作为例子,表示主要部分,省略例如OS(Operation System,操作系统)等其它程序。
应用270例如是数值计算程序、数据库、Web服务等程序,能够设想结算类的系统、分析类的系统等各种用途。
起动驱动器280C识别作为磁盘等周边装置动作的目标驱动器290,将读、写等命令的接口对应用270提供。例如,主计算机100的起动驱动器280C识别存储控制器120的目标驱动器290A、驱动器箱110的目标驱动器290B所提供的存储区域。如果是对于主计算机100,存储控制器120作为NVMe-oF的起动部而动作的方式,则起动驱动器(initiator driver)280可以是NVMe-oF对应的驱动器。
存储控制器120具有目标驱动器290A、起动驱动器280A、主机命令处理260、数据传送控制300A、缓存控制310、存储功能处理380A、离台处理320、地址变换处理330、数据配置优化处理400等程序,与主计算机100同样,包括未图示的OS。
存储控制器120的目标驱动器290A对于驱动器箱110的起动驱动器280B和主计算机100的起动驱动器280C提供存储区域,并且进行命令的接收、命令的完成响应的发送。例如,采用图1的结构时,对于来自主计算机100的起动驱动器280C的请求,驱动器箱110的目标驱动器290B接收该请求,驱动器箱110的主机命令传送处理340传送命令,经由驱动器箱110的起动驱动器280B,存储控制器120的目标驱动器290A接收到它。
存储控制器120的起动驱动器280A对驱动器箱110的目标驱动器290B进行控制器命令的发送等。另外,也可以是驱动器箱110对存储控制器120提供存储区域。此处,控制器命令表示从存储控制器120发送的命令。
存储控制器120的主机命令处理260将主计算机100发出的命令经由目标驱动器290A接收,进行命令的分析、命令的处理(读命令、写命令、管理命令)、命令的完成响应的生成、经由目标驱动器290A的命令的完成响应的发送等。
存储控制器120的数据传送控制300A依据主机命令处理260的指示,例如对驱动器箱110指示与主计算机100的数据传送处理。此外,在需要多个驱动器箱110间的数据传送时,也指示该动作。
存储控制器120的缓存控制310进行基于缓存数据的检索的缓存命中、未命中的判断、脏数据(对物理驱动器写入前的状态)、干净数据(对物理驱动器写入后的状态)的各状态间的转移、缓存区域的预留和释放等的控制。缓存命中、未命中的判断是判断对来自主计算机100的命令进行响应的数据是否存在于存储控制器120的存储器。例如,来自主计算机100的命令是写命令时,判断响应写命令的数据是否存在于存储器上。另外,数据可以利用存储控制器120的存储器,也可以利用驱动器箱110上的存储器150。这在读的时候也是同样的。这些缓存控制的各处理是广泛周知的技术,在此处省略详细说明。
存储控制器120的存储功能处理380A生成将存储器的功能向驱动器箱110减载的命令(减载命令),对驱动器箱110发出指示。例如,减载的存储器的功能有压缩、解压、加密、解密、复制、格式化、RAID计算、奇偶校验计算等各种功能。配合数据传送控制300A,存储功能处理380A的一部分或多个由驱动器箱110实施。
存储控制器120的离台处理320经由起动驱动器280A,进行将缓存内的数据向驱动器140写入的离台(destage,将数据从缓存写入盘)处理320。
存储控制器120的地址变换处理330具有存储控制器120的进行管理的NS(NameSpace,命名空间)的数据范围和作为数据的存储目标的驱动器箱110、驱动器140的映射表,将数据范围的地址转换为对应的驱动器箱110、驱动器140内的存储区域的地址。
存储控制器120的数据配置优化处理400,根据存储控制器120所保持的元信息等,判断存储着发送来数据传送请求的数据的驱动器箱110是否最佳,在存在数据移动的必要性时,发送向驱动器箱110进行数据移动的指示。例如,在实施二级传送时,作为数据配置优化的判断要素,判断访问频度,如果访问频度高,则指示从二级传送目的地源的驱动器箱110向二级传送目的地的驱动器箱进行数据移动。此处,二级传送是指,接收到主计算机100的命令,从存储控制器120接收到指示的驱动器箱110向其它驱动器箱110传送命令的动作。命令为写命令时,将写数据向其它驱动器箱传送,在为读命令时,从其它驱动器箱接收数据。
此外,以主计算机100的数据访问以外的契机非同步地在驱动器箱110上进行数据的读出时,例如,容量的再平衡、再生、垃圾回收、快照等备份处理时,实施数据配置优化处理400,使数据向最佳驱动器箱110移动。
驱动器箱110包括目标驱动器290B、起动驱动器280B、主机命令传送处理340、命令处理390、数据传送控制300B、二级传送处理350、存储功能处理380B、驱动器控制处理360、缓冲控制处理370和未图示的OS。
驱动器箱110的目标驱动器290B对于主计算机100的起动驱动器280C和存储控制器120的起动驱动器280A提供存储区域,并且进行命令的接收、命令的完成响应的发送。此外,对于其它驱动器箱的起动驱动器,也提供同样的功能。
例如,采用图1的结构时,对于来自主计算机100的起动驱动器280C的请求,驱动器箱110的目标驱动器290B接受请求,实施驱动器箱110的主机命令传送处理340所传送的处理,经由驱动器箱110的起动驱动器280B,存储控制器120的目标驱动器290A接收到它。
驱动器箱110的目标驱动器290B对于起动驱动器280A、起动驱动器280C和其它驱动器箱的起动驱动器提供存储区域。此外,进行与主计算机100之间的命令的接收、命令的完成响应的发送。此外,进行与存储控制器120之间的命令的接收、命令的完成响应的发送。进而,进行与其它驱动器箱之间的命令的接收、命令的完成响应的发送。另外,在它们之间的传送中,有数据传送,例如使用DMA、RDMA进行数据传送。
驱动器箱110的起动驱动器280B对于存储控制器120的目标驱动器290A和其它驱动器箱的目标驱动器,进行命令的发送、命令完成响应等的接收。
驱动器箱110的主机命令传送处理340将主计算机100所发送的命令,使用目标驱动器290B进行接收,且进行命令的分析、向存储控制器120的传送。命令传送时,经由起动驱动器280B,与存储控制器120的目标驱动器290A进行命令的交换。另外,分析命令时,在是关于预先从存储控制器120设定的地址的范围的访问时,例如,在是从主计算机100接收到命令的驱动器箱110的驱动器所提供的存储区域时,不经由存储控制器120地使命令处理390起动,直接从驱动器箱110向主计算机100进行数据传送。此时,命令处理390进行读/写处理、命令的完成响应的生成、经由目标驱动器290B的对起动驱动器280C的命令的完成响应的发送等。
驱动器箱110的命令处理390接收存储控制器120的主机命令处理260的结果,例如起动数据传送控制300B。
驱动器箱110的数据传送控制300B接收从存储控制器120接收了指示的驱动器箱110的命令处理390的指示,进行驱动器箱110与主计算机100的数据传送处理。此时,接收存储控制器120的主机命令处理260的结果,向驱动器箱110的命令处理390输出指示。
此外,有从主机命令传送处理340直接传送的指示时,也进行驱动器箱110与主计算机100的数据传送处理。例如,进行依据NVMe-oF等协议的数据传送。
驱动器箱110的二级传送处理350接收存储控制器120的主机命令处理260的结果,在需要多个驱动器箱110间的数据传送时,从其它驱动器箱向驱动器箱110传送数据。为了进行传送,在驱动器箱110的存储器150确保缓冲区域,使用它进行数据传送。例如,以NVMe-oF,用DMA、RDMA、帧传送、包传送等方法进行数据传送。实施二级传送处理350,传送到驱动器箱110的数据向主计算机100传送。
驱动器箱110的驱动器控制处理360进行驱动器箱110内的驱动器140的管理并且依据命令处理390的指示对驱动器140进行读、写等数据传送处理。此外,也使用管理命令等进行驱动器140的管理。
驱动器箱110的缓冲控制处理370进行作为用于进行数据传送的暂时的存储器区域的缓冲器的确保和释放。
驱动器箱110的存储功能处理380B基于来自存储控制器120的请求,实施存储器的功能。例如进行减载的存储处理是压缩、解压、加密、解密、复制、格式化、RAID计算、奇偶校验计算各种处理,利用命令处理390,将存储功能处理380A的一部分或多个由驱动器箱110的存储功能处理380B实施。
图4表示用于表示实施例1的信息系统的逻辑构造、数据构造例子的框图。
作为实施例1的信息系统的逻辑构造,例如包括应用270、网络130、探查服务420、驱动器箱110,特别是,驱动器箱110内包括与网络130连接的物理端口430、子系统410、NS440、VOL450、池460、RAID组470、PDEV480等。
应用270为了存储数据,使用包括存储控制器120和驱动器箱110的存储系统。应用270对从存储系统提供的卷,进行数据的写入、读出。例如,此处假设是NVMe,NS440是应用270使用的卷。例如为SCSI时,LU(Logical Unit)对应于NS440。
探查服务(discovery service)420提供将应用270和NS440关联的服务。例如,探查服务保持着物理端口430和子系统410的对应表,应用270与NS440关联,为了访问NS440,首先访问探查服务420,取得与NS440定义的子系统410对应的物理端口430的识别符,通过访问该物理端口430,能够访问属于子系统410的目标的NS440。另外,探查服务420可以定义于主计算机100,也可以定义于存储控制器120,也可以定义于驱动器箱110。
驱动器箱110具有1个或多个PDEV480。该PDEV480设想是HDD、SSD等驱动器140,但也可以是逻辑器件(DEV)。利用1个或多个PDEV480生成RAID组470。RAID组470表示数据保护,例如可以二重化、三重化等,包括冗余化的全部种类。另外,也可以不是RAID组470,而直接为PDEV480的结构。由1个或多个RAID组470或直接由PDEV480构成池460。池460可以是精简配置(TP),也可以以比物理容量大的虚拟容量定义。从池460切出VOL450,作为NS440登记于子系统410。此处,VOL450可以是虚拟卷(VVOL),也可以是实卷(RVOL)。此外,VVOL可以以比物理容量大的虚拟容量定义。
池460可以跨驱动器箱110A和驱动器箱110B等多个驱动器箱110。例如,为TP池460时,比搭载于驱动器箱110A的PDEV480的容量大地设计池460容量,在池460的物理上的空闲容量变少时,通过在驱动器箱110A添加PDEV480来扩充容量。超过能够搭载于驱动器箱110A的PDEV480数量时,通过新添加驱动器箱110B,将驱动器箱110B的PDEV480或由1个多个PDEV480构成的RAID组470添加于池460,能够扩充容量。另外,可以将驱动器箱110B的子系统410Z的NS440添加于驱动器箱110A的池460。例如,此时,子系统410Z的NS440不直接呈现给应用270,而呈现给存储控制器120和驱动器箱110A以进行利用。
另外,驱动器箱110可以具有多个物理端口430,该多个物理端口430可以与一个子系统410连接。此时,服务器进行资源竞争的调整。
图5表示用于表示实施例1的地址管理表的例子的图。
地址管理表590存储于存储控制器120的存储器,被地址变换处理330等存储控制器120的各种程序参照。具有VOL编号490、VOL-LBA500、POOL-VOL编号510、POOL-VOL-LBA520,管理VOL编号490和池编号570、POOL-VOL编号510和池编号570、POOL-VOL编号510和RAID组编号530和RAID组偏移(Offset)540、RAID组编号530和PDEV编号550、PDEV编号550和驱动器箱编号560的对应等。另外,此处所示的地址管理表590是一例,例如,VOL可以是虚拟VOL,此外,可以添加关于压缩、重复排除的信息、池的属性、表示RAID组的RAID类型等的信息、VOL容量等其它信息。地址管理表590管理提供给应用的NS、VOL等的逻辑地址(逻辑存储区域)与实际存储数据的驱动器箱110、驱动器内的物理地址(物理存储区域)的对应。
关于VOL编号490,VOL编号根据对存储器的访问协议与例如NSID(Namespace ID,命名空间ID)、LUN(Logical Unit Number,逻辑单元号)等关联。
地址管理表590用于对于从应用对VOL编号490和VOL-LBA500的访问,确定访问目的地的驱动器。
VOL编号490、POOL-VOL编号510从池编号570切出而形成。POOL-VOL编号510由RAID组编号530和RAID组偏移540构成。RAID组编号530由多个PDEV编号550(Physical Device,物理器件)构成,PDEV编号550属于驱动器箱编号560。另外,PDEV编号550可以跨多个驱动器箱编号560,此时,RAID组编号530由多个驱动器箱编号560构成。
图5的例子中,VOL编号490为“1”、VOL-LBA500为“0-99”的范围,对应于POOL-VOL编号510为“10”、POOL-VOL-LBA520为“0-99”。POOL-VOL编号510的“10”由RAID组编号530“1”、RAID组偏移540“0”构成。RAID组编号530的“1”由PDEV编号550“0-3”构成,PDEV编号550的“0-3”搭载于驱动器箱编号560的“1”。
另外,PDEV例如由闪存驱动器构成,在该驱动器内,可以进行将所述PDEV内的地址作为虚拟地址、进而进行物理地址变换这样的虚拟地址与物理地址的变换。
驱动器箱添加580表示在池容量不足时,为了容量添加,添加了驱动器箱时的情况。驱动器箱添加580与池编号570、POOL-VOL编号510、POOL-VOL-LBA520、RAID组编号530、RAID组偏移540、PDEV编号550关联。
根据访问频度等,在驱动器箱110之间使数据移动时,VOL-LBA500与POOL-VOL编号510、POOL-VOL-LBA520的对应发生变更。
地址管理表590中,存储控制器120进行管理,但可以将其整体或一部分缓存于驱动器箱110,可以使用该缓存,在应用270与驱动器箱110间实施基于缓存命中的数据传送。
图6表示实施例1的信息系统的驱动器箱添加例。
在步骤S0010,由存储控制器120的主机命令处理260的一部分,将虚拟池空闲容量与阈值比较,为阈值以上时,确认步骤S0070的虚拟池空闲容量确保完成状态而结束处理。虚拟池空闲容量与阈值的比较是,判断构成提供给应用的NS等的逻辑地址的物理资源是否不足。
在步骤S0010,在空闲容量低于阈值时,进入步骤S0020,判断是否有能够添加于驱动器箱110内的物理容量。判断的结果是有物理容量时,在步骤S0080,例如从PDEV480生成RAID组470,添加于池460。从PDEV480生成RAID组470、添加于池460时,地址管理表的内容也被更新,但用于主计算机100的应用270访问数据的VOL编号490、VOL-LBA500不变更。由此,主计算机100不会意识到在步骤S0080增加了物理容量,不需要变更主计算机100的设定。确认步骤S0070虚拟池空闲容量确保完成状态而结束处理。
在步骤S0030,判断是否能够向驱动器箱110添加驱动器140。为此,判断收纳驱动器的插槽是否有空位,在驱动器插槽有空位时,在步骤S0090添加驱动器140。当添加驱动器140时,地址管理表的内容也被更新,但用于主计算机100的应用270访问数据的VOL编号490等地址空间没有变更。确认步骤S0070虚拟池空闲容量确保完成状态而结束处理。
在步骤S0030判断为没有驱动器插槽的空位时,进入步骤S0040,添加驱动器箱110和驱动器140。然后,在步骤S0050为了建立存储控制器120与添加的驱动器箱110的连接而生成联系(connection)。接着,在步骤S0060,例如从添加的驱动器箱内的PDEV480生成RAID组470,添加于池460。当添加驱动器箱110时,地址管理表的内容也被更新,但用于主计算机100的应用270访问数据的VOL编号490等地址空间没有变更。在步骤S0070,确认虚拟池空闲容量确保完成状态而结束。在步骤S0070,对于驱动器箱110向主计算机100提供的NS等存储区域(逻辑存储区域),更新地址管理表590的一部分,例如进行驱动器箱添加580等的添加。由此,将扩展后的物理存储区域的容量(物理存储区域)以能够与逻辑存储区域对应的状态更新于地址管理表。
在步骤S0070为了确认虚拟池空闲容量确保完成状态,可以包括将扩展后的物理存储区域的容量与提供给应用的NS等逻辑地址关联的处理。
通过本流程,例如TP池中,物理容量充足,而且在没有搭载驱动器140的空位时,通过添加驱动器箱110,也能够不变更主计算机100的设定地确保池460的物理容量。
图7表示用于表示实施例1的执行主机命令的方法的概要的图。
在信息系统中,主计算机100的应用270经由起动驱动器280C,将命令600向驱动器箱110A发送。驱动器箱110A由目标驱动器290B接收命令600,通过主机命令传送处理340,经由起动驱动器280B向存储控制器120的目标驱动器290传送命令600。存储控制器120进行主机命令处理260。存储控制器120(例如地址变换处理330等)中,参照地址管理表,判断命令的对象数据处于哪个驱动器箱110。起动存储控制器120的数据传送控制300A,对从主计算机100接收到命令600的驱动器箱110A发送数据传送命令610A,经由驱动器箱110A的命令处理390起动数据传送控制300。在数据传送命令610A包括存储参照地址管理表而得的命令的对象数据或者应存储它的驱动器箱的信息。
在实施例1中,存储控制器120参照地址管理表,在数据传送命令610A包含二级传送指示时,驱动器箱110A起动二级传送处理350。作为其它方法,在来自存储控制器120的数据传送命令610A不包含二级传送指示时,驱动器箱110参照地址管理表,判断为命令600的对象的数据处于驱动器箱110B时,驱动器箱110A起动二级传送处理350。
此处,在为读时,由缓冲控制处理370准备传送用的缓冲区域,向驱动器箱110B传送数据传送命令610B。驱动器箱110B的命令处理390接收该命令,起动数据传送控制300,对驱动器箱110A进行数据传送620A。驱动器箱110A向主计算机100进行该数据的数据传送620B。
此外,在为写时,在驱动器箱110A起动二级传送处理350后,向驱动器箱110B传送数据传送命令610B,驱动器箱110B的命令处理390接收该命令,起动数据传送控制300,将对驱动器箱110A进行了数据传送620B的数据向驱动器箱110B进行数据传送620A。驱动器箱110B起动驱动器控制处理360,向驱动器140存储数据。
由此,在主计算机100与驱动器箱110间不向存储控制器120传送数据,而是直接进行数据传送。此外,通过二级传送处理350,进行驱动器箱110A与驱动器箱110B的数据传送,由此例如TP等进行了容量虚拟化时,即使不能够对驱动器箱110A添加物理容量,通过添加驱动器箱110B,也能够不对主计算机100的应用270造成影响地应对容量添加。
此外,在主计算机100和驱动器箱110进行数据传送,因此能够不受存储控制器120的带宽影响地,例如实现FBOF等驱动器箱110的广带宽性、延迟的减小(响应性能提高)。
图8表示实施例1的信息系统的数据传送控制300A进行的驱动器箱选择的例子。
在步骤S0100,主计算机100将命令600向驱动器箱110发送。在步骤S0110,驱动器箱110将命令600向存储控制器120传送。在步骤S0120,存储控制器120(地址变换处理330等)基于地址管理表,确认数据存储的地址。在步骤S0130,基于在步骤S0120确认了的数据存储地址,判断是否需要二级传送。
数据存储的地址是命令600发送源的驱动器箱110,不需要二级传送时,在步骤S0180,存储控制器120向驱动器箱110发送数据传送命令610A,在步骤S0170数据传送完成而结束处理。
在步骤S0130判断为需要二级传送时,即,基于地址管理表,数据存储目的地的地址不是命令600发送源的驱动器箱110,而是其它驱动器箱110时,在步骤S0140,存储控制器120生成包含二级传送命令的数据传送命令,在步骤S0150,存储控制器120向驱动器箱110发送二级传送的数据传送命令610A,在步骤S0160,驱动器箱110的二级传送处理350进行二级传送,在步骤S0170,数据传送完成而结束处理。在包含二级传送命令的数据传送命令中,包含数据存储目的地的信息。
通过本流程,例如在TP池中,物理容量不足,而且没有搭载驱动器140的空位时,通过添加驱动器箱110,进行二级传送,也能够不变更主计算机100的设定地确保池460的物理容量,并且应对数据传送。
图9是表示用于表示实施例1的执行主机命令的方法的概要的图。
在信息系统中,主计算机100的应用270经由起动驱动器280C,将命令600向驱动器箱110A发送。驱动器箱110A由目标驱动器290B接收命令600,通过主机命令传送处理340,经由起动驱动器280B,向存储控制器120的目标驱动器290A传送命令600。存储控制器120进行主机命令处理260,起动数据传送控制300A,向驱动器箱110A发送数据传送命令610A,经由驱动器箱110A的命令处理390,起动数据传送控制300。在该处理中可以是,驱动器箱110A参照地址管理表,在判断为对象的数据处于驱动器箱110B时,驱动器箱110A起动二级传送处理350。
此处,在为读时,由缓冲控制处理370准备传送用的缓冲器,对驱动器箱110B传送数据传送命令610B。驱动器箱110B的命令处理390接收该命令,起动数据传送控制300,对驱动器箱110A进行数据传送620A,驱动器箱110A向主计算机100进行该数据的数据传送620C。
此时,由存储控制器120的数据配置优化处理400,判断存储有发送来数据传送请求的数据的驱动器箱110B是否处于最佳的位置,在存在数据移动的必要性时,发送向驱动器箱110A进行数据移动的指示。例如,在实施二级传送时,作为数据配置优化的判断要素,判断访问频度,如果访问频度高,则指示从二级传送目的地源的驱动器箱110B向二级传送目的地的驱动器箱110A移动数据。接收到数据移动的指示的驱动器箱110A通过数据传送620A,将数据从驱动器箱110B向驱动器箱110A移动,存储在驱动器箱110的存储器150上的缓冲区域后,与向主计算机100的数据传送620C一起,实施数据存储630A。由此,能够使传送次数最小地实施数据的最佳配置。
此外,在为写时,例如,由存储控制器120的数据配置优化处理400,判断存储有发送来数据传送的请求的数据的驱动器箱110B是否处于最佳位置。在存在数据移动的必要性时,发送向驱动器箱110A进行数据移动的指示。由此,此时成为数据存储630A,在驱动器箱110A存储数据。另一方面,由存储控制器120的数据配置优化处理400,判断存储有发送来数据传送的请求的数据的驱动器箱110B是否处于最佳位置,在不存在数据移动的必要性时,由数据传送620A向驱动器箱110B传送数据而将其存储。
此外,以主计算机100的数据访问以外的契机非同步地在驱动器箱110上进行数据的读出时,例如,容量的再平衡、再生、垃圾回收、快照等备份处理时,也实施存储控制器120的数据配置优化处理400,例如,对驱动器箱110A的数据进行处理时,在该数据优选存储在驱动器箱110B时,在驱动器箱110A的存储器150上的缓冲区域,进行数据传送620B,向驱动器箱110B进行数据存储630B。
由此,在驱动器箱110A和驱动器箱110B与存储控制器120间使命令600、数据传送的负载最小化,进行数据的最佳配置。另外,在驱动器箱间使数据移动时,更新地址管理表的内容。例如更新VOL编号490与POOL-VOL编号510的对应等。
图10表示实施例1的信息系统的数据移动处理的例子。
在步骤S0200,主计算机100的应用270经由起动驱动器280C将命令600向驱动器箱110A发送。
在步骤S0210,驱动器箱110A的目标驱动器290B接受命令600,从主机命令传送处理340经由起动驱动器280B向存储控制器120传送。
在步骤S0220,存储控制器120经由目标驱动器290A接受命令600,由主机命令处理260处理命令600。此时,存储控制器120参照地址管理表,确认数据存储目的地。
在步骤S0230,通过存储控制器120的数据配置优化处理400,例如进行访问频度确认,在步骤S0240,判断是否需要数据移动。即,决定最佳的数据存储位置。判断的结果如果是不需要数据移动,则在步骤S0310,存储控制器120向驱动器箱110A经由数据传送控制300发送数据传送命令610A。然后,在步骤S0320,驱动器箱110A进行命令处理390,由数据传送控制300B进行数据传送620C,在步骤S0300数据传送完成而结束处理。
另一方面,在步骤S0240判断为需要数据移动时,在步骤S0250,存储控制器120确保新的数据存储目的地。接着,在步骤S0260,存储控制器120向驱动器箱110A经由数据传送控制300发送数据传送命令610A。接着,在步骤S0270,驱动器箱110A起动数据传送控制300或二级传送处理350,进行数据传送处理。接着,在步骤S0280,驱动器箱110A向新的数据存储位置存储数据。接着,在步骤S0290,驱动器箱110A为了释放数据的旧存储位置,例如,向存储控制器120发送数据移动完成的通知,存储控制器120将数据的旧存储位置、例如驱动器箱110B的旧数据的存储位置释放,在步骤S0300数据传送完成而结束处理。
通过本流程,例如,在驱动器箱110A和驱动器箱110B与存储控制器120间使命令600、数据传送的负载最小化,进行数据的最佳配置。
图11表示实施例1的用于判断数据配置的访问频度表。
在存储控制器120的数据配置优化处理400时,例如,以访问频度作为判断要素。存储控制器120使用访问频度640、对象驱动器箱650、数据移动判断660的访问频度表,在访问频度640为阈值以下,判断为访问频度低时,在存储有数据的驱动器箱110为命令600发送源时,由数据移动判断660判断为向其它驱动器箱110进行数据移动。
此外,在访问频度640为阈值以下,判断为访问频度低时,在存储有数据的驱动器箱110不是命令600发送源,而是其它驱动器箱110时,由数据移动判断660判断为不进行数据移动。
此外,访问频度640比阈值大,判断为访问频度高时,在存储有数据的驱动器箱110是命令600发送源时,由数据移动判断660判断为不进行数据移动。
此外,访问频度640比阈值大,判断为访问频度高时,在存储有数据的驱动器箱110不是命令600发送源,而是其它驱动器箱110时,由数据移动判断660判断为向命令600发送源的驱动器箱110进行数据移动。
本数据配置判断表说明了以访问频度进行判断的情况,但这是用于说明本发明的例示,本发明的范围并不仅限定于该实施方式。
例如,能够不使用访问频度,而通过随机访问和顺序访问等访问方法进行判断。可以采用下述判断方式:随机访问重视响应时间,采用靠近主计算机100的驱动器箱110;顺序访问不重视响应时间,因此在远离主计算机100的驱动器箱110配置数据等。
此外,可以根据是备份数据还是其它数据来判断,在为备份数据时,判断为集中备份数据,配置在备份用的驱动器箱110,为此外的数据时,配置在不用于备份的驱动器箱110。
此外,在主计算机100使用多个应用270时,可以根据应用270的请求性能来判断,重视响应时间的应用270的数据,以靠近主计算机100的驱动器箱110配置,不重视响应时间的应用270的数据,配置在远离主计算机100的驱动器箱110等。
如上所述,根据实施例1,在主计算机与驱动器箱间进行直接数据传送的结构中,能够不变更主计算机的设定地实现利用驱动器添加等进行的容量扩展。此外,驱动器容量的扩展后也能够不进行主计算机的设定变更地在主计算机与驱动器箱间直接执行数据传送,因此能够高速地处理主计算机的对驱动器箱的IO请求。这样能够有助于图1所示的信息系统的能量消耗的抑制,防止主计算机100的用户业务机会损失。
此外,根据实施例1的数据传送,能够不变更主计算机的设定地添加容量,因此能够成为与精简配置功能对应的结构。
此外,通过实施例1的二级传送进行数据传送处理,因此能够不变更定义NS440的子系统410与物理端口430的对应地扩展容量。
进而,根据实施例1,通过靠近主计算机的驱动器箱与添加的驱动器箱间的数据配置优化,能够减少2级传送的频度,能够防止延迟、网络通信的增加。
实施例2
图12是表示用于表示实施例2的执行主机命令的方法的对主机的总线添加的概要的图。
在该实施例2的信息系统中,例如,要由其它应用270使用驱动器箱110A的容量时,为了使用在原来的应用270使用的驱动器箱110A的容量,在主计算机100与添加的驱动器箱110B之间添加新的总线,对原来的应用270可以看作是复制目的地的NS440。
另外,实施例2的系统中没有特别言及的点与实施例1同样。
例如,主计算机100的原来的应用270经由起动驱动器280C,将命令600发送给驱动器箱110A。驱动器箱110A由目标驱动器290B接收命令600,通过主机命令传送处理340,经由起动驱动器280B向存储控制器120的目标驱动器290传送命令600。存储控制器120进行主机命令处理260。此处,在实施例2中,设想对象的数据处于驱动器箱110A,例如设想来自主计算机100的数据写,由存储控制器120的数据配置优化处理400,判断为不是发送来数据传送的请求的驱动器箱110A,而是驱动器箱110B处于数据最佳位置。
存储控制器120起动数据传送控制300A,向驱动器箱110A发送数据传送命令610A,经由驱动器箱110A的命令处理390,起动数据传送控制300。此处,为了将对象的数据存储于驱动器箱110B,驱动器箱110A起动二级传送处理350,经由起动驱动器280B向驱动器箱110B的目标驱动器290B发送数据传送命令610B。
驱动器箱110B接收数据传送命令610B,进行命令处理390,将主计算机100的原来的应用270所写的数据向驱动器箱110B存储。
驱动器箱110B的传送完成后,驱动器箱110A向存储控制器120和主计算机100的原来的应用270通知数据传送完成。
另外,作为别的方法能够采用下述方法:存储控制器120判断为应该向驱动器箱110B存储数据,向驱动器箱110A发送数据传送命令610A,驱动器箱110A接收到该命令,向主计算机100的原来的应用270或起动驱动器280C指示向驱动器箱110B的数据传送620。
由此,能够在驱动器箱110A和驱动器箱110B与存储控制器120间使命令600、数据传送的负载最小化,进行数据的最佳配置。
此外,因为驱动器箱110A的空闲容量增加,能够将其供其它应用270使用。
以上说明了二个实施方式,但它们是用于说明本发明的例示,本发明并不限定于上述实施例,能够包括各种变形例。例如,上述实施例是为了容易理解本发明而详细说明的,并不限定于必须具有所说明的全部结构。此外,能够将某实施例的结构的一部分转换为其它实施例的结,此外,能够在某实施例的结构上添加其它实施例的结构。此外,对于各实施例的结构的一部分,能够进行其它结构的添加、削除、置换。
例如,图13表示实施例2的信息系统的网络共用化的结构例。
可以采用主计算机100、存储控制器120、驱动器箱110与网络130连接的结构。
此外,例如存储控制器120可以是Software Defined Storage(软件定义存储),主计算机100也可以是虚拟服务器。
此外,将本信息系统用于企业时,各要素、总线等冗余化,即使某部分发生故障,也能够继续动作。因此,能够防止用户的业务机会损失。
附图标记说明
100:主计算机
110:驱动器箱
120:存储控制器
130:网络
140:驱动器
150:存储器
160:接口
180:前端口
200:机壳组件
210:处理器
220:开关端口
230:后端总线
240:驱动器端口
250:开关
260:主机命令处理
270:应用
280:起动驱动器
290:目标驱动器
300:数据传送控制
330:地址变换处理
340:主机命令传送处理
350:二级传送处理
400:数据配置优化处理
420:探查服务
440:NS
450:VOL
460:POOL(池)
470:RAID组
480:PDEV。

Claims (9)

1.一种存储系统,其特征在于,包括:
构成为能够与发送用于数据的读或写的命令的计算机装置经由网络连接的多个驱动器箱,其分别搭载有作为存储装置的驱动器;和
与所述多个驱动器箱连接的存储控制器,
所述多个驱动器箱中的第1驱动器箱对所述计算机装置提供第1存储区域,
所述存储控制器存储有地址管理表,该地址管理表管理所述第1存储区域与构成所述第1存储区域的所述驱动器的物理存储区域的对应,
所述第1驱动器箱在从所述计算机装置接收到对所述第1存储区域的命令时,将所述命令传送至所述存储控制器,
接收到所述命令的所述存储控制器,基于所述地址管理表,生成包括数据存储目的地的信息的数据传送命令并将其传送至所述第1驱动器箱,
接收到所述数据传送命令的所述第1驱动器箱,在包含于所述数据传送命令中的数据存储目的地为所述多个驱动器箱中的第2驱动器箱时,将所述数据传送命令传送至所述第2驱动器箱。
2.如权利要求1所述的存储系统,其特征在于:
所述第1存储区域是NVMe中的命名空间或SCSI中的LU。
3.如权利要求1所述的存储系统,其特征在于:
所述存储控制器,当判断为构成所述第1存储区域的所述驱动器的存储区域不足时,通过增加提供所述第1存储区域的池的容量、对所述第1驱动器箱添加新的驱动器、或添加新的驱动器箱来扩展所述物理存储区域的容量,并更新所述地址管理表,使其成为能够将扩展后的所述物理存储区域的容量与所述第1存储区域关联的状态。
4.如权利要求3所述的存储系统,其特征在于:
所述存储控制器基于来自所述计算机装置的所述命令的对象数据的访问频度,将所述对象数据的存储目的地决定为所述第1驱动器箱和所述第2驱动器箱中的任一者。
5.如权利要求3所述的存储系统,其特征在于:
所述第1驱动器箱具有能够与所述计算机装置以及所述多个驱动器箱中的其它驱动器箱连接的控制部,
接收到所述数据传送命令的所述第1驱动器箱的所述控制部,在包含于所述数据传送命令的对象数据的存储目的地为所述多个驱动器箱的所述第2驱动器箱的情况下,将所述数据传送命令传送至所述第2驱动器箱,并将所述对象数据存储至所述第1驱动器箱的所述驱动器。
6.如权利要求5所述的存储系统,其特征在于:
所述存储控制器在为了扩展所述物理存储区域的容量而添加新的所述驱动器箱的情况下,在对所述第1驱动器箱传送所述数据传送命令时,判断是否要将数据存储于添加的所述驱动器箱,
当判断为要将数据存储于添加的所述驱动器箱时,对所述计算机装置进行指示,使得使用添加的所述驱动器箱与所述计算机装置之间的新总线。
7.一种存储系统中的第1驱动器箱,其中所述存储系统包括:
构成为能够与发送用于数据的读或写的命令的计算机装置经由网络连接,分别搭载有作为存储装置的驱动器的包含所述第1驱动器箱和第2驱动器箱的多个驱动器箱;和
保存地址管理表的存储控制器,所述地址管理表管理所述多个驱动器箱对所述计算机装置提供的存储区域与构成所述存储区域的所述驱动器的物理存储区域的对应,
所述第1驱动器箱,
对所述计算机装置提供第1存储区域,
当接收到从所述计算机装置对所述第1存储区域的命令时,对所述存储控制器传送所述命令,
接收到从所述第1驱动器箱传送来的所述命令的所述存储控制器基于所述地址管理表生成的、包含数据存储目的地的信息的数据传送命令被所述第1驱动器箱接收时,在包含于所述数据传送命令中的数据存储目的地是所述第2驱动器箱的情况下,所述第1驱动器箱将所述数据传送命令传送至所述第2驱动器箱。
8.如权利要求7所述的第1驱动器箱,其特征在于:
所述第1驱动器箱具有控制部,该控制部能够与所述计算机装置以及所述多个驱动器箱中的其它驱动器箱连接,处理来自所述计算机装置的命令,
利用所述控制部,提供给所述计算机装置的所述第1存储区域是NVMe中的命名空间或SCSI中的LU。
9.一种存储系统的数据传送方法,该存储系统包括:多个驱动器箱,其能够与发送用于数据的读或写的命令的计算机装置经由网络连接;和与所述多个驱动器箱连接的存储控制器,所述存储系统的数据传送方法的特征在于:
所述多个驱动器箱中的第1驱动器箱对所述计算机装置提供第1存储区域,
所述存储控制器存储有地址管理表,该地址管理表管理所述第1存储区域与构成所述第1存储区域的所述多个驱动器箱的物理存储区域的对应,
所述第1驱动器箱在从所述计算机装置接收到对所述第1存储区域的命令的情况下,将所述命令传送至所述存储控制器,
接收到所述命令的所述存储控制器,基于所述地址管理表,生成包含数据存储目的地的信息的数据传送命令并将其传送至所述第1驱动器箱,
接收到所述数据传送命令的所述第1驱动器箱,在包含于所述数据传送命令中的数据存储目的地是所述多个驱动器箱中的第2驱动器箱时,将所述数据传送命令传送至所述第2驱动器箱。
CN202010081473.4A 2019-08-06 2020-02-06 驱动器箱、存储系统和数据传送方法 Active CN112346653B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-144573 2019-08-06
JP2019144573A JP6942163B2 (ja) 2019-08-06 2019-08-06 ドライブボックス、ストレージシステム及びデータ転送方法

Publications (2)

Publication Number Publication Date
CN112346653A CN112346653A (zh) 2021-02-09
CN112346653B true CN112346653B (zh) 2024-02-27

Family

ID=74357212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010081473.4A Active CN112346653B (zh) 2019-08-06 2020-02-06 驱动器箱、存储系统和数据传送方法

Country Status (3)

Country Link
US (1) US11327653B2 (zh)
JP (1) JP6942163B2 (zh)
CN (1) CN112346653B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321002B2 (en) * 2018-12-11 2022-05-03 Hewlett Packard Enterprise Development Lp Converting a virtual volume between volume types
US11163501B2 (en) * 2019-09-27 2021-11-02 Dell Products L.P. Raid storage multi-step command system
KR20210046348A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 복수의 프로세서들에 유연하게 메모리를 할당하기 위한 메모리 시스템 및 그것의 동작 방법
US11941301B2 (en) * 2021-01-22 2024-03-26 EMC IP Holding Company LLC Maintaining online access to data stored in a plurality of storage devices during a hardware upgrade

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532339A (ja) * 2010-06-18 2013-08-15 エルエスアイ コーポレーション スケーラブルな記憶装置
JP2015191443A (ja) * 2014-03-28 2015-11-02 日本電気株式会社 ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム
WO2016189640A1 (ja) * 2015-05-26 2016-12-01 株式会社日立製作所 ストレージ装置、及び方法
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
JP2018173959A (ja) * 2017-03-31 2018-11-08 三星電子株式会社Samsung Electronics Co.,Ltd. NVMe−oF装置用ストレージ集積方法、NVMe−oFイーサネットSSDのグループにNVMe−oF SSD容量を集積する方法、及び集積されたイーサネットSSDグループ
CN109144888A (zh) * 2017-06-28 2019-01-04 东芝存储器株式会社 存储器系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
JP2002124077A (ja) * 2000-10-13 2002-04-26 Internatl Business Mach Corp <Ibm> ディスク・ドライブ装置、ハード・ディスク・ドライブ、ガスケットおよびトップ・カバー
JP3950720B2 (ja) * 2002-03-18 2007-08-01 株式会社日立製作所 ディスクアレイサブシステム
JP2005158101A (ja) * 2003-11-21 2005-06-16 Hitachi Ltd ディスクアレイ装置
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
WO2015072028A1 (ja) * 2013-11-18 2015-05-21 株式会社日立製作所 ストレージ制御装置
JP6190046B2 (ja) * 2014-04-24 2017-08-30 株式会社日立製作所 ストレージシステム
US10496671B1 (en) * 2014-05-05 2019-12-03 EMC IP Holding Company LLC Zone consistency
US9112890B1 (en) 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
WO2016041128A1 (zh) * 2014-09-15 2016-03-24 华为技术有限公司 数据写请求处理方法和存储阵列
US9852107B2 (en) * 2015-12-24 2017-12-26 Intel Corporation Techniques for scalable endpoint addressing for parallel applications
US10769081B2 (en) * 2016-12-30 2020-09-08 Intel Corporation Computer program product, system, and method to allow a host and a storage device to communicate between different fabrics
US10380028B2 (en) * 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
JP6556404B2 (ja) * 2017-03-24 2019-08-07 株式会社日立製作所 ストレージシステム及びストレージシステムのバックエンド構築方法
WO2019043815A1 (ja) * 2017-08-30 2019-03-07 株式会社日立製作所 ストレージシステム
US10860475B1 (en) * 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
JP6842480B2 (ja) * 2019-02-14 2021-03-17 株式会社日立製作所 分散ストレージシステム
JP2020177501A (ja) * 2019-04-19 2020-10-29 株式会社日立製作所 ストレージシステム、そのドライブ筐体、およびパリティ演算方法。
JP7080863B2 (ja) * 2019-08-02 2022-06-06 株式会社日立製作所 ストレージ装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532339A (ja) * 2010-06-18 2013-08-15 エルエスアイ コーポレーション スケーラブルな記憶装置
JP2015191443A (ja) * 2014-03-28 2015-11-02 日本電気株式会社 ストレージシステム、制御装置、ストレージ装置、入出力制御方法、及びプログラム
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
WO2016189640A1 (ja) * 2015-05-26 2016-12-01 株式会社日立製作所 ストレージ装置、及び方法
JP2018173959A (ja) * 2017-03-31 2018-11-08 三星電子株式会社Samsung Electronics Co.,Ltd. NVMe−oF装置用ストレージ集積方法、NVMe−oFイーサネットSSDのグループにNVMe−oF SSD容量を集積する方法、及び集積されたイーサネットSSDグループ
CN109144888A (zh) * 2017-06-28 2019-01-04 东芝存储器株式会社 存储器系统

Also Published As

Publication number Publication date
US11327653B2 (en) 2022-05-10
CN112346653A (zh) 2021-02-09
JP6942163B2 (ja) 2021-09-29
JP2021026541A (ja) 2021-02-22
US20210042032A1 (en) 2021-02-11

Similar Documents

Publication Publication Date Title
CN112346653B (zh) 驱动器箱、存储系统和数据传送方法
US10853274B2 (en) Primary data storage system with data tiering
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
US8788786B2 (en) Storage system creating cache and logical volume areas in flash memory
US20200019516A1 (en) Primary Data Storage System with Staged Deduplication
EP3188449B1 (en) Method and system for sharing storage resource
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US8195913B2 (en) Data storage control on storage devices
EP0869438B1 (en) Heterogeneous computer system, heterogeneous input/output system and data back-up method for the systems
US7269646B2 (en) Method for coupling storage devices of cluster storage
US9122415B2 (en) Storage system using real data storage area dynamic allocation method
JP2007141216A (ja) 複数のプロトコルアクセス可能なosdストレージサブシステムのためのシステム、方法および装置
US8745326B2 (en) Request priority seek manager
US20070266218A1 (en) Storage system and storage control method for the same
US20090248916A1 (en) Storage system and control method of storage system
US20210133115A1 (en) Efficient memory usage for snapshots
US11201788B2 (en) Distributed computing system and resource allocation method
WO2019043815A1 (ja) ストレージシステム
JP2013101665A (ja) ストレージシステム
Zhang et al. VTarget: An improved software target emulator for SANs

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
GR01 Patent grant
GR01 Patent grant