CN109154906B - 储存装置、储存装置的控制方法和储存装置用控制器 - Google Patents

储存装置、储存装置的控制方法和储存装置用控制器 Download PDF

Info

Publication number
CN109154906B
CN109154906B CN201680086107.XA CN201680086107A CN109154906B CN 109154906 B CN109154906 B CN 109154906B CN 201680086107 A CN201680086107 A CN 201680086107A CN 109154906 B CN109154906 B CN 109154906B
Authority
CN
China
Prior art keywords
controller
plane
data
cache
storage device
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
CN201680086107.XA
Other languages
English (en)
Other versions
CN109154906A (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 CN109154906A publication Critical patent/CN109154906A/zh
Application granted granted Critical
Publication of CN109154906B publication Critical patent/CN109154906B/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/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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • 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/2076Synchronous techniques
    • 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/2082Data synchronisation
    • 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/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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
    • G06F12/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明的储存装置的具有缓冲存储器的控制器分别将缓存数据镜像化来进行管理,储存装置(SD)包括具有缓冲存储器的多个控制器(1)和由各控制器所使用的、设定用于提供给上级装置(3)的逻辑卷(24)的多个存储装置(21),各控制器在形成镜像化数据对的数据对目的地的控制器闭锁的情况下按每个逻辑卷选择要成为新的数据对目的地的控制器,将存入本控制器所具有的缓冲存储器的缓存数据传输(传送)至新的数据对目的地的控制器而存入新的数据对目的地的控制器所具有的缓冲存储器,将缓存数据镜像化。

Description

储存装置、储存装置的控制方法和储存装置用控制器
技术领域
本发明涉及储存装置、储存装置的控制方法和储存装置用控制器。
背景技术
储存装置将写数据存入至缓冲存储器之后,对与写目的地的逻辑卷对应的RAID(Redundant Arrays of Inexpensive Disks:磁盘冗余阵列)结构的存储装置写入写数据。将仅存入缓冲存储器而未写入存储装置的数据称为脏数据。脏数据由于仅存入缓冲存储器所以在万一在缓冲存储器产生故障的情况下会丢失。因此,在储存装置中,通过将脏数据保存在多个缓冲存储器中来提高可靠性(专利文献1、2)。
现有技术文献
专利文献
专利文献1:日本特开2005-43930号公报
专利文献2:日本特开2005-122453号公报
发明内容
发明所要解决的问题
在现有的技术中,在分别内置有缓冲存储器的多个磁盘控制器中保存数据,在一个磁盘控制器产生故障的情况下,另一个磁盘控制器将数据传输至其它磁盘控制器,进行数据的镜像化。
但是,在现有技术中,由与磁盘控制器组分开设置的储存装置管理部决定用于将缓存数据镜像化地保存的磁盘控制器,因此,在储存装置管理部产生故障的情况下,不能变更用于将缓存数据镜像化地保存的磁盘控制器。
进一步,在现有技术中,在用于将缓存数据镜像化地保存的缓冲存储器的选择方法中自由度少,在该方面也存在改善的余地。
本发明是鉴于上述问题而完成的发明,其目的在于提供使得具有缓冲存储器的控制器能够各自对缓存数据的镜像化进行管理,与现有技术相比能够灵活地选择缓冲存储器的储存装置、储存装置的控制方法和储存装置用控制器。
用于解决问题的技术方案
为了解决上述问题,本发明的将缓存数据镜像化来进行管理的储存装置包括:具有缓冲存储器的多个控制器;和被各控制器所使用的多个存储装置,至少设定一个用于提供给上级装置的逻辑卷,各控制器保存有按各逻辑卷设定的规定的管理信息,规定的管理信息包括:表示缓冲存储器被用作第1面还是第2面的面属性信息,其中第1面和第2面形成用于将缓存数据镜像化来存储的镜像化数据对;控制器编号,其用于确定具有缓冲存储器和形成镜像化数据对的缓冲存储器的数据对目的地的控制器;和表示缓冲存储器的状态转换的方法的转换方法信息,各控制器在形成镜像化数据对的数据对目的地的控制器闭锁的情况下起动规定的镜像化恢复功能,基于规定的管理信息来按各逻辑卷选择要成为新的数据对目的地的控制器,将存储于本控制器所具有的缓冲存储器的缓存数据向新的数据对目的地的控制器传输而存储至新的数据对目的地的控制器所具有的缓冲存储器,由此将缓存数据镜像化来进行管理。
发明效果
根据本发明,各控制器在形成缓存数据的镜像化数据对的控制器闭锁的情况下,能够起动规定的镜像化恢复功能,从其它控制器中选择成为新的数据对目的地的控制器而传输缓存数据,存储至成为新的数据对目的地的控制器所具有的缓冲存储器。由此,根据本发明,能够提高应对故障的可用性,能够灵活地选择成为镜像化数据对的控制器,提高使用便利性。
附图说明
图1是表示本实施方式的整体概要的说明图。
图2是储存装置的硬件结构图。
图3是表示存储器的存储内容的说明图。
图4是表示缓存目录的存储内容的说明图。
图5是表示图4所示的存储内容的一部分的详细情况的说明图。
图6是表示储存器结构信息的内容的说明图。
图7是图6中的LDEV(Logical Device:逻辑驱动器)信息的图。
图8是图6中的VDEV(Virtual Device:虚拟驱动器)信息的图。
图9是图6中的HDD(Hard Disk Drive:硬盘驱动器)信息的图。
图10是图9中的HDD访问路径信息的图。
图11是图6中的LDEV/VDEV转换表的图。
图12是图11中的每个VDEV的LDEV列表终端信息的图。
图13是图11中的每个LDEV的列表正文信息的图。
图14是图6中的VDEV/HDD转换表的图。
图15是图14中的每个VDEV的HDD列表终端信息的图。
图16是图14中的每个HDD的列表正文信息的图。
图17是图6中的控制器信息的图。
图18是图6中的主机路径信息的图。
图19是图6中的主机路径数量信息的图。
图20是图6中的访问路径数量信息的图。
图21是指定图6中的缓存段(cache slot)转换方式的信息的图。
图22是缓存段的状态转换图。
图23是表示检测到某个控制器因故障而闭锁的控制器进行的处理的流程图。
图24是表示由于维护作业而闭锁的控制器进行的处理的流程图。
图25是将缓存数据镜像化保存的处理的主流程图。
图26是表示图25中的数据镜像化处理的详细情况情况的流程图。
图27是表示图26中的数据镜像化源控制器进行的数据镜像化处理的详细情况的流程图。
图28是表示图27中所示的数据镜像化目的地控制器进行的数据镜像化处理的详细情况的流程图。
图29是表示寻找与闭锁的缓冲存储器的属性相同用途的控制器的情形的说明图。
图30是表示总寻找N面用的控制器的说明图。
图31是表示总寻找C面用的控制器的说明图。
图32是表示先决定应该作为C面使用的控制器,再根据需要将该控制器的属性从N面变更为C面的情形的说明图。
图33是表示先决定应该作为N面使用的控制器,再根据需要将该控制器的属性从C面变更为N面的情形的说明图。
图34是选择成为新的数据对目的地的控制器的处理的流程图。
图35是表示图34中的控制器选择处理1的详细情况的流程图。
图36是表示图34中的控制器选择处理2的详细情况的流程图。
图37是表示图34中的控制器选择处理3的详细情况的流程图。
图38是表示图34中的控制器选择处理4的详细情况的流程图。
图39是表示决定缓冲存储器的属性的处理的流程图。
图40是表示图39中的决定方法1的详细情况的流程图。
图41是表示图39中的决定方法2的详细情况的流程图。
图42是表示图39中的决定方法3的详细情况的流程图。
图43是表示图39中的决定方法4的详细情况的流程图。
图44是表示图39中的决定方法5的详细情况的流程图。
图45是表示图39中的决定方法6的详细情况的流程图。
图46是表示图39中的决定方法7的详细情况的流程图。
具体实施方式
以下,基于附图对本发明的实施方式进行说明。图1是表示本实施方式的概要的说明图。图1按本发明的理解和实施所需的程度表示本实施方式的概要,本发明的范围并不限定于图示的结构。在以下的说明中,存在将缓存数据略写为数据的情况。
本实施方式的储存装置SD例如包括多个控制器1和至少一个存储装置21。各控制器1具有存储器14。控制器1的详细的结构例在图2中后述。在存储器14,如在图3中后述的那样,形成有缓冲存储器区域(以下,称为缓冲存储器)130。
驱动器盒2收纳多个存储装置21。多个存储装置1所具有的物理存储区域作为RAID组虚拟化。在本说明书中将作为RAID组归纳的存储区域称为VDEV23。通过从VDEV23划出任意大小的存储区域,能够获得逻辑上的存储装置。在本说明书中将该逻辑上的存储装置称为LDEV24或逻辑卷24。
控制器1对作为上级装置的主计算机3(参照图2)提供LDEV24。主计算机3对LDEV24读写数据。图中,将控制器略写为“CTL”。
控制器1在从主计算机3接受数据的写入请求时将从主计算机3接收到的数据(写数据)存入缓冲存储器130的缓存段(cache slot)。然后,控制器1在使数据存储于缓冲存储器130的时刻对主计算机3发出写入命令的处理完成的通知。之后,控制器1在规定的时刻将被存入缓冲存储器130的写数据写入至与写入目的地的LDEV24的存储区域对应的存储装置21。将向存储装置21写入缓冲存储器130的数据的处理称为转储(destage)处理。
控制器1在被请求从主计算机3读出数据时,确认所请求的数据(读取数据)是否存储在缓冲存储器130中。在缓冲存储器130中存在读取数据的情况下,控制器1将该读取数据发送至主计算机3并向主计算机3通知读取命令的处理完成。与此相对,在读取数据不存在于缓冲存储器130中的情况下,控制器1从与写入有该读取数据的LDEV24对应的存储装置21读出数据,发送至主计算机3并通知读取命令的处理完成。控制器1还执行主计算机3使用的逻辑地址与存储装置21中使用的物理地址的转换处理、RAID用的奇偶校验计算等。
在本实施方式中,按每个LDEV24决定将缓存数据镜像化来进行管理的控制器1。在图1的例子中,存入控制器1(CTL#1)的缓存段ST11(C)的数据与存入控制器1(CTL#2)的缓存段ST21(N)的数据形成数据对。缓存段ST11(C)和缓存段ST21(N)均与LDEV24(#1)对应。
同样,存入控制器1(CTL#1)的缓存段ST12(N)的数据与存入控制器1(CTL#2)的缓存段ST22(C)的数据形成数据对。缓存段ST12(N)和缓存段ST22(C)均与LDEV24(#2)对应。
同样,存入控制器1(CTL#2)的缓存段ST23(C)的数据与存入控制器1(CTL#3)的缓存段ST33(N)的数据也形成数据对。缓存段ST23(C)和缓存段ST33(N)均与未图示的其它LDEV24对应。以上各数据对对应于“用于将缓存数据镜像化地存入的镜像化数据对”。
缓冲存储器130能够混杂地具备作为缓存面(C)使用的区域(缓存段)和作为存储保存面(N)使用的区域(缓存段)。附图标记(N)是NVS(Non-Volatile Storage:非易失性储存器)的首字母。以下称为C面、N面。C面对应于“第1面”,N面对应于“第2面”。如何分开使用C面和N面根据规格及用户的设定来决定。例如,既可以在主计算机3之间的数据收发中使用C面,在存储装置21之间的数据收发中使用N面。也可以在主计算机3的数据收发和存储装置21的数据收发两者使用C面,而将N面作为缓存数据的备份用来使用。
将仅存储于缓冲存储器130而在存储装置21未存储状态的数据称为脏数据。为了防止脏数据消失,储存装置1在不同的多个控制器1形成数据对,使形成数据对的各控制器1的缓冲存储器130分别保存脏数据。当执行转储处理,在与写入目的地的LDEV24对应的存储装置21中写入数据时,脏数据成为干净数据。存入有干净数据的缓存段能够覆盖使用。
但是,存在控制器1由于故障和维护作业而闭锁的情况。在图1的例子中,在控制器1(CTL#1)发生异常而闭锁。各控制器1通过经装置间通信网络CN2与其它各控制器1定期通信来监视死活。闭锁是指控制器1的功能停止。
为了在控制器1闭锁时也继续将缓存数据镜像化来进行管理,维持缓冲存储器的可用性,本实施方式的各控制器1具有退化(回退)恢复处理部1011(参照图3)。退化恢复处理部1011例如包括起动指示部F11、控制器选择部F12、数据镜像化部F13。退化恢复处理部1011具有在由于故障的产生和维护作业而闭锁控制器1、从储存装置SD分离的情况下(退化时),使缓存数据的镜像化数据对再形成(恢复)的功能。
起动指示部F11具有向其它各控制器1指示将缓存数据镜像化存储的结构重组的功能。控制器选择部F12具有选择取代已经闭锁的控制器1的新的数据对目的地的控制器1的功能。控制器选择部F12按照预先设定的控制器选择条件F121选择恰当的控制器1。数据镜像化部F13具有将应该镜像化存储的缓存数据经装置间通信网络CN2发送给作为新的数据对目的地被选择的控制器1,并存入成为新的数据对目的地的控制器1的缓冲存储器130的功能。
按图1的例子进行说明。控制器1(CTL#2)在检测到控制器1(CTL#1)已经闭锁时,通过起动指示部F11对本控制器1(CTL#2)和其它控制器1(CTL#3)指示退化恢复处理部1011起动。
各控制器1(CTL#2、CTL#3)的控制器选择部F12对在本控制器内是否存储有与保存在闭锁了的控制器1(CTL#1)的数据形成数据对的数据、即应该镜像化存储的数据进行确认。在存储有应该镜像化存储的数据的情况下,控制器选择部F12基于控制器选择条件F121选择成为新的数据对目的地的控制器1。
控制器选择条件F121例如具备至少一个基于缓冲存储器130的面属性(C面或N面)、缓冲存储器的状态转换方式、用于与主计算机3通信的主机路径数量、用于与存储装置21通信的HDD路径数量等的条件。
各控制器1(CTL#2、CTL#3)的数据镜像化部F13对作为新的数据对目的地而选择的控制器1传输作为镜像化的对象的缓存数据,存储在成为新的数据对目的地的控制器1的缓冲存储器130中。
其结果是,保存在控制器1(CTL#2)的缓存段ST21(N)中的数据还保存在控制器1(CTL#3)的缓存段ST31(C)中,再形成数据对。同样,保存在控制器1(CTL#2)的缓存段ST22的数据还保存在控制器1(CTL#3)的缓存段ST32中,再形成数据对。
保存在控制器1(CTL#2)的缓存段ST23(C)中的数据和保存在控制器1(CTL#3)的缓存段ST33(N)中的数据与控制器1(CTL#1)的闭锁没有关系,因此数据对结构不变。
各控制器1按LDEV单位成为数据对源,或成为数据对目的地。例如,某个控制器1对于保存在某个LDEV24中的数据作为数据对源(例如C面)使用,并且对于保存在其它LDEV24中的其它数据作为数据对目的地(例如N面)使用。
另外,还存在控制器1在故障发生以外由于维护作业而闭锁的情况。在为了进行维护作业而闭锁控制器1的情况下,其维护作业对象的控制器1对其它各控制器1通知过渡至闭锁状态的意思。
接收到该通知的各控制器1对是否保存有与维护作业对象的控制器1形成数据对的数据、即现有数据对消灭的缓存数据进行确认,在保存有该数据的情况下分别选择成为新的数据对目的地的控制器1。
维护作业对象的控制器1以外的各控制器1将应该再形成数据对的缓存数据发送并存储至作为新的数据对目的地而选择的控制器1,再形成数据对。完成数据对的再形成的控制器1对维护作业对象的控制器1通知已经完成数据对的再形成的意思。维护作业对象的控制器1在从其它各控制器1接收已经完成数据对的再形成的意思的通知时,从“闭锁过渡中”的状态过渡至“闭锁”状态,从储存装置SD分离。
即,在为了进行维护作业而闭锁的情况下,维护作业对象的控制器1对其它各控制器1指示数据对的再形成。与此相对,在由于故障等而控制器1闭锁的情况下,最先检测到该故障引起的闭锁的控制器1对各控制器1(包括本控制器)指示数据对的再形成。
如以上说明的那样,各控制器1各自具有退化恢复处理部1011,关于缓存数据的镜像化形成自律分散系统。因此,在本实施方式中,与已经闭锁的控制器1形成数据对的正常的控制器1选择取代已经闭锁的控制器1的新的数据对目的地的控制器1,将镜像化对象的缓存数据传输至成为新的数据对目的地的控制器,再形成数据对。
本实施方式按LDEV单位判断构成自律分散系统的各控制器1是否应该再形成缓存数据的数据对,并选择成为新的数据对目的地的控制器而再形成数据对。因此,在本实施方式中,与利用一个管理装置一元地进行管理的情况相比,能够提高可用性。
进一步,在本实施方式中,由于按LDEV单位再形成缓存数据的数据对,所以能够灵活地选择数据对目的地的控制器。
在本实施方式中,基于控制器选择条件F121选择成为新的数据对目的地的控制器,因此例如能够根据储存装置SD的使用目的和数据的种类等选择恰当的控制器。由此,能够在维持用户的使用便利性的同时实现缓存的高可用性。
实施例1
使用图2~图17说明第1实施例。图2表示储存装置SD的硬件结构。
对通信网络的结构例进行说明。储存装置SD包括多个控制器1和至少一个驱动器盒2,各控制器1与驱动器盒2经通信网络CN3相连接。各控制器1与主计算机(以下,主机)3即通信网络CN1相连接,各控制器1间经通信网络CN2相连接。
驱动器盒2是装载存储装置21的装置。驱动器盒2例如包括多个存储装置21、多个驱动器端口22和未图示的电源装置等。存储装置21例如能够使用硬盘设备、半导体存储设备、光盘设备、光磁盘设备等可读写数据的各种设备。此外,例如还能够使用闪存存储器、MRAM(Magnetoresistive Random Access Memory:磁阻式随机存取储存器)、相变化存储器(Phase-Change Memory)、ReRAM(Resistive random-access memory:可变电阻式储存器)、FeRAM(Ferroelectric Random Access Memory:铁电随机存取存储器)等各种设备或它们的替代物。进一步,例如也可以如同时使用硬盘设备和闪存存储设备的情况下那样,在驱动器盒2内混有种类不同的设备。在本实施例中,将存储装置21作为“HDD”表现,不过并不限定于硬盘设备。
各存储装置21各自经不同的多个驱动器端口22与通信网络CN3连接,能够经不同的多个通信路径(HDD路径)与不同的多个控制器1通信。由于各存储装置21各自具有多个HDD路径,所以即使在任一HDD路径产生故障的情况下,也能够通过使用正常的HDD路径中的任一路径来与任一控制器1通信。在不具有到达所期望的存储装置21的HDD路径的情况下,各控制器1能够通过具有到达该存储装置21的HDD路径的控制器1访问该存储装置21。
对控制器1的硬件结构进行说明。控制器1例如包括前端端口11、后端端口12、CPU(Central Processing Unit:中央处理器)13、存储器14、互连端口15。
前端端口11是用于经信网络CN1与主机3进行通信的装置。后端端口12与通信网络CN3连接,是用于经驱动器端口22与存储装置21进行通信的装置。互连端口15是用于经通信网络CN2与其它各控制器1进行通信的装置。
CPU13控制控制器1的动作。CPU13通过将存入存储器14的规定的计算机程序读入并执行而实现作为控制器1的各功能。CPU13例如以写命令和读命令的方式对从主机3接受到的命令进行处理,并将其处理结果发送至主机3。进一步,CPU13还进行脏数据的镜像化和转储处理等管理缓存数据的处理。
存储器14例如将计算机程序和管理表等数据存入,并进一步对CPU13提供工作区域。存储器14既可以由单一的存储器介质构成,也可以由多种存储介质构成。使用图3~图21说明存储器14的存储内容。
图3表示存储器14的存储内容的整体概要。存储器14存储有微程序100。微程序100例如包括缓存管理程序101、缓存目录110、缓存段管理表120、缓冲存储器130、结构信息140。
此处,缓存段管理表120是将缓存段编号作为索引存入缓存段信息的表,不过此处省略详细的图示。能够从缓存段编号唯一地求取缓冲存储器上的地址。缓存段信息例如能够包括缓存段的状态(自由、干净、脏)、用于对相同状态的缓存段进行队列(queue)管理的后续段编号和与缓存段对应的LDEV24的LDEV段编号。
缓存管理程序101是管理缓存数据的程序,包括退化恢复处理部1011。缓存管理程序101执行缓存的状态(自由、干净、脏)的转换、分级处理和转储处理等。退化恢复处理部1011是在控制器1因故障和维护作业而闭锁的情况下再形成在控制器间镜像化地保存的缓存数据的数据对的程序。
缓冲存储器130是存入缓存数据的存储区域。缓冲存储器130分为多个缓存段,各缓存段具有C面131和N面132任一属性。此外,存入缓存段的缓存数据为自由、脏、干净任一状态。
图4表示缓存目录110的结构例。缓存目录110例如包括将该缓冲存储器作为C面使用的LDEV的数量1101、将该缓冲存储器作为N面使用的LDEV的数量1102、关于所有LDEV的LDEV单位的信息1103、每个缓存段状态的队列终端1104、目录正文1105。
每个缓存段状态的队列终端1104表现缓存段信息中相同的缓存段状态的缓存段导致的列表。该队列终端1104是存入其列表的起始的缓存段编号、最后末尾的缓存段编号和列表的长度的表。通过使用该每个缓存段状态的队列终端1104,能够求取脏数据的量,或求取C面与N面的分配比例。
目录正文1105是将LDEV段编号作为索引的表。当要分配缓存段编号时,目录正文1105将有效的编号存入。当要释放缓存段时,目录正文1105将无效的编号存入。
图5表示图4中所示的LDEV单位的信息1103的结构例。LDEV单位的信息1103按每个LDEV准备,例如包括将缓存数据镜像化保存的对方的控制器编号11031、变更了镜像化的控制器的情况下的对方的控制器编号11032、面属性信息11033。控制器编号11031是确定形成当前数据对的对方控制器的编号。控制器编号11032是确定由退化恢复处理部1011选择的新的数据对目的地(数据对的对方)的控制器的编号。
图6表示图3中的结构信息140的例子。结构信息140管理与储存装置SD的存储结构有关的结构。结构信息140例如包括LDEV信息1401、VDEV信息1402、HDD信息1403、LDEV/VDEV转换表1404、VDEV/HDD转换表1405、控制器信息1406、主机路径信息1407、主机路径数量信息1408、HDD访问路径信息1409、HDD访问路径数量信息1410、缓存段转换方式指定信息1411。各种信息的详细情况在之后进一步说明。
图7表示图6中的LDEV信息1401的例子。LDEV信息1401是关于LDEV24的信息,例如包括状态信息14011和大小信息14012。状态信息14011表示LDEV24的状态。作为LDEV的状态,例如有“正常”“闭锁”“格式化中”。大小信息14012表示LDEV24的存储容量。
图8表示图6中VDEV信息1402的例子。VDEV信息1402是关于VDEV23的信息,例如包括状态信息14021和大小信息14022。状态信息14021表示VEDV23的状态。作为VDEV23的状态,例如有“正常”“闭锁”“格式化中”。大小信息14022表示VDEV23的存储容量。
图9表示图6中的HDD信息1403的例子。HDD信息1403是关于存储装置21的信息,例如包括状态信息14031、大小信息14032和HDD访问路径信息14033。
状态信息14031表示存储装置21的状态。作为存储装置21的状态,例如有“正常”“闭锁”“格式化中”。大小信息14032表示存储装置21的存储容量。HDD访问路径信息14033是确定用于访问存储装置21的路径的信息。有时将HDD访问路径略写作HDD路径。
图10表示图9中的HDD访问路径信息14033的详细情况。HDD访问路径信息14033例如包括路径的状态140331、负责路径的控制器编号140332和负责路径的控制器内的后端端口的编号140333。
路径的状态140331表示HDD访问路径(HDD路径。下同)的状态。作为路径状态,例如有“正常”“闭锁”。负责路径的控制器编号140332是负责HDD访问路径的控制器1的编号。负责路径的控制器内的后端端口的编号140333是负责HDD访问路径的后端端口12的编号。通过使用图10所示的管理信息,能够查询用于访问存储装置21的HDD访问路径设定在哪个控制器1的哪个后端端口12。
图11表示图6中的LDEV/VDEV转换表1404的例子。LDEV/VDEV转换表1404是管理LDEV24与VDEV23的对应关系的信息,包括每个VDEV的LDEV列表终端信息14041和每个LDEV的列表正文信息14042。
图12是图11中所示的每个VDEV的LDEV列表终端信息14041的例子。每个VDEV的LDEV列表终端信息14041包括与该VDEV相关的LDEV列表的起始编号140411和LDEV列表的长度140412。起始编号140411是确定由该VDEV23生成的各LDEV24中起始的LDEV24的编号。LDEV列表的长度140412表示LDEV列表中含有的LDEV的数量。
图13是图11中所示的每个LDEV的列表正文信息14042的例子。每个LDEV的列表正文信息14042包括相关的VDEV编号140421和LDEV列表内的后续的LDEV编号140422。相关的VDEV编号140421是确定与LDEV列表对应的VDEV23的编号。LDEV列表内的后续的LDEV编号140422是LDEV列表内的位于下一个位置的LDEV24的编号。在为列表的终端的LDEV24的情况下,LDEV编号140422中设置无效的编号。
图14是图6中的VDEV/HDD转换表1405的例子。VDEV/HDD转换表1405是管理VDEV23与存储装置21的对应关系的信息,包括每个VDEV的HDD列表终端信息14051和每个HDD的列表正文信息14052。
图15是图14中所示的VDEV的HDD列表终端信息14051的例子。HDD列表终端信息14051包括与该VDEV相关的HDD列表的起始编号140511和HDD列表的长度140512。起始编号140511是与该VDEV23对应的存储装置21中起始的存储装置21的编号。HDD列表的长度1404512为与该VDEV23对应的存储装置21的数量。
图16是图14中所示的HDD的列表正文信息14052的例子。各HDD的列表正文信息14052包括相关的VDEV编号140521和HDD列表内的后续的HDD编号140522。相关的VDEV编号140521是确定对应的VDEV23的编号。HDD列表内的后续的HDD编号140522是HDD列表内位于下一个位置的存储装置21的编号。在为列表的终端的存储装置21的情况下,在HDD编号140522设置无效的编号。
图17是图6中所示的控制器信息1406的例子。控制器信息1406保存控制器状态14061。在控制器状态中例如有“正常”“闭锁过渡中”“闭锁”。
图18是图6中所示的主机路径信息1407的例子。主机路径信息1407包括前端端口编号14071、LUN(Logical Unit Number:逻辑单元号)14072和LDEV编号14073。主机路径信息1407定义主机3能够经前端端口11访问的LDEV24。
图19是图6中的主机路径数量信息1408的例子。主机路径数量信息1408具有控制器编号和LDEV编号的二维排列结构。主机路径数量信息1408对各控制器1具有多少个用于访问各LDEV24的主机路径进行管理。
图20是图6中的HDD访问路径数量信息1410的例子。HDD访问路径数量信息1410具有控制器编号和LDEV编号的二维排列结构,对各控制器1具有多少个用于访问与各LDEV24对应的存储装置21的HDD访问路径进行管理。
图21是图6中的缓存段转换方式指定信息1411的例子。缓存段转换方式指定信息1411指定缓存段的属性(C面或N面)转换的方式。即,缓存段转换方式指定信息1411在形成用于将缓存数据镜像化保存的镜像化数据对时,对成为数据对目的地的缓冲存储器(缓存段)的属性转换的方式进行指定。缓存段转换方式指定信息1411将LDEV编号14111与转换方式14112对应地进行管理。在本实施例中,如使用图29~图32后述的那样准备多个转换方式(模式)。在本实施例中,例如能够基于主机3LDEV24使用的目的、主机3请求的性能条件等,按每个LDEV指定缓存段转换方式。另外,也可以如存入相关的数据的LDEV组的那样,定义包含多个LDEV24的LDEV组,按LDEV组单位指定缓存段转换方式。另外,使用图29~图33说明缓存段转换方式的概略,缓存段转换方式的详细情况的例子使用图39~图46后述。
图22表示缓存段的状态转换。在图22中,对形成数据对的2个缓存段说明其状态的转换。在尚未使用任一缓存段的初始状态(S1),各缓存段的状态为“自由”。自由是表示未使用状态。
当主机3发出读取命令时(S2),从存储装置21读出读取对象数据,传输而存储至自由状态的缓存段中C面的缓存段。由此,C面的缓存段从自由状态变为干净状态(S3)。干净状态是指在缓冲存储器和存储装置双方保存有数据的状态。当控制器1释放干净状态的缓存段时(S4),该缓存段从干净状态转换为自由状态(S1)。
与此相对,当主机3发出写入命令时(S5),从主机3接收到的写数据存储至C面的缓存段。由此,C面的缓存段从自由状态转换为脏状态(S7)。与此同时,存储在C面的缓存段的写数据被传输而存储至与该C面的缓存段形成数据对的N面的缓存段。由此,N面的缓存段也从自由状态转换为脏状态(S7)。另外,如上所述,为了将缓存数据安全地镜像化保存,C面的缓存段与N面的缓存段分别处于不同的控制器1内。
控制器1在规定的时刻执行转储处理。当控制器1将存储在C面的缓存段的写数据传输而写入与写入目的地的LDEV24对应的存储装置21时(S8),C面的缓存段由脏状态转换为干净状态(S3)。与此同时,N面的缓存段由于没有保存写数据的必要性所以从脏状态转换为自由状态(S3)。
接着,对控制器1因故障和维护作业等而闭锁,用于将C面的缓存段与N面的缓存段保存的缓存数据镜像化地保存的数据对消失的情况进行说明。
在C面的缓存段所在的控制器1闭锁的情况下(S9),C面的缓存段不能再使用(S10)。因此,具有所剩的N面的缓存段的控制器1使退化恢复处理部1011起动,选择新的数据对目的地的控制器,将缓存数据再次镜像化(S11)。
在N面的缓存段所在的控制器1闭锁的情况下(S12),N面的缓存段不能再使用(S13)。因此,具有所剩的C面的缓存段的控制器1使退化恢复处理部1011起动,选择新的数据对目的地的控制器,将缓存数据再次镜像化(S14)。
图23表示由于故障的产生而控制器闭锁的情况下的处理。本处理由各控制器1定期实施。
控制器1例如由心跳(Heart beat)通信的中断等检测到其它控制器1已经闭锁时(S20),将产生故障的控制器(故障控制器)的控制器状态14061(参照图17)设定为“闭锁”(S21)。然后,控制器1对故障控制器以外的正常的其它各控制器指示起动退化恢复处理部1011(S22)。
图24表示控制器为了进行维护作业而闭锁的情况下的处理。本处理由成为维护作业的对象的控制器1在维护作业的开始时实施。以下,将维护作业对象的控制器1称为维护对象控制器1。
维护对象控制器1将本控制器的控制器状态14061设定为“闭锁过渡中”(S30)。维护对象控制器1对正常的其它各控制器指示起动退化恢复处理部1011(S31)。
维护对象控制器1在步骤S31进行指示后,等待来自所指示的各控制器的处理完成通知(S32)。维护对象控制器1在从所指示的所有控制器接收处理完成通知时判断为在储存装置SD内再形成有缓存数据的镜像化数据对,将本控制器的控制器状态14061设定为“闭锁”(S33)。即,在能够主动调整闭锁时期的维护作业中,维护对象控制器1管理镜像化数据对的再形成。
图25是表示退化恢复处理部1011的处理的主流程图。本处理在由于图23或图24的任一处理而退化恢复处理部1011起动时由LDEV单位执行。以下,有时略写为处理部1011。
首先,处理部1011取得按每个LDEV存入缓存目录内的面属性信息和形成缓存镜像化数据对的对方控制器的编号(S40)。
处理部1011通过按对方控制器的编号搜索控制器信息1406,确认对方控制器的状态是否为“闭锁”(S41)。处理部1011在判断为对方控制器的状态不是“闭锁”时(S41:否(NO)),确认对方控制器的状态是否为“闭锁过渡中”(S42)。
处理部1011在对方控制器的状态为“闭锁”(S41:是(YES))或“闭锁过渡中”(S42:是)的任一状态的情况下,执行缓存数据镜像化处理(S43)。缓存数据镜像化处理的详细情况后述。
处理部1011在对方控制器的状态为“闭锁”或“闭锁过渡中”的任一状态的情况下(S41:否,以及(AND)S42:否),不进行任何处理,对所有LDEV24判断是否已经完成处理(S44)。所有LDEV24是指与设置有处理部1011的控制器1有关的LDEV。
处理部1011在判断为已经对应该处理的所有LDEV24执行了本处理时(S44:是),正常地结束。与此相对,处理部1011在判断为尚有未处理的LDEV24时(S44:否),选择下一个LDEV24,返回步骤S40。
图26是表示图25中的缓存数据镜像化处理(S43)的详细情况的流程图。在本处理中,根据图25的主流程图,输入处理对象的LDEV的编号和面属性信息。处理对象的LDEV是指在已经闭锁(或闭锁预定的)控制器保存有数据的LDEV,是受控制器的闭锁影响的LDEV。
处理部1011执行用于选择成为新的数据对目的地的控制器的处理(S50)。步骤S50的详细情况在图34~图38中后述。处理部1011将从步骤S50反馈的控制器编号和面属性信息设定于图5所示的LDEV单位的信息1103中(S51)。
处理部1101在缓存目录中寻找已经分配给对象的LDEV24的缓存段(S52),判断是否已找到已经分配的缓存段(S53)。
处理部1011在找到已经分配给对象LDEV的缓存段时(S53:是),查询该找到的缓存段的状态(S54)。处理部1011判断该找到的缓存段的状态是否为“C面脏”(S55)。“C面脏”是指存储对象LDEV的数据的缓存段的属性为C面,存储在此处的数据是仅存在于缓冲存储器上的脏数据。
处理部1011在判断为已经分配给对象LDEV的缓存段为“C面脏”时(S55:是)过渡至步骤S57,否则(S55:否)前进至步骤S56。
处理部1011判断已经分配给对象LDEV的缓存段的状态是否为“N面脏”(S56)。“N面脏”是指存储对象LDEV的数据的缓存段的属性为N面,存储在此处的数据为脏数据。
处理部1011在判断为已经分配给对象LDEV的缓存段的状态为“N面脏”时(S56:是)过渡至步骤S57,否则(S56:否)前进至步骤S58。
处理部1011基于在步骤S57执行的“镜像化源控制器的数据镜像化处理”(图27中后述)的结果,判断对于已经分配给对象LDEV的缓存段、镜像化数据对的再形成是否成功(S58)。
处理部1011在判断为镜像化数据对的再形成成功时(S58:是),寻找分配给对象LDEV的下一个缓存段(S59),过渡至步骤S52。与此相对,处理部1011在判断为对于对象的缓存段、镜像化数据对的再形成失败时(S58:否),等待规定时间待后,为了对该缓存段进行处理而返回步骤S52。
由于作为新的数据对目的地被选择的控制器1的处理负载高,在一定时间内不能完成缓存数据的镜像化的情况下,在步骤S58判断为镜像化数据对的再形成失败。于是,处理部1011过段时间后再次进行步骤S52~S57的处理(S60)。
处理部1011在已经分配给对象LDEV的缓存段的状态为“C面脏”(S55:是)或“N面脏”(S56:是)的任一状态的情况下,实施“镜像化源控制器进行的数据镜像化处理”(S57)。
图27是表示图26中的步骤S57的详细情况的流程图。处理部1011实施“镜像化目的地控制器进行的数据镜像化处理”(S70)。该处理是向成为新的数据对目的地的控制器传输缓存数据而存储至缓冲存储器的处理。其详细情况在图28中后述。在执行图27的处理时从图26的处理输入镜像化源的缓存段的面属性、镜像化目的地的缓存段的面属性、对象的LDEV的编号、镜像化对象的数据、镜像化目的地控制器的编号。
处理部1011等待请求镜像化目的地控制器(作为新的数据对目的地被选择的控制器。下同)进行的处理的完成(S71)。处理部1011判断镜像化目的地控制器进行的数据镜像化是否成功、即对于对象的缓存数据镜像化数据对的再形成是否成功(S72)。
处理部1011在判断为镜像化目的地控制器进行的数据镜像化成功时(S72:是),对于图26所示的缓存数据镜像化处理反馈已经正常结束的意思(S73)。
与此相对,处理部1011在判断为镜像化目的地控制器进行的数据镜像化失败时(S72:否),对由镜像化源控制器保存的缓存数据进行转储处理(S74)。处理部1011在本处理部设置的控制器1等待作为镜像化数据对的再形成对象的缓存数据的转储处理的完成(S75)。在不能在不同的控制器间将缓存数据镜像化保存的情况下(S72:否),通过实施转储处理,将该缓存数据写入存储装置21,维持储存装置SD的可靠性。
处理部1011判断转储处理是否成功(S76)。在转储处理成功的情况下(S76:是),处理部1011过渡至步骤S73,对于图26的处理反馈正常结束的意思。与此相对,处理部1011对于图26的处理反馈异常结束的意思(S77)。
图28是表示图27中的步骤S70的详细情况的流程图。本处理由镜像化目的地控制器的缓存管理程序101执行。在执行本处理时从图27的处理接受对象的LDEV的编号、对象的LDEV的镜像化对象的数据的写入目的地地址、镜像化源控制器的编号、向镜像化目的地控制器的缓存段存入的数据、镜像化目的地控制器的缓存段的面属性。
缓存管理程序101对对象的数据在一定时间内分配缓存段(S80)。缓存管理程序101判断是否在一定时间内对象的数据成功分配了缓存段(S81)。镜像化目的地控制器在缓冲存储器缺少可用容量的情况下,实施转储处理等,在缓冲存储器增加可用容量。但是,在不能进行转储处理的情况下,或即使进行转储处理可用容量也不足的情况下,不能对对象数据分配缓存段。
在未能在一定时间内将缓存段分配给对象数据的情况下(S81:否),镜像化目的地控制器的缓存管理程序101判断为数据的镜像化失败(S82),返回至图27的处理。
在成功对对象数据分配缓存段的情况下(S81:是),缓存管理程序101将对象数据存入所分配的缓存段(S83)。
缓存管理程序101判断镜像化目的地的缓存的面属性是否被指定为C面(S84),在被指定为C面的情况下(S84:是),将分配给对象数据的缓存段的状态设定为“C面脏”(S85),返回至图27的处理。
缓存管理程序101在判断为镜像化目的地的缓存的面属性未被指定为C面时(S84:否),判断其面属性是否被指定为N面(S86)。缓存管理程序101在判断为镜像化目的地的缓存的面属性被指定为N面时(S86:是),将分配给对象数据的缓存段的状态设定为“N面脏”(S87),返回至图27的处理。另外,在步骤S86判断为“否”的情况下,返回至图27的处理。
图29表示图21中说明的缓存段转换方式的第1的例子。图29的转换方式为了获得具有与闭锁的控制器所具有的缓存段相同的面属性的缓存段而选择成为新的数据对目的地的控制器。以下,列举产生故障引起的闭锁时的例子进行说明,不过维护作业引起的闭锁时也一样。
在产生故障和维护作业的开始前的初始状态下,“C面脏”的缓存段与“N面脏”的缓存段形成数据对,保存相同的数据(S90)。
一旦在设置有N面的缓存段的控制器1产生故障(S91),则不能再使用N面的缓存段,从而失去数据的镜像化数据对(S92)。因此,处理部1011为了以与变得不能使用的缓存段相同属性(N面)使用缓存段,选择成为新的数据对目的地的控制器,将数据镜像化(S93)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器所具有的N面的缓存段形成数据对(S94)。
同样,一旦在设置有C面的缓存段的控制器1产生故障(S95),则不能再使用C面的缓存段,从而失去数据的镜像化数据对(S96)。因此,处理部1011为了以变得不能使用的缓存段相同属性(C面)使用缓存段,选择成为新的数据对目的地的控制器,将数据镜像化(S97)。由此,镜像化源控制器内的N面的缓存段与新的数据对目的地的控制器所具有的C面的缓存段形成数据对(S98)。
图30表示缓存段转换方式的第2例。图30的转换方式将成为新的数据对目的地的控制器具有的缓存段总作为N面的缓存段使用。
在初始状态下,“C面脏”的缓存段与“N面脏”的缓存段形成数据对,保存相同的数据(S100)。
当在设置有N面的缓存段的控制器1产生故障时(S101),不能再使用N面的缓存段,从而失去数据的镜像化数据对(S102)。因此,处理部1011为了以N面使用缓存段,选择成为新的数据对目的地的控制器,将数据镜像化(S103)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器所具有的N面的缓存段形成数据对(S104)。
与此相对,当在具有C面的缓存段的控制器1产生故障时(S105),C面的缓存段不能再使用,从而失去数据的镜像化数据对(S106)。
镜像化源控制器具有N面的缓存段,不过在该转换方式中,总重新寻求N面的缓存段。因此,镜像化源控制器的处理部1011将镜像化源控制器侧的缓存段的面属性从N面变更为C面(S107)。其结果是,成为C面的缓存段正常发挥作用而失去了N面的缓存段的状态(S108)。
处理部1011为了以N面使用缓存段,选择成为新的数据对目的地的控制器,将数据镜像化(S109)。由此,镜像化源控制器内的C面的缓存段与成为新的数据对目的地的控制器内的N面的缓存段形成数据对(S110)。
图31表示缓存段转换方式的第3例。图31的转换方式将成为新的数据对目的地的控制器所具有的缓存段总作为C面的缓存段使用。
在初始状态下,“C面脏”的缓存段与“N面脏”的缓存段形成数据对,保存相同的数据(S120)。
当在设置有C面的缓存段的控制器1产生故障时(S121),不能再使用C面的缓存段,从而失去数据的镜像化数据对(S122)。处理部1011为了以C面使用缓存段,选择成为新的数据对目的地的控制器,将数据镜像化(S123)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器具有的C面的缓存段形成数据对(S124)。
与此相对,当在具有N面的缓存段的控制器1产生故障时(S125),N面的缓存段不能再使用,从而失去数据的镜像化数据对(S126)。
镜像化源控制器具有C面的缓存段,不过在该转换方式中,总重新搜寻C面的缓存段。因此,镜像化源控制器的处理部1011将镜像化源控制器侧的缓存段的面属性从C面变更为N面(S127)。由此,成为N面的缓存段正常发挥作用而失去了C面的缓存段的状态(S128)。
处理部1011为了以C面使用缓存段,选择成为新的数据对目的地的控制器,将数据镜像化(S129)。由此,镜像化源控制器内的N面的缓存段与成为新的数据对目的地的控制器内的C面的缓存段形成数据对(S130)。
即使在如图30中说明的那样,在原先的数据对中C面、N面中的任一个面不能再使用的情况下,在总寻找以N面使用缓存段的控制器的方式中,也由于选择在任何情况下最终均应该以N面使用缓存段的控制器而能够使处理相通。由此能够简化控制程序。同样,在图31中说明的方式也由于选择用于以C面使用缓存段的控制器而能够使处理相通,将控制程序简化。
图32表示缓存段转换方式的第4例。图32的转换方式在设置有C面的缓存段的控制器闭锁的情况下先决定应该作为C面的缓存段使用的控制器。在本转换方式中,在判断为应该作为C面的缓存段使用的缓存段具有N面的属性的情况下,将其属性为变更C面。
在初始状态下,“C面脏”的缓存段与“N面脏”的缓存段形成数据对,保存相同的数据(S140)。当在N面的缓存段所在的控制器产生故障时(S141),N面的缓存段不能再使用,从而失去数据的镜像化数据对(S142)。
处理部1011为了以N面缓存段使用而选择成为新的数据对目的地的控制器,将数据镜像化(S143)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器具有的N面的缓存段形成数据对(S144)。
与此相对,当在具有C面的缓存段的控制器1产生故障时(S145),C面的缓存段不能再使用,从而失去数据的镜像化数据对(S146)。由于闭锁对象的控制器关于对象的缓存数据具有C面的缓存段,所以镜像化源控制器具有N面的缓存段。
处理部1011在存入对象的缓存数据时判断其它各控制器中适合于设置C面的缓存段的控制器为哪一个(S147)。
处理部1011在判断为应该在本控制器设置C面的缓存段的情况下(S148),将本控制器的缓存段的属性从N面变更为C面(S149)。其结果是,镜像化源控制器具有C面的缓存段。从而会在成为新的数据对目的地的控制器设置N面的缓存段(S150)。
处理部1011为了以N面使用缓存段而选择成为新的数据对目的地的控制器,将数据镜像化(S151)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器内的N面的缓存段形成数据对(S152)。
另一方面,处理部1011在判断为适合于具有C面的缓存段的控制器为本控制器(镜像化源控制器)以外的其它控制器时(S153),选择应该以C面使用缓存段的控制器,将数据镜像化(S154)。由此,镜像化源控制器内的N面的缓存段与成为新的数据对目的地的控制器内的C面的缓存段形成数据对(S155)。
图33表示缓存段转换方式的第5例。图32的转换方式在设置有N面的缓存段的控制器闭锁的情况下先决定应该作为N面的缓存段使用的控制器。在本转换方式中,在被判断为应该作为N面的缓存段使用的缓存段具有C面的属性的情况下,将其属性变更为N面。
在初始状态下,“C面脏”的缓存段与“N面脏”的缓存段形成数据对,保存相同的数据(S160)。当在C面的缓存段所在的控制器产生故障时(S161),C面的缓存段不能再使用,从而失去数据的镜像化数据对(S162)。
处理部1011为了以C面使用缓存段而选择成为新的数据对目的地的控制器,将数据镜像化(S163)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器所具有的C面的缓存段形成数据对(S164)。
与此相对,当在具有N面的缓存段的控制器1产生故障时(S165),N面的缓存段不能再使用,从而失去数据的镜像化数据对(S166)。由于闭锁对象的控制器关于对象的缓存数据具有N面的缓存段,所以镜像化源控制器具有C面的缓存段。
处理部1011在存入对象的缓存数据时判断其它各控制器中适合于N面的缓存段的控制器为哪一个(S167)。
处理部1011在判断为应该在本控制器设置N面的缓存段时(S168),将本控制器的缓存段的属性从C面变更为N面(S169)。其结果是,镜像化源控制器具有N面的缓存段。从而会在成为新的数据对目的地的控制器设置C面的缓存段(S170)。
处理部1011选择应该以C面使用缓存段的、成为新的数据对目的地的控制器,将数据镜像化(S171)。由此,镜像化源控制器内的N面的缓存段与新的数据对目的地的控制器内的C面的缓存段形成数据对(S172)。
另一方面,处理部1011在判断为适合于具有N面的缓存段的控制器为本控制器(镜像化源控制器)以外的其它控制器时(S173),选择应该以N面缓存段使用的控制器,将数据镜像化(S174)。由此,镜像化源控制器内的C面的缓存段与新的数据对目的地的控制器内的N面的缓存段形成数据对(S175)。
图34是图26中在步骤S50所示的控制器选择处理的概要。控制器选择处理(S50)能够从多个(例如4个)选择方法中选择任一个方法。控制器选择方法例如能够根据主机3的请求的性能、储存装置SD的使用目的及种类等适当地选择,还能够中途变更。控制器选择方法的详细情况在图35~图38中后述。
图35表示控制器选择的第1方法的例子。在第1个控制器选择方法中,基于去向成为对象的缓存数据的最终存入目的地的存储装置21的访问路径(HDD路径)的多少和缓存负载的高低来选择控制器。将成为数据对再形成的对象的缓存数据称为对象缓存数据,将作为对象缓存数据的存储目的地的LDEV24称为对象LDEV24,将构成对象LDEV24的存储装置21称为对象存储装置21。
处理部1011从在图20中说明的HDD访问路径数量信息1410检测能够从各控制器1直接访问与对象LDEV24对应的存储装置21(对象存储装置21)的HDD路径的数量(S180)。
此处,能够从控制器1直接访问对象存储装置21的HDD路径是指其控制器1能够不经由其它控制器地访问对象存储装置21而读写数据的HDD路径。本实施例的各控制器即使在不具有直接访问对象存储装置21的HDD路径的情况下,也能够通过经由能够直接访问对象存储装置21的其它控制器,向对象存储装置21读写数据。但是,某个控制器经由其它控制器向对象存储装置21读写数据会增加其它控制器的负载。因此,在本实施例中,着眼于能够直接访问对象存储装置21的HDD路径的数量,按其数量的降序重新排序(S180)。
处理部1011按直接访问对象存储装置21的HDD路径的数量的降序判断控制器的缓存负载是否为阈值以下,选择最先判断为缓存负载为阈值以下的控制器(S181)。不过,在步骤S181,从选择对象将设置有处理部1011的控制器和处于“闭锁”或“闭锁过渡中”任一状态的控制器排除。缓存负载是指缓冲存储器130的使用量。更详细而言,缓存负载是指存储在缓冲存储器130的数据中的脏数据的量。
图36表示控制器选择的第2方法。第2个控制器选择方法以在与主机3的数据收发中使用C面的缓存段、在与存储装置21的数据收发中使用N面的缓存段的情况为前提。
处理部1011通过属性决定处理决定缓存段的属性(S190)。关于属性决定处理,在图39~图46中后述。处理部1011判断通过属性决定处理的结果是否是决定搜寻以N面使用缓存段的控制器(S191)。存在将寻找以N面使用缓存段的控制器表现成寻找N面的控制器的情况。同样,存在将寻找以C面使用缓存段的控制器表现成寻找C面的控制器的情况。
处理部1011在不搜寻N面的控制器的情况下(S191:否),即决定搜寻C面的控制器的情况下,按每个控制器检测访问对象LDEV的主机路径数量,按数量顺序重新排序(S192)。处理部1011能够从图19中说明的主机路径数量信息1408检测访问对象LDEV24的每个控制器的主机路径的数量。
处理部1011关于各控制器、按主机路径的降序判断缓存负载是否为规定的阈值以下,选择最先判断为缓存负载为阈值以下的控制器(S193)。不过,在该步骤S193中,从选择对象将设置有处理部1011的控制器和处于“闭锁”或“闭锁过渡中”任一状态的控制器排除。
与此相对,处理部1011在决定寻找N面的控制器的情况下(S191:是),按每个控制器查询能够直接访问与对象LDEV24对应的存储装置21的HDD路径的数量,按HDD路径的数量的顺序将各控制器重新排序(S194)。
处理部1011关于各控制器、按HDD路径的降序判断缓存负载是否为规定的阈值以下,选择最先判断为缓存负载为阈值以下的控制器(S195)。不过,在该步骤S193中,从选择对象将设置有处理部1011的控制器和处于“闭锁”或“闭锁过渡中”任一状态的控制器排除。
这样,在第2个控制器选择方法中,在寻找C面的控制器的情况下基于访问对象LDEV的主机路径的数量和缓存负载进行搜寻,在寻找N面的控制器的情况下,基于访问与对象LDEV对应的存储装置21的HDD路径的数量和缓存负载进行搜寻。因此,能够选择适合于C面的缓存段的使用方式的控制器和适合于N面的缓存段的使用的控制器,能够维持储存装置SD的响应性能。
图37表示控制器选择的第3方法。第3个控制器选择方法以在与主机3的数据收发和与存储装置21的数据收发双方使用C面的缓存段的情况为前提。在这种情况下,N面的缓存段成为对象缓存数据的备份用的缓存。
处理部1011判断是否通过属性决定处理(S200)决定了N面的控制器的搜寻(S201)。
处理部1011在判断为未决定N面的控制器的搜寻的情况下(S201:否),即决定了C面的控制器的搜寻的情况下,按每个控制器检测访问对象LDEV的主机路径的数量HP(S202)。在该检测中使用图19所示的主机路径数量信息1408。
进一步,处理部1011按每个控制器检测访问与对象LDEV对应的存储装置的HDD路径的数量SP(S203)。在该检测中使用图20所示的HDD访问路径数量信息1410。
处理部1011按每个控制器计算主机路径的数量HP与HDD路径的数量SP的合计,按其合计值(HP+SP)的降序查询缓存负载是否为规定的阈值以下,选择判断为最先的缓存负载为阈值以下的控制器(S204)。不过,在该步骤S204中,从选择对象将设置有处理部1011的控制器和处于“闭锁”或“闭锁过渡中”任一状态的控制器除外。
处理部1011在通过属性决定处理决定N面的控制器的搜寻时(S201:是),选择缓存负载最少的控制器(S205)。在第3个控制器选择方法中,N面的缓存段仅用于单纯的数据备份用,因此不需要考虑响应性能。不过,步骤SS205也从选择对象将设置有处理部1011的控制器和处于“闭锁”或“闭锁过渡中”任一状态的控制器除外。
这样,在第3个控制器选择方法中,在寻找C面的控制器的情况下,基于与对象LDEV对应的主机路径的数量和HDD路径的数量的合计值进行搜寻,因此能够维持储存装置SD的响应性能。
图38表示控制器选择的第4方法。第4个控制器选择方法基于分配给缓冲存储器130的C面的缓存段的比例或N面的缓存段的比例和缓存负载选择控制器。
处理部1011判断是否通过属性决定处理决定了寻找N面的控制器(S211)。
在未决定N面的控制器的搜寻的情况下(S211:否),即决定了C面的控制器的搜寻的情况下,处理部1011从本控制器以外的正常的其它所有控制器取得“C面干净”的缓存段数与“C面脏”的缓存段数的合计值SL1、和缓冲存储器所具有的缓存段的总数TS(S212)。即,步骤S212的合计值SL1意味着作为C面使用的缓存段的合计值。本控制器是指作为本处理的判断主体的处理部1011动作的控制器。
处理部1011对将作为C面使用的缓存段的合计值SL1除以缓存段的总数TS而得到的值按升序排序,检查缓存负载是否为规定的阈值以下,如果缓存负载为阈值以下则选择最先判断的控制器(S213)。
与此相对,在决定了寻找N面的控制器的情况下(S211:是),处理部1011从本控制器以外的正常的其它所有控制器取得“N面脏”的缓存段数SL1和缓存段的总数TS(S214)。
处理部1011对将N面脏的使用量SL1除以缓存段总数TS而得到的值按升序排序,检查缓存负载是否为规定的阈值以下,如果缓存负载为阈值以下则选择最先判断的控制器(S231)。
这样,在第4个控制器选择方法中,在寻找C面的控制器的情况下,选择是作为C面的使用量少且缓存负载为阈值以下的控制器。由此,在储存装置SD内,作为C面使用的缓存段大致均等地分散至各控制器间。通过使用频度高的C面的缓存段在各控制器间分散,能够抑制在各控制器的负载和性能中产生偏差。以N面使用的缓存段的转储处理的结果均是被释放而成为自由状态,因此将N面的缓存段均等地分散于控制器间的必要性不大。
图39是表示图36的步骤S190、图37的步骤S200、图38的步骤S210所示的属性决定处理的详细情况的流程图。在本实施例中,按照在图29~图33中说明的缓存段转换方式决定属性。
在事前选择寻找与闭锁的控制器内的缓存段的属性相同属性的缓存段的情况下(S220),处理部1011实施图40所示的第1的属性决定方法(S221)。
参照图40。在第1个属性决定方法中,输入镜像化源控制器内的缓存段的属性而开始。处理部1011判断所输入的属性是否为N面(S240)。在所输入的属性为N面的情况下(S240:是),输出“镜像化源的控制器所具有的缓存段的属性为N面,搜索对象的控制器使用的缓存段的属性为C面”。
以下,将镜像化源控制器所具有的缓存段的属性略写为镜像化源控制器的属性,将搜索对象的控制器中使用的缓存段的属性略写为搜索对象的控制器的属性。
在所输入的属性不是N面的情况下(S240:否),输出“镜像化源控制器的属性为C面,搜索对象的控制器的属性为N面”。
返回图39。在作为缓存段转换方式选择总寻找N面的缓存段的情况下(S222),处理部1011执行图41所示的第2个属性决定方法(S223)。
参照图41。在第2个属性决定方法中,无论镜像化源控制器的属性是N面还是C面,总输出“镜像化源控制器的属性为C面,搜索对象的控制器的属性为N面”(S250)。
返回图39。在作为缓存段转换方式选择总寻找C面的缓存段的情况下(S224),执行图42所示的第3个属性决定方法(S225)。
参照图42。在第3个属性决定方法中,无论镜像化源控制器的属性是C面还是N面,总输出“镜像化源控制器的属性为N面,搜索对象的控制器的属性为C面”(S260)。
返回图39。在作为缓存段转换方式、设定选择主机路径多的控制器作为C面的控制器的情况下(S226),处理部1011执行图43所示的第4个属性决定方法(S227)。
参照图43。在第4个属性决定方法中,处理部1011判断所输入的属性、即镜像化源控制器具有的缓存段的属性是否为N面(S270)。
在镜像化源控制器的属性为N面的情况下(S270:是),处理部1011按每个控制器检测访问对象LDEV的主机路径的数量(S271)。处理部1011按主机路径的数量的降序将控制器重新排序,检查缓存负载是否为规定的阈值以下,如果缓存负载为阈值以下则选择最先判断的控制器作为用作C面的控制器的候选(S272)。
处理部1011判断在步骤S272选择的控制器候选是否为本控制器(S273)。处理部1011在未将本控制器作为候选选择的情况下(S273:否),将镜像化源控制器的属性作为N面、将搜索对象的控制器的属性为C面输出(S274)。处理部1011在作为候选选择本控制器的情况下(S273:是),将镜像化源控制器的属性作为C面、将搜索对象的控制器的属性作为N面输出(S275)。
另一方面,在镜像化源控制器的属性不是N面的情况下(S270:否),处理部1011将镜像化源控制器的属性作为C面、将搜索对象的控制器的属性作为N面输出(S276)。
返回图39。在作为缓存段转换方式、设定选择主机路径的数量和HDD路径的数量的合计值多的控制器作为C面的控制器的情况下(S228),处理部1011执行图44所示的第5个属性决定方法(S229)。
参照图44。在第5个属性决定方法中,处理部1011判断所输入的属性是否为N面(S280)。在所输入的属性为N面的情况下(S280:是),即镜像化源控制器的属性为N面的情况下,处理部1011按每个控制器检测访问对象LDEV的主机路径的数量HP(S281)。接着,处理部1011按每个控制器检测直接访问与对象LDEV对应的存储装置21的HDD路径的数量SP(S282)。
处理部1011按主机路径的数量HP与HDD路径的数量SP的合计值的降序将控制器重新排序,判断缓存负载是否为规定的阈值以下,如果缓存负载为阈值以下则选择最先判断的控制器作为C面的控制器的候选(S283)。不过,在步骤S283中,从选择对象将处于“闭锁”或“闭锁过渡中”任一状态的控制器排除。
处理部1011判断作为C面的控制器的候选是否选择了本控制器(S284)。在作为C面的控制器的候选选择了本控制器以外的其它控制器的情况下(S284:否),处理部1011将镜像化源控制器的属性作为N面、将搜索对象的控制器的属性作为C面输出(S285)。
在作为C面的控制器候选选择了本控制器的情况下(S284:是),处理部1011将镜像化源控制器的属性作为C面、将搜索对象的控制器的属性作为N面输出(S286)。
另一方面,在所输入的属性不是N面的情况下(S280:否)、即镜像化源控制器的属性为C面的情况下,处理部1011将镜像化源控制器的属性作为C面、将搜索对象的控制器的属性作为N面输出(S287)。
返回图39。在作为缓存段转换方式、设定选择HDD路径的数量多的控制器作为N面的控制器的情况下(S230),处理部1011执行图45所示的第6个属性决定方法(S231)。
参照图45。在第6个属性决定方法中,处理部1011判断所输入的属性是否为C面(S290)。在所输入的属性为C面的情况下(S290:是),处理部1011按每个控制器毎检测能够直接访问与对象LDEV对应的存储装置21的HDD路径的数量(S291)。处理部1011按HDD路径的降序将控制器重新排序,检查缓存负载是否为规定的阈值以下,如果缓存负载为阈值以下则选择最先判断的控制器作为N面的控制器的候选(S292)。不过,在步骤S292,从选择对象将处于“闭锁”或“闭锁过渡中”任一状态的控制器排除。
处理部1011判断是否选择了本控制器作为N面的控制器候选(S293)。处理部1011在未选择本控制器的情况下(S293:否)将镜像化源控制器的属性作为C面、将搜索对象的控制器的属性作为N面输出(S294)。
与此相对,处理部1011在选择了本控制器作为N面的控制器候选的情况下(S293:是)将镜像化源控制器的属性作为N面、将搜索对象的控制器的属性作为C面输出(S295)。
另一方面,处理部1011在所输入的属性不是C面的情况下(S290:否)将镜像化源控制器的属性作为N面、将搜索对象的控制器的属性作为C面输出(S296)。
返回图39。在作为缓存段转换方式、设定选择N面的控制器作为缓存负载最少的控制器的情况下,处理部1011判断所输入的属性为C面(S300)。
处理部1011在所输入的属性为C面的情况下(S300:是),选择N面的控制器候选作为缓存负载最少的控制器(S301)。不过,在步骤S301,从选择对象将处于“闭锁”或“闭锁过渡中”任一状态的控制器排除。
处理部1011判断是否选择了本控制器作为N面的控制器候选(S302)。处理部1011在未选择本控制器的情况下(S302:否),将镜像化源控制器的属性作为C面、将搜索对象的控制器的属性作为N面输出(S303)。与此相对,在选择了本控制器作为N面的控制器候选的情况下(S302:是),处理部1011将镜像化源控制器的属性作为N面、将搜索对象的控制器的属性作为C面输出(S304)。
在这样构成的本实施例的储存装置SD中,各控制器1分别具备退化恢复处理部1011,针对缓存数据的镜像化形成自律分散系统。因此,与闭锁的控制器1形成数据对的正常的控制器1自我选择取代已经闭锁的控制器1的新的数据对目的地的控制器1,将镜像化对象的缓存数据传输至成为新的数据对目的地的控制器,再形成数据对。
在本实施例中,各控制器1按LDEV单位判断是否应该再形成缓存数据的数据对,选择成为新的数据对目的地的控制器再形成数据对。因此,在本实施例中,与利用一个管理装置进行一元地管理的情况相比,能够提高可用性。
在本实施例中,由于按LDEV单位再形成缓存数据的数据对,所以能够灵活地选择数据对目的地的控制器。
另外,本发明并不限定于上述的实施例,而包括各种各样的变形例。例如,上述的实施例为了将本发明说明得容易明白而进行的说明,本发明并不一定包括利用实施例说明的所有结构。能够将实施例中说明的结构的至少一部分变更为其它结构或删除。进一步,还能够在实施例中追加新结构。
既可以将实施例中说明的功能和处理等的一部分或全部作为硬件电路实现,也可以作为软件实现。计算机程序和各种数据并不限定于计算机内的存储装置,也可以存入计算机外部的存储装置。
附图标记说明
1:控制器、2:驱动器盒、3:主机、14:存储器、21:存储装置、24:LDEV、101:缓存管理程序、130:缓冲存储器、1011:退化恢复处理部。

Claims (8)

1.一种将缓存数据镜像化来进行管理的储存装置,其特征在于,包括:
具有缓冲存储器的多个控制器;和
被各所述控制器所使用的多个存储装置,至少设定一个用于提供给上级装置的逻辑卷,
各所述控制器保存有按各所述逻辑卷设定的规定的管理信息,
所述规定的管理信息包括:
表示所述缓冲存储器被用作第1面还是第2面的面属性信息,其中所述第1面和第2面形成用于将缓存数据镜像化来存储的镜像化数据对;
控制器编号,其用于确定具有所述缓冲存储器和形成所述镜像化数据对的缓冲存储器的数据对目的地的控制器;和
表示所述缓冲存储器的状态转换的方法的转换方法信息,
各所述控制器在形成所述镜像化数据对的数据对目的地的控制器闭锁的情况下起动规定的镜像化恢复功能,基于所述规定的管理信息来按各所述逻辑卷选择要成为新的数据对目的地的控制器,将存储于本控制器所具有的缓冲存储器的缓存数据向所述新的数据对目的地的控制器传输而存储至所述新的数据对目的地的控制器所具有的缓冲存储器,由此将所述缓存数据镜像化来进行管理,
所述规定的管理信息还包含表示选择所述新的数据对目的地的控制器时的条件的控制器选择条件信息,
各所述控制器基于所述面属性信息、所述转换方法信息和所述控制器选择条件信息来决定要成为所述新的数据对目的地的控制器、要成为所述新的数据对目的地的控制器所具有的缓冲存储器的面属性和本控制器所具有的缓冲存储器的面属性,
各所述控制器能够将本控制器所具有的缓冲存储器的面属性从当前的面属性进行改变,来决定要成为所述新的数据对目的地的控制器所具有的缓冲存储器的面属性。
2.如权利要求1所述的储存装置,其特征在于:
所述控制器选择条件信息包含下述条件:
选择各所述控制器中的缓冲存储器的负载为规定的阈值以下、且至给所述逻辑卷提供存储区域的存储装置的访问路径最多的控制器。
3.如权利要求1所述的储存装置,其特征在于:
在与所述上级装置之间的数据收发中使用所述第1面而在与所述存储装置之间的数据收发中使用所述第2面的情况下,
所述控制器选择条件信息包含下述条件:
在选择各所述控制器中的要成为用作所述第1面的所述新的数据对目的地的控制器的情况下,选择缓冲存储器的负载为规定的阈值以下且至所述逻辑卷的逻辑路径最多的控制器,
在选择各所述控制器中的要成为用作所述第2面的所述新的数据对目的地的控制器的情况下,选择缓冲存储器的负载为规定的阈值以下且至给所述逻辑卷提供存储区域的存储装置的访问路径最多的控制器。
4.如权利要求1所述的储存装置,其特征在于:
在与所述上级装置之间的数据收发和与所述存储装置之间的数据收发中使用所述第1面的情况下,
所述控制器选择条件信息包含下述条件:
在选择各所述控制器中的要成为用作所述第1面的所述新的数据对目的地的控制器的情况下,选择缓冲存储器的负载为规定的阈值以下且至所述逻辑卷的逻辑路径数量与至给所述逻辑卷提供存储区域的存储装置的访问路径数量的合计数量最多的控制器。
5.如权利要求1所述的储存装置,其特征在于:
所述控制器选择条件信息包含下述条件:
在选择各所述控制器中的要成为用作所述第1面的所述新的数据对目的地的控制器的情况下,选择缓冲存储器的负载为规定的阈值以下且该缓冲存储器中用作所述第1面的区域所占的比例最小的控制器,
在选择各所述控制器中的要成为用作所述第2面的所述新的数据对目的地的控制器的情况下,选择缓冲存储器的负载为规定的阈值以下且该缓冲存储器中用作所述第1面的区域所占的比例最小的控制器。
6.如权利要求2所述的储存装置,其特征在于:
所述缓冲存储器的负载为规定的阈值以下是指,存储在该缓冲存储器的缓存数据中的没有写入所述存储装置的脏状态的数据的量为规定的阈值以下。
7.如权利要求1~6中任一项所述的储存装置,其特征在于:
各所述控制器在检测出具有形成所述镜像化数据对的缓冲存储器的控制器发生故障的情况下,对检测出所述故障的控制器以外的其它所有控制器,指示其起动所述镜像化恢复功能。
8.如权利要求1~6中任一项所述的储存装置,其特征在于:
各所述控制器在因维护而闭锁的情况下对其它所有控制器指示起动所述镜像化恢复功能,在包括本控制器所具有的缓冲存储器和形成所述镜像化数据对的缓冲存储器的所有控制器中,确认要成为所述新的数据对目的地的控制器是否已被选择且缓存数据是否已再次镜像化,在已确认的情况下过渡至闭锁状态。
CN201680086107.XA 2016-07-11 2016-07-11 储存装置、储存装置的控制方法和储存装置用控制器 Active CN109154906B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/070382 WO2018011844A1 (ja) 2016-07-11 2016-07-11 ストレージ装置、ストレージ装置の制御方法およびストレージ装置用コントローラ

Publications (2)

Publication Number Publication Date
CN109154906A CN109154906A (zh) 2019-01-04
CN109154906B true CN109154906B (zh) 2021-09-21

Family

ID=60952974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680086107.XA Active CN109154906B (zh) 2016-07-11 2016-07-11 储存装置、储存装置的控制方法和储存装置用控制器

Country Status (4)

Country Link
US (1) US10824566B2 (zh)
JP (1) JP6643478B2 (zh)
CN (1) CN109154906B (zh)
WO (1) WO2018011844A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482023B1 (en) * 2016-09-29 2019-11-19 EMC IP Holding Company LLC I/O path optimization based on cache slot location
US10372345B1 (en) * 2017-04-27 2019-08-06 EMC IP Holding Company LLC High performance logical device
JP7409247B2 (ja) * 2020-07-14 2024-01-09 株式会社デンソー 不正侵入防止装置、不正侵入防止方法、及び不正侵入防止用プログラム
JP2022049599A (ja) * 2020-09-16 2022-03-29 キオクシア株式会社 通信システム、デバイス及び通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344154A (ja) * 2000-06-05 2001-12-14 Fujitsu Ltd 入出力制御装置
JP2005043930A (ja) * 2003-07-22 2005-02-17 Hitachi Ltd 記憶装置システム
CN103577334A (zh) * 2012-08-10 2014-02-12 国际商业机器公司 分配数据存储物理实体镜像对的方法和镜像数据存储系统
CN105573857A (zh) * 2014-10-10 2016-05-11 北京计算机技术及应用研究所 一种多控磁盘阵列缓存镜像方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3772369B2 (ja) 1995-11-20 2006-05-10 株式会社日立製作所 記憶サブシステム
US6282584B1 (en) * 1998-08-18 2001-08-28 International Business Machines Corporation Structure and method for reading/writing signature commands from/to a plurality of controller pairs
JP2000089916A (ja) * 1998-09-11 2000-03-31 Fujitsu Ltd ファイル制御装置
JP2005122453A (ja) 2003-10-16 2005-05-12 Hitachi Ltd ストレージ装置のディスクコントローラ制御方式およびストレージ装置
US8296516B2 (en) * 2009-10-20 2012-10-23 Hitachi, Ltd. Storage controller for mirroring data written to cache memory area
US20170220249A1 (en) * 2016-01-29 2017-08-03 Netapp, Inc. Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344154A (ja) * 2000-06-05 2001-12-14 Fujitsu Ltd 入出力制御装置
JP2005043930A (ja) * 2003-07-22 2005-02-17 Hitachi Ltd 記憶装置システム
CN103577334A (zh) * 2012-08-10 2014-02-12 国际商业机器公司 分配数据存储物理实体镜像对的方法和镜像数据存储系统
CN105573857A (zh) * 2014-10-10 2016-05-11 北京计算机技术及应用研究所 一种多控磁盘阵列缓存镜像方法及系统

Also Published As

Publication number Publication date
JP6643478B2 (ja) 2020-02-12
US20190050337A1 (en) 2019-02-14
CN109154906A (zh) 2019-01-04
WO2018011844A1 (ja) 2018-01-18
US10824566B2 (en) 2020-11-03
JPWO2018011844A1 (ja) 2018-12-06

Similar Documents

Publication Publication Date Title
CN109154906B (zh) 储存装置、储存装置的控制方法和储存装置用控制器
JP4426262B2 (ja) ディスクアレイ装置及びディスクアレイ装置の障害回避方法
EP2638469B1 (en) Detection and handling of alua preferences and state transitions by host
JP4901316B2 (ja) ストレージシステム及び記憶制御装置
US7430648B2 (en) Remote storage disk control device with function to transfer commands to remote storage devices
JP5028218B2 (ja) 記憶制御装置、ストレージシステム及び記憶制御装置の制御方法
US8255652B2 (en) Remote storage disk control device and method for controlling the same
US7707456B2 (en) Storage system
EP2975513A1 (en) Storage system and operation method of storage system
WO2010106574A1 (ja) 記憶制御装置及び仮想ボリュームの制御方法
JP6097845B2 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
JP2006053601A (ja) ストレージ装置
JP2007066162A (ja) ストレージシステム及びストレージシステムの管理方法
US20080229038A1 (en) Copy system and copy method
JP2006092120A (ja) ストレージ装置及びストレージ装置のライトアクセス処理方法
EP1688922A2 (en) Method and system of erasing a data pool residing over multiple data storage drives
JP2009157471A (ja) ファイル共有システム及びファイル共有システムの設定方法
JP5829753B2 (ja) ストレージシステムおよび記憶制御方法
EP2608035A1 (en) Storage control device and method for controlling a dumping function in a storage system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant