CN107203479B - 层级化存储系统、存储控制器及层级化控制方法 - Google Patents

层级化存储系统、存储控制器及层级化控制方法 Download PDF

Info

Publication number
CN107203479B
CN107203479B CN201710116790.3A CN201710116790A CN107203479B CN 107203479 B CN107203479 B CN 107203479B CN 201710116790 A CN201710116790 A CN 201710116790A CN 107203479 B CN107203479 B CN 107203479B
Authority
CN
China
Prior art keywords
logical
extents
extent
storage device
access
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
CN201710116790.3A
Other languages
English (en)
Other versions
CN107203479A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions Corp
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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Publication of CN107203479A publication Critical patent/CN107203479A/zh
Application granted granted Critical
Publication of CN107203479B publication Critical patent/CN107203479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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

使得能够使层级间的数据移动高效率化。根据实施方式,层级化存储系统的存储控制器在来自主机的访问请求指定了向包含第1逻辑块在内的1个以上的逻辑块的访问、并且上述第1逻辑块包含在第1逻辑盘区中、且上述第1逻辑盘区属于包含被分配了上述第2存储装置内的q个物理盘区的q个逻辑盘区的盘区组的情况下,将上述q个物理盘区的数据移动到被定位在上位层级中的存储装置内的空闲的q个物理盘区中。

Description

