CN103858110A - 存储系统 - Google Patents

存储系统 Download PDF

Info

Publication number
CN103858110A
CN103858110A CN201180074025.0A CN201180074025A CN103858110A CN 103858110 A CN103858110 A CN 103858110A CN 201180074025 A CN201180074025 A CN 201180074025A CN 103858110 A CN103858110 A CN 103858110A
Authority
CN
China
Prior art keywords
storage
control information
volume
microprocessor
processor
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.)
Granted
Application number
CN201180074025.0A
Other languages
English (en)
Other versions
CN103858110B (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 CN103858110A publication Critical patent/CN103858110A/zh
Application granted granted Critical
Publication of CN103858110B publication Critical patent/CN103858110B/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例中的存储系统包括:非易失性存储区域,其用于存储来自主机的写数据;高速缓存区域,其能够在将写数据存储于非易失性存储区域中之前临时存储写数据;以及控制器,其确定将写数据存储于高速缓存区域中还是将写数据存储于非易失性存储区域中而不将写数据存储于高速缓存区域中,以及将写数据存储于所确定的区域中。

Description

存储系统
技术领域
本发明涉及存储系统,并且特别地涉及存储系统的控制。
背景技术
PCT国际公布No.WO2010/131373(专利文献1)公开一种负责卷的I/O的每个处理器将高速缓存于共享存储器的关于数据的控制信息高速缓存到本地存储器(控制高速缓存)以提高存储系统的性能的技术。
当更新本地存储器中的控制信息时,处理器同步地更新共享存储器中的控制信息。这一操作允许在某些故障时接管处理器的指派的另一处理器从共享存储器得到最新的数据高速缓存控制信息,从而防止由于降低的高速缓存命中率引起的存储系统中的性能退化。
除此之外,数据高速缓存(其将来自非易失性存储介质的用户数据高速缓存到高速缓存存储器以提高存储系统的性能)被广泛地应用到存储系统。
引文列表
专利文献
PTL1:WO2010/131373A
发明内容
技术问题
在此同时,这种用于提高性能目的的更新共享存储器中的控制信息增加了访问目标的共享存储器和控制该访问的处理器之间的开销。用于提高性能目的的数据高速缓存增加了访问目标的共享存储器和控制该访问的处理器之间的开销。
对问题的解决方案
本发明的一个方面的存储系统包括:负责不同控制信息的多个处理器;被逐一分配给多个处理器的本地存储器,本地存储器每个均保持有被指派给所分配的处理器的控制信息;以及从多个处理器可访问的共享存储器,共享存储器保持有被指派给多个处理器中的第一处理器的控制信息。第一处理器更新被分配给第一处理器的第一本地存储器中的控制信息。第一处理器确定是否将第一本地存储器中控制信息的更新反映到共享存储器中的控制信息。第一处理器将确定将被反映到共享存储器中的控制信息的、第一本地存储器中控制信息的更新反映到共享存储器中的控制信息。
发明的有益效果
本发明的一个方面实现存储系统中的低开销以提高存储系统的性能。
附图说明
图1为示意性地图示第一实施例中的整体计算机系统的配置的框图。
图2为图示第一实施例中的在存储系统中保持于本地存储器中的信息的视图。
图3为图示第一实施例中的在存储系统中保持于共享存储器中的信息的视图。
图4为示意性地图示第一实施例中的管理计算机的配置的视图。
图5为图示第一实施例中的性能提升功能启用表的示例的视图。
图6为图示第一实施例中的逐卷性能提升功能启用表的示例的视图。
图7为图示第一实施例中的介质类型表的示例的视图。
图8为图示第一实施例中的RAID级别表的示例的视图。
图9为图示第一实施例中的逐卷命中率表的示例的视图。
图10为图示第一实施例中的命中率阈值表的示例的视图。
图11为图示第一实施例中的MP操作率表的示例的视图。
图12为图示第一实施例中的MP操作率阈值表的示例的视图。
图13为图示第一实施例中的CM操作率表的示例的视图。
图14为图示第一实施例中的CM操作率阈值表的示例的视图。
图15为第一实施例中的处理来自主机的读命令的流程图。
图16为第一实施例中的确定是否更新关于数据高速缓存的SM控制信息的流程图。
图17为第一实施例中的确定是否高速缓存主机数据的流程图。
图18A为第一实施例中的处理来自主机的写命令的流程图的一部分。
图18B为第一实施例中的处理来自主机的写命令的流程图的另一部分。
图19为第一实施例中的来自管理计算机的设置的流程图。
图20为示出第一实施例中的在管理计算机中设置菜单窗口的示例的视图。
图21为第一实施例中的更新介质类型表的流程图。
图22为第一实施例中的更新CMPK操作率的流程图。
图23为第一实施例中的更新命中率的流程图。
图24为第一实施例中的更新MP操作率的流程图。
图25为第一实施例中的在转移所有权中更新SM的流程图。
图26为图示第二实施例中的保持于本地存储器中的信息的视图。
图27为图示第二实施例中的保持于共享存储器中的信息的视图。
图28为图示第二实施例中的动态映射表的示例的视图。
图29为图示第二实施例中的逐页监视表的示例的视图。
图30为图示第二实施例中的逐页监视差异表的示例的视图。
图31为第二实施例中的更新监视分层存储虚拟化功能的结果的流程图。
图32为示意性地图示第三实施例中的整体计算机系统的配置的视图。
图33为图示第三实施例中的异步远程复制的视图。
图34为图示第三实施例中的保持于本地存储器中的信息的视图。
图35为图示第三实施例中的保持于共享存储器中的信息的视图。
图36为图示第三实施例中的LM异步远程复制序号管理表的示例的视图。
图37为图示第三实施例中的SM异步远程复制序号管理表的示例的视图。
图38为第三实施例中的更新异步远程复制序号的流程图。
图39为第三实施例中的在MPPK故障时恢复异步远程复制序号的流程图。
图40为图示第四实施例中的保持于本地存储器中的信息的视图。
图41为图示第四实施例中的保持于共享存储器中的信息的视图。
图42为图示第四实施例中的LM本地复制差异管理表的视图。
图43为图示第四实施例中的SM本地复制差异管理表的视图。
图44为图示第四实施例中的LM本地复制差异区域稀疏化(thinning-out)操作管理表的视图。
图45为图示第四实施例中的SM本地复制差异区域稀疏化操作管理表的视图。
图46为第四实施例中的更新异步本地复制差异管理信息的流程图。
图47为第四实施例中的在MPPK故障时复制本地复制差异的流程图。
图48为图示第四实施例中的在管理计算机中设置菜单窗口的示例的视图。
图49为示意性地图示第五实施例中的整体计算机系统的配置的视图。
图50为图示第五实施例中的保持于本地存储器中的信息的视图。
图51为图示第五实施例中的X路径操作率表的示例的视图。
图52为图示第五实施例中的X路径操作率阈值表的示例的视图。
图53为第五实施例中的考虑到X路径而确定是否更新关于数据高速缓存的SM控制信息的流程图。
图54为第五实施例中的更新X路径操作率的流程图。
图55为示意性地图示第六实施例中的计算机系统的整体配置的视图。
图56为图示第六实施例中的保持于本地存储器中的信息的视图。
图57为图示第六实施例中的MP操作率表的示例的视图。
图58为图示第六实施例中的MP操作率阈值表的示例的视图。
图59为图示第六实施例中的共享存储器区域管理表的示例的视图。
图60A为第六实施例中的确定是否更新关于数据高速缓存的SM控制信息的流程图的一部分。
图60B为第六实施例中的确定是否更新关于数据高速缓存的SM控制信息的流程图的另一部分。
图61为第六实施例中的更新MP操作率的流程图。
图62为图示第七实施例中的保持于本地存储器中的信息的视图。
图63为图示第七实施例中的响应表的示例的视图。
图64为图示第七实施例中的CM使用阈值表的示例的视图。
图65为第七实施例中的更新命中率的流程图。
具体实施方式
本发明涉及一种提高存储系统的性能的技术。在下文中,将参考附图描述本发明的优选实施例。为了说明的清楚,下述描述和附图含有适当的省略和简化,并且在不需要的时候省略了重复性说明。实施例仅仅是用于体现本发明的示例并且不限制本发明的技术范围。
第一实施例
这一实施例中的存储系统包括多个处理器,每个处理器负责去往和来自不同卷的输入和输出(I/O)。每个处理器被分配本地存储器。这一实施例中的存储系统包括由负责不同卷的多个处理器可访问的共享存储器。本地存储器和共享存储器典型地为易失性半导体存储器。
用于指派给处理器的卷的数据高速缓存控制信息被保持于用于处理器的本地存储器(控制数据高速缓存)。再者,共享存储器存储用于卷的数据高速缓存控制信息。
处理器参考并且更新本地存储器中的高速缓存控制信息以控制用于所指派的卷的数据高速缓存,这实现了数据高速缓存控制中的更快处理。
如所描述的那样,共享存储器可以由多个处理器访问,每个处理器负责不同卷。如果负责任何一个卷的处理器发生故障,则不同处理器接管指派并且将相关数据高速缓存控制信息从共享存储器加载到其自己的本地存储器。不同处理器使用从共享存储器获得的数据高速缓存控制信息来控制所接管的卷的数据高速缓存。
在这一实施例中,处理器基于预定条件来确定是否把本地存储器中的高速缓存控制信息的更新反映到共享存储器中的控制信息。把本地存储器中控制信息的仅实质性更新反映到共享存储器中的控制信息实现了处理器和共享存储器之间的通信的更低开销,从而导致存储系统的性能的提高。
这一实施例中的存储系统进一步基于预定条件来确定是否高速缓存读数据和写数据。读数据和写数据的选择性高速缓存实现了高速缓存区域的高效使用以及关于高速缓存存储器和处理器执行数据高速缓存的更低开销,从而导致存储系统的性能提高。
在下文中,将参考图1至图25具体地描述这一实施例。图1图示计算机系统的示例,该计算机系统包括这一实施例的存储系统10、用于处理数据和计算的主机180,以及用于管理存储系统10的管理计算机20。计算机系统可以包括多个主机180。
存储系统10和主机180经由数据网络190彼此连接。数据网络190例如为存储区域网络(SAN)。数据网络190可以是IP网络或任何其它种类的用于数据通信的网络。
存储系统10、主机180和管理计算机20经由管理网络(未示出)而互连。管理网络例如为IP网络。管理网络可以是SAN或任何其它种类的网络。数据网络190和管理网络可以是相同的网络。
存储系统10容纳多个存储驱动器170。存储驱动器170包括具有非易失性磁盘的硬盘驱动器(HDD)和具有非易失性半导体存储器(诸如闪速存储器)的固态驱动器(SSD)。存储驱动器170存储从主机180传输的数据(用户数据)。多个存储驱动器170使用RAID计算实现数据的冗余,从而使得可以防止存储驱动器170中出故障时的数据丢失。
存储系统10包括:用于连接到主机180的前端包(FEPK)100,用于连接到存储驱动器170的后端包(BEPK)140,用于安装高速缓存存储器的高速缓存存储器包(CMPK)130,以及用于安装执行内部处理的微处理器的微处理器包(MPPK)120,以及用于将它们互连的内部网络150。如图1中所示,这一示例的存储系统10包括多个FEPK100,多个BEPK140,多个CMPK130以及多个MPPK120。
每个FEPK100包括在板上的用于连接到主机180的接口101以及用于转移存储系统10中的数据的转移电路112。接口101可以包括多个端口;每个端口可以连接到主机。接口101将主机和存储系统10之间的通信中使用的协议(诸如以太网光纤通道(FCoE))转换为内部网络150中使用的协议(诸如PCI-Express)。
每个BEPK140包括在板上的用于连接到驱动器170的接口141以及用于转移存储系统10中的数据的转移电路142。接口141可以包括多个端口;每个端口可以连接到驱动器170。接口141将在与存储驱动器170的通信中使用的协议(诸如FC)转换为内部网络150中使用的协议。
每个CMPK130包括在板上的用于临时存储读自或写到主机180的用户数据的高速缓存存储器(CM)131以及用于存储由一个或多个MPPK120处置的控制信息的共享存储器(SM)132。负责不同卷的多个MPPK120(中的微处理器)可以访问共享存储器132。MPPK120使用的数据或程序被从存储系统10中的非易失性存储器(未示出)或存储驱动器170加载。彼此关联的高速缓存存储器131和共享存储器132可以安装在分离的板(包)上。
每个MPPK120包括一个或多个微处理器121、本地存储器(LM)122以及用于连接它们的总线123。这一示例包括多个微处理器121。微处理器121的数目可以是一个。多个微处理器121可以被看作是一个处理器。本地存储器122存储由微处理器121执行的程序以及由微处理器121使用的控制信息。
如上文所述,共享存储器132存储将由一个或多个MPPK120处置的控制信息。MPPK120将它需要的控制信息存储到其自己的本地存储器122(控制高速缓存)中。存储于本地存储器122中的控制信息提高了从微处理器121访问控制信息的速度,从而实现了存储系统10的性能提高。
微处理器121更新本地存储器122中的控制信息,并且它根据需要反映对共享存储器132中的控制信息的更新。这一实施例的特征之一在于这种更新控制。如果预定条件被满足,则微处理器121把本地存储器122中的控制信息的更新反映到共享存储器132中的控制信息。
在这一配置示例中,MPPK120中的微处理器121负责由存储系统10提供给主机180的卷。本地存储器122以及分配到微处理器121的共享存储器132存储用于微处理器负责其I/O的那些卷的数据高速缓存控制信息。
本发明可以被应用的控制信息为任何这样的控制信息,即使共享存储器132中的所述控制信息不被更新,由于该控制信息,MP故障将不导致主机数据丢失。将在其它实施例中说明这一实施例中的数据高速缓存控制信息以外的这种控制信息的示例。这一实施例描述这样的示例,其中微处理器被指派卷,但是指派给微处理器的对象不限于卷。微处理器可以被提供控制信息的指派。
图2为图示保持于每个本地存储器122中的信息的框图。本地存储器122存储性能提升功能启用表210、逐卷性能提升功能启用表220、介质类型表230、RAID级别表240、逐卷命中率表250、命中率阈值表260以及微处理器(MP)操作率表270。
本地存储器122进一步包括微处理器(MP)操作率阈值表280、高速缓存存储器(CM)操作率表290以及高速缓存存储器(CM)操作率阈值表300。例如,微处理器121从存储驱动器170或存储系统10中的任何其它非易失性存储区域获得这些表的至少一部分并且将它们存储于本地存储器122中,并且新创建某些其它表。将在稍后说明这些表的细节。
本地存储器122进一步保持高速缓存目录310。图3为图示共享存储器132中的高速缓存目录510的框图。微处理器121将来自共享存储器132的高速缓存目录510高速缓存到其自己的本地存储器122,并且根据需要把本地存储器122中的高速缓存目录310的更新反映到共享存储器132中的高速缓存目录510。高速缓存目录510为高速缓存目录310的备份数据。
在接收到来自主机180的读命令时,微处理器121参考其本地存储器122中的高速缓存目录310以确定对象数据是否在高速缓存存储器131中(高速缓存命中)。高速缓存目录310提供信息以搜寻保持于高速缓存存储器131中的高速缓存数据。
高速缓存目录310由参考表GRPP(群组指针)、GRPT(群组表)1和GRPT2以及作为管理表的时隙控制块(SLCB)构成。参考表GRPP、GRPT1和GRPT2为将被微处理器121参考以搜寻高速缓存节段的表并且具有目录结构。参考表GRPP位于最高级别并且参考表GRPT2位于最低级别。更高级别表包括指向下一级别表的指针。GRPT2包括指向SLCB的指针。
SLCB为用于管理关于节段的控制信息的表(节段为高速缓存管理中的最小单位),并且保持关于由读命令指定的数据是否在高速缓存存储器131中的信息、关于高速缓存存储器131中的高速缓存数据的地址的信息等等。
一个或多个节段可以与时隙关联。例如,一个节段可以存储64KB的数据。高速缓存管理中的最小单位为节段,但是高速缓存可以按照时隙为单位被管理。典型地,脏数据(被写到物理盘之前的状态)和干净数据(被写到物理盘之后的状态)的状态之间的转变是按时隙为单位被执行。预留和释放高速缓存区域是按时隙或节段为单位被执行。
在从主机180接收到读访问时,微处理器121按顺序搜寻具有该访问中包括的逻辑块地址(LBA)的表以查明所请求的数据是否在高速缓存存储器131中,并且如果在高速缓存存储器131中则进一步查明该数据的地址。
如果所请求的数据在高速缓存存储器131中,则微处理器121将该数据传输到主机180。如果所请求的数据不在高速缓存存储器131中,则微处理器121从存储驱动器170取回主机180所请求的数据并且将其存储于高速缓存区域中的一个或多个时隙中。写数据按照类似方式被高速缓存。应注意,使用高速缓存目录搜寻高速缓存数据是公知的技术;在本说明书中省略了详细说明。
图4为示意性地图示管理计算机20的配置的框图。管理计算机20包括输入接口22、输入装置28、显示接口23、显示装置29、CPU26、通信接口21、存储器24和HDD25。输入装置28的典型示例为键盘和指针装置,但是输入装置28可以是不同装置。显示装置29典型地为液晶显示装置。
管理员(用户)利用输入装置28输入必要数据,同时通过观察显示装置29来检查处理的结果。将在稍后描述将由管理员输入的信息以及由显示装置29所示的示例。在图1的计算机系统中,管理系统配置有一个管理计算机20,但是除了管理计算机20,管理系统还可以包括管理控制台。管理控制台包括输入装置和显示装置,并且经由网络连接到管理计算机20。
管理员从管理控制台访问管理计算机20并且指导管理计算机20执行处理。另外,管理员获得管理计算机20的处理的结果以将其显示于管理控制台。管理系统可以包括多个计算机,每个计算机具有管理计算机20的各功能的一部分或全部。CPU26为用于执行存储于存储器24中的程序的处理器。通信I/F21为与管理网络的接口,并且向主机180和存储系统10传输以及从它们接收用于系统管理的数据和控制命令。
图5示例说明性能提升功能启用表210的配置。性能提升功能启用表210具有性能提升功能启用标志列211。性能提升功能启用标志指示用于整体存储系统10的性能提升功能是否活跃。如果此标志为1,则用于整体存储系统10的性能提升功能为活跃。
在这一实施例中,性能提升功能为控制将存储于本地存储器122中的控制信息的更新反映(备份)到共享存储器132以及控制数据高速缓存的功能。这一功能将在稍后描述。例如,由管理员从管理计算机20设置用于性能提升功能启用表210的数据。
图6示例说明逐卷性能提升功能启用表220的配置。逐卷性能提升功能启用表220管理每个卷中的性能提升功能。逐卷性能提升功能启用表220具有逻辑卷编号221和性能提升功能启用标志列222。逻辑卷编号为逻辑卷的标识符。
性能提升功能启用标志的值1意味着用于该卷的性能提升功能为活跃。如果用于整体系统和该卷的性能提升功能启用标志是ON(1),则用于该卷的性能提升功能被启用。性能提升功能的这种逐卷管理和控制允许取决于卷特性的控制。用于逐卷性能提升功能启用表220的数据例如由管理员从管理计算机20设置。
图7示例说明介质类型表230的配置。介质类型表230管理RAID群组的介质类型。在这一实施例中,包括由一个或多个存储驱动器170提供的存储区域以及用于驱动器的接口的组成部分被称为介质。介质类型表230包括RAID群组编号列231和介质类型列232。
RAID群组编号为用于唯一地标识RAID群组的标识符。应注意,在本说明书中,标识符、名称和ID可以用作用于标识对象的标识信息;它们彼此可替换。介质类型表230中的数据例如由管理员从管理计算机20设置。
图8示例说明RAID级别表240的配置。RAID级别表240管理RAID群组的RAID级别。表240包括RAID群组编号列241和RAID级别列242。RAID级别表240中的数据例如由管理员从管理计算机20设置。
图9示例说明逐卷命中率表250的配置。逐卷命中率表250管理关于单独卷的高速缓存命中率。逐卷命中率表250包括逻辑卷编号列251、命中率列252、I/O计数列253、命中计数列254以及低命中率标志列255。
I/O计数为发到单独逻辑卷的读命令的数目。命中计数为导致高速缓存命中的读命令的数目。低命中率标志的值1意味着该条目上的命中率低于预定阈值。微处理器121计数对单独卷的读访问以及高速缓存命中,并且更新逐卷命中率表250中各字段中的数据。
微处理器121可以按比逻辑卷小的单位来监视命中率。例如,在虚拟卷功能或分层功能中使用的页可以被用作监视命中率中的单位。
命中率的计算可以包括写高速缓存中的命中率以及读高速缓存中的命中率。微处理器121可以分开管理读高速缓存中的命中率以及写高速缓存中的命中率。写高速缓存中的命中率[%]可以通过下述计算:100*(1-到存储驱动器的写数目/写命令I/O计数)。例如,在后面描述的读高速缓存控制和写高速缓存控制中,微处理器121参考相应的命中率。
图10示例说明命中率阈值表260的配置。命中率阈值表260包括命中率阈值列261。如果卷上的命中率等于或低于在此列中登记的阈值,则逐卷命中率表250中的用于该条目的低命中率标志被设置在1(ON标志)。命中率阈值例如由管理员从管理计算机20设置。
图11示例说明管理微处理器121的操作率的MP操作率表270的配置。MP操作率为每单位时间的微处理器121的处理时间并且代表微处理器的负荷。MP操作率表270包括微处理器编号列271、操作率列272、过载确定标志列273以及操作时间列274。微处理器编号将唯一地标识存储系统10中的微处理器。
每个微处理器121监视其自己的操作条件并且将操作率和操作时间的值存储于使用率列272和操作时间列274中的自己条目的相应字段。操作时间为每单位时间(在这一示例中为一秒)的操作时间。操作率为通过将操作时间除以单位时间获得的值。微处理器121将其自己的操作率与预定阈值比较,并且如果操作率等于或高于阈值,则它将自己条目的过载确定标志的字段中的值设置在1(ON标志)。
图12示例说明MP操作率阈值表280的配置,其具有用于存储上述阈值的值的列281。在这一示例中,MP操作率阈值对于所有微处理器是相同的,但是在微处理器之间可以使用不同阈值。
图13示例说明管理高速缓存存储器的操作率的CM操作率表290的配置。CM操作率为每单位时间对高速缓存存储器131的访问时间。CM操作率表290包括CMPK编号列291、操作率列292以及过载确定标志列293。CMPK编号为存储系统10中的CMPK的标识符。
微处理器121从每个CMPK130中的控制器获得操作率的值,并且将其存储于操作率列292的相关字段中。微处理器121将所获得的操作率的值与预定阈值比较,并且如果操作率的值等于或高于阈值,则它将条目的过载确定标志的字段中的值设置在1(ON标志)。
图14示例说明存储上述阈值的值的CM操作率阈值表300的配置。在这一示例中,CM操作率阈值对有所有CMPK是相同的,但是在CMPK之间可以使用不同阈值。
参考图15的流程图,将说明存储系统10从主机180接收的读命令的处理。从主机180接收读命令(S101)的微处理器121确定它是否有权访问由读命令指定的逻辑卷(也被称为LDEV)(S102)。如果它无权访问(在S102为否),则微处理器121将读命令转移到有权访问的MPPK120(S103)。
如果微处理器121有权访问(在S102为是),则微处理器121搜寻同一MPPK120的本地存储器122中的高速缓存目录310(S104)。如果它找到由读命令指定的地址(数据)(在S105为是),则微处理器121依据高速缓存目录310中的信息而从高速缓存存储器131取回读数据,并且将它们传输到主机180(S106)。
如果微处理器121无法找到由读命令指定的地址(数据)(高速缓存未命中)(在S105为否),则微处理器121检查用于本地存储器122的未高速缓存标志(S107)。未高速缓存标志为指示共享存储器132中的高速缓存目录510中的所有数据是否已经被高速缓存到本地存储器122并且被保持于本地存储器122中的标志。如果数据的一部分未被加载,则该值为ON。例如,如果由于刚刚出现故障切换而控制数据未被从共享存储器132加载到本地存储器122,则未高速缓存标志为ON。
如果未高速缓存标志为ON(在S107为是),则共享存储器132中的高速缓存目录510中的数据的一部分未被高速缓存。微处理器121经由CMPK130的控制器而将高速缓存目录(控制信息)从共享存储器132转移到本地存储器122(S108)。
微处理器121搜寻本地存储器122中的高速缓存目录310(S109)。如果它找到由读命令指定的数据(在S110为是),则微处理器121依据高速缓存目录310中的信息而从高速缓存存储器131取回读数据,并且将它们传输到主机180(S111)。
在高速缓存未命中(在S110为否)或未高速缓存标志为OFF(在S107为否)的情况下,微处理器121将高速缓存存储器131中的节段分配成用于读数据的时隙,并且另外更新本地存储器122中的高速缓存目录310(S112)。
微处理器121确定是否把高速缓存目录310的更新(其为关于数据高速缓存的控制信息)反映到共享存储器132中的数据510(S113)。这种确定的具体方法将在稍后详细描述。如果确定更新共享存储器132中的控制信息(在S114为是),则微处理器121更新共享存储器132中的高速缓存目录510(S115)并且进行到下一步骤S116。
如果微处理器121确定不更新共享存储器132中的控制信息(在S114为否),则它进行到步骤S116而不更新共享存储器132中的控制信息。在步骤S116,微处理器121确定是否高速缓存读数据(主机数据)。这种确定的方法将在稍后描述。
如果微处理器121确定它将读数据存储于高速缓存存储器131中并且随后将它们传输到主机180(在S117为是),则微处理器121利用BEPK140和CMPK130从存储驱动器170(持久性介质)取回读数据并且将它们存储于高速缓存存储器131中的所分配的节段。随后,微处理器121利用CMPK130和FEPK100将高速缓存数据传输到主机180(S118)。
如果确定将读数据传输到主机180而不高速缓存(在S117为否),则微处理器121利用BEPK140和FEPK100而不通过CMPK130将从驱动器170(持久性介质)取回的读数据转移到主机180(S119)。高效的是管理节段以使得与用于数据通过高速缓存存储器131的节段相比,用于数据绕开高速缓存存储器131的节段更可能被重新使用。示例为,如果LRU队列管理被执行,则将它们连接到LRU队列。
参考图16,将说明图15的流程图中的确定是否更新共享存储器132中的数据高速缓存控制信息(S113)。微处理器121开始这一步骤S113(S121),并且参考性能提升功能启用表210和逐卷性能提升功能启用表220来确定用于由读命令指定的逻辑卷的性能提升功能是否为ON(S122)。如果表之一指示性能提升功能为OFF,则用于该卷的性能提升功能为OFF。
如果用于逻辑卷的性能提升功能不是ON(在S122为否),则微处理器121确定更新共享存储器132中的控制信息(高速缓存目录)(S128)。如果用于逻辑卷的性能提升功能为ON(在S122为是),则微处理器121利用RAID群组编号的密钥来参考介质类型表230以确定保持所指定的数据的RAID群组的介质类型为SSD(S123)。
微处理器121具有关于本地存储器122中的卷的配置管理信息,并且可以参考该信息来查明卷中的每个区域属于哪个RAID群组。
如果介质类型为SSD(在S123为是),则微处理器121确定不更新共享存储器132中的控制信息(高速缓存目录)(S127)。如果介质类型不是SSD(在S123为否),微处理器121利用逻辑卷编号的密钥来参考逐卷命中率表250以确定用于保持所指定的数据的逻辑卷的低命中率标志是否为ON(S124)。
如果低命中率标志为ON(在S124为是),则微处理器121确定不更新共享存储器132中的控制信息(高速缓存目录)(S127)。如果低命中率标志为OFF(在S124为否),则微处理器121利用微处理器编号的密钥来参考MP操作率表270来确定其自己的过载标志是否为ON(S125)。
如果过载标志为ON(在S125为是),则微处理器121确定不更新共享存储器132中的控制信息(高速缓存目录)(S127)。如果过载标志为OFF(在S125为否),则微处理器121利用CMPK编号的密钥来参考CM操作率表290以确定微处理器121访问的用于CMPK130的过载标志是否为ON(S126)。
如果过载标志为ON(在S126为是),则微处理器121确定不更新共享存储器132中的控制信息(高速缓存目录)(S127)。如果过载标志为OFF(在S126为否),则微处理器121确定更新共享存储器132中的控制信息(高速缓存目录)(S128)。
如所描述的,如果预定条件被满足,则微处理器121确定不把本地存储器122中的高速缓存目录310的更新反映到共享存储器132中的高速缓存目录510。这一确定降低微处理器121和CMPK130的负荷从而提高系统的吞吐量。
除非本地存储器中的控制信息的更新(在这一示例中,高速缓存目录)被反映到共享存储器132,负责该控制信息的MPPK120出现故障则导致问题。在正常操作中,微处理器121在其参考其自己的本地存储器122时可以参考更新的最新控制信息。然而,如果其MPPK120出现故障,则另一MPPK120接管MPPK120的指派(故障切换)。
由于出现该故障的MPPK120中的本地存储器122中的数据丢失,所以后继者的MPPK120(中的微处理器121)仅仅可以获得保持于共享存储器132中的旧控制信息。由于此原因,保持于共享存储器132中并且可以省略更新(备份到共享存储器132)的数据为这样的控制信息,由于所述控制信息,MPPK120的故障将不导致用户数据丢失。
上述优选配置省略了在MPPK120中故障时影响甚微的共享存储器132中的更新。具体地,如果由于高速缓存未命中而读数据从其被取回的存储驱动器170为SSD(在S123为是),则微处理器121确定省略共享存储器132中的更新(S127)。
MPPK120中的故障引起这样的信息,该信息指示从SSD取回的数据在将丢失的高速缓存中;然而,SSD表现出比驱动器170的其它介质类型更高的访问性能。因此,由丢失的控制信息造成的高速缓存未命中的负面影响小,并且导致系统性能提高的MPPK120和CMPK130上的更低开销的影响更大。
在这一配置中,省略共享存储器132中的更新的介质类型为SSD,但是这一介质类型取决于系统设计。安装于系统中的介质(驱动器)的类型并不仅限于SSD和HDD,而是替代这些或者除了这些之外,还可以安装不同类型的驱动器。在多种所安装的介质类型中,取决于设计而选择满足省略共享存储器132中的更新的条件的类型。选择表现出比其余一种或多种类型的介质更高的访问性能(包括最高访问性能)的那些类型的介质。
在这一配置中,如果保持由读命令指定的数据的逻辑卷上的高速缓存命中率低(在S124为是),则微处理器121确定不更新共享存储器132中的控制信息(S127)。即使用于具有低高速缓存命中率的卷中的数据的高速缓存控制信息丢失,对卷的访问性能的影响也小并且导致系统性能提高的MPPK120和CMPK130上的更低开销的影响更大。
另外,这一配置基于当前负荷而确定是否把共享存储器132中的控制信息更新到MPPK120和CMPK130(S125、S126)。如果MPPK120或CMPK130的负荷高,则省略共享存储器132中的更新对性能提高产生更大影响。
如所描述的,如果用于对象卷的性能提升功能为ON并且任一上述四个条件被满足,则这一配置省略共享存储器132中的高速缓存控制信息的更新。微处理器121可以基于不同于前述条件的各条件来确定是否更新共享存储器132中的控制信息。微处理器121可以确定前述四个条件中的多个条件的满足是省略更新共享存储器132中的控制信息的条件。
图17为图示图15的流程图中确定是否高速缓存主机数据(读数据)(S116)的流程图。这一步骤的流程图基本上类似于图16的流程图。因此,将主要说明与这一步骤的差异。
在图17中,步骤S132至S136与图15的流程图中的步骤S122至S126相同。在步骤S137,微处理器121确定将从存储驱动器170取回的主机数据(读数据)传输到主机180而不将它们存储于高速缓存存储器131中。另一方面,在步骤S138,微处理器121确定将从存储驱动器170取回的主机数据存储(高速缓存)于高速缓存存储器131中。
在这一示例中,确定是否高速缓存读数据的条件与确定是否更新共享存储器132中的高速缓存控制信息的条件相同。读数据高速缓存的这种控制实现了MPPK120和CMPK130上的更低开销,从而导致系统性能提高。高速缓存控制的确定条件可以不同于用于控制信息的更新控制的确定条件。
现在,将参考图18A和图18B的流程图说明从主机180接收的写命令的处理。当微处理器121从主机180接收写命令时(S141),微处理器121确定它是否有权访问在所指定地址的卷(LDEV)(S142)。
如果微处理器121无权访问(在S142为否),则微处理器121将写命令转移到负责该卷的不同MPPK120(S143)。如果微处理器121有权访问(在S142为是),则微处理器121搜寻在同一板上的本地存储器122中的高速缓存目录310(S144)。
如果由写命令指定的地址被找到(在S145为是),则微处理器121依据高速缓存目录310中的信息将写数据写到高速缓存存储器131,并且将命令的完成报告给主机180(S146)。
如果由写命令指定的地址无法被找到(高速缓存未命中)(在S145为否),则微处理器121检查用于本地存储器122的未高速缓存标志(S147)。如果未高速缓存标志为ON(在S147为是),则微处理器121利用CMPK130中的控制器将高速缓存目录(控制信息)从共享存储器132转移到本地存储器122(S148)。
微处理器121搜寻本地存储器122中的高速缓存目录310(S149)。如果由写命令指定的地址被找到(在S150为是),则微处理器121依据高速缓存目录310中的信息将写数据写到高速缓存存储器131,并且将命令的完成报告给主机180(S151)。
在高速缓存未命中(在S150为否)或者未高速缓存标志为OFF(在S147为否)的情况下,微处理器121将高速缓存存储器131中的节段分配作为用于写数据的时隙,并且另外更新本地存储器122中的高速缓存目录310(S152)。
微处理器121确定是否把高速缓存目录310的更新(其为关于数据高速缓存的控制信息)反映到共享存储器132中的数据510(S153)。这种确定的具体方法与参考图15说明的方法的相同。微处理器121进一步确定是否高速缓存写数据(主机数据)(S154)。这一确定方法与参考图16说明的方法相同。
如果微处理器121确定高速缓存写数据(在S155为是),则微处理器121将写数据写到高速缓存存储器131中的新分配区域并且把命令的完成通知给主机180(S156)。微处理器121与本地存储器122中的高速缓存目录310的更新同步地更新共享存储器132中的高速缓存目录510,而不管在S153的确定的结果。
如果微处理器121确定不高速缓存写数据(在S155为否),则基于在步骤S153的确定的结果,微处理器121更新共享存储器132中的控制信息或者省略更新。如果微处理器121确定更新共享存储器132中的高速缓存控制信息(高速缓存目录510)(在S157为是),则微处理器121把本地存储器122中的高速缓存目录310的更新反映到共享存储器132中的高速缓存目录510(S158)并且进行到下一步骤S159。
如果微处理器121确定不更新共享存储器132中的高速缓存控制信息(在S157为否),则微处理器121参考RAID级别表240而标识写目的地的RAID级别(S159)。如果RAID级别为1(在S159为是),则微处理器121利用BEPK140将数据写入存储驱动器170中而不将写数据存储于高速缓存存储器131中,并且将命令的完成报告给主机180(S160)。
如果RAID级别不同于1(在S159为否),则微处理器121生成奇偶校验,并且利用BEPK140将该奇偶校验和写数据写到存储驱动器170,而不将写数据存储于高速缓存存储器131中。另外,微处理器121将命令的完成通知给主机180(S161)。
如所描述的,在这一示例中的处置写命令中,有必要省略将写数据存储于高速缓存存储器131中以便省略共享存储器132中的高速缓存目录510中的更新。这是因为,如果在将高速缓存的写数据降级(写到驱动器170)之前高速缓存控制信息丢失,则写数据无法在高速缓存存储器131中被定位。
如上文所描述的,在这一示例中,在步骤S154确定是否高速缓存写数据的条件与图15中在步骤S116的条件相同。在S153确定是否更新共享存储器132中的高速缓存控制信息的条件与图15中在步骤S113的条件相同。这些可以不相同。
高速缓存写数据以及更新高速缓存控制信息的这种控制实现了MPPK120和CMPK130上的更低开销,从而导致存储系统10中性能提高。
接着,参考图19的流程图,将说明来自管理计算机20的设置。管理计算机20依据在其中被执行的管理程序来操作。因此,具有管理计算机20的主题的描述可以具有管理程序或CPU26的主题。管理计算机20开始设置(S171)并且在显示装置29上显示菜单以用于输入设置数据(S172)。管理员利用输入装置28输入所需要的设置数据(S173并且在S174为否)。
如果所有所需要的数据被输入(在S174为是),则管理计算机20响应于保存按钮的选择而保存设置数据(S175)。响应于来自存储系统10的请求,设置数据被从管理计算机20传输到存储系统10。管理员可以选择取消按钮以再次输入设置数据。
图20示出菜单窗口2000的示例。菜单窗口2000包括性能提升功能设置区域2001和逐卷性能提升功能设置区域2004。
管理员利用输入装置28选择性能提升功能设置区域2001中的“启用”或“禁用”其中之一以启用或禁用存储系统10的性能提升功能(控制更新控制信息和高速缓存用户数据的上述功能)。这一设置被反映到性能提升功能启用表210。如果这一功能被禁用,则存储系统10中的性能提升功能都不被使用。
逐卷性能提升功能设置区域2004包括逻辑卷编号列2005和性能提升功能设置列2006。管理员可以利用输入装置28选择启用/禁用用于每个逻辑卷的性能提升功能。
这一设置被反映到逐卷性能提升功能启用表220。如果用于系统的性能提升功能被启用并且性能提升功能针对卷被启用,则在这一实施例中性能提升功能被用于该卷。
图20示例说明性能提升功能的设置窗口;此外,管理计算机20例如可以显示在确定条件中包括的显示阈值的设置窗口并且将由管理员输入的设置数据传输到存储系统10。典型地,存储系统10具有管理员可预设的关于项目的默认值并且更新该项目上由管理员利用输入数据设置的数据。
在下文中,参考图21至图24,将描述存储系统10中的更新表。图21为更新介质类型表230的流程图。当RAID群组被添加或移除时(S201),BEPK140将其上的信息传输到任意一个微处理器121。接收到更新信息的微处理器121更新本地存储器122中的介质类型表230和RAID级别表240,并且另外更新非易失性存储区域中的这些表(S202),并且将该更新通知到其它MPPK120。管理计算机20可以将该信息提供给MPPK120。
参考图22,将描述更新CM操作率表290。MPPK120中的任意一个微处理器121典型地定期地(例如,每一秒)执行这一处理。微处理器121从微处理器121所访问的CMPK130获得关于操作率的信息(S212)。具体地,微处理器121向CMPK130中的控制器(未示出)请求指示CMPK130的操作率(CM操作率)的值,并且从CMPK130的控制器获得该值。
微处理器121利用从CMPK130获得的操作率的值来更新CM操作率表290中用于相关条目的操作率列292的字段(S213)。再者,微处理器121确定操作率的更新值是否等于或高于CM操作率阈值表300中的阈值(S214)。
如果操作率等于或高于阈值(在S214为是),则微处理器121将CM操作率表290中用于该条目的过载标志设置在1(ON)(S215)。如果操作率低于阈值(在S214为否),则微处理器121将用于该条目的过载标志设置在0(OFF)(S216)。微处理器121对微处理器121可以访问的所有CMPK130执行步骤S212至S216(S217)。
参考图23,将说明更新逐卷命中率表250。MPPK120中的任意一个微处理器121典型地定期地(例如,每一秒)执行这一处理。微处理器121从本地存储器122获得所指派的逻辑卷其中之一上的I/O计数和命中计数(S222)。这一特定微处理器121或另一微处理器121在先前更新之后对每个所指派的逻辑卷上的I/O计数(例如,读命令的数目)以及高速缓存命中计数进行计数,将那些值存储于本地存储器122。该特定微处理器121在步骤S222获得那些值。
微处理器121更新命中率的字段,并且利用所获得的值将逐卷命中率表250中用于相关条目的I/O计数和命中计数的字段设置在0(S223)。微处理器121进一步将命中率与命中率阈值表260中的阈值比较(S224)。
如果命中率等于或低于阈值(在S224为是),则微处理器121将用于该条目的低命中率标志设置在1(ON)(S225)。另一方面,如果命中率高于阈值(在S224为否),则微处理器121将用于该条目的低命中率标志设置在0(OFF)(S226)。微处理器121在指派给其自己的每个卷上执行步骤S222至S226(S227)。
参考图24,将说明更新MP操作率表270。每个微处理器121典型地定期地(例如,每一秒)执行这一处理。微处理器121监视其自己的每单位时间(在这一示例中,一秒)的操作时间并且将该值存储于本地存储器122中。微处理器121从本地存储器122获得该值(S232)。
微处理器121利用所获得的值来更新用于该条目的操作率的字段,并且将0值设置在操作时间的字段(S233)。再者,微处理器121将所更新的操作率与MP操作率阈值表280中的阈值比较(S234)。如果操作率等于或高于阈值(在S234为是),则微处理器121将用于该条目的过载标志设置在1(ON)(S235)。如果操作率低于阈值(在S234为否),则微处理器121将用于该条目的过载标志设置在0(OFF)(S236)。
参考图25,将描述把逻辑卷的所有权从当前MPPK120转移到另一MPPK120。在转移所有权之前,当前MPPK120将保持于本地存储器122中的高速缓存目录310中未被反映的部分反映到共享存储器132。这个操作允许下一个MPPK120在高速缓存控制中使用最新高速缓存目录,从而使得达成高的高速缓存命中率。
当前所有者的MPPK中的微处理器121把其所有权被转移的逻辑卷的逻辑地址零指定为高速缓存目录310中将被搜寻的目标(S242)。微处理器121在高速缓存目录310中搜寻该地址(S243)。
如果该地址存在于共享存储器未被反映标志为ON的目录中(在S244为是),则微处理器121更新共享存储器132中的目录(S245)并且进行到步骤S246。共享存储器未被反映标志为指示对象目录中的更新是否已经被反映到共享存储器132的标志;如果它为ON,则它指示对象目录中的更新未被反映到共享存储器132。
如果所指定的地址存在于共享存储器未被反映标志为OFF的目录中(在S244为否),则微处理器121进行到步骤S246而不更新共享存储器132中的目录。
在步骤S246,微处理器121确定关于该卷的高速缓存目录310的搜寻是否完结。如果所有地址已被搜寻(在S246为是),则微处理器121终止该处理。如果任何地址未被搜寻(在S246为否),则微处理器121将地址的指定改变到下一逻辑地址(S247)并且重复步骤S243至S246。
第二实施例
这一实施例说明具有分层存储虚拟化功能的存储系统10。这一实施例中的存储系统10配置包括多个池卷(真实卷)的池。该池包括在存储系统10中性能不同的多个介质,并且取决于访问性能而被分层为多个层。每个层由一个或多个池卷构成。
存储系统10为主机180提供从该池配置的虚拟卷。存储系统10以具有具体容量的页为单位管理该池。每个池卷被分割为多个页并且数据存储于各页中。响应于来自主机180的对虚拟卷的写,存储系统10从该池分配所需要的容量的一个或多个页。
存储系统10可以使由主机180识别的虚拟卷的容量大于分配到虚拟卷的真实容量,并且也可以使提供分配到主机180的容量的它们真实容量小于所分配的容量(精简配置)。
存储系统10分析从主机180到虚拟卷的I/O负荷,并且自动地分配具有高I/O负荷的页到由利用高性能高成本介质配置的资源构成的高级别层,并且将其它页自动地分配到由利用较低性能较低成本介质配置的资源构成的较低级别层。这种配置以更低系统成本实现了令人满意的访问性能。
在下文中,将主要描述与第一实施例的差异。图26示出在这一实施例中由每个本地存储器122保持的信息。除了在第一实施例中描述的信息之外,本地存储器122中的控制信息包括逐页监视差异表320。图27示出在这一实施例中存储于每个共享存储器132中的数据。除了在第一实施例中描述的信息之外,共享存储器132中的控制信息包括动态映射表520和逐页监视表530。
图28示例说明动态映射表520。动态映射表520为用于管理条目(存储区域的条目)以对每个虚拟卷中的访问数目进行计数的表。例如,一个页为动态映射表520中的一个条目。在本说明书中,将说明这一示例。
动态映射表520包括池编号列521、虚拟卷编号列522、逻辑地址列523、池卷编号列524、逻辑地址列525以及监视信息索引编号列526。池编号和虚拟卷编号分别为在存储系统10中唯一地标识池和虚拟卷的标识符。监视信息索引编号为动态映射表520中的条目标识符。
逻辑地址列523存储在虚拟卷中用于单独条目的起始逻辑地址。逻辑地址列525将起始逻辑地址存储于用于单独条目的池卷中。在这一示例中,各条目的容量相同,但是不需要相同。
图29示例说明逐页监视表530。逐页监视表530管理单独页中的I/O计数。微处理器121参考此表以确定每页的数据将被存储到的层。
逐页监视表530包括监视信息索引编号列531、I/O计数器(当前)列532以及I/O计数器(上次)列533。微处理器121监视对页的访问以对给定监视周期(例如,一秒)内I/O(访问数目)进行计数,并且将该计数存储于逐页监视表530中。监视周期相继继续。
I/O计数器(上次)列533存储上一个监视周期中的I/O计数。I/O计数器(当前)列532存储当前监视周期中的I/O计数。微处理器121在当前监视周期内重复地更新I/O计数器(当前)列532中的值。
在这一配置中,微处理器121使用本地存储器122中的逐页监视差异表320对I/O进行计数,并且将值的更新反映到共享存储器132中的逐页监视表530。这将在稍后描述。在当前监视周期结束时,微处理器121将当前监视周期中的I/O计数移动到上一个监视周期中的I/O计数的字段。
图30示例说明逐页监视差异表320。逐页监视差异表320用于对到每一页的访问进行计数。逐页监视差异表320包括监视信息索引编号列321和I/O差值计数器列322。微处理器121监视对每页的访问,并且响应于每个访问而将I/O差值计数器列322中的相关字段的值递增。
当I/O差值计数器列322中的字段中的值达到预定值(在这一示例中,最大值)时,微处理器121将该值加到逐页监视表530中的对应条目的I/O计数器(当前)列532中的字段中的值以更新该字段。微处理器121将已经达到最大值的I/O差值计数器列322的字段中的值返回到初始值(零值)。应理解,I/O差值计数器指示在逐页监视表530的先前更新之后I/O计数中的差异。
如图30和图29中所指示的,逐页监视差异表320中I/O差值计数器322存储8位数据并且逐页监视表530中I/O计数器(当前)列存储32位数据(其大于8位数据)。位的数目取决于系统设计并且不限于8和32。
参考图31的流程图,将描述更新监视分层存储虚拟化功能的结果的具体方法。在接收到对页的访问时,微处理器121将逐页监视差异表320中用于该页的I/O差值计数器递增(S302)。对页的访问为来自/去往映射到该页的存储装置的I/O或者来自/去往该页的主机I/O。微处理器121对任一I/O类型计数。
微处理器121确定用于逻辑卷的性能提升功能是否为ON(S303)。这一步骤与图16中的步骤S122相同。如果卷性能提升功能为OFF(在S303为否),则微处理器121进行到步骤S307。
如果卷性能提升功能为ON(在S303为是),则微处理器121确定其自己的过载标志是否为ON(S304)。这一步骤与图16中的步骤S125相同。
如果过载标志为ON(在S304为是),则微处理器121进行到步骤S306。如果过载标志为OFF(在S304为否),则微处理器121确定用于微处理器121访问的CMPK130的过载标志是否为ON(S305)。这一步骤与图16中的步骤S126相同。
如果用于CMPK130的过载标志为OFF(在S305为否),则微处理器121进行到步骤S307。用于CMPK130的过载标志为ON(在S305为是),则微处理器121进行到步骤S306。在步骤S306,微处理器121确定逐页监视差异表320中I/O差值计数器的值是否为最大值。
如果I/O差值计数器的值小于最大值(在S306为否),则流结束。如果I/O差值计数器的值为最大值(在S306为是),则微处理器121将最大值加到逐页监视表530中的对应条目中I/O计数器(当前)列532的字段中的值以用该值更新该字段(S307)。微处理器121进一步将已经达到最大值的I/O差值计数器列322中的字段的值复位到零值(初始值)(S308)。
如果到微处理器121和CMPK130的负荷小,则这一示例与本地存储器122中I/O差值计数器的更新同步地更新共享存储器132中的I/O计数器。小负荷不致使系统性能退化,并且可以在故障时获得精确I/O计数。可以省略关于这两个装置的负荷的条件,或者满足这二者可以是用于I/O计数器的异步更新的条件。可以使用与这些不同的条件。
如上文所描述的,微处理器121利用本地存储器122中的计数器对针对页的I/O进行计数,并且当其达到预定值时,微处理器121将预定值反映到共享存储器132中的计数器。这一配置实现微处理器121和CMPK130之间的通信中的更低开销。
逐页监视差异表320中的计数器中的位的数目小于逐页监视表530中的计数器中的位的数目。对本地存储器中的差异进行计数可以节约本地存储器122中对I/O计数所需的容量。在MPPK120中的某些故障时,关于针对某一时间段的I/O计数的信息丢失;然而,数据丢失基本上不影响页之间的I/O分析,这仅仅是因为I/O计数中的差异不被反映到页I/O计数。
这一实施例中的性能监视方法可以应用到监视分层存储虚拟化功能之外的任何性能。例如,它可以应用到监视诸如HDD和SSD的驱动器。当计数到达最大值时前述示例将计数器初始化,但是I/O可以在初始化时被计数。例如,与I/O差值计数器的初始化一起,微处理器121把通过将1加到最大数目而获得的值加到逐页监视表530中I/O计数器的值。这同样应用于其它实施例中的计数方法。
第三实施例
在下文中,将描述其中本发明应用到异步远程复制的示例。在本说明书中,主要说明与第一实施例和第二实施例的差异。图32为示意性地图示这一实施例中的计算机系统的配置的框图。这一实施例中的存储系统包括第一存储系统10A和第二存储系统10B。典型地,第一存储系统10A和第二存储系统10B安装于不同地点,并且它们经由数据网络(诸如SAN)190A、数据网络(诸如SAN)190B和广域网被连接从而能够彼此通信。
第一存储系统10A和第二存储系统10B具有与参考图1说明的存储系统相同的硬件配置。具体地,第一存储系统10A包括多个FEPK110A、多个MPPK120A、多个CMPK130A以及多个BEPK140A,并且它们经由内部网络150A彼此互连。第一管理计算机20A管理第一存储系统10A。
类似地,第二存储系统10B包括多个FEPK110B、多个MPPK120B、多个CMPK130B以及多个BEPK140B,并且它们经由内部网络150B彼此互连。第二管理计算机20B管理第二存储系统10B。
第一存储系统10A和第二存储系统10B具有异步远程复制功能。第一存储系统10A中的主卷(PVOL)171P和第二存储系统10B中的次级卷(SVOL)171S构成一个副本对。每个卷典型地由一个或多个RAID群组中的一个或多个存储区域构成。
主卷171P为复制源卷并且次级卷171S为复制目的地卷;主卷171P中的数据被复制到次级卷171S。数据复制到次级卷171S的顺序与数据写到主卷171P的顺序相同(顺序保持)。
在同步复制中,在其中主机180写到主卷171P的情况下,在复制到次级卷171S完成之后(典型地,在写到高速缓存存储器之后),I/O的成功被通知到主机180。相反,在异步复制中,在写到主卷171P之后以及在复制到次级卷171S完成之前,I/O的成功被通知到主机180。
这一实施例中的存储系统使用日志卷(JVOL)171JP和171JS作为从主卷171P到次级卷171S的复制的缓冲器。在第一存储系统10A中,主卷171P和日志卷171JP被分组在一起。在第二存储系统10B中,次级卷171S和日志卷171JS被分组在一起。
主卷171P中的更新数据经由日志卷171JP和171JS被传输到次级卷171S。这一配置允许在将用于远程复制的数据转移中使用性能不稳定的广域网。
参考图33,数据流从主机180写到主卷171P并且更新数据复制到次级卷171S。FEPK110A从主机180接收写命令和写数据。MPPK120A(中的微处理器121)分析写命令并且指导FEPK110A和BEPK140A(未示出)把写数据写到主卷171P和日志卷171JP。
具体地,MPPK120A指导FEPK110A和BEPK140A将写数据转移到所指定的下一转移目的地。最后转移目的地为主卷171P和日志卷171JP;写数据被写到主卷171P和日志卷171JP二者。写到日志卷171JP的顺序为写到主卷171P的顺序。
在此图示中,省略了关于将写数据写到高速缓存存储器131的图示;备选地,写数据存储于该卷中而不经过高速缓存存储器131。响应于将写数据写到高速缓存存储器131或写到卷的完成,MPPK120A将写的完成通知给主机180。
响应于日志卷171JP的更新,MPPK120A更新日志卷171JP的管理数据。如图33中所示,日志卷171JP包括分别存储日志卷管理数据和更新数据的管理区域611和数据区域612。日志卷管理数据可以存储于日志卷的外部。
日志卷管理数据包括多对序号601和指针602。一对这些值被指派给每个写数据(更新数据)。在此图的示例中,序号601为1至n的任意值并且按照存储于数据区域的升序被指派给写数据。序号是循环的;编号1被指派给编号为n的写数据之后的写数据。指针602指示具有关联序号的写数据在数据区域612中的位置(地址)。
管理区域611包括多对序号601和指针602已被写到的区域以及未使用区域604。未使用区域604保持初始值;在这一示例中,初始值为零值。在微处理器121将保持于数据区域612中的更新数据转移到第二存储系统10B之后,它利用初始值(无效值)更新保持数据的序号601和指针602的区域中的值。更新数据的转移顺序与序号的顺序一致,并且序号的顺序为将更新数据写到日志卷171JP的顺序。
在管理区域611,写新的下一对序号601和指针602的位置是预定的;例如,所述对按照管理区域611中地址的升序来写入。在末尾地址写入的那对之后的一对被写到起始地址。
在用于存储序号601和指针602的区域(也被称为日志区域)中,就在保持初始值的区域之前的序号601(即,在日志区域顶部的序号)指示最新更新数据。就在保持初始值的区域之后的序号601(即,在日志区域的后端部中的序号)指示最早的更新数据。
响应于针对来自第二存储系统10B中的MPPK120B的更新数据的复制请求,第一存储系统10A中的MPPK120A按照更新(写)的顺序将保持于日志卷171JP中的更新数据转移到第二存储系统10B。存储系统10B中的MPPK120B顺序地将在FEPK110B接收的更新数据存储到日志卷171JS。在这一图示中,省略了将数据高速缓存到高速缓存存储器131。MPPK120B按照更新顺序利用预定计时将存储于日志卷171JS中的更新数据写到次级卷171S。
类似于日志卷171JP,第二存储系统10B中的日志卷171JS包括管理区域和数据区域以分别存储日志管理数据和更新数据。
MPPK120B将转移的更新数据存储于日志卷171JS中并且随后写转移的序号和指针以更新管理数据。管理数据的配置与日志卷171JP中的相同。当日志卷171JS中的更新数据被写到次级卷171S时,MPPK120B将相关序号和指针的值改变为初始值(无效值)。
图34图示由第一存储系统10A和第二存储系统10B中的每个本地存储器122保持的控制信息。在这一示例中,LM异步远程复制序号管理表330被保持于本地存储器122中。图35图示由第一存储系统10A和第二存储系统10B中的每个共享存储器132保持的控制信息。在这一实施例中,异步远程复制管理表540和SM异步远程复制序号管理表530被保持。
异步远程复制管理表540存储用于管理各对的管理信息,具体地为用于管理多对主卷和次级卷的管理信息;关于用于远程复制的路径的信息;以及关于将与主卷以及与次级卷分组在一起的日志卷的信息。微处理器121参考这一管理表540来控制远程复制的执行。
图36示例说明LM异步远程复制序号管理表330。LM异步复制序号管理表330管理本地存储器122中的单独日志卷中的最新序号。MPPK120A中的微处理器121可以参考LM异步远程复制顺序管理表330来确定将新写到日志卷171JS的更新数据的序号。
LM异步远程复制序号管理表330包括JVOL编号列331、序号列332以及序号差值列333。JVOL编号为第一存储系统10A中的日志卷的标识符。序号列332存储指示JVOL中的顶部序号的数据。将在稍后描述序号差值。
图37示例说明SM异步远程复制序号管理表530。SM异步远程复制顺序管理表530管理共享存储器132中的单独日志卷中的序号。SM异步远程复制序号管理表530包括JVOL编号列531以及序号列532。
序号列532保持指示JVOL中的顶部序号的数据。用于条目的序号列532中的值可以与本地存储器122中用于对应序号的序号列332中的值相同或不同(图36和图37的示例示出所有条目中不同的值)。这些值被同步或异步地更新。
如图36和图37中所示,在JVOL的每个条目中,序号差值列333的字段中的值为LM异步远程复制序号管理表330中的序号列332中的相关字段中的值和SM异步远程复制序号管理表530中的序号列532中的相关字段中的值之间的差异。
从上文应理解,序号差值列333的字段中的值指示在序号列532中的相关字段中的先前更新之后JVOL中的序号的更新以及在先前更新时存储于共享存储器132中的顶部序号和最新顶部序号之间的差异。
每次更新数据被写到日志卷时,MPPK120A中的微处理器121将用于日志卷的条目的序号列332和序号差值列333中的值递增。序号列332中的每个字段指示相关日志卷中的最新序号(上次指派的序号)。序号列332的每个字段中的值在其从最大值递增时返回到最小值。
用于序号差值列333的位的数目(最大值)小于用于序号列332的位的数目(最大值)。当序号差值列333的字段中的值达到最大值时,微处理器121把LM异步远程复制序号管理表330中的条目的更新反映到SM异步远程复制序号管理表530中的对应条目。
具体地,微处理器121将LM异步远程复制序号管理表330中的条目中的序号改变为等于SM异步远程复制序号管理表530中的对应条目中的序号的值。SM异步远程复制序号管理表530中的更新值为通过将序号差值列333中的相关字段中的值加到在更新之前的值而获得的值。
对序号变动到上至预定数(该预定数小于本地存储器122中的序号的最大编号)进行计数并且将本地存储器122中的序号的变动反映到共享存储器132中的序号导致减小微处理器121对CMPK130的访问的数目以减小由微处理器121和CMPK130之间的通信导致的对微处理器121和CMPK130的负荷。
参考图38的流程图,将描述在这一实施例中更新异步远程复制序号。这一过程由MPPK120A中负责日志卷171JP的微处理器121执行。
当更新数据被写到日志卷171JP时,微处理器121参考LM异步远程复制序号管理表330而将新序号和指针加到日志卷171JP中的管理区域611。再者,微处理器121更新LM异步远程复制序号管理表330中用于日志卷171JP的条目的序号和序号差值中的值(在这一示例中,将那些值递增)(S412)。
微处理器121确定用于该卷的性能提升功能是否为ON(S413)。如果性能提升功能为OFF(在S413为否),则微处理器121进行到步骤S417。如果性能提升功能为ON(在S413为是),则微处理器121确定其自己的过载标志是否为ON(S414)。
如果过载标志为ON(在S414为是),则微处理器121进行到步骤S416。如果过载标志为OFF(在S414为否),则微处理器121确定用于微处理器121访问的CMPK130A的过载标志是否为ON(S415)。
如果用于CMPK130A的过载标志为OFF(在S415为否),则微处理器121进行到步骤S417。如果用于CMPK130A的过载标志为ON(在S415为是),则微处理器121进行到步骤S416。步骤S413至S415的细节与在第二实施例中说明的那些细节相同。取决于微处理器121和/或CMPK130A处的负荷来对控制信息的更新的反映进行控制导致共享存储器中的适当更新而使系统性能退化较少。
在S416,微处理器121确定日志卷171JP中的序号差值是否为LM异步远程复制序号管理表330中的最大值。如果该值不是最大值(在S416为否),则微处理器121终止该过程。
如果值为最大值(在S416为是),则微处理器121更新SM异步远程复制顺序管理表530中用于日志卷171JP的序号(S417)。具体地,利用通过将序号差值的值加到当前序号而获得的值,微处理器121更新用于日志卷171JP的序号。在S418,微处理器121利用零值来更新(初始化)序号差值中的字段的值(该值已经达到最大值)。
如果使用前述序号差值来更新共享存储器132中的序号(性能提升功能)不被使用,则更新SM异步远程复制序号管理表530与更新LM异步远程复制序号管理表330同步。
如果MPPK120A出现故障,则本地存储器122中的LM异步远程复制序号管理表330丢失。如前所描述,这一表330包括最新信息以指示日志卷的顶部序号。对于精确的远程复制,日志管理数据中的最新顶部序号是必须的。
在这一实施例中的第一存储系统10A中,与出现故障的MPPK120A不同的MPPK120A参考日志卷171JP中的管理区域611并且查明指示日志区域的顶部的最新顶部序号。参考图39的流程图,将说明在MPPK故障出现时恢复异步远程复制序号。
在出故障的MPPK120A之后的正常MPPK120A中的微处理器121从保持于共享存储器132中的SM异步远程复制序号管理表530选择日志卷并且读取序号(S422)。微处理器121读取日志卷中的前述序号的区域之后的序号区域中的数据(S423)。
微处理器121在步骤S423确定序号读是否为零值(无效值)(S424)。如果序号不是零值(在S424为否),则微处理器121将所获得的序号存储于临时区域(典型地,本地存储器122中的区域)中(S425)。
如果序号为零值(在S424为是),则该区域为未使用区域并且微处理器121利用存储于临时区域中的序号来更新SM异步远程复制序号管理表530中的对应日志卷的序号。如果SM异步远程复制序号管理表530中的序号为最新顶部序号,则更新不是必须的。针对出故障的MPPK120A负责的所有日志卷,微处理器121执行上述更新。
通过上述流,SM异步远程复制序号管理表530被更新以包括最新信息,从而使得另一MPPK120A可以接管出故障的MPPK120A的指派以依旧执行精确异步远程复制。
存储于序号管理表330和530中的前述值仅仅是示例;任何值可以被存储,只要它们可以指示表在330和530中的顶部序号或顶部序号之间的差异。
第四实施例
在下文中,将说明应用到异步本地复制的本发明的示例。在下文中,将主要说明与前述其它实施例的差异。图40图示在本实施例中保持于每个本地存储器122中的控制信息。本地存储器122保持LM本地复制差异管理表340和LM本地复制差异区域稀疏化操作管理表350。
图41图示本实施例中每个共享存储器132中的控制信息。共享存储器132中的控制信息包括SM本地复制差异管理表560、SM本地复制差异区域稀疏化操作管理表570以及本地复制管理表580。多个MPPK120可以参考共享存储器132中的表560、570和580。特别地,在MPPK120故障时,由不同的MPPK120参考SM本地复制差异管理表560和SM本地复制差异区域稀疏化操作管理表570。
本地复制管理表580包括用于管理多对主卷和次级卷的管理信息。例如,它包括关于构成单独对的主卷和次级卷的标识信息、关于它们的地址信息以及关于复制策略的信息。微处理器121参考本地复制管理表580来控制本地复制的执行。
共享存储器132中的SM本地复制差异管理表560和SM本地复制差异区域稀疏化操作管理表570分别为本地存储器122中的LM本地复制差异管理表340和LM本地复制差异区域稀疏化操作管理表350的备份。微处理器121依据预定规则把本地存储器122中的表340和350的更新反映到共享存储器132中的表560和570。
图42示例说明LM本地复制差异管理表340。LM本地复制差异管理表340包括卷编号列341、逻辑地址列342以及代表差值的位串列343。卷编号为存储系统中的主卷的标识符。每个条目代表在卷中具有给定大小的存储区域(地址范围)。逻辑地址指示条目的存储区域的起始逻辑地址。在这一示例中,存储区域的大小对于各条目是相同的。
代表差值的位串指示条目的主卷中的存储区域和次级卷中的关联的存储区域之间是否存在任何数据差异,也就是说,主卷中的更新是否被反映到次级卷。
代表差值的位串中的每一位(也被称为代表差值的位)指示条目的主卷中的存储区域中的区域节段中的数据是否不同于次级卷中的关联的区域节段中的那些数据。在这一示例中,对应于单独位的区域节段具有相同大小。在这一示例中,代表差值的位串中的位值1意味着主卷中的对应区域中的数据不同于次级卷中的那些数据。
微处理器121利用预定计时将主卷中的更新数据复制到次级卷(异步本地复制)。在异步本地复制中,微处理器121参考LM本地复制差异管理表340,并且将与具有值1的代表差值的位对应的主卷中的区域节段中的数据复制到次级卷。
响应于异步本地复制,微处理器121利用LM本地复制差异管理表340中的零值更新针对该更新在那里被反映到次级卷的区域节段的代表差值的位。
图43示例说明SM本地复制差异管理表560。SM本地复制差异管理表560为LM本地复制差异管理表340的备份表;它具有与LM本地复制差异管理表340相同的配置。具体地,它具有卷编号561、逻辑地址562以及代表差值的位串563列。
微处理器121依据预定规则将LM本地复制差异管理表340中的更新复制到SM本地复制差异管理表560。在这一示例中,由从主卷到次级卷的异步本地复制造成的更新LM本地复制差异管理表340与更新SM本地复制差异管理表560同步。将在稍后描述响应于通过数据写到主卷的更新而更新SM本地复制差异管理表560。
图44示例说明LM本地复制差异区域稀疏化操作管理表350。LM本地复制差异区域稀疏化操作管理表350包括卷编号列351、逻辑地址列352以及代表稀疏化操作的位串列353。每个条目代表卷中具有给定大小的存储区域(地址区域)。
逻辑地址指示条目的存储区域的起始逻辑地址。在这一示例中,存储区域的大小在各条目之间是相同的。LM本地复制差异区域稀疏化操作管理表350中的条目的存储区域大于LM本地复制差异管理表340中的条目的存储区域。
代表稀疏化操作的位串指示是否把LM本地复制差异管理表340中代表差值的位串的更新反映到SM本地复制差异管理表560中的代表差值的对应的位串。如上文所描述的,在LM本地复制差异区域稀疏化操作管理表350中,代表稀疏化操作的位串与逻辑卷中的存储区域关联。
代表稀疏化操作的位串中的每个位(也被称为代表稀疏化操作的位)与和代表稀疏化操作的位串关联的存储区域中的区域节段关联。代表稀疏化操作的位串中的每个位通过与其关联的区域节段而与代表差值的一个或多个位关联。
在这一优选示例中,代表稀疏化操作的位与代表差值的多个位关联。LM本地复制差异区域稀疏化操作管理表350中的用于条目的存储区域(地址区域)的大小大于LM本地复制差异管理表340中的用于条目的存储区域(地址区域)。代表稀疏化操作的位串中的位的数目与代表差值的位串中的位的数目相同或不同(在图43和图44的示例中它们是相同的)。
如上文所描述的,在LM本地复制差异管理表340中,代表差值的每个位与存储区域关联。如果与代表稀疏化操作的位关联的存储区域的至少一部分匹配代表差值的位的存储区域,则代表稀疏化操作的位与代表差值的位关联。
如果代表稀疏化操作的位指示1,则响应于本地存储器122中的主卷的更新(数据写)的与代表稀疏化操作的位关联的代表差值的位的更新不被反映到共享存储器132中的代表差值的位。具体地,响应于接收到对主卷的写命令,微处理器121参考LM本地复制差异区域稀疏化操作管理表350中用于由写命令指定的区域的代表稀疏化操作的位。
如果代表稀疏化操作的位指示1,则微处理器121不把LM本地复制差异管理表340中的代表差值的对应位的更新反映到SM本地复制差异管理表560。这种配置降低了由MPPK120和CMPK130之间的通信造成的MPPK120和CMPK130的负荷。
图45示例说明SM本地复制差异区域稀疏化操作管理表570。SM本地复制差异区域稀疏化操作管理表570为LM本地复制差异区域稀疏化操作管理表350的备份表,并且它们具有相同配置。具体地,表570包括卷编号列571、逻辑地址列572以及代表稀疏化操作的位串列573。微处理器121与LM本地复制差异区域稀疏化操作管理表350的更新同步地更新SM本地复制差异区域稀疏化操作管理表570。
现在参考图46的流程图,将说明更新异步本地复制差异管理信息。在数据写到主卷时,微处理器121更新LM本地复制差异管理表340(S502)。具体地,它更新与主卷中的更新区域关联的代表差值的位。
微处理器121确定用于该卷的性能提升功能是否为ON(S503)。如果性能提升功能为OFF(在S503为否),则微处理器121进行到步骤S509并且更新SM本地复制差异管理表560(同步更新)。如果性能提升功能为ON(在S503为是),则微处理器121确定其自己的过载标志是否为ON(S504)。
如果过载标志为ON(在S504为是),则微处理器121进行到步骤S506。如果过载标志为OFF(在S504为否),微处理器121确定用于微处理器121访问的CMPK130的过载标志是否为ON(S505)。
如果用于CMPK130的过载标志为OFF(在S505为否),则微处理器121进行到步骤S509并且更新SM本地复制差异管理表560。如果用于CMPK130的过载标志为ON(在S505为是),则微处理器121进行到步骤S506。步骤S503至S505的细节与第二实施例中说明的那些细节相同;共享存储器132中的控制信息被恰当地更新,同时抑制系统性能的退化。
在步骤S506,微处理器121确定主卷中的更新的区域是否处于稀疏化操作下。具体地,微处理器121参考LM本地复制差异区域稀疏化操作管理表350以查明用于该更新的区域的代表稀疏化操作的位。如果代表稀疏化操作的位指示1(在S506为是),则微处理器121省略更新与SM本地复制差异管理表560中代表稀疏化操作的位关联的代表差值的位。
如果代表稀疏化操作的位指示0(在S506为否),则微处理器121确定与代表稀疏化操作的位关联的区域中的差异是否等于或大于阈值(S507)。具体地,微处理器121参考LM本地复制差异管理表340以确定在与代表稀疏化操作的位关联的代表差值的位中指示1的位的数目是否等于或大于阈值。将参考图47在MPPK故障时的处理的描述中说明用于该确定的准则。
如果差值小于阈值(在S507为否),则微处理器121更新SM本地复制差异管理表560(S509)。如果差值等于或大于阈值(在S507为是),则微处理器121更新LM本地复制差异区域稀疏化操作管理表350和SM本地复制差异区域稀疏化操作管理表560(S508)。具体地,微处理器121在前述两个表350和560中从0到1改变代表稀疏化操作的位。
接着,参考图47的流程图,将说明MPPK120中在故障时复制本地复制差异。如果MPPK120出现故障,则不同的MPPK120将被指派给出故障的MPPK120的副本对中的差异从主卷复制到次级卷。这个操作确保副本对的一致性以实现随后的正常异步本地复制。
不同MPPK120中的微处理器121参考SM本地复制差异区域稀疏化操作管理表570(S512)并且确定是否还有处于稀疏化操作下的任何区域(S513)。处于稀疏化操作下的区域为代表稀疏化操作的位指示1的区域。如果没有区域处于稀疏化操作下(在S513位否),则此流结束。如果还有处于稀疏化操作下的任何区域(在S513为是),则微处理器121将主卷中的区域中的数据复制到次级卷(S514)。
如所描述的,共享存储器132不保持与指示1的代表稀疏化操作的位关联的代表差值的最新位串。由于此原因,当MPPK120出现故障时,代表稀疏化操作的位指示1(ON)的区域中的所有数据被从主卷复制到次级卷。这一操作可以使次级卷中的数据与主卷中的数据相同。
如参考图46的流程图所说明的,如果与代表稀疏化操作的位关联的代表差值的位中指示1的位的数目等于或大于阈值,则这一示例将代表稀疏化操作的位设置在ON(1)。由于在故障情况下,代表稀疏化操作的关联位为ON的所有数据被从主卷复制到次级卷,所以包含许多更新数据的区域的更新被稀疏化以降低由更新造成的负荷并且实现高效的故障复原处理。
在这一实施例中,差异管理表和稀疏化操作管理表的配置仅仅是示例。只要具有差异的区域以及处于稀疏化操作下的区域可以被定位,那些信息就可以被提供任何数据。还可以实现MPPK故障复原以将用于处于稀疏化操作下的区域的LM/SM中的所有代表差值的位设置在1,而不是使用SM本地复制差异区域稀疏化操作管理表570。
图48示出可应用于第二至第四实施例的用于设置性能提升功能的菜单窗口4800的示例。菜单窗口4800包括性能提升功能设置区域4801、逐卷性能提升功能设置区域4802以及逐功能性能提升功能设置区域4803。
管理员选择在性能提升功能设置区域4801中的“启用”或者“禁用”以启用或禁用存储系统10中的性能提升功能。这一设置被反映到性能提升功能启用表210。
逐卷性能提升功能设置区域4802启用用于每个逻辑卷的启用/禁用性能提升功能的选择。在逐卷性能提升功能设置区域4802中,管理员可以利用输入装置28来选择用于每个逻辑卷的启用/禁用性能提升功能。这一设置被反映到逐卷性能提升功能启用表220。
逐功能性能提升功能设置区域4803启用启用/禁用性能提升功能的分离的选择。在逐功能性能提升功能设置区域4803中,管理员可以利用输入装置28来选择启用/禁用每个性能提升功能。这一设置被反映到存储系统10中的逐功能性能提升功能启用表(未示出)。如果提升功能在所有系统、卷和功能上启用,则性能提升功能在卷中被使用。
第五实施例
在这一实施例中,本发明的示例应用到包括利用交换器连接的多个存储模块的存储系统。这一实施例主要说明与前述其它实施例的差异。图49示意性地图示这一实施例中的计算机系统的配置。存储模块10C和存储模块10D被连接以能够利用模块间路径(交换器)195(也被称为X路径)而彼此通信。
图49中的每个存储模块10C和10D的配置与参考图1描述的存储系统10的配置相同。在这一示例中,两个连接的模块构成存储系统;但是三个或更多个模块可以构成存储系统。
连接存储模块10C和10D的X路径195(交换器)起到与内部网络150中相同的路径的作用;任一模块中的任何包可以通过X路径195与其它模块中任何包或介质通信。主机180可以访问任一存储模块。
X路径使用比内部网络150窄的带宽,并且具有更低的数据转移能力。由于此原因,X路径很可能导致包之间的数据转移中的瓶颈。因此,基于X路径的负荷来确定是否开启(ON)或关闭(OFF)性能提升功能,这实现了更少的存储系统性能退化。
微处理器121在这一实施例中在控制启用/禁用性能提升功能中参考X路径195的操作率。这一配置实现了由多个模块构成的存储系统中的适当系统性能提高。
图50图示这一实施例中保持于本地存储器122中的控制信息。在图50中,X路径操作率表360和X路径操作率阈值表370被保持于本地存储器122中。图51示例说明X路径操作率表360。图52示例说明X路径操作率阈值表370。
X路径操作率表360管理X路径的操作率。在这一示例中,X路径操作率表360包括X路径编号列361、操作率列362以及过载确定标志列363。X路径编号为唯一地标识系统中的X路径的标识符。在图51的示例中,X路径操作率表360管理多个X路径。这意味着多个X路径连接两个或更多个存储模块。多个X路径通过相同或不同的交换器来运作。
操作率为每单位时间的数据转移次数。X路径的操作率由X路径的控制器计算并且存储于寄存器。微处理器121从交换器中的寄存器获得X路径的操作率并且将它们存储于X路径操作率表360中。
微处理器121将X路径操作率表360中的单独条目中的操作率与预定X路径操作率阈值比较以确定用于过载确定标志的值。如果X路径操作率等于或高于阈值,则微处理器121将过载确定标志设置在1。X路径操作率阈值被保持于X路径操作率阈值表370中的X路径操作率阈值列中。例如,X路径操作率阈值表370被从存储系统中的非易失性存储区域加载,并且值由管理员确定。
现在参考图53的流程图,考虑到X路径的操作率来确定关于共享存储器132中的数据高速缓存的控制信息的更新。基本部分与第一实施例相同。在图53的流程图中,步骤S607以外的步骤与第一实施例中图16的流程图中的那些步骤相同;因此省略说明。
在步骤S607,微处理器121参考X路径操作率表360以确定用于访问共享存储器132的X路径的过载标志是否为1(ON)。指示微处理器121访问的CMPK130和将被使用的X路径之间的关系的控制信息被保持于本地存储器122中,并且微处理器121可以定位将被使用的X路径。
如果过载标志为ON(在S607为是),则微处理器121确定不更新共享存储器132中的控制信息(S608)。如果过载标志为0(OFF)(在S607为否),则微处理器121确定更新共享存储器132中的控制信息(S609)。这一示例在确定是否更新数据高速缓存控制信息时参考X路径的操作率,但是在其它实施例中说明的其它确定也可以参考X路径的操作率。
接着,参考图54的流程图,将说明更新X路径操作率表360中的X路径的操作率。典型地,这个操作被周期地(例如,每一秒)执行。微处理器121选择X路径(通过示例方式,X路径195),并且获得X路径的操作率195(S612)。
微处理器121更新X路径操作率表360中用于相关条目的操作率的值(S613)。微处理器121确定所获得的操作率是否等于或高于X路径操作率阈值表370中的X路径操作率阈值(S614)。如果操作率等于或高于阈值(在S614为是),则微处理器121将X路径操作率表360中用于该条目的过载标志设置在1(ON)(S615)。
另一方面,如果操作率低于阈值(在S614为否),则微处理器121将X路径操作率表360中用于该条目的过载标志设置在0(OFF)(S616)。微处理器121确定用于所有X路径的操作率是否已经更新(S617)并且如果在所有X路径上的确定已经完成(在S617为是),则它终止该流。如果还有未进行确定的任何X路径(在S617为否),则它选择其余X路径其中之一并且重复此流。
第六实施例
这一实施例说明其中MPPK120可被分布到多个不同种类的装置的多个共享存储器区域访问的配置。在这一实施例中,主要说明与前述其它实施例的差异。
图55示意性地图示这一实施例中计算机系统的配置。在存储系统10中,多个共享存储器(存储区域)被提供在多个不同装置中。具体地,除了CMPK130中的共享存储器132之外,共享存储器124被提供在MPPK120中并且共享存储器178被提供在存储驱动器170中。MPPK120中的共享存储器124的区域为本地存储器122中的存储区域。存储驱动器170中的共享存储器178的区域为存储驱动器中的非易失性存储介质的存储区域。
图56图示这一实施例中保持于本地存储器122中的控制信息。在图56中,MP操作率表380、MP操作率阈值表390以及SM区域管理表400被保持于本地存储器122中。
图57示例说明MP操作率表380。MP操作率表380包括MP编号列381、操作率列382、过载确定标志一列383、过载确定标志二列384以及操作时间列385。过载确定标志二384以外的列与图11中所示的MP操作率表270中的那些列相同。过载确定标志一列383对应于过载确定标志列273。
图58示例说明MP操作率阈值表390。MP操作率阈值表390包括MP操作率阈值一列391以及MP操作率阈值二列392。MP操作率阈值一的值高于MP操作率阈值二的值。MP操作率阈值一对应于图12中的MP操作率阈值。
图59示例说明SM区域管理表400。SM区域管理表400管理分布于多个装置中的共享存储器区域。SM区域管理表400包括类型列401、编号列402、开始地址列403以及剩余容量列404。类型指示共享存储器区域被提供到的装置的类型。编号为相同类型的装置之间的标识符。开始地址指示装置中的共享存储器区域中的起始地址。剩余容量指示共享存储器区域中的剩余容量。
在类型列401、编号列402以及开始地址列403中,值提前被提供。微处理器121从单独装置中的控制器(对于MPPK,微处理器121)获得共享存储器区域中剩余容量的值,并且将它们存储于剩余容量列404中。
现在参考图60A和图60B,将说明确定是否更新保持于共享存储器区域中的关于数据高速缓存的控制信息。图60A的流程图中的步骤S702至S707与图16的流程图中的步骤S122至S127相同。然而,在步骤S706,如果用于CMPK130的过载标志为ON(在S706为是),则微处理器121进行到图60B中的步骤S709。
如果在步骤S706用于CMPK130的过载标志为OFF(在S706为否)或者在步骤S702用于逻辑卷的性能提升功能为OFF(在S702为否),则微处理器121确定更新CMPK130中的共享存储器中的控制信息。
在图60B中的步骤S709,微处理器121参考SM区域管理表400以确定任何MPPK120是否具有所需数量的剩余共享存储器区域。如果任何MPPK120具有所需数量的剩余共享存储器区域(在S709为是),则微处理器121定位MPPK120的编号,将共享存储器124中的高速缓存控制信息存储于MPPK120中,并且确定更新信息(S710)。MPPK120为与安装有微处理器121的MPPK120不同的MPPK。
如果没有MPPK120具有所需数量的剩余容量(在S709为否),在微处理器121确定其自己的过载标志二是否为1(ON)(S711)。如果过载标志二为ON(在S711为是),则微处理器121确定不更新共享存储器区域中的控制信息(S716)。
如果过载标志二为OFF(在S711为否),则微处理器121参考SM区域管理表400以确定任何SSD RAID群组是否具有所需数量的剩余共享存储器区域(S712)。
如果任何SSD RAID群组具有所需数量的剩余共享存储器区域(在S712为是),则微处理器121定位SSD RAID群组的编号,将高速缓存控制信息存储于SSD RAID群组的共享存储器区域中,并且确定更新信息(S713)。
如果没有SSD RAID群组具有所需数量的剩余共享存储器区域(在S712为否),则微处理器121参考SM区域管理表400以确定任何HDD RAID群组是否具有所需数量的剩余共享存储器区域(S714)。如果没有HDD RAID群组具有所需数量的剩余共享存储器区域(在S714为否),则微处理器121确定不更新共享存储器132中的所述控制信息(S716)。
如果任何HDD RAID群组具有所需数量的剩余共享存储器区域(在S714为是),则微处理器121定位HDD RAID群组的编号,将高速缓存控制信息存储于HDD RAID群组的共享存储器区域中,并且确定更新信息(S715)。
如果微处理器121确定将控制信息存储于共享存储器132以外的任意共享存储器并且更新控制信息,则它将本地存储器122中的数据高速缓存控制信息复制到所选择的共享存储器。
如所描述的,将控制信息从共享存储器132的当前区域重新定位到另一共享存储器区域允许共享存储器中的控制信息的更新与本地存储器中的更新同步,从而导致在出现故障时高速缓存命中率的提高。上述流按照从具有最高访问能力的装置类型的顺序按顺序地确定剩余共享存储器区域的可用性。这种确定允许控制信息被存储于具有较高访问能力的共享存储器中并且抑制系统性能的退化。
这一实施例中的共享存储器区域管理适用于在前述实施例中描述的除了数据高速缓存控制信息以外的控制信息的存储和更新的管理。在MPPK中故障时,不同MPPK120参考共享存储器区域管理表400以搜寻分布的共享存储器区域中的对应控制信息。
参考图61的流程图,将描述更新MP操作率。这一流在例如一秒的周期内被调用。微处理器121获得其自己的MP操作时间(S722)并且更新MP操作率表380中操作率的值(S723)。步骤S722和S723与图24中的步骤S232和S233相同。
接着,在步骤S724,微处理器121确定所更新的操作率是否等于或高于MP操作率阈值一。如果操作率等于或高于MP操作率阈值一(在S724为是),则微处理器121将MP操作率表380中的过载标志一设置在1(ON)(S725)。如果操作率低于MP操作率阈值一(在S724为否),则微处理器121将MP操作率表380中的过载标志一设置在0(OFF)(S726)。
接着,在步骤S727,微处理器121确定所更新的操作率是否等于或高于MP操作率阈值二。如果操作率等于或高于MP操作率阈值二(在S727为是),则微处理器121将MP操作率表380中的过载标志二设置在1(ON)(S728)。如果操作率低于MP操作率阈值二(在S727为否),则微处理器121将MP操作率表380中的过载标志二设置在0(OFF)(S729)。
第七实施例
取决于由于高速缓存主机数据引起的访问性能提高,这一实施例中的存储系统确定是否开启或关闭低命中率标志。低命中率标志已经在第一实施例中说明。访问性能例如由响应时间或吞吐量表述。下文说明中的配置使用响应时间。
如果数据高速缓存的使用显著地改善响应时间,则低命中率标志(参考第一实施例)被设置在OFF;如果数据高速缓存的使用少量地改善响应时间,则低命中率标志被设置在ON。这一选择可以改善平均响应时间。
在下文中,将具体说明这一实施例。将主要描述与前述其它实施例的差异。图62图示这一实施例中保持于本地存储器122中的控制信息。响应表410和CM使用阈值表420保持于本地存储器122中。图63示出响应表410的示例并且图64示出CM使用阈值表420的示例。
响应表410为用于管理介质的响应时间的表。在图63中,响应表410包括介质类型列411以及响应时间列412。尽管这一示例中的响应表410取决于介质类型来管理响应时间,但是响应时间可以取决于RAID群组或逻辑卷被管理。
在这一示例中,响应时间为从介质取回数据所需的时间。响应时间列412保持预设值。备选地,微处理器121可以更新响应时间列412中的值。微处理器121测量响应时间同时取回数据,并且例如将所测量的值的平均值存储于响应时间列412中。
在图64中,CM使用阈值表420保持用于指示响应改善列421中的响应改善的值的阈值。该阈值为预定的。例如,由管理员确定的值被保持于存储系统中的非易失性存储区域中。
如下文描述的,微处理器121使用介质的响应时间和CMPK130(高速缓存存储器131)的响应时间之间的差异来计算指示响应改善的值。如果该值大于阈值,该响应改善适合于数据高速缓存。
现在参考图65的流程图,将描述这一实施例中取决于响应改善来更新命中率,包括更新低命中率标志。MPPK120周期地(例如,每一秒)执行这一处理。图65的流程图中的步骤S802、S803、S805至S807与图23的流程图中的步骤S222、S223以及S225至S227相同。
在步骤S804,微处理器121使用下述公式1计算指示响应改善的值:
命中率*(介质的响应时间-CMPK响应时间)/100
通过利用卷的RAID群组来参考介质类型表230,微处理器121可以标识介质的类型。响应时间的值如上所述保持于响应表410中。微处理器121将所计算的值与CM使用阈值表420中的CM使用阈值比较。
如果所计算的值等于或小于CM使用阈值(在S804为是),则微处理器121将用于卷的低命中率标志设置在1(ON)(S805)。如果所计算的值大于CM使用阈值(在S804为否),则微处理器121将用于卷的低命中率标志设置在0(OFF)(S806)。
如前所述,已经描述了本发明的优选实施例,但是本发明不限于上述实施例。本领域技术人员可以在本发明范围内容易地调整、添加或转换上述实施例中的每个成份。一个实施例的配置的一部分可以用另一实施例的一部分来替代,并且一个实施例的配置可以被添加到另一实施例。每个实施例的配置的一部分可以由不同配置添加、删除或替代。
可以由硬件(例如,通过设计集成电路)来实施上述配置、功能、处理器以及用于处理它们中的全部或一部分的装置。实施该功能的程序、表和文件的信息可以存储于存储装置,诸如非易失性半导体存储器、硬盘驱动器或SSD,或者计算机可读非临时性数据存储介质,诸如IC卡、SD卡或DVD。
在上述实施例中,控制信息由多个表来表述,但是本发明使用的控制信息不取决于数据结构。除了表之外,控制信息可以由诸如数据库、列表以及队列的数据结构表述。在上述实施例中,诸如标识符、名称以及ID的表述可以彼此替代。
CPU、微处理器或多个微处理器(它们为处理器)的群组依据程序操作以执行预定处理。因此,具有“处理器”的主题的实施例中的解释可以用具有“程序”的主题的实施例的解释来替代。由处理器执行的处理为由处理器安装于其中的设备或系统执行的处理。

Claims (14)

1.一种存储系统,包括:
负责不同控制信息的多个处理器;
被逐一分配给所述多个处理器的本地存储器,所述本地存储器每个均保持有被指派给所分配的处理器的控制信息;以及
从所述多个处理器可访问的共享存储器,所述共享存储器保持有被指派给所述多个处理器中的第一处理器的控制信息,
其中:
所述第一处理器更新被分配给所述第一处理器的第一本地存储器中的所述控制信息;
所述第一处理器确定是否将所述第一本地存储器中的所述控制信息的所述更新反映到所述共享存储器中的所述控制信息;以及
所述第一处理器将被确定为要反映到所述共享存储器中的所述控制信息的、所述第一本地存储器中的所述控制信息的所述更新反映到所述共享存储器中的所述控制信息。
2.根据权利要求1所述的存储系统,进一步包括:
多种类型的非易失性存储区域,所述多种类型的非易失性存储区域表现出不同的访问性能以提供多个卷;以及
高速缓存区域,
其中:
所述第一本地存储器中的所述控制信息和所述共享存储器中的所述控制信息每个均包括针对所述多个卷中的被指派给所述第一处理器的第一卷的数据高速缓存控制信息;以及
所述第一处理器基于提供所述第一卷的所述非易失性存储区域的类型,确定是否将所述第一本地存储器中的所述控制信息的所述更新反映到所述共享存储器中的所述控制信息。
3.根据权利要求2所述的存储系统,其中所述第一处理器基于对所述第一处理器的负荷、对所述高速缓存区域的负荷以及所述第一卷上的高速缓存命中率中的至少一个,确定是否将所述第一本地存储器中的所述控制信息的所述更新反映到所述共享存储器中的所述控制信息。
4.根据权利要求1所述的存储系统,其中:
所述共享存储器中的所述控制信息包括将被计数的数值;
所述第一本地存储器中的所述控制信息包括指示在所述数值的前次更新之后所述数值的变动的差值;以及
当所述差值达到预定数量时,所述第一处理器基于所述第一本地存储器中的所述控制信息,来更新所述共享存储器中的所述控制信息中包括的所述数值。
5.根据权利要求1所述的存储系统,进一步包括用于提供卷的一个或多个非易失性存储区域,
其中:
所述第一本地存储器中的所述控制信息和所述共享存储器中的所述控制信息每个包括关于所述卷中的存储区域的访问数量的信息;
所述第一处理器响应于对所述卷中的所述存储区域的访问,来更新所述第一本地存储器中的关于所述访问数量的所述信息;以及
当所述第一本地存储器中关于所述访问数量的信息的更新次数的数量达到预定值时,所述第一处理器将所述第一本地存储器中关于所述访问数量的信息的所述更新反映到所述共享存储器中关于所述访问数量的信息。
6.根据权利要求1所述的存储系统,进一步包括:
主卷;
次卷,所述次卷与所述主卷是一个副本对;
日志卷,所述日志卷用于在将所述主卷中的更新数据复制到所述次卷之前,按照更新的顺序存储所述主卷中的所述更新数据;以及
日志管理信息,所述日志管理信息包括指示所述日志卷中的更新数据的所述顺序的序号,
其中:
所述共享存储器中的所述控制信息包括指示所述日志管理信息中的最高序号的值;
所述第一本地存储器中的所述控制信息包括:指示所述日志管理信息中的最高序号的值,以及指示由所述第一本地存储器中的所述值所指示的所述最高序号与由所述共享存储器中的所述值所指示的所述最高序号之间的差异的值;
所述第一处理器响应于在所述日志卷中存储更新数据,更新所述第一本地存储器中的指示所述最高序号的所述值以及指示所述差异的所述值;以及
当指示所述差异的所述值达到预定值时,所述第一处理器将所述第一本地存储器中的指示所述最高序号的所述值的所述更新反映到所述共享存储器中的指示所述最高序号的所述值。
7.根据权利要求6所述的存储系统,其中由于出现故障而接管所述第一处理器的指派的第二处理器获取所述共享存储器中的指示所述最高序号的所述值,在所述日志管理信息中搜寻序号在由所获取的所述值指示的最高序号之前的区域,以及定位所述日志管理信息中的最高序号。
8.根据权利要求1所述的存储系统,进一步包括:
主卷;以及
次卷,所述次卷与所述主卷是一个副本对,
其中:
所述共享存储器中的所述控制信息包括多个差异标志,所述多个差异标志中的每个差异标志与所述主卷中的多个区域分段中的每个区域分段关联,并且指示在所述主卷和所述次卷之间是否存在任何差异;
所述第一本地存储器中的所述控制信息包括多个差异标志,每个差异标志与所述主卷中的所述多个区域分段的每一个关联,并且指示所述主卷和所述次卷之间是否存在任何差异;
所述第一本地存储器中的所述控制信息包括多个反映控制标志,每个反映控制标志与作为所述第一本地存储器中的所述多个差异标志的一部分的多个差异标志关联,并且指示是否将所述多个差异标志中的所述一部分的更新反映到所述共享存储器中的所述控制信息;以及
所述第一处理器将被所关联的反应控制标志指示要反映的差异标志的更新反映到所述共享存储器中的所述控制信息。
9.根据权利要求8所述的存储系统,其中在所述多个关联的差异标志中的指示存在差异的差异标志的比例达到预定值的情况下,所述多个反映控制标志中的每个指示不将所述多个关联的差异标志的更新反映到所述共享存储器中的所述控制信息。
10.根据权利要求8所述的存储系统,其中:
由于出现故障而接管所述第一处理器的指派的第二处理器参考所述共享存储器中的所述多个反映控制标志;
所述第二处理器在所参考的所述多个反映控制标志中,定位指示不将更新反映到所述共享存储器中的所述控制信息的反映控制标志;
所述第二处理器将与所定位的反映控制标志关联的所述主卷中的区域中的所有数据复制到所述次卷。
11.根据权利要求3所述的存储系统,进一步包括利用包括开关的路径而连接的第一存储模块和第二存储模块,
其中:
所述第一处理器和所述第一本地存储器安装于所述第一存储模块中;
所述共享存储器安装于所述第二存储模块中;以及
所述第一处理器基于对所述路径的负荷,确定是否将所述第一本地存储器中的所述控制信息的更新反映到所述共享存储器中的所述控制信息。
12.根据权利要求1所述的存储系统,其中:
所述第一处理器确定将用于存储所述共享存储器中的所述控制信息的至少部分信息的区域,从所述共享存储器改变为不同类型装置的存储区域;以及
所述第一处理器与所述第一本地存储器中的更新同步地更新所述不同类型装置的所述存储区域中的所述至少部分信息。
13.根据权利要求12所述的存储系统,其中
所述至少部分信息包括关于指派给所述第一处理器的第一卷的数据高速缓存控制信息;
确定不将关于所述第一本地存储器中的所述第一卷的所述数据高速缓存控制信息的更新反映到所述共享存储器的条件包括:对所述第一处理器的负荷等于或高于第一阈值;
所述不同类型装置中的所述存储区域为在所述存储系统中提供多个卷的非易失性存储设备的存储区域;以及
确定将所述至少部分信息的所述存储区域改变为所述第二共享存储器的条件包括:对所述第一处理器的负荷低于第二阈值,所述第二阈值低于所述第一阈值。
14.根据权利要求1所述的存储系统,其中
所述第一本地存储器中的所述控制信息和所述共享存储器中的所述控制信息每个均包括针对所述多个卷中的被指派给所述第一处理器的第一卷的数据高速缓存控制信息;
所述第一处理器基于通过对所述第一卷进行数据高速缓存而得到的访问性能改善,确定是否将所述第一本地存储器中的所述控制信息的所述更新反映到所述共享存储器中的所述控制信息。
CN201180074025.0A 2011-10-07 2011-10-07 存储系统 Active CN103858110B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/005649 WO2013051069A1 (en) 2011-10-07 2011-10-07 Storage system

Publications (2)

Publication Number Publication Date
CN103858110A true CN103858110A (zh) 2014-06-11
CN103858110B CN103858110B (zh) 2017-02-15

Family

ID=48042872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180074025.0A Active CN103858110B (zh) 2011-10-07 2011-10-07 存储系统

Country Status (5)

Country Link
US (2) US8719524B2 (zh)
EP (1) EP2764440B1 (zh)
JP (1) JP5806776B2 (zh)
CN (1) CN103858110B (zh)
WO (1) WO2013051069A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224252A (zh) * 2015-09-28 2016-01-06 北京奇虎科技有限公司 数据存储方法及装置
CN105701029A (zh) * 2014-11-25 2016-06-22 华为技术有限公司 一种异构存储优化方法及装置
CN107436727A (zh) * 2016-05-26 2017-12-05 中兴通讯股份有限公司 精简卷的存储空间管理方法和装置
CN108496153A (zh) * 2015-11-27 2018-09-04 Netapp股份有限公司 同步复制关系的非破坏性基线和再同步
CN109697027A (zh) * 2017-10-23 2019-04-30 三星电子株式会社 包括共享存储器区域和专用存储器区域的数据存储设备
CN110018967A (zh) * 2018-01-10 2019-07-16 爱思开海力士有限公司 数据存储装置及其操作方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819371B2 (en) * 2011-10-07 2014-08-26 Hitachi, Ltd. Storage system
JP5806776B2 (ja) 2011-10-07 2015-11-10 株式会社日立製作所 ストレージシステム
US9152223B2 (en) * 2011-11-04 2015-10-06 International Business Machines Corporation Mobile device with multiple security domains
JP5831298B2 (ja) * 2012-03-06 2015-12-09 富士通株式会社 プログラム、情報処理装置およびインデックス生成方法
US9286226B1 (en) * 2014-03-31 2016-03-15 Emc Corporation Storage processor hardware upgrade in a storage system
WO2015186165A1 (ja) * 2014-06-02 2015-12-10 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US10176098B2 (en) * 2014-11-17 2019-01-08 Hitachi, Ltd. Method and apparatus for data cache in converged system
US10095625B2 (en) * 2015-06-19 2018-10-09 Hitachi, Ltd. Storage system and method for controlling cache
CN115629827B (zh) * 2022-12-22 2023-03-10 中国西安卫星测控中心 一种基于共享内存的Linux服务器多应用进程调度方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149839A1 (en) * 2002-02-04 2003-08-07 Nec Corporation Disk cache management method of disk array device
US7433898B1 (en) * 2004-06-01 2008-10-07 Sanbolic, Inc. Methods and apparatus for shared storage journaling

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4188602B2 (ja) * 2002-01-10 2008-11-26 株式会社日立製作所 クラスタ型ディスク制御装置及びその制御方法
JP2005190106A (ja) 2003-12-25 2005-07-14 Hitachi Ltd 論理ボリュームを管理する記憶制御サブシステム
JP2005196673A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 稼動情報を記憶する記憶制御システム
JP4549787B2 (ja) 2004-09-10 2010-09-22 株式会社日立製作所 ストレージ装置
JP2007079958A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd 記憶制御装置、データ処理方法、及びコンピュータプログラム
JP4829029B2 (ja) * 2006-08-02 2011-11-30 株式会社東芝 メモリシステム及びメモリチップ
JP4369470B2 (ja) 2006-12-26 2009-11-18 富士通株式会社 データ中継装置、ストレージ装置、および応答遅延監視方法
JP5117748B2 (ja) 2007-03-29 2013-01-16 株式会社日立製作所 暗号化機能を備えたストレージ仮想化装置
JP5106913B2 (ja) * 2007-04-23 2012-12-26 株式会社日立製作所 ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP2009181167A (ja) 2008-01-29 2009-08-13 Hitachi Ltd コンピュータシステム、リモートコピー方法及び第1コンピュータ
US7788541B2 (en) 2008-04-15 2010-08-31 Dot Hill Systems Corporation Apparatus and method for identifying disk drives with unreported data corruption
JP5183403B2 (ja) * 2008-09-30 2013-04-17 株式会社日立製作所 ストレージシステムおよび制御プログラムならびにストレージシステム制御方法
EP2344947B1 (en) * 2009-02-17 2012-07-04 Hitachi, Ltd. Storage controller and method of controlling storage controller
WO2010131373A1 (en) 2009-05-15 2010-11-18 Hitachi,Ltd. Storage subsystem
JP4696171B2 (ja) * 2009-05-19 2011-06-08 富士通株式会社 記憶装置、データ保存方法およびデータ保存プログラム
US8380924B2 (en) 2009-05-27 2013-02-19 Hitachi, Ltd. Storage system and processing efficiency improving method of storage system
TWI415128B (zh) 2009-08-03 2013-11-11 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統
WO2012131749A1 (en) * 2011-03-25 2012-10-04 Hitachi, Ltd. Storage system and storage area allocation method
JP5806776B2 (ja) 2011-10-07 2015-11-10 株式会社日立製作所 ストレージシステム
US8819371B2 (en) 2011-10-07 2014-08-26 Hitachi, Ltd. Storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149839A1 (en) * 2002-02-04 2003-08-07 Nec Corporation Disk cache management method of disk array device
US7433898B1 (en) * 2004-06-01 2008-10-07 Sanbolic, Inc. Methods and apparatus for shared storage journaling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
潘国腾: "CC-NUMA系统存储体系结构关键技术研究", 《中国博士学位论文全文数据库》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701029A (zh) * 2014-11-25 2016-06-22 华为技术有限公司 一种异构存储优化方法及装置
CN105701029B (zh) * 2014-11-25 2018-11-06 华为技术有限公司 一种异构存储优化方法及装置
CN105224252A (zh) * 2015-09-28 2016-01-06 北京奇虎科技有限公司 数据存储方法及装置
CN108496153A (zh) * 2015-11-27 2018-09-04 Netapp股份有限公司 同步复制关系的非破坏性基线和再同步
CN107436727A (zh) * 2016-05-26 2017-12-05 中兴通讯股份有限公司 精简卷的存储空间管理方法和装置
CN109697027A (zh) * 2017-10-23 2019-04-30 三星电子株式会社 包括共享存储器区域和专用存储器区域的数据存储设备
CN109697027B (zh) * 2017-10-23 2024-02-02 三星电子株式会社 包括共享存储器区域和专用存储器区域的数据存储设备
CN110018967A (zh) * 2018-01-10 2019-07-16 爱思开海力士有限公司 数据存储装置及其操作方法

Also Published As

Publication number Publication date
US9460015B2 (en) 2016-10-04
US20140208009A1 (en) 2014-07-24
CN103858110B (zh) 2017-02-15
EP2764440A1 (en) 2014-08-13
JP5806776B2 (ja) 2015-11-10
JP2014527204A (ja) 2014-10-09
US8719524B2 (en) 2014-05-06
WO2013051069A1 (en) 2013-04-11
EP2764440B1 (en) 2021-02-17
US20130091328A1 (en) 2013-04-11

Similar Documents

Publication Publication Date Title
CN103858110A (zh) 存储系统
CN104050094A (zh) 管理高速缓存存储区的系统、方法和计算机可读介质
US8443160B2 (en) Computer system and data migration method
US7461196B2 (en) Computer system having an expansion device for virtualizing a migration source logical unit
US9311016B2 (en) Storage system capable of managing a plurality of snapshot families and method of operating thereof
CN100498726C (zh) 用于直接存储器存取地址转换的错误处理
CN101799742B (zh) 用于在存储系统之间转移精简配置卷的方法和装置
US7558916B2 (en) Storage system, data processing method and storage apparatus
CN100403268C (zh) 对应用程序透明的自治可用性
US8078581B2 (en) Storage system and remote copy control method
US9053027B1 (en) Techniques for maintaining and restoring dirty caches across CPU resets
US20180095684A1 (en) Replicating tracks from a first storage site to a second and third storage sites
US8612681B2 (en) Storage system, storage apparatus and method of controlling storage system
CN108235751A (zh) 识别对象存储设备亚健康的方法、装置和数据存储系统
CN104704569A (zh) Nvram路径选择
GB2535558A (en) Computer system and data control method
CN102301371A (zh) 电力丢失事件期间非易失性存储装置数据的迅速保护
US10503440B2 (en) Computer system, and data migration method in computer system
CN104049904B (zh) 用于管理统一虚拟存储器的页面状态目录的系统和方法
US20080177960A1 (en) Export of Logical Volumes By Pools
JP5965486B2 (ja) ストレージシステム
US11960481B2 (en) Managing lookup operations of a metadata structure for a storage system
US20240176520A1 (en) Storage system and storage control method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant