CN115794676A - 存储系统 - Google Patents
存储系统 Download PDFInfo
- Publication number
- CN115794676A CN115794676A CN202210163361.2A CN202210163361A CN115794676A CN 115794676 A CN115794676 A CN 115794676A CN 202210163361 A CN202210163361 A CN 202210163361A CN 115794676 A CN115794676 A CN 115794676A
- Authority
- CN
- China
- Prior art keywords
- storage
- buffer
- hierarchy
- page
- pool
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
在进行层级型存储管理的存储系统中,设定适当的缓冲区域。存储系统包括提供存储池(102)的存储装置和将存储池(102)进行分层管理的存储管理部。在存储池(102)中设定第1层级(111)、第2层级(112)和第3层级(114)、和对其中作为缓冲对象层级的第3层级(114)读写数据时的作为缓冲被利用的缓冲区域即第3层级用缓冲(113)。存储管理部基于第3层级(114)的访问频率决定第3层级用缓冲(113)的大小。
Description
技术领域
本发明涉及存储系统。
背景技术
关于本发明,已知有下述的专利文献1。在专利文献1中公开有一种分布式存储系统,在分别具有存储设备的多个节点中,第1节点将多个用户数据与写入请求一起从上级装置接收,基于接收到的多个用户数据生成第1冗余代码,将生成的第1冗余代码和多个用户数据发送到其它节点,并将多个用户数据保存到存储设备,第2节点从多个其它节点接收用户数据和第1冗余代码,基于接收到的用户数据和第1冗余代码生成第2冗余代码,并将第2冗余代码保存到存储设备。
现有技术文献
专利文献
专利文献1:日本特开2020-144913号公报
发明内容
发明要解决的课题
近年来,以对象单位对数据进行处理的对象存储器的利用不断发展。在除了文件存储器和块存储器、还具有对象存储器的存储系统中,通常进行根据保存于存储器的数据种类将各存储层级化来管理的层级型存储管理(分层存储管理)。在这种层级型存储管理中,如保存于外部的对象存储器的数据那样,需要对访问延迟大的数据确保读取缓存和写入缓冲等缓冲区域。在缓冲区域的确保中,利用上级层级的存储容量的一部分,所以为了提供低成本且高性能的存储服务,需要设定适当的缓冲区域。但是,在专利文献1所记载的技术中,对该点的应对不充分。
因此,本发明中,其目的在于,在进行层级型存储管理的存储系统中,设定适当的缓冲区域。
用于解决课题的方法
本发明的第1方式的存储系统,包括使存储管理部工作的处理器和用于保存数据的存储装置,且具有由至少包含所述存储装置的多个种类的存储器构成的存储池,其中,所述存储管理部,将所述存储池的存储区域分层为多个层级,将各层级分别分配给具有不同的访问性能的所述存储器,基于数据的访问频率,从所述多个层级中决定要保存所述数据的层级,在所述存储池设置有对保存于作为所述多个层级中的至少一个层级的缓冲对象层级的数据进行临时保存的缓冲区域,将该缓冲区域分配给访问性能比分配了所述缓冲对象层级的存储器高的存储器,基于所述缓冲对象层级的访问频率决定所述缓冲区域的大小。
本发明的第2方式的存储系统的管理方法,其将存储池的存储区域分层为多个层级,将各层级分别分配给具有不同的访问性能的存储器,基于数据的访问频率,从所述多个层级中决定要保存所述数据的层级,在所述存储池设置有对保存于作为所述多个层级中的至少一个层级的缓冲对象层级的数据进行临时保存的缓冲区域,将该缓冲区域分配给性能比分配了所述缓冲对象层级的存储器高的存储器,基于所述缓冲对象层级的访问频率决定所述缓冲区域的大小。
发明效果
根据本发明,在进行层级型存储管理的存储系统中,能够设定适当的缓冲区域。
附图说明
图1是本发明的一个实施方式的存储系统的硬件结构图。
图2是表示包含本发明的一个实施方式的存储系统的计算机系统的结构例的图。
图3是表示包含本发明的一个实施方式的存储系统的计算机系统的结构例的图。
图4是表示本发明的一个实施方式的存储系统中的资源的对应关系的图。
图5是表示存储池的层级结构例的图。
图6是表示存储系统中的页面间的对应关系的图。
图7是表示各池页面的访问频率的例子的曲线图。
图8是表示存储于内存的表和程序的例子的图。
图9是表示性能信息表的例子的图。
图10是表示池页面/卷页面管理表的例子的图。
图11是表示卷页面/层级页面管理表的例子的图。
图12是表示层级大小-缓冲大小管理表的例子的图。
图13是表示层级页面/对象管理表的例子的图。
图14是表示缓冲页面/对象管理表的例子的图。
图15是表示层级移动对象页面管理表的例子的图。
图16是层级大小决定处理的流程图。
图17是缓冲大小决定处理的流程图。
图18是缓冲大小决定处理的流程图。
图19是存储服务处理的流程图。
图20是对象存储访问处理的流程图。
图21是缓冲页面回收处理的流程图。
图22是层级控制处理的流程图。
图23是访问频率监视处理的流程图。
图24是大小复查指示处理的流程图。
图25是大小变更处理的流程图。
附图标记说明
10…存储系统,11…CPU,12…内存,13…HBA,14…NIC,15…USB,16…VGA,17…存储装置,101…驱动器,102…存储池,103…虚拟卷,111…第1层级,112…第2层级,113…第3层级用缓冲,114…第3层级,211…存储利用计算机,212…管理用终端,213…带外部连接功能的存储器,221…对象存储服务,1200…性能信息表,1300…池页面/卷页面管理表,1400…卷页面/层级页面管理表,1500…层级大小-缓冲大小管理表,1600…层级页面/对象管理表,1700…缓冲页面/对象管理表,1800…层级移动对象页面管理表,2100…访问频率监视程序,2200…大小复查指示程序,2300…层级大小决定程序,2400…缓冲大小决定程序,2500…大小变更程序,2600…层级控制程序,2700…池管理程序,2800…存储服务程序,2900…对象存储访问程序,3000…缓冲页面回收程序
具体实施方式
以下,参照附图说明本发明的实施方式。为了说明的明确化,以下的记载和附图适当进行省略和简化。本发明不限制于本实施方式,与本发明的思想一致的所有应用例包含于本发明的技术范围内。只要没有特别限定,各构成要素可以是多个,也可以是单个。
在以下的说明中,例如,有时以“xxx表”或“xxx表”的表达说明各种信息,各种信息也可以以表或表以外的数据结构表达。为了表示各种信息不依赖于数据结构,有时将“xxx表”或“xxx表”称为“xxx信息”。
另外,在以下的说明中,在不区分同种要素进行说明的情况下,使用参照符号(或参照符号中共同部分),在区分同种要素进行说明的情况下,有时使用要素的ID(或要素的参照符号)。
另外,在以下的说明中,“存储系统”、“带外部连接功能的存储器”是包含一个以上的计算机的系统。因此,“存储系统”、“带外部连接功能的存储器”可以是一个计算机,也可以是多个计算机,除了计算机之外,也可以包含计算机以外的设备。该一个以上的计算机典型地包含至少一个物理计算机。
该一个以上的计算机也可以包含至少一个虚拟计算机。在该情况下,虚拟计算机内包的资源(后述的存储装置或驱动器等)也同样作为虚拟性的资源而构成。
另外,在以下的说明中,“存储利用计算机”和“管理用终端”也可以由一个以上的计算机构成。
在以下的说明中,有时以“程序”或其工艺为主语说明处理,但程序由处理器(例如,CPU(Central Processing Unit))执行,由此,一边适当使用存储资源(例如,内存)和/或通信接口装置(例如,通信端口)一边进行确定的处理,所以处理的主语也可以为处理器。处理器根据程序进行动作,由此,作为实现规定功能的功能部进行动作。包含处理器的装置和系统是包含这些功能部的装置和系统。
另外,在以下的说明中,“存储系统”、“带外部连接功能的存储器”是指具有物理性的存储设备的计算机,典型而言,也可以是具有非易失性的存储设备(例如辅助存储设备)的计算机。辅助存储设备例如可以是HDD(Hard Disk Drive)或SSD(Solid State Drive)。也可以在它们中混合存在不同种类的存储设备。
以下,对本发明的一个实施方式进行说明。
图1是本发明的一个实施方式的存储系统的硬件结构图。本实施方式的存储系统10例如由PC和服务器等计算机构成,包含:CPU(Central Processing Unit)11、内存12、HBA(Host Bus Adapter:主机总线适配器)13、NIC(Network Interface Card:网络接口卡)14、USB(Universal Serial Bus)15、VGA(Video Graphic Array)16、和存储装置17。这些构成要素通过内部总线或外部总线相互连接。
CPU11通过执行存储于内存12的各种程序,进行存储装置17的管理和控制。在内存12中存储有各种表,在执行程序时,根据需要参照和更新保存于表的数据。此外,关于存储于内存12的表和程序的详情,在后面叙述。
HBA13、NIC14、USB15和VGA16进行分别在与规定的外部装置之间输入输出的数据的接口处理。此外,也可以使用其以外的装置进行与外部装置的接口处理。
存储装置17是可保存各种数据的非易失性的记录介质,根据CPU11的控制进行数据的读写。存储装置17例如通过组合NVMe(Non-Volatile Memory express)驱动器、SAS(Serial Attached SCSI)驱动器、SATA(Serial ATA)驱动器等而构成。
图2和图3是表示包含本发明的一个实施方式的存储系统的计算机系统的结构例的图。图2的计算机系统是存储系统10在内部部署(on-premises)环境中被利用时的结构例,站点210和站点220经由因特网230连接。
图2的计算机系统中的站点210中,存储利用计算机211、管理用终端212、带外部连接功能的存储器(以下,简称为“存储器”)213和存储系统10经由交换机214相互连接。它们经由网关215与因特网230连接。存储利用计算机211是利用由存储系统10或存储器213提供的存储服务的计算机,例如由PC和各种IoT(Internet of Things:物联网)设备等构成。此外,图2中,在站点210中存在两台存储利用计算机211,但存储利用计算机211的台数不限于此。管理用终端212是由存储系统10的管理者操作的终端。管理者能够使用管理用终端212进行存储系统10的管理。
在站点220中包含对象存储服务221。对象存储服务221是通过云环境对存储利用计算机211、存储系统10、存储器213提供的对象存储器,经由网关222与因特网230连接。对象存储服务221经由因特网230与站点210连接,所以访问性能比站点210侧的存储器变低。
在图2的计算机系统中,存储系统10进行本身具有的存储装置17(参照图1)和存储器213、对象存储服务221的控制,根据来自存储利用计算机211的请求,向存储利用计算机211提供使用了这些存储容量的存储服务。
图3的计算机系统是在云环境上利用存储系统10作为实例时的结构例,与图2的计算机系统同样,站点210和站点220经由因特网230连接。
在图3的计算机系统中的站点210中,存储利用计算机211和存储器213经由交换机214相互连接,它们经由网关215与因特网230连接。
在站点220中包含对象存储服务221和实例223。实例223作为使用虚拟计算机和容器分别实现的虚拟性的系统,具有存储利用计算机211、管理用终端212和存储系统10。它们在实例223内经由虚拟性的交换机224相互连接。对象存储服务221和实例223经由网关222与因特网230连接。
此外,图3中,在站点210和站点220中分别各存在一台存储利用计算机211,但各站点中的存储利用计算机211的台数不限于此。另外,也可以仅在站点210和站点220的一者存在存储利用计算机211。
与图2的计算机系统同样,在图3的计算机系统中,存储系统10也进行本身具有的存储装置17(参照图1)和存储器213、对象存储服务221的控制,根据来自存储利用计算机211的请求,向存储利用计算机211提供使用了这些存储容量的存储服务。
此外,在图2和图3的计算机系统中,存储利用计算机211也可以不经由存储系统10而直接访问存储器213,能够利用存储器213的存储容量。另外,也可以在站点210中不设置存储器213。
图4是表示本发明的一个实施方式的存储系统中的资源的对应关系的图。例如如图4所示,本实施方式的存储系统10具有组合多个驱动器101(图1的存储装置17)而实现的存储池102。通过从存储利用计算机211直接访问该存储池102,或经由存储器213访问该存储池102,存储系统10能够对存储利用计算机211提供虚拟卷103。
存储器213也同样具有组合多个驱动器301a而实现的存储池302,对存储利用计算机211提供虚拟卷303。此外,通过使用存储系统10提供的虚拟卷103作为外部驱动器301b,与驱动器301a一起构成存储池302。
此外,图4所示的存储池102不包含图2、图3所示的对象存储服务221,但也可以利用对象存储服务221提供的存储容量作为存储池102的一部分。
接着,对存储系统10中的存储池102的逻辑结构进行说明。本实施方式的存储系统10采用将存储池102进行层级化进行管理的层级型存储管理。
图5是表示存储池102的层级结构例的图。图5(a)表示在存储池102中设置缓冲专用区域时的层级结构例。在该情况下,例如存储池102包含第1层级111、第2层级112、第3层级用缓冲113和第3层级114而构成。
第1层级111是用于保存高速访问所需要的数据的存储层级,保存于该层级的数据物理性地保存于高速驱动器101a。第2层级112是用于保存允许速度比第1层级111低的访问的数据的存储层级,保存于该层级的数据物理性地保存于低速驱动器101b。第3层级114保存访问频率比第1层级111和第2层级112低的数据,保存于该层级的数据物理性地保存于由对象存储服务221提供的存储器。这样,第1层级111、第2层级112、第3层级114的各层级通过CPU11的控制,分别分配给具有不同的访问性能的存储器。第3层级用缓冲113是读写保存于第3层级114的数据时的读取缓存和写入缓冲中利用的缓冲区域,分配与第2层级112相同的低速驱动器101b,但也可以分配高速驱动器101a或内存等存储系统10内的其它存储装置。要写入到第3层级114的数据临时保存于第3层级用缓冲113,之后保存于第3层级114(写入缓冲),或者,从第3层级114读取的数据临时保存于第3层级用缓冲113,并且在读取对象数据存在于第3层级用缓冲113时收到读取请求的情况下,不从第3层级114而从第3层级用缓冲113进行读出(读取缓存)。这样,CPU11进行存储系统10的控制,以将第3层级用缓冲113分配给访问性能比分配了作为缓冲对象的第3层级114的对象存储服务221高的存储器(低速驱动器101b、高速驱动器101a等)。
图5(b)表示存储池102中兼用存储层级和缓冲区域时的层级结构例。在该情况下,例如存储池102利用第2层级112的一部分作为第3层级用缓冲113。第1层级111和第3层级114分别与图5(a)同样。
在本实施方式的存储系统10中,能够使用图5(a)或图5(b)中的任一层级结构进行管理。此外,图5(a)、图5(b)中,说明了存储池102具有从第1层级111至第3层级114的三个阶段的层级结构的例子,但在存储池102中设定的层级数不限定于此。
图6是表示存储系统10中的页面间的对应关系的图。如图4和图5中进行的说明,在存储系统10中,通过多个驱动器101(高速驱动器101a,低速驱动器101b)和对象存储服务221构成具有层级结构的存储池102,将该存储池102作为虚拟卷103提供给存储利用计算机211。因此,虚拟卷103的各页面与存储池102中的任一层级的页面、多个驱动器101中的任一个或对象存储服务221的对象中的页面分别建立对应。
具体而言,例如如图6所示,虚拟卷103中的页面121与存储池102的第1层级111的页面122和多个高速驱动器101a中的任一个的页面123分别对应。另外,虚拟卷103中的页面131与存储池102的第3层级用缓冲113中的页面132和多个低速驱动器101b中的任一个的页面133分别对应。同样,虚拟卷103中的页面141与存储池102的第3层级114的页面142和对象存储服务221的对象中的页面143分别对应。
在本实施方式的存储系统10中,使用存储于内存12的规定的管理表进行上述那样的页面间的对应关系的管理。此外,关于该管理表的详情,在后面叙述。
接着,对本实施方式的存储系统10中的存储池102的各层级的大小决定方法进行说明。在本实施方式的存储系统10中,基于存储池102中的各页面(以下,称为“池页面”)的访问频率,决定在存储池102设定的各层级的大小(页面数)。例如,能够以包含处于对各层级预定的访问频率的范围内的所有的池页面的方式,决定各层级的大小。
图7是表示存储池102中的各池页面的访问频率的例子的曲线图。在图7中,曲线601是以频率分布表示各池页面的访问频率的例子,横轴表示页面编号,纵轴表示访问频率(IOPH)。另外,曲线602是以累积频率分布表示各池页面的访问频率的例子,横轴表示页面编号,纵轴表示访问频率相对于存储池102整体的累积频率。此外,曲线601、602中的横轴的页面编号表示将各池页面从访问频率高的池页面起依次排列排序时的一系列编号,最小值为1,最大值为N。即,存储池102的总页面数为N,在各池页面中按照访问频率的顺序设定1~N的页面编号。
本实施方式的存储系统10能够基于曲线601,通过例如下面那样的方法分别设定存储池102中的第1层级111、第2层级112、第3层级114的大小。
首先,以规定的访问频率x1以上的池页面包含于第1层级111的方式,在曲线601中选择访问频率的值为x1的池页面(页面编号n1)。然后,通过求得页面编号1~n1的各池页面的合计大小(合计页面数),决定第1层级111的大小。接着,以规定的访问频率x2以上且低于x1(x1>x2)的池页面包含于第2层级112的方式,在曲线601中选择访问频率的值为x2的池页面(页面编号n2)。然后,通过求得页面编号n1+1~n2的各池页面的合计大小(合计页面数),决定第2层级112的大小。最后,以剩余的所有池页面包含于第3层级114的方式,决定第3层级114的大小。
另外,本实施方式的存储系统10能够基于曲线602,通过例如下面那样的方法分别设定存储池102中的第1层级111、第2层级112、第3层级114的大小。
首先,以从访问频率高的池页面依次至成为规定的累积频率y1的池页面包含于第1层级111的方式,在曲线602中选择池页面(页面编号n1)。累积频率y1基本上是管理者可自由设定的值。但是,在资源中具有物理性的制约的情况下,累积频率y1是将作为与第1层级对应的存储装置的高速驱动器101可对应的访问量或容量设为上限而确定的值。如公共云那样实质上在资源中没有物理性的制约的情况不限于此。然后,通过求得页面编号1~n1的各池页面的合计大小(合计页面数),决定第1层级111的大小。接着,以直到规定的累积频率y2(y2>y1)的池页面包含于第2层级112的方式,在曲线602中选择累积频率的值成为y2的池页面(页面编号n2)。然后,通过求得页面编号n1+1~n2的各池页面的合计大小(合计页面数),决定第2层级112的大小。最后,以剩余的所有池页面包含于第3层级114的方式,决定第3层级114的大小。
在本实施方式的存储系统10中,能够通过以上说明那样的方法,分别设定第1层级111、第2层级112、第3层级114的大小。此时,也可以采用曲线601中说明的方法和曲线602中说明的方法中的任一方法。此外,在本说明中叙述了所有的层级的大小可变的情况下的方法,但一部分层级或所有的层级的大小也可以固定。另外,即使在使用了任一方法的情况下,第3层级用缓冲113的缓冲大小k也小于第3层级114的大小。关于该缓冲大小k的决定方法,在后面叙述。
接着,以下说明本实施方式的存储系统10中的表和程序。在本实施方式的存储系统10中,如上所述在内存12中存储有各种表和程序,使用这些表和程序进行存储系统10的控制。由此,实现将存储系统10提供的存储池102如图5那样层级化并管理的层级型存储管理。
图8是表示存储于内存12的表和程序的例子的图。如图8所示,在内存12中存储有性能信息表1200、池页面/卷页面管理表1300、卷页面/层级页面管理表1400、层级大小-缓冲大小管理表1500、层级页面/对象管理表1600、缓冲页面/对象管理表1700、层级移动对象页面管理表1800的各表、和访问频率监视程序2100、大小复查指示程序2200、层级大小决定程序2300、缓冲大小决定程序2400、大小变更程序2500、层级控制程序2600、池管理程序2700、存储服务程序2800、对象存储访问程序2900、缓冲页面回收程序3000的各程序。
性能信息表1200是表示存储池102的各页面(池页面)的性能信息的表。池页面/卷页面管理表1300是表示各池页面与哪一个卷的哪一个页面(卷页面)对应的关系的表。卷页面/层级页面管理表1400是表示各卷页面与存储池102中哪一个层级的哪一个页面(层级页面)对应的关系的表。层级大小-缓冲大小管理表1500是表示在存储池102中设定的第1层级111、第2层级112、第3层级114的各层级和面向对象存储服务221的第3层级用缓冲113的大小、和保存它们的设备的种类的表。层级页面/对象管理表1600是表示与对象存储服务221对应的第3层级114的各层级页面的编号、和对于与该页面对应的对象存储服务221的各对象设定的对象ID的对应关系的表。缓冲页面/对象管理表1700是表示面向对象存储服务221的第3层级用缓冲113的各页面(缓冲页面)的编号和对象存储服务221的各对象页面的对象ID的对应关系的表。层级移动对象页面管理表1800是表示设为层级移动的对象的各池页面的当前的层级编号和移动目的地的层级编号的表。
图9是表示性能信息表1200的例子的图。性能信息表1200与存储池102的各池页面对应地设定记录。各记录具有页面编号1201、IOPH1202、传输率1203、访问时间1204的信息。
页面编号1201是各池页面中固有的编号,为了唯一地识别各池页面而使用。IOPH1202包含最近值1221和计数器1222而构成。最近值1221表示最近的一定期间(例如1小时)内的各页面的访问次数(访问频率),计数器1222表示当前合计中的各页面的访问次数。传输率1203包含最近值1231和计数器1232而构成。最近值1231表示最近的一定期间(例如1小时)内的各页面的传输数据量(传输率),计数器1222表示当前合计中的各页面的传输数据量。访问时间1204表示最后访问各页面的日期时刻。
当进行对存储池102的访问时,CPU11在性能信息表1200中符合的池页面的记录中,分别更新计数器1222、1232的值。另外,当经过一定期间时,向最近值1221、1231分别复制目前为止合计的计数器1222、1232的值,并且将计数器1222、1232的值复位成0后,重新开始它们的合计。由此,能够对每个池页面求得存储池102的性能。
图10是表示池页面/卷页面管理表1300的例子的图。池页面/卷页面管理表1300与存储池102的各池页面对应地设定记录。各记录具有池页面编号1301、卷编号1302、卷页面编号1303的信息。
池页面编号1301是各池页面中固有的编号,与图9所示的性能信息表1200的页面编号1201对应。卷编号1302表示在池上创建的虚拟卷103的编号。卷页面编号1303表示各卷中的卷页面的编号。本附图中,为了容易理解,通过卷编号和页面编号的组合进行表达,但对于每个各卷只要是顺序的编号即可。
当进行从存储利用计算机211向存储池102的访问请求时,CPU11通过参照池页面/卷页面管理表1300,能够访问存储装置17或对象存储服务221中对应的卷页面。
图11是表示卷页面/层级页面管理表1400的例子的图。卷页面/层级页面管理表1400与存储装置17和对象存储服务221的各卷页面对应地设定记录。各记录具有卷编号1401、卷页面编号1402、层级编号1403、层级页面编号1404的信息。
卷编号1401表示在池上创建的虚拟卷103的编号,与图10所示的池页面/卷页面管理表1300的卷编号1302对应。卷页面编号1402是每个卷中固有的编号,与图10所示的池页面/卷页面管理表1300的卷页面编号1303对应。层级编号1403表示与各卷页面所属的卷对应的存储池102的层级的编号。层级页面编号1404表示各卷页面对应的层级页面的编号,是各个层级中固有的编号。
CPU11通过参照卷页面/层级页面管理表1400,能够获取卷页面和层级页面的对应关系。
图12是表示层级大小-缓冲大小管理表1500的例子的图。层级大小-缓冲大小管理表1500与在存储池102设定的各层级和缓冲对应地设定记录。各记录具有层级-缓冲编号1501、大小1502、保存设备1503的信息。
层级-缓冲编号1501表示各层级或缓冲的编号,例如以分别表示上述的第1层级111、第2层级112、第3层级114的“T1”、“T2”、“T3”的层级编号和表示第3层级用缓冲113的“B3”的缓冲编号等表达。大小1502表示各层级或缓冲的数据大小。保存设备1503表示保存各层级或缓冲的存储器的种类,以表示存储系统10的驱动器101的种类和对象存储服务221的字符等表达。
CPU11通过参照层级大小-缓冲大小管理表1500,能够获取存储池102中的各层级和缓冲的设定信息。
图13是表示层级页面/对象管理表1600的例子的图。层级页面/对象管理表1600与存储池102的各层级页面对应地设定记录。各记录具有层级页面编号1601、对象ID1602的信息。
层级页面编号1601表示通过层级编号和页面编号的组合而表达的各层级页面的编号,与图11所示的卷页面/层级页面管理表1400的层级页面编号1404对应。对象ID1602表示各层级页面对应的对象的ID。
CPU11通过参照层级页面/对象管理表1600,能够获取层级页面和对象的对应关系。
图14是表示缓冲页面/对象管理表1700的例子的图。缓冲页面/对象管理表1700与存储池102的各缓冲页面对应地设定记录。各记录具有缓冲页面编号1701、对象ID1702的信息。
缓冲页面编号1701表示各缓冲页面的编号,是缓冲中固有的编号。对象ID1702表示各缓冲页面对应的对象页面的ID。
CPU11通过参照缓冲页面/对象管理表1700,能够获取缓冲页面和对象的对应关系。
图15是表示层级移动对象页面管理表1800的例子的图。层级移动对象页面管理表1800与存储池102中被指定为层级移动的对象的各池页面对应地设定记录。各记录具有池页面编号1801、当前的层级编号1802、移动目的地层级编号1803的信息。
池页面编号1801是用于确定被指定为层级移动的对象的池页面的编号,与图10所示的池页面/卷页面管理表1300的池页面编号1301对应。当前的层级编号1802和移动目的地层级编号1803是分别表示各池页面的当前的层级和移动目的地的层级的编号,与图11所示的卷页面/层级页面管理表1400的层级编号1403对应。
当将存储池102中任一池页面指定为层级移动的对象时,CPU11将该池页面的记录登记于层级移动对象页面管理表1800中,设定池页面编号1801、当前的层级编号1802、移动目的地层级编号1803的各信息。通过参照这些信息,能够使该池页面从最初的层级向其它的层级移动。
访问频率监视程序2100是用于监视存储池102的各池页面的访问频率并更新性能信息表1200的程序。大小复查指示程序2200是用于定期地复查在存储池102设定的各层级和缓冲的大小的程序。层级大小决定程序2300是用于决定将存储池102层级化时的各层级的大小的程序。缓冲大小决定程序2400是用于决定将存储池102层级化时的缓冲大小的程序。大小变更程序2500是用于反映大小复查指示程序2200中复查的各层级和缓冲的大小的程序。层级控制程序2600是用于决定存储池102中设为层级移动的对象的池页面,且移动该池页面的层级的程序。池管理程序2700是通过进行存储系统10中的卷的追加、删除和随之的各表的更新等,用于进行存储池102的管理的程序。存储服务程序2800是用于根据来自存储利用计算机211的访问请求进行向存储装置17或对象存储服务221的访问,且更新性能信息表1200的程序。对象存储访问程序2900是在具有从存储利用计算机211向存储系统10管理的对象存储服务221的访问请求的情况下,用于根据该访问请求进行对象存储服务221的读写的程序。缓冲页面回收程序3000是用于将一定期间没有访问的缓冲页面从第3层级用缓冲113赶出并释放的程序。CPU11通过执行这些程序,能够作为将存储池102层级化并管理的存储管理部发挥作用。
图16是通过CPU11执行层级大小决定程序2300而进行的层级大小决定处理2301的流程图。
在步骤2302中,从性能信息表1200获取各池页面的访问频率的信息。在此,通过获取性能信息表1200中设定于各记录的IOPH1202的值(最近值1221的值),能够获取各池页面的访问频率。
在步骤2303中,将步骤2302中获取的各池页面的访问频率以降序即从访问频率高的池页面起依次排列排序。由此,得到图7的曲线601中示例那样的各池页面的访问频率的频率分布。
在步骤2304中,计算步骤2303中排序后的各池页面的访问频率的累积频率分布。由此,得到图7的曲线602中示例那样的各池页面的访问频率的累积频率分布。
在步骤2305中,对于存储池102中可进行大小变更的每个层级,实施重复进行步骤2306、2307的处理的循环处理。以下,将此次循环处理的实施对象层级设为第i个层级,说明步骤2306、2307的处理。即,在对图5中示例的第1层级111、第2层级112、第3层级114实施循环处理的情况下,对于i=1~3的各层级分别进行步骤2306、2307的处理。
在步骤2306中,获取步骤2303中得到的频率分布中靶材相对于第i个层级的访问频率值xi,或步骤2304中得到的累积频率分布中靶材相对于第i个层级的累积频率值yi,并提取与这些值对应的排序后的页面编号ni、ni-1。由此,页面编号ni-1+1~ni的各池页面被决定为要保存于第i个层级的页面。此时,以访问频率越高的页面越是保存于上级的层级的方式,决定要保存到各层级的页面。此外,在i=1的情况下,为ni-1=n0=0,在i为存储池102中最下级的层级编号(例如i=3)的情况下,为ni=N。
在步骤2307中,根据步骤2306中提取出的页面编号ni、ni-1和存储池102的各池页面的大小决定第i个层级的大小。在此,如上所述,通过求得决定了向第i个层级的保存的页面编号ni-1+1~ni的各池页面的合计大小(合计页面数),决定第i个层级的大小。
对所有的层级进行步骤2306、2307的处理后,退出步骤2305的循环处理,结束图16的流程图所示的层级大小决定处理2301。
CPU11通过执行层级大小决定程序2300并进行上述的层级大小决定处理2301,能够基于将存储池102的访问频率以页面单位进行合计而得到的频率分布或累积频率分布,决定在存储池102设定的多个层级的各个大小。
此外,在上述的层级大小决定处理2301中,也可以按照每个访问种类(读取或写入)评价访问频率,决定各层级的大小。
图17是通过CPU11执行缓冲大小决定程序2400而进行的缓冲大小决定处理2401的流程图。
在步骤2402中,从性能信息表1200获取各池页面的访问频率的信息。在此,通过获取性能信息表1200中设定于各记录的IOPH1202的值(最近值1221的值),能够获取各池页面的访问频率。
在步骤2403中,基于步骤2402中获取的各池页面的访问频率,计算缓冲对象的层级即与对象存储服务221对应的层级(以下,称为“对象存储层级”)的大小。在此,能够根据例如图16的由层级大小决定处理2301决定完成的上级层级的大小,计算对象存储层级的大小。具体而言,例如在图5的例子中,根据作为上级层级的第1层级111和第2层级112的大小,计算作为对象存储层级的第3层级114的大小。此外,也可以通过使用层级大小决定处理2301中决定的对象存储层级的大小,省略步骤2403的处理。
在步骤2404中,通过合计步骤2402中获取的各池页面的访问频率,计算对于存储池102内的全部层级的访问频率值的合计a。
在步骤2405中,通过合计步骤2402中获取的各池页面的访问频率中、分配给对象存储层级(第3层级114)的各池页面的访问频率,计算对于对象存储层级的访问频率b。然后,通过计算的对象存储层级的访问频率b除以步骤2404中求得的全部层级的访问频率值的合计a,计算相对于存储池102整体的对象存储层级的访问频率的比例b/a。
在步骤2406中,基于预先设定的对象存储服务221的期待访问概率c和步骤2405中求得的访问频率比例b/a,决定相对于对象存储层级的缓冲区域的大小。在此,例如当将步骤2403中求得的对象存储层级的大小设为s时,通过以下的式(1)计算表示缓冲区域(第3层级用缓冲113)的大小的缓冲大小k。此外,期待访问概率c是进行从存储利用计算机211向对象存储层级的访问请求的概率的预想值,能够根据预先的模拟结果或类似系统的现有技术的统计值等确定。
k=s×c×b/a……(1)
在步骤2406中决定缓冲大小k后,结束图17的流程图所示的缓冲大小决定处理2401。
CPU11执行缓冲大小决定程序2400并进行上述的缓冲大小决定处理2401,由此,能够基于作为缓冲对象层级的对象存储层级的各页面的访问频率的合计b、和与对象存储层级对应的对象存储服务221的期待访问概率c,决定作为缓冲区域的第3层级用缓冲113的大小k。
或,也可以通过与上述的缓冲大小决定处理2401不同的缓冲大小决定处理2411,决定缓冲区域的大小。图18是通过CPU11执行缓冲大小决定程序2400而进行的缓冲大小决定处理2411的流程图。
在步骤2412中,与图17的步骤2402同样,从性能信息表1200获取各池页面的访问频率的信息。
在步骤2413中,选择存储池102的成本函数。在此选择的成本函数是表示将存储池102进行层级化时的层级整体中的访问成本的函数,例如通过以下的式(2)表示。
在式(2)中,Ci(k,ni)表示相对于第i个层级的成本函数。此外,第T个层级是由对象存储服务221提供的存储层级,在图5的例子中,第3层级114相当于该层级(T=3)。即,由式(2)计算的成本函数是合计所有的层级的成本函数的函数。
在此,由对象存储服务221提供的第T个层级的成本函数通过以下的式(3)表示。
CT(k,nT)=B(k,nT)+O(k,nT)……(3)
在式(3)中,B(k,nT)表示对于对象存储服务221的缓冲区域,即第3层级用缓冲113的成本函数。另外,O(k,nT)是处于缓冲区域(第3层级用缓冲113)外的各页面的成本函数,通过以下的式(4)求得。
O(k,nT)=U×P(k,nT)×Q(k,nT)……(4)
在式(4)中,U表示对于向对象存储服务221的访问的惩罚值。另外,P(k,nT)表示向对象存储层级的访问概率,Q(k,nT)表示向对象存储层级访问时改写缓冲区域的页面的概率。它们分别通过以下的式(5)、(6)来计算。
在式(5)中(6)中,xij表示第i层级的第j页面的访问频率。此外,在i=T的情况下,xTj表示第T层级即对象存储层级的第j页面的访问频率。另外,nT表示第T层级即对象存储层级的合计页面数,k表示缓冲大小即缓冲区域的合计页面数。即,基于存储池102的各层级的访问频率计算通过上述的式(2)表示的存储池102的成本函数Call(k)。
在步骤2414中,求得将步骤2413中选择的存储池102的成本函数最小化的缓冲大小值。在此,通过求得以上述的式(2)表示的成本函数的值成为最小的k的值,决定缓冲大小的值。
在步骤2415中,将步骤2414中求得的k的值,即、使存储池102的成本函数最小化的缓冲大小决定为相对于对象存储层级的缓冲区域的大小。
在步骤2415中决定缓冲大小区域的大小k后,结束图18的流程图所示的缓冲大小决定处理2411。
CPU11执行缓冲大小决定程序2400并进行上述的缓冲大小决定处理2411,由此,能够基于表示基于存储池102的各层级的访问频率的访问成本的成本函数Call(k)、和变更了作为缓冲区域的第3层级用缓冲113的大小时的成本函数Call(k)的变化,决定第3层级用缓冲113的大小k。
此外,在上述的缓冲大小决定处理2401、2411中,也可以按照每个访问种类(读取或写入)评价访问频率,决定缓冲区域的大小。
图19是通过CPU11执行存储服务程序2800而进行的存储服务处理2801的流程图。
在步骤2802中,判定存储利用计算机211是否接收到作为对虚拟卷103的访问请求的IO请求。在步骤2802中待机直到接收到IO请求,接收到IO请求后,进入步骤2803。
在步骤2803中,参照卷页面/层级页面管理表1400,判定步骤2802中接收到的IO请求是否为对于对象存储层级的页面的IO请求。其结果是,在为对于对象存储层级的页面的IO请求的情况下,进入步骤2901,在为对于其它层级的页面的IO请求的情况下,进入步骤2804。
在步骤2901中,作为对于对象存储层级的页面的访问处理,执行对象存储访问处理。此外,关于对象存储访问处理的详情,参照图20在后面叙述。
在步骤2804中,作为对于对象存储层级以外的层级的页面的访问处理,执行驱动器访问处理。在此,从存储装置17的多个驱动器101具有的卷页面中指定与接收到的IO请求对应的卷页面,对该卷页面读写数据,由此,执行驱动器访问处理。
执行了步骤2901或步骤2804的处理之后,在步骤2805中,反映这些处理结果并更新性能信息表1200。在此,例如在图9的性能信息表1200中,更新符合页面的符合访问种类(读取或写入)的计数器1222、1232的值,并且更新访问时间1204。
在步骤2805中更新性能信息表1200后,返回到步骤2802,待机至接收到下一IO请求。
CPU11执行存储服务程序2800并进行上述的存储服务处理2801,由此,能够根据来自存储利用计算机211的访问请求,进行向存储装置17或对象存储服务221中符合的页面的访问。
图20是通过CPU11执行对象存储访问程序2900而进行的对象存储访问处理2901的流程图。在图19的存储服务处理2801中,该对象存储访问处理2901在步骤2901中被调出并执行。
在步骤2902中,参照缓冲页面/对象管理表1700,判定与图19的步骤2802中接收到的IO请求对应的页面是否作为缓冲页面存在于缓冲区域(第3层级用缓冲113)内。其结果是,在符合的页面作为缓冲页面存在的情况下,进入步骤2903,在不存在的情况下,进入步骤3001。
在步骤2903中,执行对于与IO请求对应的缓冲页面的访问处理。在执行步骤2903的处理后,结束图20的流程图所示的对象存储访问处理2901。
在步骤3001中,作为用于将一定期间没有访问的缓冲页面从第3层级用缓冲113赶出并释放的处理,执行缓冲页面回收处理。此外,关于缓冲页面回收处理的详情,参照图21在后面叙述。
在步骤2904中,判定IO请求是否为读取请求。其结果是,在为读取请求的情况下,进入步骤2905,在不是读取请求的情况下,即、为写入请求的情况下,进入步骤2907。
在步骤2905中,参照层级页面/对象管理表1600,从由对象存储服务221提供的对象存储器,获取与读取请求的页面对应的对象。接着,在步骤2906中,将步骤2905中获取的对象的数据写入缓冲区域内的空闲缓冲页面。
在步骤2907中,将写入请求的数据写入缓冲区域内的空闲缓冲页面。此外,步骤2907中保存于缓冲区域(第3层级用缓冲113)的数据,之后通过CPU11的处理,在适当的时刻保存于对象存储器(第3层级114)中。
执行了步骤2906或步骤2907的处理后,在步骤2908中,反映这些处理结果,更新缓冲页面/对象管理表1700。
在执行步骤2908的处理后,结束图20的流程图所示的对象存储访问处理2901。
CPU11执行对象存储访问程序2900并进行上述的对象存储访问处理2901,由此,能够根据来自存储利用计算机211的访问请求,经由缓冲页面进行向对象存储服务221的访问。
图21是通过CPU11执行缓冲页面回收程序3000而进行的缓冲页面回收处理3001的流程图。在图20的对象存储访问处理2901中,该缓冲页面回收处理3001在步骤3001中被调出并执行。
在步骤3002中,参照性能信息表1200,在缓冲区域(第3层级用缓冲113)中,提取某一定期间(例如1小时)以上没有访问的缓冲页面。
在步骤3003中,按照步骤3002中提取出的每个缓冲页面,实施重复进行步骤3004的处理的循环处理。
在步骤3004中,计算处理对象的缓冲页面的等级值。在此,通过例如以下的式(7)计算第j个缓冲页面的等级值Rj。
Rj=wp×wij+rp×rij……(7)
在式(7)中,wp表示写入时的惩罚系数,例如设定对于“PUT”和“GET”的命令的对象存储服务221的响应时间的合计值和规定的常数等。另外,rp表示读取时的惩罚系数,例如设定对于“GET”的命令的对象存储服务221的响应时间和规定的常数等。wij、rij分别表示对于第j个缓冲页面的写入和读取的访问频率。
对所有的缓冲页面进行步骤3004的处理后,退出步骤3003的循环处理,进入步骤3005。
在步骤3005中,从步骤3004中计算出的等级值低的等级起,以与预先指定的页面数量,依次实施重复进行步骤3006的处理的循环处理。
在步骤3006中,通过消去缓冲区域中保存于处理对象的缓冲页面的数据,释放与该缓冲页面符合的缓冲。此时,在符合的缓冲页面中具有脏数据(向对象存储器的写入未完成的数据)的情况下,将该数据发送到对象存储服务221后,释放缓冲。
从等级值低的等级起以升序对预先指定的页面数的各缓冲页面进行步骤3006的处理后,退出步骤3005的循环处理,结束图21的流程图所示的缓冲页面回收处理3001。
CPU11执行缓冲页面回收程序3000并进行上述的缓冲页面回收处理3001,由此,在作为缓冲区域的第3层级用缓冲113中提取一定期间以上没有访问的多个页面,并且基于提取出的各页面的访问频率计算等级值,在将等级值按升序排列时,能够释放从上级至规定数的页面。即,能够基于向提取出的各页面的数据的访问频率,释放规定数的页面。
图22是通过CPU11执行层级控制程序2600而进行的层级控制处理2601的流程图。例如执行图16的层级大小决定处理2301且决定存储池102的各层级的大小后,对各层级分配与大小对应的页面时,或在任意时刻根据各页面的访问频率进行层级的复查时等执行该处理。
在步骤2602中,对于在存储池102设定的所有的层级,从上级层级起依次分别实施重复进行步骤2603~2605的处理的循环处理。例如在图5中示例的存储池102的层级结构的情况下,按照第1层级111、第2层级112、第3层级114的顺序实施步骤2602的循环处理。
在步骤2603中,对于在存储池102内未分配层级的池页面和被指定为层级的复查对象的池页面的全部,从上述的式(7)中求得的等级值高的等级起,按照顺序分别实施重复进行步骤2604、2605的处理的循环处理,直到处理对象的层级的大小中没有空闲为止。
在步骤2604中,将处理对象的层级设为复查后的层级,判定当前保存处理对象的页面的层级和复查后的层级是否相同。其结果是,在这些层级不同的情况下进入步骤2605,在相同的情况下,不执行步骤2605的处理,转移到下一循环处理。此外,在处理对象的页面还未分配给任何层级的情况下,只要在步骤2604中判定为否而进入步骤2605即可。
在步骤2605中,在层级移动对象页面管理表1800中追加条目。在此,在图15的示例的层级移动对象页面管理表1800中,追加与处理对象的页面对应的记录,对该记录设定池页面编号1801、当前的层级编号1802、移动目的地层级编号1803的各信息,由此,追加与处理对象的页面对应的条目。
对于存储池102的全部层级,分别以空闲页面的量进行步骤2604、2605的处理后,退出步骤2602的循环处理,进入步骤2606。
在步骤2606中,参照层级移动对象页面管理表1800,对于在此记录的所有的层级对象移动页面,分别实施重复进行步骤2607~2609的处理的循环处理。
在步骤2607中,将当前保存于处理对象的页面的数据复制到移动目的地的页面。
在步骤2608中,更新卷页面/层级页面管理表1400。在此,在卷页面/层级页面管理表1400中、与处理对象的页面对应的记录中,分别更新层级编号1403、层级页面编号1404的值。
在步骤2609中,删除保存于移动源的页面的数据,释放该页面。
对所有的层级对象移动页面进行步骤2607~2609的处理后,退出步骤2606的循环处理,结束图22的流程图所示的层级控制处理2601。
CPU11执行层级控制程序2600并进行上述的层级控制处理2601,由此,能够对存储池102的各层级分配与大小对应的页面。即,能够基于存储池102的各页面的访问频率,决定要保存于各层级的页面,基于决定保存的页面的大小的合计,决定各层级的大小。
图23是通过CPU11执行访问频率监视程序2100而进行的访问频率监视处理2101的流程图。
在步骤2102中,每隔一定时间(例如1小时)分别实施重复进行步骤2103~2105的处理的循环处理。
在步骤2103中,对存储池102的全部页面分别实施重复进行步骤2104、2105的处理的循环处理。
在步骤2104中,将性能信息表1200中与处理对象的页面对应的计数器1222、1232的值,按照对应的最近值1221、1231的单位分别标准化,将该标准化的值分别保存于最近值1221、1231。由此,使在一定期间内得到的计数器1222、1232的合计值分别反映到最近值1221、1231。
在步骤2105中,将步骤2104中反映到最近值1221、1231的计数器1222、1232的值分别初始化为0。
对存储池102的全部页面进行步骤2104、2105的处理后,退出步骤2103的循环处理,结束图23的流程图所示的访问频率监视处理2101。
CPU11执行访问频率监视程序2100并进行上述的访问频率监视处理2101,由此,能够每隔一定时间对性能信息表1200进行复位。
图24是通过CPU11执行大小复查指示程序2200而进行的大小复查指示处理2201的流程图。
在步骤2202中,每隔一定时间(例如1小时)分别实施循环处理。在该循环处理中,分别实施图16中说明的层级大小决定处理2301、和图17、18中分别说明的缓冲大小决定处理2401、2411中的任一处理,并且实施大小变更处理2501。此外,关于大小变更处理2501的详情,参照图25在后面叙述。
CPU11执行大小复查指示程序2200并进行上述的大小复查指示处理2201,由此,能够每隔一定时间进行层级大小和缓冲大小的复查。
图25是通过CPU11执行大小变更程序2500而进行的大小变更处理2501的流程图。在图24的大小复查指示处理2201中,该大小变更处理2501在步骤2501中被调出并执行。
在步骤2502中,对存储池102中可进行大小变更的所有的层级,实施重复进行步骤2503~2507的处理的循环处理。
在步骤2503中,比较处理对象的层级的当前的大小、变更后的大小、即由图24的大小复查指示处理2201中执行的层级大小决定处理2301决定的大小。其结果是,在变更后的大小大于当前的大小的情况下进入步骤2504,在不是这样的情况下,即当前的大小为变更后的大小以上的情况下进入步骤2505。
在步骤2504中,对处理对象的层级追加驱动器。在此,在存储装置17或对象存储服务221中,通过追加用于保存该层级的数据的驱动器,扩展用于填补当前的大小和变更后的大小的差量的存储容量。
在步骤2505中,将处理对象的层级中的页面的一部分移动到下级的层级。在此,例如从上述的式(7)中求得的等级值低的等级起,以与当前的大小和变更后的大小的差量对应的步速(pace)数的量依次向下级的层级移动页面。
在步骤2506中,将通过在步骤2505中进行页面移动而成为空的驱动器从存储池102删除。
执行步骤2504或2506后,在步骤2507中,反映这些处理结果,更新层级大小-缓冲大小管理表1500。在此,在层级大小-缓冲大小管理表1500中,更新与处理对象的层级对应的记录的大小1502的值。
对可进行大小变更的所有的层级进行步骤2503~2507的处理后,退出步骤2502的循环处理,进入步骤2508。
在步骤2508中,比较缓冲区域(第3层级用缓冲113)的当前的大小、和变更后的大小即由图24的大小复查指示处理2201中执行的缓冲大小决定处理2401或2411决定的大小。其结果是,在变更后的大小大于当前的大小的情况下进入步骤2509,在不是这样的情况下,即当前的大小为变更后的大小以上的情况下进入步骤3001。
在步骤2509中,判定在存储池102中是否将缓冲区域设定为专用的区域。在如图5(a)中所示的层级结构例那样分别设置有位于对象存储层级的上级的层级和用于对象存储层级的数据的读写的缓冲区域的情况下,进入步骤2510。在不是这样的情况下,即如图5(b)中所示的层级结构例那样,位于对象存储层级的上级的层级的一部分兼作对象存储层级的缓冲区域的情况下,不执行步骤2510的处理,结束图25的流程图所示的大小变更处理2501。
在步骤2510中,对缓冲区域追加驱动器。在此,在存储装置17中,追加用于保存相对于对象存储服务221的缓冲数据的驱动器,扩展用于填补当前的缓冲大小和变更后的缓冲大小的差量的存储容量。之后,结束图25的流程图所示的大小变更处理2501。
在步骤3001中,通过实施图21中说明的缓冲页面回收处理,如上所述,将一定期间没有访问的缓冲页面从缓冲区域赶出并释放。
在步骤2512中,与步骤2509同样,判定在存储池102中是否将缓冲区域设定为专用的区域。在存储池102具有缓冲专用区域的情况下进入步骤2513,在不是这样的情况下不执行步骤2513的处理,结束图25的流程图所示的大小变更处理2501。
在步骤2513中,将通过步骤3001的缓冲页面回收处理而成为空的驱动器从存储池102删除。之后,结束图25的流程图所示的大小变更处理2501。
CPU11在图24的大小复查指示处理2201中执行大小变更程序2500并进行上述的大小变更处理2501,由此,能够在运用存储池102中,动态地变更在存储池102设定的各层级和缓冲区域的大小。
根据以上说明的本发明的一个实施方式,实现以下的作用效果。
(1)存储系统10包括使对存储池102进行层级化管理的存储管理部工作的CPU11和能够保存数据的存储装置17,且具有至少包含存储装置17的多个种类的存储器构成的存储池102。存储管理部(CPU11)将存储池102的存储区域层级化为第1层级111、第2层级112和第3层级114,将各层级分别分配给具有不同的访问性能的存储器(高速驱动器101a、低速驱动器101b、对象存储服务221),基于数据的访问频率,从第1层级111、第2层级112和第3层级114中决定保存数据的层级。然后,其中将作为缓冲区域的第3层级用缓冲113设置于存储池102,该缓冲区域对作为缓冲对象层级的第3层级114的数据进行临时保存,将该第3层级用缓冲113分配给访问性能比分配了第3层级114的存储器(对象存储服务221)高的存储器(低速驱动器101b)。然后,存储管理部(CPU11)通过缓冲大小决定处理2401、2411,基于第3层级114的访问频率决定第3层级用缓冲113的大小。这样,能够在进行层级型存储管理的存储系统10中,设定适当的缓冲区域。
(2)在存储池102设定的层级包含分配给访问性能比作为缓冲对象层级的第3层级114高的存储器(低速驱动器101b)的上级的第2层级112。第3层级用缓冲113分配给与该第2层级112相同的存储器(低速驱动器101b)。由于采用了这样的方式,即使不额外准备缓冲区域用的存储器,也能够将作为第3层级114的缓冲区域的第3层级用缓冲113设置于存储池102。
(3)存储管理部(CPU11)能够基于第3层级114的大小s、第3层级114的访问频率b、第3层级114的期待访问概率c,决定表示第3层级用缓冲113的大小的缓冲大小k(步骤2406)。由此,能够将缓冲大小k决定为适当的值。
(4)存储管理部(CPU11)也能够计算表示基于存储池102的各层级的访问频率的访问成本的成本函数Call(k)(步骤2413),基于计算的成本函数Call(k)和变更了第3层级用缓冲113的大小时的成本数Call(k)的变化,决定缓冲大小k(步骤2414、2415)。这样,也能够将缓冲大小k决定为适当的值。
(5)存储管理部(CPU11)通过大小变更处理2501,在存储池102的运用中动态地变更第3层级用缓冲113的大小(步骤2508~2513)。由于采用了这样的方式,即使在存储池102的运用中,也能够将第3层级用缓冲113的大小总是保持成最佳的状态。
(6)存储管理部(CPU11)通过层级大小决定处理2301,基于存储池102的各页面的访问频率,决定保存于第1层级111、第2层级112和第3层级114的各层级的页面(步骤2306)。即,以访问频率越高的页面越是保存于上级的层级的方式,决定要保存于各层级的页面。然后,基于决定到保存的页面的大小的合计,决定各层级的大小。具体而言,基于将存储池102的访问频率以页面单位进行合计而得到的频率分布或累积频率分布,决定第1层级111、第2层级112和第3层级114各自的大小(步骤2306、2307)。由于采用了这样的方式,能够根据每个页面的访问频率分别适当地决定各层级的大小和保存于各层级的页面。
(7)构筑存储池102的存储器包含经由网络与存储系统10连接的对象存储器。存储管理部(CPU11)将作为缓冲区域的第3层级用缓冲113分配给存储系统10具有的存储装置17,将作为缓冲对象层级的第3层级114分配给对象存储器。另外,能够将从外部提供的作为存储服务的对象存储服务221用作分配给第3层级114的对象存储器。由于采用了这样的方式,在包含对象存储器的存储系统10中,能够实现具有缓冲区域的层级化结构。
(8)例如如图5(b)所示,CPU11能够将作为第3层级114的上级层级的第2层级112的一部分用作第3层级用缓冲113。由此,能够有效地利用存储池102的存储容量。
(9)CPU11通过大小变更处理2501,在存储池102的运用中分别动态地变更第2层级112和第3层级用缓冲113的大小(步骤2502~2513)。由于采用了这样的方式,即使在存储池102的运用中,也能够将第2层级112和第3层级用缓冲113的大小总是保持成最佳的状态。
(10)CPU11通过对象存储访问处理2901,将第3层级114的数据中存在访问的数据分别保存于第3层级用缓冲113和第3层级114中(步骤2907)。另外,通过缓冲页面回收处理3001,在第3层级用缓冲113中释放一定期间以上没有访问的数据的页面。具体而言,在第3层级用缓冲113中提取一定期间以上没有访问的多个页面(步骤3002)。然后,基于提取出的各页面的访问频率计算等级值(步骤3004),在将等级值按照升序排列时,释放从上级至规定数的页面(步骤3005~3006)。由此,基于向提取出的各页面的数据的访问频率释放规定数的页面。由于采用了这样的方式,能够有效地利用第3层级用缓冲113。
此外,本发明不限定于上述实施方式,可在不脱离其宗旨的范围内,使用任意的构成要素进行实施。例如,也可以不通过CPU11而通过FPGA(Field-Programmable GateArray)等硬件实现图16~图25中说明的各处理。
以上说明的实施方式和变形例只是一例,只要不损坏发明的特征,本发明就不限定于这些内容。另外,上述中说明了各种实施方式和变形例,但本发明不限定于这些内容。在本发明的技术思想的范围内考虑到的其它方式也包含于本发明的范围内。
Claims (12)
1.一种存储系统,其包括使存储管理部工作的处理器和用于保存数据的存储装置,且具有由至少包含所述存储装置的多个种类的存储器构成的存储池,所述存储系统的特征在于:
所述存储管理部,
将所述存储池的存储区域分层为多个层级,将各层级分别分配给具有不同的访问性能的所述存储器,
基于数据的访问频率,从所述多个层级中决定要保存所述数据的层级,
在所述存储池设置有对保存于作为所述多个层级中的至少一个层级的缓冲对象层级的数据进行临时保存的缓冲区域,将该缓冲区域分配给访问性能比分配了所述缓冲对象层级的存储器高的存储器,
基于所述缓冲对象层级的访问频率决定所述缓冲区域的大小。
2.如权利要求1所述的存储系统,其特征在于:
所述多个层级包含被分配给了访问性能比所述缓冲对象层级高的存储器的上级的层级,
所述缓冲区域被分配给与所述上级的层级相同的存储器。
3.如权利要求2所述的存储系统,其特征在于:
所述存储管理部基于所述缓冲对象层级的大小、所述缓冲对象层级的访问频率、所述缓冲对象层级的期待访问概率,决定所述缓冲区域的大小。
4.如权利要求2所述的存储系统,其特征在于:
所述存储管理部,基于根据所述存储池的各层级的访问频率的访问成本和变更了所述缓冲区域的大小时的所述访问成本的变化,决定所述缓冲区域的大小。
5.如权利要求2所述的存储系统,其特征在于:
所述存储管理部在所述存储池的运用中动态地变更所述缓冲区域的大小。
6.如权利要求2所述的存储系统,其特征在于:
所述存储管理部,基于所述存储池的各页面的访问频率,决定要保存于各层级的页面,基于决定了保存的页面的大小的合计,决定所述多个层级各自的大小。
7.如权利要求4所述的存储系统,其特征在于:
所述存储管理部,以访问频率越高的页面越是保存于上级的层级的方式,决定要保存于各层级的页面。
8.如权利要求1所述的存储系统,其特征在于:
所述存储器包含经由网络连接的对象存储器,
所述存储管理部将所述缓冲区域分配给所述存储装置,将所述缓冲对象层级分配给所述对象存储器。
9.如权利要求8所述的存储系统,其特征在于:
利用从外部提供的存储服务作为所述对象存储器。
10.如权利要求1所述的存储系统,其特征在于:
所述存储管理部,
基于数据的访问频率,决定要保存所述数据的层级,
将在所述缓冲对象层级中进行过访问的数据分别保存于所述缓冲区域和所述缓冲对象层级,
在所述缓冲区域中释放一定期间以上没有访问的数据的页面。
11.如权利要求10所述的存储系统,其特征在于:
所述存储管理部在所述缓冲区域中提取一定期间以上没有访问的多个页面,并且基于对提取出的各页面的数据的访问频率释放规定数的页面。
12.一种存储系统的管理方法,其特征在于:
将存储池的存储区域分层为多个层级,将各层级分别分配给具有不同的访问性能的存储器,
基于数据的访问频率,从所述多个层级中决定要保存所述数据的层级,
在所述存储池设置有对保存于作为所述多个层级中的至少一个层级的缓冲对象层级的数据进行临时保存的缓冲区域,将该缓冲区域分配给性能比分配了所述缓冲对象层级的存储器高的存储器,
基于所述缓冲对象层级的访问频率决定所述缓冲区域的大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-147792 | 2021-09-10 | ||
JP2021147792A JP7412397B2 (ja) | 2021-09-10 | 2021-09-10 | ストレージシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794676A true CN115794676A (zh) | 2023-03-14 |
Family
ID=85431079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210163361.2A Pending CN115794676A (zh) | 2021-09-10 | 2022-02-18 | 存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11836378B2 (zh) |
JP (1) | JP7412397B2 (zh) |
CN (1) | CN115794676A (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10269143A (ja) * | 1997-03-25 | 1998-10-09 | Mitsubishi Electric Corp | ディスクキャッシュ装置のキャッシュパラメータ制御方法及びディスクキャッシュ装置 |
US8566550B2 (en) * | 2009-09-22 | 2013-10-22 | Hitachi, Ltd. | Application and tier configuration management in dynamic page reallocation storage system |
CN103299265B (zh) * | 2011-03-25 | 2016-05-18 | 株式会社日立制作所 | 存储系统和存储区域分配方法 |
US20130238851A1 (en) * | 2012-03-07 | 2013-09-12 | Netapp, Inc. | Hybrid storage aggregate block tracking |
WO2016051512A1 (ja) | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
US9858185B1 (en) * | 2014-12-23 | 2018-01-02 | Emc Corporation | Multi-tier data storage using inclusive/exclusive burst buffer caching based on reference counts |
US10404823B2 (en) * | 2016-05-27 | 2019-09-03 | Home Box Office, Inc. | Multitier cache framework |
JP2017228023A (ja) * | 2016-06-21 | 2017-12-28 | 株式会社日立製作所 | データ処理装置、データ処理システム、および、データ処理方法 |
JP2021096513A (ja) * | 2019-12-13 | 2021-06-24 | 日本電気株式会社 | 管理装置、管理方法及びプログラム |
-
2021
- 2021-09-10 JP JP2021147792A patent/JP7412397B2/ja active Active
-
2022
- 2022-02-18 CN CN202210163361.2A patent/CN115794676A/zh active Pending
- 2022-03-11 US US17/692,764 patent/US11836378B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023040677A (ja) | 2023-03-23 |
US20230077961A1 (en) | 2023-03-16 |
JP7412397B2 (ja) | 2024-01-12 |
US11836378B2 (en) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776278B2 (en) | Storage control apparatus and computer-readable storage medium storing storage control program | |
US10353586B2 (en) | Memory device and host device | |
US11880579B2 (en) | Data migration method and apparatus | |
US10082984B2 (en) | Storage device and method of operating the same | |
US10387038B1 (en) | Storage space allocation for logical disk creation | |
JP2021128582A (ja) | メモリシステムおよび制御方法 | |
JP6443572B1 (ja) | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム | |
US20140372675A1 (en) | Information processing apparatus, control circuit, and control method | |
CN111796765B (zh) | 优化数据存储系统性能的方法 | |
US11119912B2 (en) | Ordering data updates for improving garbage collection being performed while performing the set of data updates | |
US10929286B2 (en) | Arbitrated management of a shared non-volatile memory resource | |
KR20170038853A (ko) | 호스트-관리 비휘발성 메모리 | |
KR20200068941A (ko) | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 | |
US20220261171A1 (en) | Storage devices, data storage systems and methods of operating storage devices | |
CN110895513A (zh) | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 | |
US20190243758A1 (en) | Storage control device and storage control method | |
Yong et al. | {vStream}: Virtual Stream Management for Multi-streamed {SSDs} | |
US9459801B2 (en) | Tiered storage system provided with trial area, storage controller, area allocation method and storage medium | |
CN118051179A (zh) | 用于使用多个分区的分区命名空间存储的技术 | |
CN115168317B (zh) | 一种lsm树存储引擎构建方法和系统 | |
US8504764B2 (en) | Method and apparatus to manage object-based tiers | |
US20210034292A1 (en) | Encoded virtual block deferred reference counting | |
CN115794676A (zh) | 存储系统 | |
US10140038B2 (en) | Utilization of a thin provision grid storage array | |
KR20230102877A (ko) | 다수의 ssd로 구성된 논리적 볼륨의 효율적인 입출력 자원 분배를 위한 블록 재배치 가능한 ssd 장치 및 방법 |
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 |