层级化存储系统、存储控制器及层级化控制方法
技术领域
本发明的实施方式涉及层级化存储系统、存储控制器及层级化控制方法。
背景技术
近年来,开发出了具备访问速度不同的第1及第2存储装置的存储系统。这里,假设第1存储装置的访问速度及存储容量是高速且小容量,第2存储装置的访问速度及存储容量与第1存储装置相比是低速且大容量。存储系统通过将第1及第2存储装置分别作为上位层级及下位层级而层级性地组合来实现。这样的技术也被称作存储层级化技术,将应用该存储层级化技术的存储系统也称作层级化存储系统。
在层级化存储系统中,将应配置(保存)数据的层级(存储装置)根据该数据的特性来决定、变更。具体而言,将访问频度较高的数据配置到上位层级(第1存储装置)中,将访问频度较低的数据配置到下位层级(第2存储装置)中。通过这样的配置(即层级化),能够兼顾层级化存储系统的高性能化和低成本化。
专利文献1:日本专利第5362145号公报
层级化存储系统中的层级化通常被自动进行。为了该自动的层级化,存储控制器例如以称作盘区(extent)的数据集合为单位来监视层级化存储系统中的访问的状况。盘区通常具有比数据管理(数据访问)的基本大小(所谓的块大小)大的大小。向盘区各自的访问的状况由访问次数那样的访问统计值表示。
存储控制器例如定期地基于各个盘区的访问统计值,进行关于该盘区各自的访问频度的评价。并且,存储控制器基于该定期的评价结果,以盘区为单位进行从下位层级向上位层级的数据的移动(再配置)、及/或从上位层级向下位层级的数据的移动。但是,以定期的访问频度评价为基础的层级间的数据移动开销较大,在处理中花费时间。
发明内容
本发明要解决的课题是提供一种能够使层级间的数据移动高效率化的层级化存储系统、存储控制器及层级化控制方法。
根据技术方案,层级化存储系统包括第1存储装置、第2存储装置和存储控制器。上述第1存储装置包括具有分别由第1数量的物理块构成的多个物理盘区的第1存储区域,并且被定位在上位层级中。上述第2存储装置包括具有分别由与上述第1数量相同数量的物理块构成的多个物理盘区的第2存储区域,并且访问速度比上述第1存储装置低,且被定位在下位层级。上述存储控制器控制向上述第1及第2存储装置的访问,包括结构管理部、输入输出控制部、输入输出管理部、组管理部和层级化控制部。上述结构管理部构建包含分别由与上述物理块相同大小的多个逻辑块构成的虚拟化的存储区域的逻辑单元,向利用上述层级化存储系统的主计算机提供上述逻辑单元。上述输入输出控制部根据来自上述主计算机的访问请求,从上述第1或第2存储装置读数据,或向上述第1或第2存储装置写数据。上述输入输出管理部将上述逻辑单元内的上述虚拟化的存储区域作为具有分别由与上述第1数量相同数量的逻辑块构成的多个逻辑盘区的存储区域来管理。上述组管理部按照由上述多个逻辑盘区内的分别不同的两个逻辑盘区构成的每个组合,将与对应的两个逻辑盘区的访问有关的结合的强度,基于表示该对应的两个逻辑盘区依次被访问的程度的结合度进行管理,并按照相互具有结合关系的组合的每个系列,将包含在对应的系列中的逻辑盘区的集合作为盘区组管理。上述层级化控制部在上述访问请求指定了向包含第1逻辑块在内的1个以上的逻辑块的访问、并且上述第1逻辑块包含在第1逻辑盘区中、且上述第1逻辑盘区属于包含被分配了上述第2存储装置内的q个物理盘区的q个逻辑盘区的盘区组的情况下,将上述q个物理盘区的数据移动到上述第1存储装置内的空闲的q个物理盘区中,并将分配给上述q个逻辑盘区的q个物理盘区从上述数据的移动源的q个物理盘区变更为上述数据的移动目标的q个物理盘区。
附图说明
图1是表示包括有关实施方式的层级化存储系统在内的计算机系统的典型的硬件结构的块图。
图2是主要表示图1所示的存储控制器的典型的功能结构的块图。
图3是表示该实施方式的物理盘区与物理块的典型的关系的图。
图4是表示该实施方式的逻辑盘区与逻辑块的典型的关系的图。
图5是表示图2所示的地址变换表的数据构造例的图。
图6是表示图2所示的盘区管理表的数据构造例的图。
图7是表示图2所示的结合管理表的数据构造例的图。
图8是表示该实施方式的访问处理的典型的次序的流程图。
图9是表示在图8所示的访问处理中包含的表更新处理的典型的次序的流程图。
图10是表示在图9所示的表更新处理中包含的第1表更新处理的典型的次序的流程图。
图11是表示在图9所示的表更新处理中包含的第2表更新处理的典型的次序的流程图。
图12是表示根据第1访问请求而执行表更新处理后的盘区管理表的例子的图。
图13是表示根据第1访问请求而执行表更新处理后的结合管理表的例子的图。
图14是表示根据第2访问请求而执行表更新处理后的盘区管理表的例子的图。
图15是表示根据第2访问请求而执行表更新处理后的结合管理表的例子的图。
图16是表示根据第3访问请求而执行表更新处理后的盘区管理表的例子的图。
图17是表示根据第3访问请求而执行表更新处理后的结合管理表的例子的图。
图18是表示根据第4访问请求而执行表更新处理后的盘区管理表的例子的图。
图19是表示根据第4访问请求而执行表更新处理后的结合管理表的例子的图。
图20是表示在图8所示的访问处理中包含的数据移动源决定处理的典型的次序的流程图。
图21是表示在图8所示的访问处理中包含的空闲区域确保处理的典型的次序的流程图。
图22是表示该实施方式的变形例的再分组处理的典型的次序的流程图。
图23是将扩展的盘区组的结构和该扩展的盘区组内的访问连续的逻辑盘区的每对的结合度的例子与结合管理表的例子一起表示的图。
图24是将该变形例中的第2前处理执行前后的结合管理表的例子对比表示的图。
图25是将该变形例中的第3前处理执行前后的结合管理表的例子对比表示的图。
图26是表示第3前处理刚执行后的结合管理表的例子、并将再分组前后的盘区组的例子对比表示的图。
具体实施方式
以下,参照附图对实施方式进行说明。
图1是表示包括有关一个实施方式的层级化存储系统的计算机系统的典型的硬件结构的块图。图1所示的计算机系统由层级化存储系统10及主计算机(以下称作主机)20构成。即,计算机系统具备单一的主机。但是,计算机系统也可以具备多个主机。
主机20利用层级化存储系统10提供的逻辑单元作为自身的外部存储装置。逻辑单元也被称作逻辑盘或逻辑卷,包括虚拟化的存储区域(即,逻辑存储区域)。主机20例如经由主机接口总线30与层级化存储系统10(更详细地讲,是层级化存储系统10的存储控制器13)连接。在本实施方式中,主机接口总线30是光纤通道(FC)。但是,主机接口总线30也可以是小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、因特网SCSI(iSCSI)、以太网(注册商标)或串行AT连接(SATA)那样的FC以外的接口总线。此外,主机20也可以经由存储区域网络(SAN)、因特网或内联网那样的网络与层级化存储系统10连接。
主机20是服务器或客户端个人计算机那样的物理计算机。在主机20内,用来向层级化存储系统10提供的逻辑单元内的数据访问的应用程序动作。按照该应用程序,主机20经由主机接口总线30利用层级化存储系统10。
层级化存储系统10具备高速存储装置(第1存储装置)11、低速存储装置(第2存储装置)12和存储控制器13。高速存储装置11及低速存储装置12经由存储接口总线14与存储控制器13连接。在本实施方式中,存储接口总线14是FC(光纤通道)。但是,存储接口总线14与主机接口总线30同样,也可以是FC以外的接口总线。
高速存储装置11例如由具有与硬盘驱动器(HDD)的互换性、并且访问速度比HDD高速的(即访问性能优良的)单一的固态硬盘驱动器(SSD)构成。另一方面,低速存储装置12例如由单一的HDD构成。
因而,在本实施方式中,低速存储装置12与高速存储装置11相比访问速度较低(即访问性能较差)。相对于此,假设低速存储装置12的存储容量比高速存储装置11大。在本实施方式中,分别将高速存储装置11作为上位层级(高速层级、第1层级)的存储装置、将低速存储装置12作为下位层级(低速层级、第2层级)的存储装置使用。另外,层级化存储系统10也可以具备比低速存储装置12更低速(低层级)的存储装置(第3层级的存储装置)。
另外,与本实施方式不同,高速存储装置11也可以是搭载有闪存存储器的闪存阵列存储装置或称作全闪存阵列的存储装置。同样,低速存储装置12也可以是由多个HDD构成的阵列结构的存储装置。
此外,也可以是高速存储装置11由FC用的HDD那样的高速HDD构成,低速存储装置12由SATA用的HDD那样的低速HDD构成。此外,低速存储装置12也可以是蓝光光盘(注册商标)驱动器或DVD(注册商标)驱动器那样的光学式盘驱动器或磁带装置。此外,在使用磁带装置作为低速存储装置12的情况下,也可以使用光学式盘驱动器作为高速存储装置11。
存储控制器13接收从主机20给出的、使用了逻辑地址的访问(读访问或写访问)的请求(输入输出请求),执行被请求的访问(输入输出)。在该访问的执行时,存储控制器13使用周知的地址变换功能将逻辑地址变换为物理地址。逻辑地址是指逻辑单元内的地址。物理地址表示包含在高速存储装置11或低速存储装置12中、并且与逻辑地址建立了对应的存储区域的物理位置。存储控制器13基于物理地址向高速存储装置11或低速存储装置12访问。
存储控制器13具备主机接口控制器(以下称作HIF控制器)131、存储接口控制器(以下称作SIF控制器)132、存储器133、本地HDD134和CPU135。
HIF控制器131控制该HIF控制器131与主机20之间的数据传送(数据传送协议)。HIF控制器131接收来自主机的访问请求,返送对于该访问请求的响应。访问请求指定从逻辑单元读数据、或向该逻辑单元写数据(即,向逻辑单元的访问)。HIF控制器131如果从主机20接收到访问请求,则将该访问请求向CPU135传递。接受到访问请求的CPU135处理该访问请求。
SIF控制器132从CPU135接收与CPU135接收到的来自主机20的访问请求对应的访问指令(更详细地讲,是对于高速存储装置11或低速存储装置12的读指令或写指令)。SIF控制器132根据接收到的访问指令,执行向高速存储装置11或低速存储装置12的访问。
存储器133是DRAM那样的可改写的易失性存储器。存储器133的存储区域的一部分被用于保存从本地HDD134装载的控制程序的至少一部分。存储器133的存储区域的另一部分被用于保存从本地HDD134装载的地址变换表1331、盘区管理表1332及结合管理表1333(图2)。
在本地HDD134中保存有控制程序。CPU135在存储控制器13被启动时,通过执行初始化程序装载器(IPL),将保存在本地HDD134中的控制程序的至少一部分向存储器133装载。IPL保存在ROM或闪存ROM那样的非易失性存储器中。
CPU135例如是微处理器那样的处理器。CPU135按照被装载到存储器133中的控制程序,作为结构管理部1351、输入输出(IO)控制部1352、输入输出(IO)管理部1353、组管理部1354及层级化控制部1355(图2)发挥功能。即,CPU135通过执行保存在存储器133中的控制程序,来控制整个层级化存储系统10。
在本实施方式中,存储控制器13如图1所示那样与主机20独立地装备。但是,存储控制器13也可以内置在主机20中。在此情况下,存储控制器13(更详细地讲,存储控制器13的功能)也可以使用主机20具有的操作系统(OS)的功能的一部分来实现。
此外,存储控制器13也可以装备在向主机20的卡插槽安装而使用的卡中。此外,也可以将存储控制器13的一部分内置在主机20中,将该存储控制器13的其余装备在卡中。此外,也可以将主机20、存储控制器13和高速存储装置11及低速存储装置12的一部分或全部收存到1个箱体中。
图2是主要表示图1所示的存储控制器13的典型的功能结构的块图。存储控制器13包括结构管理部1351、IO控制部1352、IO管理部1353、组管理部1354及层级化控制部1355。结构管理部1351、IO控制部1352、IO管理部1353、组管理部1354及层级化控制部1355的至少1个也可以由硬件实现。
结构管理部1351管理层级化存储系统10的存储结构。该结构管理包括基于高速存储装置11及低速存储装置12的存储区域来构建逻辑单元、并将该逻辑单元向主机20提供。在本实施方式中,逻辑单元的存储区域(逻辑存储区域)为了该逻辑单元的管理而被分割为称作逻辑块的一定大小的小区域。即,逻辑单元由多个逻辑块构成。
另一方面,将高速存储装置11及低速存储装置12的存储区域(物理存储区域)分割为称作物理盘区的、比逻辑块大的大小的区域。将各物理盘区再分割为称作物理块的、与逻辑块相同大小的小区域。即,高速存储装置11及低速存储装置12的存储区域由多个物理盘区构成,各物理盘区由一定数量(第1数量)的连续的物理块构成。
在本实施方式中,将逻辑单元的存储区域还分割为称作逻辑盘区的、与物理盘区相同大小的区域。即,逻辑单元的存储区域也由多个逻辑盘区构成。各逻辑盘区由与构成物理盘区的物理块的数量(即,第1数量)相同数量的连续的逻辑块构成。即,各逻辑盘区的边界与逻辑块的边界一致。
物理盘区及逻辑盘区的大小(即盘区大小)例如是4千字节(KB),即4096字节(B)。另一方面,物理块及逻辑块的大小(即块大小)例如是512字节(B)。即,第1数量是8,物理盘区(逻辑盘区)由8个物理块(逻辑块)构成。但是,盘区大小及块大小分别并不限于4KB及512B,第1数量也并不限于8。
IO控制部1352根据来自主机20的用于数据读取的访问请求,从高速存储装置11或低速存储装置12读数据,此外,IO控制部1352根据来自主机20的用于数据写入的访问请求,向高速存储装置11或低速存储装置12写数据。
IO管理部1353管理与来自主机20的访问请求对应的IO(访问)。IO管理部1353主要为了该IO管理而将逻辑单元的存储区域分割为上述多个逻辑盘区。即,IO管理部1353将逻辑单元的存储区域作为具有多个逻辑盘区的存储区域来管理。IO管理包括:将高速存储装置11及低速存储装置12的存储区域内的物理块分配给逻辑单元的存储区域内的逻辑块、以及管理该分配的状态。在该分配的状态的管理中使用地址变换表1331。另外,向逻辑盘区的分割也可以由结构管理部1351进行。IO管理还包括取得表示向各逻辑盘区的访问的状况的访问(IO)统计值(以下,称作访问计数)。将每个逻辑盘区的访问计数使用盘区管理表1332来管理。
组管理部1354按照由上述多个逻辑盘区内的分别不同的两个逻辑盘区构成的组合,基于表示该对应的两个逻辑盘区被依次访问的程度的结合度,将与对应的两个逻辑盘区的访问有关的结合的强度进行管理。将各组合的结合度使用结合管理表1333管理。组管理部1354还按照相互具有结合关系的组合的系列将在对应的系列中包含的逻辑盘区的集合作为盘区组管理。
层级化控制部1355将低速存储装置12内的访问的频度较高的物理盘区内的数据向高速存储装置11内的物理盘区移动(再配置)。此外,层级化控制部1355将高速存储装置11内的访问的频度较低的物理盘区内的数据向低速存储装置12内的物理盘区移动。
图3表示本实施方式的物理盘区与物理块的典型的关系。如图3所示,高速存储装置11的存储区域被分割为m个物理盘区PE0,PE1,…,PEm-1。即高速存储装置11具备m个物理盘区PE0至PEm-1。此外,高速存储装置11的存储区域被分割为m×n个物理块PB0_0,…,PB0_n-1,PB1_0,…,PB1_n-1,…,PBm-1_0,…,PBm-1_n-1。即,高速存储装置11具备m×n个物理块PB0_0,…,PB0_n-1,PB1_0,…,PB1_n-1,…,PBm-1_0,…,PBm-1_n-1。
这里,将高速存储装置11中的第i个(i=0,1,…,m-1)物理盘区表述为物理盘区PEi。物理盘区Pei由在高速存储装置11的存储区域中连续的n个物理块PBi_0至PBi_n-1构成。换言之,物理块PBi_0至PBi_n-1构成物理盘区PEi。N表示上述的第1数量,在盘区大小是4KB、块大小是512B的本实施方式中,是8。
上述高速存储装置11中的物理盘区与物理块的关系在低速存储装置12中也是同样的。如果需要,则在上述的关于物理盘区与物理块的关系的说明中,将高速存储装置11替换为低速存储装置12、将记号m替换为其他记号(例如d)。记号d表示低速存储装置12内的物理盘区的数量。
高速存储装置11内的物理盘区PEi例如由物理盘区编号0i表示。即,物理盘区编号0i是用来识别物理盘区PEi的识别码。物理盘区编号0i例如由存储编号0与内部物理盘区编号i的结合构成。存储编号0被作为表示高速存储装置11的识别码(存储识别码)使用。内部物理盘区编号i被作为表示由存储编号0表示的存储装置(即,高速存储装置11)内的第i个物理盘区(即,物理盘区PEi)的识别码(盘区识别码)使用。
物理盘区PEi内的第j个物理块PBi_j(j=0,1,…,n-1)由物理盘区编号0i和偏移量OFSTj表示。偏移量OFSTj表示物理盘区PEi中的第j个物理块(即,物理块PBi_j)的相对位置。
同样,低速存储装置12内的第k个物理盘区PEk(k=0,1,…,h-1)由物理盘区编号1k表示。物理盘区编号1k由存储编号1与内部物理盘区编号k的结合构成。存储编号1被作为表示低速存储装置12的识别码使用。内部物理盘区编号k被作为表示由存储编号1表示的存储装置(即,低速存储装置12)内的第k个物理盘区(即,物理盘区PEk)的识别码使用。
物理盘区PEk内的第j个物理块PBk_j由物理盘区编号1k和偏移量OFSTj表示。上述物理盘区编号0i及1k在使用高速存储装置11及低速存储装置12而提供的物理存储区域整体(物理地址空间)中是唯一的。
图4表示本实施方式的逻辑盘区与逻辑块的典型的关系。在图4中表示逻辑单元LU。逻辑单元LU的存储区域(更详细地讲,是虚拟的存储区域)被分割为u×n个逻辑块LB0_0,…,LB0_n-1,LB1_0,…,LB1_n-1,…,LBu-1_0,…,LBu-1_n-1。即,逻辑单元LU具备u×n个逻辑块LB0_0,…,LB0_n-1,LB1_0,…,LB1_n-1,…,LBu-1_0,…,LBu-1_n-1。此外,逻辑单元LU的存储区域被分割为u个逻辑盘区LE0,…,LEu-1。即,逻辑单元LU具备u个逻辑盘区LE0至LEu-1。
这里,将逻辑单元LU内的第s个(s=0,1,…,u-1)逻辑盘区表述为逻辑盘区LEs。逻辑盘区LEs由在逻辑单元LU的存储区域中连续的n个逻辑块LBs_0至LBs_n-1构成。换言之,逻辑块LBs_0至LBs_n-1构成逻辑盘区LEs。逻辑块LBs_0至LBs_n-1分别是逻辑单元LU内的第s×n个至第(s+1)×n-1个逻辑块。
在本实施方式中,存储控制器13能够识别逻辑单元LU内的逻辑块LB0_0,…,LB0_n-1,LB1_0,…,LB1_n-1,…,LBu-1_0,…,LBu-1_n-1,及逻辑单元LU内的逻辑盘区LE0至LEu-1。相对于此,主机20仅能够识别逻辑块LB0_0,…,LB0_n-1,LB1_0,…,LB1_n-1,…,LBu-1_0,…,LBu-1_n-1。但是,结构管理部1351也可以通过将包括逻辑盘区的大小在内的关于逻辑盘区的定义内容向主机20通知,从而使得该主机20能够识别逻辑单元LU内的逻辑盘区LE0至LEu-1。
主机20通过逻辑单元编号LUN和逻辑块地址LBAt(LBA=LBAt=t)来识别(指定)逻辑单元LU内的第t个(t=0,1,…,u×n-1)逻辑块。逻辑单元编号LUN(例如0)被作为表示逻辑单元LU的识别码使用,逻辑块地址LBAt被作为表示逻辑单元(更详细地讲,由逻辑单元编号LUN表示的逻辑单元LU)内的第t个逻辑块的地址使用。
逻辑单元LU内的第t个逻辑块(即,逻辑块地址为LBAt=t的逻辑块)如果将t/n的商表述为v(v=0,1,…,u-1)、将余数表述为w(w=0,1,…,n-1),则如LBv_w(逻辑块LBv_w)那样表示。LBv_w表示逻辑单元LU内的第v个逻辑盘区中的第w个逻辑块。显然,t与v×n+w=(v+1)×n-(n-w)一致。在本实施方式中,IO管理部1353通过将逻辑块地址LBAt(=t)用n除,来确定由该逻辑块地址LBAt指定的逻辑块(LBv_w)所属的逻辑盘区Lev、以及该逻辑块的逻辑盘区LEv内的相对位置w。
图5表示图2所示的地址变换表1331的数据构造例。地址变换表1331例如具有与结构管理部1351提供的全部的逻辑单元内的全部的逻辑块建立了对应的条目(entry)的群。地址变换表1331的各条目具有逻辑单元编号(LUN)项目(field)、逻辑块地址(LBA)项目、逻辑盘区编号(LEN)项目、物理盘区编号(PEN)项目及偏移量项目。
LUN项目被用于对表示包含对应的逻辑块在内的逻辑单元的逻辑单元编号进行保持。LBA项目被用于保持对应的逻辑块的地址(逻辑块地址)。
LEN项目被用于对逻辑盘区编号进行保持,该逻辑盘区编号作为用来识别包含对应的逻辑块在内的逻辑盘区的识别码。逻辑盘区编号在由结构管理部1351提供的全部逻辑单元属于的逻辑存储区域整体(逻辑地址空间)中是唯一的。逻辑盘区编号由逻辑单元编号与内部逻辑盘区编号的结合构成。内部逻辑盘区编号在包含对应的逻辑块在内的逻辑单元中是唯一的,是在该逻辑单元中用来识别包含该对应的逻辑块在内的逻辑盘区的识别码。
PEN项目被用于保持物理盘区编号。该物理盘区编号表示被分配给包含对应的逻辑块在内的逻辑盘区的物理盘区(即,包含被分配给对应的逻辑块的物理块的物理盘区)。偏移量项目被用于保持偏移量(偏移量数据)。该偏移量表示被分配给对应的逻辑块的物理块在包含该物理块的物理盘区中的相对位置。
图6表示图2所示的盘区管理表1332的数据构造例。盘区管理表1332例如具有与结构管理部1351提供的全部逻辑单元内的全部逻辑盘区建立了对应的条目的群。盘区管理表1332的各条目具有逻辑盘区编号(LEN)项目、盘区组编号(EGN)项目、前方链接盘区(PLE)项目、后方链接盘区(SLE)项目、访问计数(AC)项目及最终访问时刻(LAT)项目。
LEN项目被用于保持表示对应的逻辑盘区的逻辑盘区编号。EGN项目被用于保持盘区组编号,该盘区组编号作为用来识别对应的逻辑盘区所属的盘区组的识别码。在图6所示的盘区管理表1332的例子中,对全部的条目的EGN项目设定了值0。EGN项目中的值0是初始值,表示对应的逻辑盘区不属于盘区组。因此,在本实施方式中,设为盘区组编号0的使用被禁止。但是,EGN项目的初始值并不限于0,只要是可使用的盘区组编号以外的特定值就可以。
PLE项目及SLE项目分别被用于分别保持前方链接盘区的逻辑盘区编号及后方链接盘区的逻辑盘区编号。所谓前方链接盘区,与访问顺序有关,是指先行于对应的逻辑盘区的最近的逻辑盘区。所谓后方链接盘区,与访问顺序有关,是指后续于对应的逻辑盘区的最近的逻辑盘区。
在图6所示的盘区管理表1332的例子中,对全部的条目的PLE项目及SLE项目设定了值0。PLE项目及SLE项目中的值0是初始值,关于访问顺序,表示不存在先行于对应的逻辑盘区的逻辑盘区及后续于对应的逻辑盘区的逻辑盘区。所以,在本实施方式中,设为逻辑盘区编号0的使用被禁止。另外,PLE项目及SLE项目的初始值并不限于0,只要是可使用的逻辑盘区编号以外的特定值就可以。
在PLE项目中设定了初始值及逻辑盘区编号以外的特定值、例如-1的情况下,该特定值(-1)关于访问顺序,表示不存在先行于对应的逻辑盘区的逻辑盘区。同样,在SLE项目中设定了-1的情况下,该特定值(-1)关于访问顺序,表示不存在后续于对应的逻辑盘区的逻辑盘区。另外,在PLE项目及SLE项目中,也可以设定初始值及逻辑盘区编号以外的分别不同的特定值(例如-1及-2)。
AC项目被用于保持表示对应的逻辑盘区被访问的次数(访问频度)的访问计数。LAT项目被用于保持表示对应的逻辑盘区最后被访问的时刻(日期时间)的最终访问时刻数据。
将盘区管理表1332的各个条目如以下这样初始设定。首先,将与各个条目建立了对应的逻辑盘区的逻辑盘区编号向该各个条目的LEN项目设定。在各个条目的其他各项目中,例如设定0。图6表示被初始化的盘区管理表1332。
图7表示图2所示的结合管理表1333的数据构造例。结合管理表1333具有矩阵的构造。即,结合管理表1333具有多个行项目及多个列项目。对于多个行项目分别设定固有的逻辑盘区编号。对于多个列项目分别设定固有的逻辑盘区编号。行项目的数量与列项目的数量一致。此外,在本实施方式中,全行项目中的逻辑盘区编号的排列顺序与全列项目中的逻辑盘区编号的排列顺序一致。
在图7中,A,B,C,D及E分别表示逻辑盘区A,B,C,D及E的逻辑盘区编号。这里,矩阵中的第x行(x=1,2,…)及第y行(y=1,2,…,其中y≠x)分别对应于盘区编号X(X=A,B,C,D,E,…)及Y(Y=A,B,C,D,E,…,其中Y≠X),因而,矩阵中的第x列及第y列也分别对应于盘区编号X及Y。将由盘区编号X及Y表示的逻辑盘区分别表述为逻辑盘区X及Y。
矩阵中的第x行、第y列的位置(x,y),即结合管理表1333中的第x行、第y列的条目(x,y)例如被用于保持逻辑盘区Y先行或后续于逻辑盘区X被访问的次数。同样,矩阵中的第y行、第x列的位置(y,x),即结合管理表1333中的第y行、第x列的条目(y,x)例如被用于保持逻辑盘区X先行或后续于逻辑盘区Y被访问的次数。
在条目(x,y)及(y,x)中保持的次数一致。该次数表示逻辑盘区X及Y以该顺序或其相反顺序被连续访问的程度。该程度(次数)表示与连续的访问有关的逻辑盘区X及Y的关联性(即,结合)的强度。所以,将该次数称作结合度。在接着逻辑盘区X而访问逻辑盘区Y的情况、或接着逻辑盘区Y而访问逻辑盘区X的情况下,由组管理部1354将条目(x,y)及(y,x)内的结合度增加1。
结合管理表1333的条目(x,y)及(y,x)的初始值(即初始结合度)例如是0。在图7所示的结合管理表1333中,空栏的条目表示被设定了结合度0的条目。如果需要,对结合管理表1333中的空栏的条目添加数值0。
在本实施方式中,结合管理表1333具有矩阵的构造。但是,结合管理表1333也可以具有与具有结合关系的全部的逻辑盘区的组合建立了对应的结合度的排列(即,列表构造)。
接着,关于本实施方式的动作,以访问处理为例参照图8进行说明。图8是表示访问处理的典型的次序的流程图。假设首先从主机20向层级化存储系统10的存储控制器13经由主机接口总线30发出了访问请求。
存储控制器13的HIF控制器131从主机接口总线30接收由主机20发出的访问请求。访问请求包括逻辑单元编号LUN、逻辑块地址LBAt及数据传送大小。数据传送大小表示要被传送(访问)的逻辑块的数量。在数据传送大小例如是N的情况下,访问请求指定向从逻辑块地址LBAt开始的连续的N个逻辑块的范围的访问。
存储控制器13的IO管理部1353如以下这样确定与由接收的访问请求指定的逻辑块范围对应的逻辑盘区范围(步骤S1)。首先,IO管理部1353在地址变换表1331中,参照与表示指定逻辑块范围内的各个逻辑块的逻辑单元编号及逻辑块地址的组建立了对应的条目。并且,IO管理部1353确定由与指定逻辑块范围内的各个逻辑块建立了对应的逻辑盘区编号表示的逻辑盘区。由此,IO管理部1353确定与指定逻辑块范围对应的逻辑盘区范围。由于所确定的逻辑盘区范围与由来自主机20的访问请求指定的逻辑块范围对应,所以也可以称作被来自主机20的访问请求(间接地)指定。
如果确定了逻辑盘区范围(步骤S1),则将组管理部1354启动。组管理部1354与IO管理部1353协同而执行用来将盘区管理表1332及结合管理表1333基于所确定的逻辑盘区范围更新的表更新处理(步骤S2)。
以下,参照图9对表更新处理(步骤S2)的详细情况进行说明。图9是表示表更新处理的典型的次序的流程图。首先,组管理部1354参照存储器133内的特定区域(步骤S21)。该特定区域如后述那样,被用于保存由图8的流程图中表示的访问处理最后进行处理的逻辑盘区的逻辑盘区编号。
接着,组管理部1354判定在存储器133内的特定区域中是否保存有有效的逻辑盘区编号(步骤S22)。如果没有保存有效的逻辑盘区编号(步骤S22的“否”),则组管理部1354判断为此次的访问处理是在盘区管理表1332及结合管理表1333的初始化后最初被执行的访问处理。在此情况下,组管理部1354选择所确定的逻辑盘区范围内的开头的逻辑盘区作为LE1(逻辑盘区LE1)(步骤S23)。接着,组管理部1354执行第1表更新处理(步骤S24),结束按照图9的流程图的表更新处理。
相对于此,如果在特定区域中保存有有效的逻辑盘区编号(LENz)(步骤S22的“是”),则组管理部1354判断为已经执行了先行于此次的访问处理的访问处理,LENz表示在该先行的访问处理中最后被处理(访问)的逻辑盘区。在此情况下,组管理部1354选择由LENz表示的逻辑盘区作为LE1(步骤S25)。此外,组管理部1354选择所确定的逻辑盘区范围内的开头的逻辑盘区作为LE2(逻辑盘区LE2)(步骤S26)。接着,组管理部1354执行第2表更新处理(步骤S27),结束按照图9的流程图的表更新处理。
以下,参照图10对第1表更新处理(步骤S24)的详细情况进行说明。图10是表示第1表更新处理的典型的次序的流程图。另外,也可以将图9的步骤S23在第1表更新处理的开头执行。
首先,组管理部1354判定在所确定的逻辑盘区范围内是否存在当前的逻辑盘区LE1(即,在图9的步骤S23中选择的逻辑盘区)的下个逻辑盘区(步骤S31)。假如在所确定的逻辑盘区范围包含多个逻辑盘区的情况下,存在下个逻辑盘区(步骤S31的“是”)。在此情况下,组管理部1354选择下个逻辑盘区作为LE2(步骤S32)。这里,将LE1及LE2的逻辑盘区编号(LEN)分别表述为LEN_LE1及LEN_LE2。此外,将与LE1及LE2建立了对应的盘区管理表1332的条目分别表述为条目EMTE_LE1及EMTE_LE2。
接着,组管理部1354将条目EMTE_LE1的EGN项目、PLE项目及SLE项目的内容(初始值0)分别变更为开头的EGN(=1)、-1及LEN_LE2(步骤S33)。另外,也可以使用开头的EGN以外的EGN。另一方面,IO管理部1353将条目EMTE_LE1的AC项目及LAT项目的内容更新(步骤S34)。即,IO管理部1353将AC项目的内容(初始值0)增加1,将LAT项目的内容(初始值0)更新以使其表示当前时刻。
接着,组管理部1354将条目EMTE_LE2的EGN项目、PLE项目及SLE项目的内容(初始值0)分别变更为开头EGN(=1)、LEN_LE1及-1(步骤S35)。组管理部1354还将条目EMTE_LE2的AC项目及LAT项目的内容更新(步骤S36)。组管理部1354还将与LE1及LE2的组合建立了对应的结合管理表1333的条目的内容(结合度)增加1(步骤S37)。
接着,组管理部1354判定在所确定的逻辑盘区范围内是否存在下个逻辑盘区(即,当前的LE2的下个逻辑盘区)(步骤S38)。假如不存在下个逻辑盘区(步骤S38的“否”),则组管理部1354结束按照图10的流程图的第1表更新处理(图9的步骤S24)。即,组管理部1354结束按照图9的流程图的表更新处理(图8的步骤S2)。
相对于此,如果存在下个逻辑盘区(步骤S38的“是”),则组管理部1354选择当前的LE2作为新的LE1(步骤S39)。此外,组管理部1354选择所确定的逻辑盘区范围内的下个逻辑盘区(即,新的LE1的下个逻辑盘区)作为新的LE2(步骤S40)。
接着,组管理部1354将与新的LE1建立了对应的条目EMTE_LE1(即,与前次的LE2建立了对应的条目EMTE_LE2)的SLE项目的内容从-1变更为LEN_LE2(步骤S41)。接着,组管理部1354向步骤S35返回。
另一方面,假设在步骤S31中判定为不存在下个逻辑盘区。即,假设所确定的逻辑盘区范围仅包含单一的逻辑盘区。在此情况下(步骤S31的“否”),组管理部1354将条目EMTE_LE1的EGN项目、PLE项目及SLE项目的内容分别变更为开头的EGN(=1)、-1及-1(步骤S42)。另一方面,IO管理部1353与步骤S34同样,将条目EMTE_LE1的AC项目及LAT项目的内容更新(步骤S43)。然后,组管理部1354结束按照图10的流程图的第1表更新处理(图9的步骤S24)。
接着,参照图11对第2表更新处理(图9的步骤S27)的详细情况进行说明。图11是表示第2表更新处理的典型的次序的流程图。另外,也可以将图9的步骤S25及S26在第2表更新处理的开头执行。
首先,组管理部1354从与当前的LE1及LE2建立了对应的条目EMTE_LE1及EMTE_LE2中,取得条目EMTE_LE1的SLE项目的内容LEN_SLE(LE1)和条目EMTE_LE2的PLE项目的内容LEN_PLE(LE2)(步骤S51)。接着,组管理部1354将条目EMTE_LE1的SLE项目的内容变更为LEN_LE2(步骤S52)。
接着,组管理部1354根据条目EMTE_LE2的EGN项目及SLE项目的内容,将该内容变更(步骤S53)。以下,对步骤S53详细地说明。
在步骤S53中,组管理部1354判定条目EMTE_LE2的EGN项目的内容是否与表示LE1属于的盘区组(EGα)的EGN_LE1(=EGNα)不同。假如不同,则组管理部1354将EGN项目的内容变更为EGNα。此外,在步骤S53中,如果条目EMTE_LE2的SLE项目的内容是初始值0,则组管理部1354将该SLE项目的内容变更为-1。
这里,假设虽然条目EMTE_LE2的EGN项目的内容与EGNα不同,但是初始值0以外。即,假设LE2属于与EGα不同的盘区组EGβ。在此情况下,组管理部1354即使条目EMTE_LE2的SLE项目的内容是初始值0(及-1)以外的值、即属于EGβ的逻辑盘区LEγ的逻辑盘区编号,也将该SLE项目的内容变更为-1。并且,组管理部1354为了将LE2及LEγ的结合解除,将与LE2及LEγ的组合建立了对应的结合管理表1333的条目的内容(结合度)变更为初始值0。
组管理部1354如果执行上述步骤S53,则向步骤S54前进。在步骤S54中,组管理部1354将条目EMTE_LE2的PLE项目的内容变更为LEN_LE1。另一方面,IO管理部1353将条目EMTE_LE2的AC项目及LAT项目的内容与步骤S34同样地更新(步骤S55)。
于是,组管理部1354将与LE1及LE2的组合对应的结合度增加1(步骤S56)。接着,组管理部1354判定是否所取得的LEN_SLE(LE1)与LEN_LE2不同、并且是-1以外(更详细地讲,是-1及0以外)(步骤S57)。这里,将由LEN_SLE(LE1)表示的逻辑盘区表述为LEs。
假如步骤S57的判定是“是”,则组管理部1354判断为为了使LE2与LE1结合而需要将LEs及LE1的结合解除。所以,组管理部1354将Les从与LE1的结合中切离(步骤S58)。即,组管理部1354将与LEs及LE1的组合对应的结合度变更(设定)为0,并将条目EMTE_LEs的PLE项目的内容变更为-1。并且,组管理部1354向步骤S59前进。相对于此,如果步骤S57的判定是“否”,则组管理部1354将步骤S58跳过,向步骤S59前进。
在步骤S59中,组管理部1354判定是否所取得的LEN_PLE(LE2)与LEN_LE1不同、并且是-1以外(更详细地讲是-1及0以外)。这里,将由LEN_PLE(LE2)表示的逻辑盘区表述为LEp。
假如步骤S59的判定是“是”,则组管理部1354判断为为了使LE2与LE1结合而需要将LEp及LE2的结合解除。所以,组管理部1354将LEp从与LE2的结合切离(步骤S60)。即,组管理部1354将与LEp及LE2的组合对应的结合度变更为0,并将条目EMTE_LEp的SLE项目的内容变更为-1。
接着,组管理部1354判定LEN_SLE(LE1)是否与LEN_PLE(LE2)相等(步骤S61)。在图11的流程图中,如果步骤S59的判定是“是”,则将步骤S61与步骤S57的判定的结果无关地执行。但是,也可以将步骤S60在步骤S57及S59的判定都是“是”的情况下执行。
在LEN_SLE(LE1)与LEN_PLE(LE2)相等的情况下(步骤S61的“是”),组管理部1354判断为LEs及LEp是相同的逻辑盘区,该LEs(=LEp)应从LE1及LE2属于的盘区组中切离。在此情况下,组管理部1354将条目EMTE_LEs(=LEp)的EGN项目的内容变更为表示新的盘区组的EGN(步骤S62)。
接着,组管理部1354判定在所确定的逻辑盘区范围内是否存在下个逻辑盘区(即,当前的LE2的下个逻辑盘区)(步骤S63)。假如不存在下个逻辑盘区(步骤S63的“否”),则组管理部1354结束按照图11的流程图的第2表更新处理(图9的步骤S27)。即,组管理部1354结束按照图9的流程图的表更新处理(图8的步骤S2)。
相对于此,如果存在下个逻辑盘区(步骤S63的“是”),则组管理部1354选择当前的LE2作为新的LE1(步骤S64)。此外,组管理部1354选择所确定的逻辑盘区范围内的下个逻辑盘区作为新的LE2(步骤S65)。接着,组管理部1354向步骤S51返回。
接着,关于上述表更新处理的具体例,以第1情况为例,除了图6及图7以外还参照图12及图13进行说明。所谓第1情况,是指根据来自主机20的第1访问请求来执行表更新处理(图8的步骤S2)的情况。此时,假设盘区管理表1332及结合管理表1333分别处于图6及图7所示的初始状态。图12及图13表示根据第1访问请求而执行表更新处理后的盘区管理表1332及结合管理表1333的例子。
首先,假设基于第1访问请求确定的逻辑盘区范围是跨越逻辑盘区A及B的两个逻辑盘区的范围,逻辑盘区B后续于逻辑盘区A。在此情况下,组管理部1354选择逻辑盘区A作为LE1(图9的步骤S23)。并且,组管理部1354将第1表更新处理(图9的步骤S24)按照图10的流程图,与IO管理部1353协同而如以下这样执行。
首先,组管理部1354选择后续于逻辑盘区A的逻辑盘区B作为LE2(步骤S31及S32)。接着,组管理部1354将与逻辑盘区A(=LE1)建立了对应的条目EMTE_A的EGN项目、PLE项目及SLE项目的内容分别从图6所示的0、0及0变更为图12所示的1(开头EGN)、-1及B(步骤S33)。开头EGN由组管理部1354决定。另一方面,IO管理部1353将条目EMTE_A的AC计数项目的内容从图6所示的0增加1为图12所示的1,并且将该条目EMTE_A的LAT项目的内容更新,以使其表示当前的时刻(步骤S34)。
于是,组管理部1354将与逻辑盘区B(=LE2)建立了对应的条目EMTE_B的EGN项目、PLE项目及SLE项目的内容从图6所示的0、0及0分别变更为图12所示的1(开头EGN)、A及-1(步骤S35)。另一方面,IO管理部1353将条目EMTE_B的AC计数项目的内容从图6所示的0增加1为图12所示的1,并将该条目EMTE_B的LAT项目的内容更新,以使其表示当前的时刻(步骤S36)。
于是,组管理部1354将与逻辑盘区A及B建立了对应的结合管理表1333的条目(A,B)及(B,A)中的结合度从图7所示的0(由空栏表示的0)增加1为图13所示的1(步骤S37)。组管理部1354在包括上述表更新处理的访问处理的最后,将最后被处理的逻辑盘区B(即,基于第1访问请求确定的逻辑盘区范围的最后的逻辑盘区B)的逻辑盘区编号B作为有效的逻辑盘区编号LENz向存储器133的特定区域保存(图8的步骤S18)。
接着,关于上述表更新处理的具体例,以第2情况为例,除了图12及图13以外还参照图14及图15进行说明。所谓第2情况,是指按照接着第1访问请求发出的来自主机20的第2访问请求来执行表更新处理(图8的步骤S2)的情况。此时,盘区管理表1332及结合管理表1333分别处于图12及图13所示的状态。图14及图15表示根据第2访问请求而执行表更新处理后的盘区管理表1332及结合管理表1333的例子。
这里,假设基于第2访问请求确定的逻辑盘区范围是跨越逻辑盘区C及D的两个逻辑盘区的范围,逻辑盘区D后续于逻辑盘区C。此时,在存储器133的特定区域中保存有逻辑盘区B的逻辑盘区编号B。逻辑盘区B是基于第1访问请求而确定的逻辑盘区范围的最后的逻辑盘区。显然,逻辑盘区B关于访问顺序,是先行于逻辑盘区C的逻辑盘区,逻辑盘区C关于访问顺序,是后续于逻辑盘区B的逻辑盘区。即,逻辑盘区B及C关于访问顺序,是连续的。
在此情况下,组管理部1354将逻辑盘区B及C分别选择为LE1及LE2(图9的步骤S25及S26)。于是,组管理部1354按照图11的流程图,与IO管理部1353协同而如以下这样执行第2表更新处理(图9的步骤S27)。
组管理部1354将与逻辑盘区B(=LE1)建立了对应的盘区管理表1332的条目EMTE_B的SLE项目的内容从图12所示的-1变更为图14所示的C(步骤S52)。此外,组管理部1354将与逻辑盘区C(=LE2)建立了对应的盘区管理表1332的条目EMTE_C的EGN项目及SLE项目的内容从图12所示的0及0分别变更为图14所示的1(即,先行的逻辑盘区B所属的盘区组的EGN)及-1(步骤S53)。
组管理部1354还将条目EMTE_C的PLE项目的内容从图12所示的0变更为图14所示的B(步骤S54)。另一方面,IO管理部1353将条目EMTE_C的AC计数项目的内容从图12所示的0增加1为图14所示的1,并将该条目EMTE_C的LAT项目的内容更新,以使其表示当前的时刻(步骤S55)。于是,组管理部1354将与逻辑盘区B及C建立了对应的结合管理表1333的条目(B,C)及(C,B)中的结合度从图13所示的0(由空栏表示的0)增加1为图15所示的1(步骤S56)。
然后,组管理部1354将逻辑盘区C及D分别选择为LE1及LE2(图11的步骤S64及S65)。并且,组管理部1354将条目EMTE_C的SLE项目的内容如图14所示那样从-1变更为D(步骤S52)。此外,组管理部1354将与逻辑盘区D建立了对应的盘区管理表1332的条目EMTE_D的EGN项目及SLE项目的内容从图12所示的0及0分别变更为图14所示的1(即,先行的逻辑盘区C所属的盘区组的EGN)及-1(步骤S53)。
组管理部1354还将条目EMTE_D的PLE项目的内容从图12所示的0变更为图14所示的C(步骤S54)。另一方面,IO管理部1353将条目EMTE_D的AC计数项目的内容从图12所示的0增加1为图14所示的1,并将该条目EMTE_D的LAT项目的内容更新,以使其表示当前的时刻(步骤S55)。
于是,组管理部1354将与逻辑盘区C及D建立了对应的结合管理表1333的条目(C,D)及(D,C)中的结合度从图13所示的0(由空栏表示的0)增加1为图15所示的1(步骤S56)。组管理部1354在包括上述表更新处理的访问处理的最后,将最后处理的逻辑盘区D的逻辑盘区编号D保存到存储器133的特定区域中(图8的步骤S18)。
接着,关于上述表更新处理的具体例,以第3情况为例,除了图14及图15以外还参照图16及图17进行说明。所谓第3情况,是指根据接着第2访问请求而发出的来自主机20的第3访问请求来执行表更新处理(图8的步骤S2)的情况。此时,盘区管理表1332及结合管理表1333分别处于图14及图15所示的状态。图16及图17表示执行基于第3访问请求的表更新处理后的盘区管理表1332及结合管理表1333的例子。
这里,假设基于第3访问请求而确定的逻辑盘区范围是跨越逻辑盘区A及B的两个逻辑盘区的范围。此时,在存储器133的特定区域中保存有逻辑盘区D的逻辑盘区编号D。逻辑盘区D是基于第2访问请求确定的逻辑盘区范围的最后的逻辑盘区。显然,逻辑盘区D及A关于访问顺序,是连续的。
在此情况下,组管理部1354将逻辑盘区D及A分别选择为LE1及LE2(图9的步骤S25及S26)。于是,组管理部1354按照图11的流程图,与IO管理部1353协同而如以下这样执行第2表更新处理(图9的步骤S27)。
组管理部1354将与逻辑盘区D(=LE1)建立了对应的盘区管理表1332的条目EMTE_D的SLE项目的内容从图14所示的-1变更为图16所示的A(步骤S52)。此时,组管理部1354不将与逻辑盘区A(=LE2)建立了对应的盘区管理表1332的条目EMTE_A的EGN项目及SLE项目的内容(1及B)变更(步骤S53)。
组管理部1354还将条目EMTE_A的PLE项目的内容从图14所示的-1变更为图16所示的D(步骤S54)。另一方面,IO管理部1353将条目EMTE_A的AC计数项目的内容从图14所示的1增加1为图16所示的2,并将该条目EMTE_A的LAT项目的内容更新,以使其表示当前的时刻(步骤S55)。于是,组管理部1354将与逻辑盘区D及A建立了对应的结合管理表1333的条目(D,A)及(A,D)中的结合度从图15所示的0(由空栏表示的0)增加1为图17所示的1(步骤S56)。
然后,组管理部1354将逻辑盘区A及B分别选择为LE1及LE2(步骤S64及S65)。接着,组管理部1354从与逻辑盘区A(=LE1)及B(=LE2)建立了对应的条目EMTE_A及EMTE_B,取得条目EMTE_A的SLE项目的内容LEN_SLE(A)和条目EMTE_B的PLE项目的内容LEN_PLE(B)(步骤S51)。所取得的LEN_SLE(A)及LEN_PLE(B)如图14所示,分别是B及A。即,逻辑盘区B及A分别作为逻辑盘区A的后方链接盘区及逻辑盘区B的前方链接盘区已经登录在盘区管理表1332中。这表示逻辑盘区A及B已经相互具有结合关系。
在这样的情况下,虽然在图11的流程图中省略,但组管理部1354将步骤S52及54跳过。由此,组管理部1354将条目EMTE_A的SLE项目及条目EMTE_B的PLE项目的内容LEN_SLE(A)及LEN_PLE(B)如图16所示那样维持为当前的状态(即,图14所示的B及A)。此时,组管理部1354不将条目EMTE_B的EGN项目及SLE项目的内容(1及C)变更(步骤S53)。
另外,也可以执行步骤S52及54。其理由是因为,通过步骤S52的执行,对条目EMTE_A的SLE项目再设定B,并且通过步骤S54的执行,对条目EMTE_B的PLE项目再设定A。即,因为即使执行步骤S52及54,也将条目EMTE_A的SLE项目及条目EMTE_B的PLE项目的内容分别维持为B及A。
另一方面,IO管理部1353将条目EMTE_B的AC计数项目的内容从图14所示的1增加1为图16所示的2,并将该条目EMTE_B的LAT项目的内容更新,以使其表示当前的时刻(步骤S55)。于是,组管理部1354将与逻辑盘区A及B建立了对应的结合管理表1333的条目(A,B)及(B,A)中的结合度从图15所示的1增加1为图17所示的2(步骤S56)。组管理部1354在包括上述表更新处理的访问处理的最后,将最后被处理的逻辑盘区B的逻辑盘区编号B向存储器133的特定区域保存(图8的步骤S18)。
接着,关于上述表更新处理的具体例,以第4情况为例,除了图16及图17以外还参照图18及图19进行说明。所谓第4情况,是指根据接着第3访问请求而发出的来自主机20的第4访问请求来执行表更新处理(图8的步骤S2)的情况。此时,盘区管理表1332及结合管理表1333分别处于图16及图17所示的状态。图18及图19表示执行基于第4访问请求的表更新处理后的盘区管理表1332及结合管理表1333的例子。
这里,假设基于第4访问请求而确定的逻辑盘区范围是跨越逻辑盘区D及E的两个逻辑盘区的范围。此时,在存储器133的特定区域中保存有逻辑盘区B的逻辑盘区编号B。逻辑盘区B是基于第3访问请求而确定的逻辑盘区范围的最后的逻辑盘区。显然,逻辑盘区B及D关于访问顺序,是连续的。
在此情况下,组管理部1354将逻辑盘区B及D分别选择为LE1及LE2(图9的步骤S25及S26)。于是,组管理部1354按照图11的流程图,与IO管理部1353协同而如以下这样执行第2表更新处理(图9的步骤S27)。
首先,组管理部1354从与逻辑盘区B(=LE1)及D(=LE2)建立了对应的盘区管理表1332的条目EMTE_B及EMTE_D,取得条目EMTE_B的SLE项目的内容LEN_SLE(B)和条目EMTE_D的PLE项目的内容LEN_PLE(D)(步骤S51)。所取得的LEN_SLE(B)及LEN_PLE(D)如图16所示,都是C。即,逻辑盘区C作为逻辑盘区B的后方链接盘区及逻辑盘区D的前方链接盘区已经登录在盘区管理表1332中。这表示逻辑盘区B及C已经相互具有结合关系,逻辑盘区BC及D也已经相互具有结合关系。
接着,组管理部1354将与逻辑盘区B建立了对应的盘区管理表1332的条目EMTE_B的SLE项目的内容从图16所示的C变更为图18所示的D(步骤S52)。此时,组管理部1354不将与逻辑盘区D建立了对应的盘区管理表1332的条目EMTE_D的EGN项目及SLE项目的内容(1及A)变更(步骤S53)。
组管理部1354还将条目EMTE_D的PLE项目的内容从图16所示的C变更为图18所示的B(步骤S54)。另一方面,IO管理部1353将条目EMTE_D的AC计数项目的内容从图16所示的1增加1为图18所示的2,并将该条目EMTE_D的LAT项目的内容更新,以使其表示当前的时刻(步骤S55)。于是,组管理部1354将与逻辑盘区B及D建立了对应的结合管理表1333的条目(B,D)及(D,B)中的结合度从图17所示的0(由空栏表示的0)增加1为图19所示的1(步骤S56)
接着,组管理部1354判定是否所取得的LEN_SLE(B)与LEN_D(=D)不同且是-1以外(步骤S57)。在该例中,所取得的LEN_SLE(B)是C,与LEN_D(=D)不同且是-1以外(步骤S57的“是”)。
在此情况下,组管理部1354判断为,为了使逻辑盘区D与逻辑盘区B结合,需要将由LEN_SLE(B)表示的逻辑盘区C与逻辑盘区B的结合解除。所以,组管理部1354将逻辑盘区C(=LEs)从与逻辑盘区B(=LE1)的结合切离(步骤S58)。即,组管理部1354将与逻辑盘区C及B的组合对应的结合度从图17所示的1变更为图19所示的0,并将条目EMTE_C的PLE项目的内容从图16所示的B变更为图18所示的-1。
接着,组管理部1354判定是否所取得的LEN_PLE(D)与LEN_B(=B)不同且是-1以外(步骤S59)。在该例中,所取得的LEN_PLE(D)是C,与LEN_B(=B)不同且是-1以外(步骤59的“是”)。
在此情况下,组管理部1354判断为,为了使逻辑盘区D与逻辑盘区B结合,需要将由LEN_PLE(D)表示的逻辑盘区C与逻辑盘区D的结合解除。所以,组管理部1354将逻辑盘区C(=LEp)从与逻辑盘区D(=LE2)的结合中切离(步骤S60)。即,组管理部1354将与逻辑盘区C及D的组合对应的结合度从图17所示的1变更为图19所示的0,并将条目EMTE_C的SLE项目的内容从图16所示的D变更为图18所示的-1。
接着,组管理部1354判定所取得的LEN_SLE(B)及LEN_PLE(D)是否相等(步骤S61)。在该例中,所取得的LEN_SLE(B)及LEN_PLE(D)都是C,相等(步骤S61的“是”)。这表示,在步骤S58中被解除了与逻辑盘区B(=LE1)的结合关系的逻辑盘区(LEs)是与步骤S60中被解除了与逻辑盘区D(=LE2)的结合关系的逻辑盘区(LEp)相等的逻辑盘区C。所以,组管理部1354为了将逻辑盘区C从逻辑盘区B及D所属的盘区组切离,将条目EMTE_C的EGN项目的内容从图16所示的1变更为表示新的盘区组的EGN(例如图18所示的2)(步骤S62)。
然后,组管理部1354将逻辑盘区D及E分别选择为LE1及LE2(步骤S64及S65)。接着,组管理部1354从与逻辑盘区D(=LE1)及E(=LE2)建立了对应的条目EMTE_D及EMTE_E取得条目EMTE_D的SLE项目的内容LEN_SLE(D)和条目EMTE_D的PLE项目的内容LEN_PLE(E)(步骤S51)。所取得的LEN_SLE(D)及LEN_PLE(E)如图16所示,分别是A及0。
接着,组管理部1354将条目EMTE_D的SLE项目的内容从图16所示的A变更为图18所示的E(步骤S52)。此外,组管理部1354将条目EMTE_E的EGN项目及SLE项目的内容从图16所示的0及0变更为图18所示的1及-1(步骤S53)。
组管理部1354还将条目EMTE_E的PLE项目的内容从图16所示的0变更为图18所示的D(步骤S54)。另一方面,IO管理部1353将条目EMTE_E的AC计数项目的内容从图16所示的0增加1为图18所示的1,并将该条目EMTE_E的LAT项目的内容更新,以使其表示当前的时刻(步骤S55)。于是,组管理部1354将与逻辑盘区D及E建立了对应的结合管理表1333的条目(D,E)及(E,D)中的结合度从图17所示的0(由空栏表示的0)增加1为图19所示的1(步骤S56)。
另外,所取得的LEN_SLE(D)如上述那样是A,与LEN_E(=E)不同,并且是-1以外(步骤S57的“是”)。在此情况下,组管理部1354判断为,为了使逻辑盘区E与逻辑盘区D结合,需要将由LEN_SLE(D)表示的逻辑盘区A与逻辑盘区D的结合解除。所以,组管理部1354将逻辑盘区A(=LEs)从与逻辑盘区D(=LE1)的结合切离(步骤S58)。即,组管理部1354将与逻辑盘区A及D的组合对应的结合度从图17所示的1变更为图19所示的0,并将条目EMTE_A的PLE项目的内容从图16所示的D变更为图18所示的-1。在本实施方式中,当前的LE2即逻辑盘区E是所确定的逻辑盘区范围的最后的逻辑盘区(步骤S63的“否”)。所以,组管理部1354结束第2表更新处理(图9的步骤S27)。即,组管理部1354结束表更新处理(图8的步骤S2)。
向图8的流程图返回。在执行表更新处理时(步骤S2),将IO控制部1352启动。首先,IO控制部1352为了执行由接收的访问请求表示的访问,设定所确定的逻辑盘区范围内的逻辑盘区的数量作为变量e(步骤S3)。变量e表示要访问的(即,访问未完成的)逻辑盘区的数量。
接着,IO控制部1352从由变量e表示的数量的逻辑盘区中选择接着要访问的1个逻辑盘区(即目标逻辑盘区)(步骤S4)。接着,IO控制部1352如以下这样访问被分配给目标逻辑盘区内的要访问的全部的逻辑块的相同数量的物理块(步骤S5)。这里,假设目标逻辑盘区内的要访问的逻辑块的数量是c。在此情况下,分配给该c个逻辑块的物理块的数量也是c。
首先,IO控制部1352取得分配给目标逻辑盘区内的要访问的全部逻辑块中的开头的逻辑块的物理块(即开头的物理块)的物理盘区编号及偏移量的组。该物理盘区编号及偏移量的组基于上述开头的逻辑块的逻辑块地址及逻辑盘区编号,通过IO控制部1352参照地址变换表1331来取得。
IO控制部1352通过取得开头的物理块的物理盘区编号及偏移量的组,确定从开头的物理块开始的、实际要访问的c个物理块、和包含该c个物理块的存储装置(层级)。并且,IO控制部1352经由SIF控制器132向所确定的存储装置内的确定的c个物理块访问。另外,在访问请求是写访问请求、并且对于由该访问请求指定的逻辑块范围内的逻辑块没有分配物理块的情况下,IO管理部1353例如在步骤S3的执行时,对逻辑块范围内的逻辑块分配高速存储装置11(上位层级)内的连续的相同数量的空闲物理块。
IO控制部1352如果向所确定的c个物理块访问(步骤S5),则经由HIF控制器131向主机20返回响应(步骤S6)。接着,IO控制部1352将控制移交给层级化控制部1355。于是,层级化控制部1355判定是否是向低速存储装置12(下位层级)的访问(步骤S7)。
假如是向下位层级的访问(步骤S7的“是”),则由于目标逻辑盘区在较近的将来被访问的可能性较高,所以层级化控制部1355判断为,为了访问性能的提高而应将分配给该目标逻辑盘区的物理盘区的数据向上位层级移动。此外,如果目标逻辑盘区属于盘区组,则该盘区组内的其他的全部的逻辑盘区也在较近的将来被访问的可能性较高,所以层级化控制部1355判断为分配给该其他的全部的逻辑盘区的各个物理盘区的数据也应向上位层级移动。所以,层级化控制部1355执行用来将包含分配给目标逻辑盘区的物理盘区在内的1个以上的物理盘区决定为数据移动源的数据移动源决定处理(步骤S8)。
以下,参照图20对数据移动源决定处理(步骤S8)的详细情况进行说明。图20是表示数据移动源决定处理的典型的次序的流程图。首先,层级化控制部1355参照与目标逻辑盘区建立了对应的盘区管理表1332的条目的EGN项目(步骤S71)。
接着,层级化控制部1355根据在被参照的EGN项目中是否设定了初始值0以外的数值,来判定目标逻辑盘区是否属于盘区组(步骤S72)。假如目标逻辑盘区属于盘区组(步骤S72的“是”),则层级化控制部1355向步骤S73前进。在步骤S73中,层级化控制部1355确定分配给目标逻辑盘区所属的盘区组内的全部逻辑盘区的物理盘区的集合。此外,在步骤S73中,层级化控制部1355将包含在所确定的物理盘区的集合中的下位层级内的全部物理盘区决定为数据移动源。所决定的数据移动源包含被分配了目标逻辑盘区的物理盘区。并且,层级化控制部1355将数据移动源决定处理结束。
另一方面,如果目标逻辑盘区不属于盘区组(步骤S72的“否”),则层级化控制部1355仅将分配给该目标逻辑盘区的物理盘区决定为数据移动源(步骤S74)。并且,层级化控制部1355将数据移动源决定处理结束。
回到图8,对访问处理进一步说明。层级化控制部1355如果按照图20的流程图执行数据移动源决定处理(步骤S8),则向步骤S9前进。在步骤S9中,层级化控制部1355将被决定为数据移动源的物理盘区的数量设定为变量q(步骤S9)。
接着,层级化控制部1355探索上位层级内的空闲区域(步骤S10)。即,层级化控制部1355基于地址变换表1331,探索包含在上位层级(高速存储装置11)中、并且没有分配给逻辑盘区的物理盘区(即,空闲物理盘区)。另外,如果空闲物理盘区列表保存在存储器133(本地HDD134)中,则层级化控制部1355也可以从该列表中探索上位层级内的空闲物理盘区。其中,假设在空闲物理盘区列表中保持有空闲物理盘区的物理盘区编号的排列。
层级化控制部1355如果探索上位层级内的空闲物理盘区,则将该空闲物理盘区的数量设定为变量f(步骤S11)。在步骤S11中,层级化控制部1355从变量q减去变量f,将其差q-f设定为变量r。接着,层级化控制部1355判定变量r(=q-f)是否是正(步骤S12)。
假如变量r是正(步骤S12的“是”),即如果是q>f,则层级化控制部1355判断为为了将被决定为数据移动源的q个物理盘区的数据向上位层级移动,缺少r个空闲的物理盘区。在此情况下,层级化控制部1355执行用来在上位层级内确保至少r个新的空闲的物理盘区的空闲区域确保处理(步骤S13)。并且,层级化控制部1355向步骤S14前进。
相对于此,如果变量r不是正(步骤S12的“否”),即如果是q≦f,则层级化控制部1355判断为已经存在足够将被决定为数据移动源的q个物理盘区的数据移动到上位层级的数量的空闲的物理盘区。在此情况下,层级化控制部1355将步骤S13跳过,向步骤S14前进。
以下,参照图21对空闲区域确保处理(步骤S13)的详细情况进行说明。图21是表示空闲区域确保处理的典型的次序的流程图。在以下的说明中,在对逻辑盘区分配了上位层级内的物理盘区的情况下,将该逻辑盘区称作与上位层级对应的逻辑盘区。同样,在对盘区组内的多个逻辑盘区分配了上位层级内的相同数量的物理盘区的情况下,将该盘区组称作与上位层级对应的盘区组。
在空闲区域确保处理中,首先,层级化控制部1355生成关于与上位层级对应、并且不属于盘区组的全部的逻辑盘区、以及对应于上位层级的全部的盘区组的列表(步骤S81)。所生成的列表包括关于不属于盘区组的逻辑盘区的要素群、以及关于盘区组的要素群的排列。
包含在列表中的、与不属于盘区组的逻辑盘区有关的各要素具有该逻辑盘区的逻辑盘区编号、访问计数及最终访问时刻信息的组。另一方面,包含在列表中的关于盘区组的各要素具有该盘区组的盘区组编号、访问计数及最终访问时刻信息的组。
在本实施方式中,层级化控制部1355使用属于盘区组的全部的逻辑盘区的访问计数的平均值,来作为该盘区组的访问计数。但是,层级化控制部1355也可以使用属于盘区组的全部的逻辑盘区的访问计数中的最大的访问计数,来作为该盘区组的访问计数。此外,在本实施方式中,层级化控制部1355使用属于盘区组的全部的逻辑盘区的最终访问时刻中的、表示最新的最终访问时刻的最终访问时刻信息,来作为该盘区组的最终访问时刻信息。
在上述列表的生成中,层级化控制部1355基于盘区管理表1332确定不属于盘区组的逻辑盘区及盘区组。此外,层级化控制部1355通过基于该逻辑盘区的逻辑盘区编号而参照地址变换表1331,来判定所确定的逻辑盘区是否对应于上位层级。即,层级化控制部1355基于被分配给所确定的逻辑盘区的物理盘区的物理盘区编号,判定该所确定的逻辑盘区是否对应于上位层级。同样,层级化控制部1355通过基于该所确定的盘区组内的逻辑盘区的逻辑盘区编号而参照地址变换表1331,判定所确定的盘区组是否对应于上位层级。即,层级化控制部1355基于被分配给所确定的盘区组内的逻辑盘区的物理盘区的物理盘区编号,判定该所确定的盘区组内的逻辑盘区是否对应于上位层级,基于该判定结果判定该所确定的盘区组是否对应于上位层级。
层级化控制部1355在生成上述列表时,将该列表内的全部要素基于各个要素的访问计数(更详细地讲,访问计数及最终访问时刻)(例如以访问计数的升序)排序(步骤S82)。在该排序中,在访问计数存在相同的多个要素的情况下,层级化控制部1355越是最终访问时刻较久远的要素,定位在越低的位次。其中,为了说明的简略化,假设在某个要素的位次比别的要素的位次高(低)的情况下,该某个要素的访问计数比该别的要素的访问计数大(小)。此外,将访问计数最小的要素的位次处理为最下位处置。
接着,层级化控制部1355将所生成的列表内的要素的数量设定为变量x的初始值(步骤S83)。变量x被作为表示所生成的列表内的要素(更详细地讲,是排序后的要素)的位置(即位次)的指针使用。所以,在以下的说明中,将变量x称作指针x。在步骤S83中,层级化控制部1355将变量y设定为初始值0。变量y表示在空闲区域确保处理中数据被从上位层级移动到下位层级中的物理盘区的数量,即在上位层级内新确保的空闲物理盘区的数量。
接着,层级化控制部1355判定由指针x指定的列表内的要素(即,位次为第x位的要素)是否是盘区组(步骤S84)。假如第x位的要素是盘区组(步骤S84的“是”),则层级化控制部1355将向该第x位的盘区组内的全部逻辑盘区分配的相同数量的物理盘区内的数据从上位层级(高速存储装置11)移动到下位层级(低速存储装置12)内的空闲区域中(步骤S85)。通过该数据的移动,层级化控制部1355能够将被向第x位的盘区组内的全部逻辑盘区分配的上位层级内的相同数量的物理盘区,新确保为空闲物理盘区(空闲区域)。
接着,层级化控制部1355将变量y增加如下的数量,即:通过此次的步骤S84的执行而数据被移动的物理盘区的数量(步骤S86)。接着,层级化控制部1355向步骤S89前进。
相对于此,如果第x位的要素不是盘区组(步骤S84的“是”),即如果第x位的要素是逻辑盘区,则层级化控制部1355将分配给该第x位的逻辑盘区的物理盘区内的数据从上位层级向下位层级内的空闲区域移动(步骤S87)。通过该数据的移动,层级化控制部1355能够将分配给第x位的逻辑盘区的上位层级内的物理盘区确保为空闲物理盘区。接着,层级化控制部1355将变量y增加1(步骤S88),向步骤S89前进。
在步骤S89中,层级化控制部1355将地址变换表1331更新,以使其反映步骤S85或S87中的数据的移动。即,在对应于步骤S85的执行而执行步骤S89的情况下,层级化控制部1355将地址变换表1331更新,以将向第x位的盘区组内的全部逻辑盘区(内的逻辑块群)分配的相同数量的物理盘区(内的物理块群)从步骤S85中的数据移动源的物理盘区群(内的物理块群)变更为步骤S85中的数据移动目标的物理盘区群(内的物理块群)。相对于此,在对应于步骤S87的执行而执行步骤S89的情况下,层级化控制部1355将地址变换表1331更新,以将分配给在第x位的逻辑盘区的物理盘区从步骤S87中的数据移动源的物理盘区变更为步骤S87中的数据移动目标的物理盘区。
层级化控制部1355如果将地址变换表1331更新,则向步骤S90前进。在步骤S90中,层级化控制部1355判定在步骤S86或S88中更新后的变量y是否是变量r以上。假如变量y是变量r以上(步骤S90的“是”),则层级化控制部1355判断为,通过空闲区域确保处理能够在上位层级内确保至少r个新的空闲的物理盘区。所以,层级化控制部1355结束空闲区域确保处理。
如上述那样,在本实施方式中,层级化控制部1355不将在步骤S85及S87中执行的用来确保空闲区域的数据移动反映到盘区管理表1332及结合管理表1333中。但是,层级化控制部1355也可以对应于用来确保空闲区域的数据移动而将盘区管理表1332及结合管理表1333更新。其中,在将该数据移动在步骤S87中执行的情况下,不将结合管理表1333更新。
另一方面,如果变量y不是变量r以上(步骤S90的“否”),则层级化控制部1355判断为在上位层级内还不能确保至少r个新的空闲的物理盘区。所以,层级化控制部1355如以下这样继续空闲区域确保处理。
首先,层级化控制部1355将指针x减小1(步骤S91)。接着,层级化控制部1355回到步骤S84,判定由减小后的指针x指定的列表内的要素是否是盘区组。显然,在此次的判定中使用的要素的位次比在前次的判定中使用的要素高1级。之后的动作与前次的判定后的动作是同样的。将步骤S84至S91反复执行,直到在上位层级内确保至少r个新的空闲的物理盘区。
回到图8,对访问处理进一步说明。层级化控制部1355如果按照图21的流程图执行空闲区域确保处理(步骤S13),则向步骤S14前进。此时,在上位层级内至少存在f+r(=q)个空闲物理盘区。所以,层级化控制部1355将由数据移动源决定处理(步骤S8)决定的q个物理盘区内的数据向上位层级内的空闲区域(更详细地讲,q个空闲物理盘区)移动(步骤S14)。此外,层级化控制部1355在将空闲区域确保处理(步骤S13)跳过的情况下(步骤S12的“否”),也执行上述数据的移动(步骤S14)。
接着,层级化控制部1355将地址变换表1331、盘区管理表1332及结合管理表1333更新,以反映步骤S14中的数据的移动(步骤S15)。即,层级化控制部1355将地址变换表1331更新,以便向被分配了数据移动源的q个物理盘区(内的物理块群)的q个逻辑盘区(内的逻辑块群)分配数据移动目标的q个物理盘区(内的物理块群)。此外,层级化控制部1355在盘区管理表1332中,将与上述q个逻辑盘区建立了对应的条目中的访问计数及最终访问时刻信息更新。此外,层级化控制部1355按照上述q个逻辑盘区中的访问连续的逻辑盘区的组合,将结合管理表1333中的对应的结合度增加1。
层级化控制部1355如果执行了步骤S15,则将控制返回给IO控制部1352。于是,IO控制部1352将变量e减小1(步骤S16)。接着,IO控制部1352判定被减小了1的变量e是否是不到0(负)(步骤S17)。假如被减小了1的变量e不到0(步骤S17的“是”),则IO控制部1352判断为向所确定的逻辑盘区范围内的全部的逻辑盘区的访问完成。所以,IO控制部1352将最后被处理的目标逻辑盘区(即,所确定的逻辑盘区范围的最后的逻辑盘区)的逻辑盘区编号向存储器133的特定区域保存(步骤S18),结束按照图8的流程图的访问处理。
相对于此,如果被减小了1的变量e不到0(步骤S17的“否”),则IO控制部1352判断为在所确定的逻辑盘区范围内存在还没有被访问的e个逻辑盘区。所以,IO控制部1352向步骤S4返回,从还没有被访问的e个(即,由变量e表示的数量)的逻辑盘区中,选择先行被访问的逻辑盘区后续的逻辑盘区作为目标逻辑盘区。接着,与在最初的步骤S4中选择了目标逻辑盘区的情况同样,执行接着步骤S4的处理(即,包括步骤S5至S7的处理)。
在分配给在最初的步骤S4中选择的目标逻辑盘区的物理盘区存在于下位层级中的情况下(步骤S7的“是”),在最初的步骤S14中执行从下位层级向上位层级的数据移动。因此,如果在最初的步骤S4中选择的目标逻辑盘区属于盘区组,则在最初的步骤S14的执行后,分配给该盘区组内的全部逻辑盘区的物理盘区的集合存在于上位层级中。因而,分配给在第2次的步骤S4中选择的目标逻辑盘区的物理盘区存在于上位层级中(步骤S7的“否”)。在此情况下,将步骤S8至S15跳过,执行步骤S16。
另外,在分配给在最初的步骤S4中选择的目标逻辑盘区的物理盘区存在于上位层级的情况下(步骤S7的“否”),也将步骤S8至S15跳过,执行步骤S16。并且,如果分配给在第2次的步骤S4中选择的目标逻辑盘区的物理盘区存在于下位层级(步骤S7的“是”),则执行步骤S8。
根据本实施方式,层级化控制部1355将在物理盘区的集合中包含的、下位层级内的全部的物理盘区的数据,通过按照该访问请求的访问处理中的步骤S14的执行,移动到上位层级中,所述物理盘区是被分配了由来自主机20的访问请求指定的逻辑盘区范围所属的盘区组内的全部的逻辑盘区的物理盘区。该数据移动与以往执行的、基于定期的访问频度评价的层级间的数据移动相比,开销较小,能够在短时间中执行。
指定的逻辑盘区范围所属的盘区组内的各个逻辑盘区关于同时访问的关联性较高,即使访问计数较小,在较近的将来被访问的可能性也较高。在本实施方式中,通过上述数据移动,保证该盘区组内的各个逻辑盘区(对其分配的物理盘区)的数据全部存在于上位层级中。因而,在数据移动后较近的将来被请求了向上述盘区组内的任意的逻辑块范围的访问的情况下,IO控制部1352能够向与该任意的逻辑块范围对应的物理块范围高速地访问。
在图8的流程图中,将关于变量e的判定(步骤S17)在变量e的减法(步骤S16)的紧之后执行。但是,关于变量e的判定例如也可以在目标逻辑盘区的刚刚选择(步骤S4)之前执行。在此情况下,IO控制部1352与步骤S17不同,需要判定变量e是否不到1。假如变量e不是不到1,则IO控制部1352向步骤S4前进,如果变量e不到1,则IO控制部1352只要向步骤S18前进就可以。此外,IO控制部1352只要在变量e的减小(步骤S16)后,判定变量e是否不到1就可以。
<变形例>
接着,对上述实施方式的变形例进行说明。在上述实施方式中,关于盘区组的规模没有设置制约。因此,随着时间的经过,盘区组有可能巨大化。如果盘区组巨大化,则为了将该盘区组内的例如全部逻辑盘区(对其分配的物理盘区)的数据从下位层级移动到上位层级需要较多的时间。所以,本变形例的特征在于,将巨大化的盘区组通过再分组处理分为两个盘区组。
以下,参照图22对本变形例中的再分组处理进行说明。图22是表示再分组处理的次序的流程图。在本变形例中,假设再分组处理在图8的流程图中表示的访问处理中被追加到步骤S3的紧之前(即,步骤S2的紧之后)。因而,如果需要,则在图8的流程图中,在步骤S2与步骤S3之间插入再分组处理。
首先,组管理部1354基于图8的步骤S2中的盘区管理表1332的更新的结果,判定是否发生了盘区组的扩展(步骤S101)。所谓盘区组的扩展,是指构成该盘区组的逻辑盘区的数量增加。在上述第2情况下,发生盘区组的扩展。
假如没有发生盘区组的扩展(步骤S101的“否”),则组管理部1354判断为不需要再分组。在此情况下,组管理部1354将按照图22的流程图的再分组处理结束,向图8的步骤S3前进。
相对于此,如果发生盘区组的扩展(步骤S101的“是”),则组管理部1354确定扩展后的盘区组(步骤S102)。接着,组管理部1354基于盘区管理表1332,检测构成所确定的盘区组的逻辑盘区的数量Ne(步骤S103)。
另外,为了按照每个盘区组来管理逻辑盘区的数量,组管理部1354也可以使用具有与各盘区组建立了对应的条目的盘区组管理表。该盘区组管理表的各条目被用于保持构成对应的盘区组的逻辑盘区的数量。
接着,组管理部1354判定检测到的逻辑盘区的数量Ne是否超过了阈值Nth(步骤S104)。阈值Nth是用来判定所确定的盘区组是否巨大化的基准值。在本变形例中,阈值Nth被设定为能够配置到上位层级(高速存储装置11)中的最大的盘区的数量的一定比例、例如1/2。但是,阈值Nth也可以是其他的值。
假如Ne没有超过Nth(步骤S104的“否”),则组管理部1354判断为不需要将所确定的盘区组再分组。在此情况下,组管理部1354结束再分组处理,向图8的步骤S3前进。
相对于此,如果Ne超过Nth(步骤S104的“是”),则组管理部1354如以下这样执行用来将所确定的盘区组再分组的3个前处理(第1至第3前处理)。首先,组管理部1354执行第1前处理,检测在所确定的盘区组内拥有最小的结合度(更详细地讲,在0以外最小的结合度)的逻辑盘区的对(第2及第3逻辑盘区的组合)(步骤S105)。以下,对步骤S105的详细情况进行说明。
首先,组管理部1354基于盘区管理表1332,确定所确定的盘区组内的全部逻辑盘区。接着,组管理部1354从结合管理表1333取得所确定的全部逻辑盘区中的访问连续的逻辑盘区的各对的结合度。并且,组管理部1354从所取得的结合度中检测最小的结合度。由此,组管理部1354检测拥有最小的结合度的逻辑盘区的对。
图23将作为扩展的盘区组而确定了盘区组GR1的情况下的该盘区组GR1的结构、和该盘区组GR1内的访问连续的逻辑盘区的各对的结合度的例子与结合管理表1333的例子一起表示。图23的例子为了简略化,设想了盘区组GR1由6个逻辑盘区A,B,C,D,E及F构成(Ne=6)、Nth是5的情况。但是,Ne及Nth通常与该例相比,充分大。
在图23中,将逻辑盘区A,B,C,D,E及F以该顺序结合的箭头表示访问顺序。因而,例如逻辑盘区C的前方链接盘区及后方链接盘区分别是逻辑盘区B及D。在图23的例子中,盘区组GR1内的相互邻接的逻辑盘区的对的结合度(A,B)[=(B,A)],(B,C)[=(C,B)],(C,D)[=(D,C)],(D,E)[=(E,D)],及(E,F)[=(F,E)]分别是50,132,5,37及82。这些结合度如用箭头230表示那样,被反映到结合管理表1333中。在图23的例子中,作为最小的结合度而检测到5。
接着,组管理部1354执行第2前处理,将结合管理表1333内的全部结合度(更详细地讲,0以外的全结合度)用检测到的最小的结合度标准化(步骤S106)。该标准化,是指将结合管理表1333内的全结合度用检测到的最小的结合度除。在图23的例子中,最小的结合度是结合度(C,D)[=(D,C)],是5。
图24将第2前处理(标准化)执行前后的结合管理表1333的例子对比来表示。在图24中,将标准化前的结合管理表1333表示在箭头240的基端侧、将标准化后的结合管理表1333表示在箭头240的前端侧。标准化前的结合管理表1333的内容与图23所示的结合管理表1333的内容一致。结合管理表1333中的最小的结合度(C,D)[=(D,C)]通过标准化,如图24所示那样被从5变更为1。
接着,组管理部1354执行第3前处理,将结合管理表1333内的被标准化的最小的结合度(即1)置换为表示无结合的0(步骤S107)。结合度0如上述那样,与用空栏表示者是等价的。通过该置换,将拥有最小的结合度1的逻辑盘区的对的结合解除。
图25将第3前处理(0置换)执行前后的结合管理表1333的例子对比来表示。在图25中,分别将0置换前的结合管理表1333表示在箭头250的基端侧,将0置换后的结合管理表1333表示在箭头250的前端侧。
接着,组管理部1354将所确定的盘区组内的全盘区进行再分组,以使其反映上述向结合度0的置换(即,结合度被置换为0的逻辑盘区的对的结合关系被解除)(步骤S108)。即,组管理部1354基于盘区管理表1332及结合管理表1333,将所确定的盘区组(第2盘区组)分割为包含结合度被置换为0的逻辑盘区的对的一方(第2逻辑盘区)在内的盘区组(第3盘区组)、和包含该逻辑盘区的对的另一方(第3逻辑盘区)在内的盘区组(第4盘区组)。
在本变形例中,组管理部1354对包含结合度被置换为0的逻辑盘区的对中的、先行的逻辑盘区(以下称作前盘区)的盘区组,赋予当前没有被使用的新的盘区组编号。此外,组管理部1354向包含结合度被置换为0的逻辑盘区的对中的、后续的逻辑盘区(以下称作后盘区的)的盘区组赋予原来的盘区组(即,所确定的盘区组)的盘区组编号。但是,也可以相反。
在再分组(步骤S108)中,组管理部1354将盘区管理表1332如以下这样更新。首先,组管理部1354将与前盘区建立了对应的盘区管理表1332的条目中的EGN项目的内容及SLE项目的内容分别更新为上述新的盘区组编号及-1。此外,组管理部1354将与后盘区建立了对应的盘区管理表1332的条目中的PLE项目的内容更新为-1。
组管理部1354如果执行了再分组(步骤S108),则结束按照图22的流程图的再分组处理。并且,在本变形例中,执行图8的流程图中的步骤S3。另外,也可以将再分组处理在步骤S3的紧之前以外的时机、例如步骤S3的紧之后执行。
图26表示再分组前(即,第3前处理执行紧之后)的结合管理表1333的例子,并将再分组前后的盘区组的例子对比表示。在图26中,将再分组前的结合管理表1333表示在箭头261的基端侧。根据上述步骤S108的说明可知,在再分组中,不发生结合管理表1333的更新。即,结合管理表1333在再分组的前后没有变化。因而,图26所示的结合管理表1333也表示再分组后的状态。在图26中,在箭头261的前端侧及箭头262的基端侧示出了盘区组GR1的再分组前的结构。图26所示的再分组前的盘区组GR1也根据图23可知,由逻辑盘区A,B,C,D,E及F构成。
再分组前的盘区组GR1内的逻辑盘区C及D的对的结合度通过第3前处理(步骤S107)被变更为0。所以,层级化控制部1355将逻辑盘区C及D的结合解除。并且,层级化控制部1355将逻辑盘区C和逻辑盘区A及B(即,与逻辑盘区C间接或直接具有结合关系的逻辑盘区A及B)从盘区组GR1中拆离,使其属于新的盘区组GRa。即,层级化控制部1355将盘区组GR1内的逻辑盘区A,B,C,D,E及F如在图26中用箭头262表示那样,再分组为由逻辑盘区A,B及C构成的新的盘区组GRa、和由逻辑盘区D,E及F构成的缩小的盘区组GR1(步骤S108)。
根据以上说明的至少1个实施方式,能够使层级间的数据移动高效率化。
说明了本发明的一些实施方式,但这些实施方式是作为例子提示的,不是要限定发明的范围。这些新的实施方式能够以其他各种各样的形态实施,在不脱离发明的主旨的范围内能够进行各种各样的省略、置换、变更。这些实施方式及其变形包含在发明的范围及主旨中,并且包含在权利要求书所记载的发明和其等价的范围中。
标号说明
10层级化存储系统;11高速存储装置(第1存储装置);12低速存储装置(第2存储装置);13存储控制器;20主机(主计算机);133存储器;134本地HDD;135CPU;1331地址变换表;1332盘区管理表;1333结合管理表;1351结构管理部;1352输入输出(IO)控制部;1353IO管理部;1354组管理部;1355层级化控制部。

Claims (12)

1.一种层级化存储系统,具备:
第1存储装置,包括具有分别由第1数量的物理块构成的多个物理盘区的第1存储区域,并且被定位在上位层级中;
第2存储装置,包括具有分别由与上述第1数量相同数量的物理块构成的多个物理盘区的第2存储区域,并且访问速度比上述第1存储装置低,且被定位在下位层级;以及
存储控制器,控制向上述第1存储装置及上述第2存储装置的访问;
其特征在于,
上述存储控制器具备:
结构管理部,构建包含分别由与上述物理块相同大小的多个逻辑块构成的虚拟化的存储区域在内的逻辑单元,向利用上述层级化存储系统的主计算机提供上述逻辑单元;
输入输出控制部,根据来自上述主计算机的访问请求,从上述第1存储装置或上述第2存储装置读数据,或者向上述第1存储装置或上述第2存储装置写数据;
输入输出管理部,将上述逻辑单元内的上述虚拟化的存储区域作为具有分别由与上述第1数量相同数量的逻辑块构成的多个逻辑盘区的存储区域来进行管理;
组管理部,按照由上述多个逻辑盘区内的分别不同的两个逻辑盘区构成的每个组合,将表示与对应的两个逻辑盘区的访问有关的结合的强度的结合度,基于该对应的两个逻辑盘区依次被访问的访问次数来进行管理,并按照相互具有结合关系的组合的每个系列,将包含在对应的系列中的逻辑盘区的集合作为盘区组来管理;以及
层级化控制部,在上述访问请求指定了向包含第1逻辑块在内的1个以上的逻辑块的访问、并且上述第1逻辑块包含在第1逻辑盘区中、且上述第1逻辑盘区属于包含被分配了上述第2存储装置内的q个物理盘区的q个逻辑盘区的盘区组的情况下,将上述q个物理盘区的数据移动到上述第1存储装置内的空闲的q个物理盘区中,并将分配给上述q个逻辑盘区的q个物理盘区从上述数据的移动源的q个物理盘区变更为上述数据的移动目标的q个物理盘区。
2.如权利要求1所述的层级化存储系统,其特征在于,
上述输入输出管理部取得表示向上述多个逻辑盘区各自的访问的状况的访问统计值;
上述组管理部基于属于对应的盘区组的全部的逻辑盘区的访问统计值,决定每个盘区组的访问统计值,
上述层级化控制部在上述第1存储装置内的空闲的物理盘区的数量相对于上述q缺少r的情况下,以被分配了上述第1存储装置内的各个物理盘区的逻辑盘区的访问统计值、以及由被分配了上述第1存储装置内的各个物理盘区的集合的逻辑盘区的集合构成的盘区组的访问统计值的升序,在不属于任何盘区组的逻辑盘区中,选择与数据应被从上述第1存储装置向上述第2存储装置移动的至少r个物理盘区对应的、不属于任何盘区组的1个以上的逻辑盘区及/或1个以上的盘区组,将被分配给所选择的1个以上的逻辑盘区及/或1个以上的盘区组内的全部的逻辑盘区的、上述第1存储装置内的上述至少r个物理盘区的数据,移动到与上述第1存储装置内的上述至少r个物理盘区相同数量的上述第2存储装置内的空闲的物理盘区中,从而将上述第1存储装置内的空闲的物理盘区的数量至少增加r。
3.如权利要求2所述的层级化存储系统,其特征在于,
上述输入输出管理部将属于上述对应的盘区组的全部的逻辑盘区的访问统计值的最大值或平均值,决定为上述对应的盘区组的访问统计值。
4.如权利要求2或3所述的层级化存储系统,其特征在于,
上述输入输出管理部使用上述多个逻辑盘区各自的访问统计值和最终访问时刻,来管理向上述多个逻辑盘区各自的访问的状况;
上述组管理部将构成各个上述盘区组的逻辑盘区的最终访问时刻中的最新的最终访问时刻,用作上述盘区组的各自的最终访问时刻;
上述层级化控制部在存在访问统计值相同的多个选择候选的情况下,越是最终访问时刻久远的选择候选,越提高被选择的位次。
5.如权利要求1所述的层级化存储系统,其特征在于,
上述组管理部基于构成各个盘区组的逻辑盘区的数量,检测由超过第2数量的逻辑盘区构成的第1盘区组,并检测在上述第1盘区组内拥有最小的结合度的第2逻辑盘区及第3逻辑盘区的组合,将上述第1盘区组再分组为包括上述第2逻辑盘区的第2盘区组和包括上述第3逻辑盘区的第3盘区组。
6.如权利要求5所述的层级化存储系统,其特征在于,
上述组管理部将每个上述组合的结合度用上述最小的结合度进行标准化,并将标准化后的上述最小的结合度置换为表示无结合的值。
7.如权利要求5所述的层级化存储系统,其特征在于,
上述第2数量是基于在上述第1存储装置中能够配置数据的物理盘区的数量而决定的。
8.如权利要求5所述的层级化存储系统,其特征在于,
如果假设p是2以上的整数,则如果上述1个以上的逻辑块是在上述逻辑单元内连续的p个逻辑块、并且上述p个逻辑块的一部分包含在上述第1逻辑盘区中、且上述p个逻辑块的另一部分包含在第4逻辑盘区中,则将上述第1逻辑盘区与上述第4逻辑盘区的组合的结合度增加。
9.如权利要求5所述的层级化存储系统,其特征在于,
还具备盘区管理表,上述盘区管理表与上述多个逻辑盘区分别建立对应地保持盘区组识别码、前方链接盘区识别码、后方链接盘区识别码、访问统计值、以及最终访问时刻信息,上述盘区组识别码表示对应的逻辑盘区所属的盘区组,上述前方链接盘区识别码与访问顺序有关,表示先行于该对应的逻辑盘区的逻辑盘区,上述后方链接盘区识别码与访问顺序有关,表示后续于该对应的逻辑盘区的逻辑盘区,上述访问统计值是该对应的逻辑盘区的访问统计值,上述最终访问时刻信息表示该对应的逻辑盘区最后被访问的最终访问时刻;
上述输入输出管理部根据上述访问请求,更新与至少1个逻辑盘区建立了对应的访问统计值及最终访问时刻信息,上述至少1个逻辑盘区对应于由上述访问请求指定的访问范围;
上述组管理部根据上述访问请求,更新与对应于上述指定的上述访问范围的至少1个逻辑盘区建立了对应的盘区组识别码、前方链接盘区识别码及后方链接盘区识别码。
10.如权利要求9所述的层级化存储系统,其特征在于,
还具备按照上述组合来保持对应的组合的结合度的结合管理表。
11.一种存储控制器,在具备第1存储装置和第2存储装置的层级化存储系统中,控制向上述第1存储装置及上述第2存储装置的访问,上述第1存储装置包括具有分别由第1数量的物理块构成的多个物理盘区的第1存储区域,并且被定位在上位层级中,上述第2存储装置包括具有分别由与上述第1数量相同数量的物理块构成的多个物理盘区的第2存储区域,并且访问速度比上述第1存储装置低,且被定位在下位层级中;
其特征在于,具备:
结构管理部,构建包括分别由与上述物理块相同大小的多个逻辑块构成的虚拟化的存储区域在内的逻辑单元,向利用上述层级化存储系统的主计算机提供上述逻辑单元;
输入输出控制部,根据来自上述主计算机的访问请求,从上述第1存储装置或上述第2存储装置读数据,或者向上述第1存储装置或上述第2存储装置写数据;
输入输出管理部,将上述逻辑单元内的上述虚拟化的存储区域作为具有分别由与上述第1数量相同数量的逻辑块构成的多个逻辑盘区的存储区域来进行管理;
组管理部,按照由上述多个逻辑盘区内的分别不同的两个逻辑盘区构成的每个组合,将表示与对应的两个逻辑盘区的访问有关的结合的强度的结合度,基于该对应的两个逻辑盘区依次被访问的访问次数来进行管理,并按照相互具有结合关系的组合的每个系列,将包含在对应的系列中的逻辑盘区的集合作为盘区组来管理;以及
层级化控制部,在上述访问请求指定了向包含第1逻辑块在内的1个以上的逻辑块的访问、并且上述第1逻辑块包含在第1逻辑盘区中、且上述第1逻辑盘区属于包含被分配了上述第2存储装置内的q个物理盘区的q个逻辑盘区在内的盘区组的情况下,将上述q个物理盘区的数据移动到上述第1存储装置内的空闲的q个物理盘区中,并将分配给上述q个逻辑盘区的q个物理盘区从上述数据的移动源的q个物理盘区变更为上述数据的移动目标的q个物理盘区。
12.一种层级化控制方法,在存储控制器中,将第1存储装置及第2存储装置分别作为上位层级及下位层级而进行层级化,所述存储控制器是控制向包括具有分别由第1数量的物理块构成的多个物理盘区的第1存储区域在内的第1存储装置、及包括具有分别由与上述第1数量相同数量的物理块构成的多个物理盘区的第2存储区域、并且访问速度比上述第1存储装置低的第2存储装置的访问的存储控制器,上述存储控制器构建包括分别由与上述物理块相同大小的多个逻辑块构成的虚拟化的存储区域在内的逻辑单元,并向利用具备上述第1存储装置及上述第2存储装置的层级化存储系统的主计算机提供上述逻辑单元,
其特征在于,
根据来自上述主计算机的访问请求,从上述第1存储装置或上述第2存储装置读数据,或者向上述第1存储装置或上述第2存储装置写数据;
将上述逻辑单元内的上述虚拟化的存储区域作为具有分别由与上述第1数量相同数量的逻辑块构成的多个逻辑盘区的存储区域来进行管理;
按照由上述多个逻辑盘区内的分别不同的两个逻辑盘区构成的每个组合,将表示与对应的两个逻辑盘区的访问有关的结合的强度的结合度,基于该对应的两个逻辑盘区依次被访问的访问次数进行管理;
按照相互具有结合关系的组合的每个系列,将包含在对应的系列中的逻辑盘区的集合作为盘区组管理;
在上述访问请求指定了向包含第1逻辑块在内的1个以上的逻辑块的访问、并且上述第1逻辑块包含在第1逻辑盘区中、且上述第1逻辑盘区属于包含被分配了上述第2存储装置内的q个物理盘区的q个逻辑盘区的盘区组的情况下,将上述q个物理盘区的数据移动到上述第1存储装置内的空闲的q个物理盘区中,并将分配给上述q个逻辑盘区的q个物理盘区从上述数据的移动源的q个物理盘区变更为上述数据的移动目标的q个物理盘区。
CN201710116790.3A 2016-03-16 2017-03-01 层级化存储系统、存储控制器及层级化控制方法 Active CN107203479B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-052510 2016-03-16
JP2016052510A JP6165909B1 (ja) 2016-03-16 2016-03-16 階層化ストレージシステム、ストレージコントローラ、及び階層化制御方法

Publications (2)

Publication Number Publication Date
CN107203479A CN107203479A (zh) 2017-09-26
CN107203479B true CN107203479B (zh) 2020-09-22

Family

ID=59351281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710116790.3A Active CN107203479B (zh) 2016-03-16 2017-03-01 层级化存储系统、存储控制器及层级化控制方法

Country Status (3)

Country Link
US (1) US9891828B2 (zh)
JP (1) JP6165909B1 (zh)
CN (1) CN107203479B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10373119B2 (en) * 2016-01-11 2019-08-06 Microsoft Technology Licensing, Llc Checklist generation
JP6253752B1 (ja) 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
US20220374158A1 (en) 2019-12-20 2022-11-24 Intel Corporation Managing runtime apparatus for tiered object memory placement

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521152A (zh) * 2011-11-29 2012-06-27 成都市华为赛门铁克科技有限公司 一种分级存储方法及系统
CN103052938A (zh) * 2010-10-14 2013-04-17 株式会社日立制作所 数据迁移系统和数据迁移方法
CN105074675A (zh) * 2014-03-04 2015-11-18 株式会社东芝 具有层级化块存储装置的计算机系统、存储控制器及程序

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4856932B2 (ja) * 2005-11-18 2012-01-18 株式会社日立製作所 記憶システム及びデータ移動方法
US8170990B2 (en) * 2008-05-30 2012-05-01 Hitachi, Ltd. Integrated remote replication in hierarchical storage systems
US8886882B2 (en) * 2012-09-14 2014-11-11 Hitachi, Ltd. Method and apparatus of storage tier and cache management
JP6065695B2 (ja) 2013-03-26 2017-01-25 富士通株式会社 ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム
CN104246721B (zh) 2013-03-29 2017-02-22 株式会社东芝 存储系统、存储控制器及存储控制方法
US9753987B1 (en) * 2013-04-25 2017-09-05 EMC IP Holding Company LLC Identifying groups of similar data portions
US20150039825A1 (en) * 2013-08-02 2015-02-05 Seagate Technology Llc Federated Tiering Management
US9367247B2 (en) * 2013-08-20 2016-06-14 Seagate Technology Llc Memory access requests in hybrid memory system
WO2015162766A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム及び半導体記憶装置
US9952808B2 (en) * 2015-03-26 2018-04-24 International Business Machines Corporation File system block-level tiering and co-allocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103052938A (zh) * 2010-10-14 2013-04-17 株式会社日立制作所 数据迁移系统和数据迁移方法
CN102521152A (zh) * 2011-11-29 2012-06-27 成都市华为赛门铁克科技有限公司 一种分级存储方法及系统
CN105074675A (zh) * 2014-03-04 2015-11-18 株式会社东芝 具有层级化块存储装置的计算机系统、存储控制器及程序

Also Published As

Publication number Publication date
US9891828B2 (en) 2018-02-13
JP2017167819A (ja) 2017-09-21
JP6165909B1 (ja) 2017-07-19
CN107203479A (zh) 2017-09-26
US20170269840A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
CN113168408B (zh) 利用压缩的键值存储树数据块溢出
US11599552B2 (en) Counter-based compaction of key-value store tree data block
JP5362145B1 (ja) 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
CN106610903B (zh) 层级化存储器系统、存储器控制器和去重及存储器层级化方法
JP5000316B2 (ja) オブジェクト・ベースのデータ記憶装置
CN108628753B (zh) 内存空间管理方法和装置
JP6678230B2 (ja) ストレージ装置
JPH08185275A (ja) ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US20130238838A1 (en) Controller, storage device, and computer program product
US11119912B2 (en) Ordering data updates for improving garbage collection being performed while performing the set of data updates
CN107203479B (zh) 层级化存储系统、存储控制器及层级化控制方法
CN108121501B (zh) 分级存储系统、存储控制器以及分级控制方法
JP5730446B1 (ja) トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
US20200019539A1 (en) Efficient and light-weight indexing for massive blob/objects
JP6050794B2 (ja) フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置
JP6022116B1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
JP2018156594A (ja) ストレージシステムおよび処理方法
JP2022116209A (ja) 仮想ストレージシステム

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Tokyo, Japan, Japan

Applicant after: Toshiba Corp

Applicant after: Toshiba Digital Solutions Ltd

Address before: Tokyo, Japan, Japan

Applicant before: Toshiba Corp

Applicant before: Toshiba Solutions Corporation

GR01 Patent grant
GR01 Patent grant