存储子系统和存储子系统的控制方法

文档序号:6509473阅读:255来源:国知局
专利名称:存储子系统和存储子系统的控制方法
技术领域
本发明涉及存储子系统和存储子系统的控制方法。
背景技术
存储子系统可以向主机提供大容量且高性能的存储服务。在存储子系统中,例如阵列状设置多个盘驱动器,构筑基于RAID(Redundant Array ofIndependent Inexpensive Disks)的存储区域。在各盘驱动器具有的物理存储区域上形成作为逻辑存储区域的逻辑卷。在逻辑卷中预先对应付与LUN(Logical Unit Number)。主机通过指定LUN或块地址等,对存储子系统发布规定形式的写入命令或读出命令。由此,主机可以对存储子系统进行所希望的数据的读写。
在存储子系统可以连接多个主机。在将某个主机或应用程序管理的数据群可以从其他主机或应用程序读写时,有时产生不便。因此,例如采用分区或LUN屏蔽等的访问控制技术。所谓分区,是对存储子系统设定1个或多个区,许可只对属于区的特定通信端口或WWN(World Wide Name)转发数据的技术。所谓LUN屏蔽,是对特定主机许可访问特定LUN的技术。
但是,主机和盘驱动器间的数据交接是经高速缓存进行的。若从主机输出写命令,则例如数据一次保存到高速缓存之后,写入盘驱动器。另外,若从主机输出读命令,则例如从盘驱动器读出的数据经高速缓存提供给主机。因此,适当分配对盘驱动器的缓存分配量的技术也被公知(专利文献1)。
专利文献1特开平4-264940号公报。

发明内容
利用现有的分区和LUN屏蔽可以设定主机对存储子系统的访问限制。但是,现有技术仅仅可以对逻辑卷的简单访问进行限制,没有实现存储子系统具有的资源的分割管理,所以使用不方便。在由多个用户公共使用存储子系统时,例如,若某用户输出大量的输入输出请求(IO请求),则为了处理该请求,使用高速缓存的多个区域。从而,对于来自其他用户的输入输出处理不能使用充分的高速缓存,作为子系统整体的服务性能降低。即,为了对某用户的服务而会影响对其他用户的服务。
另外,上述专利文献中,对各存储装置分别分配有高速缓存,但这是为了将高速缓存中存储的数据有效写入存储装置中,不是为了提供给多个用户而进行资源(高速缓存)的分割管理。
因此,本发明的一个目的在于,提供一种可以向多个用户分别分配高速缓存区域并公共使用,可以降低为了向某个用户提供服务而影响其他用户的存储子系统和存储子系统的控制方法。本发明的一个目的在于,提供一种可以向多个用户灵活地分配资源,并且可以用更少的信息量为使各用户的管理范围相互不影响而进行管理的存储子系统和存储子系统的控制方法。本发明的一个目的在于,提供一种通过对应高速缓存的管理单位来构成管理信息,可以逻辑分割并使用高速缓存资源的存储子系统和存储子系统的控制方法。本发明的其他目的可以从后述的实施例中变得清楚。
为了解决上述问题,本发明的存储子系统具有分别控制与上位装置的数据交接的多个通道适配器、分别提供逻辑存储区域的多个存储设备组、分别控制与各存储设备组的数据交接的多个盘适配器、由各通道适配器和各盘适配器分别使用的高速缓存、逻辑分割并构成高速缓存的多个高速缓存分区、存储用于管理各高速缓存分区的管理信息的控制存储器。另外,管理信息由对各高速缓存分区分别设置的分割管理信息、和适用于各高速缓存分区的整体的公共管理信息构成。
高速缓存和控制存储器可以采用分别安装两者的不同的存储器基板,也可以采用混合装载两者的存储器基板。另外,也可以将存储器的某个区域用作高速缓存,将其他区域用作控制存储器。高速缓存用于暂时(或长期)存储上位装置和存储设备组之间交接的数据。高速缓存逻辑分割成多个高速缓存分区。各高速缓存分区由管理信息分别独立管理。各高速缓存分区例如可以对每个通道适配器分别设置(分配)。另外,各高速缓存分区例如可以由不同的用户使用。管理信息由分割管理信息和公共管理信息构成。分割管理信息是对各高速缓存分区分别设置的信息。公共管理信息是适用于所有高速缓存分区的信息。通过由分割管理信息和公共管理信息构成管理信息,可以有效使用控制存储器的存储资源,分别使用多个高速缓存分区。
各分割管理信息和公共管理信息可以基于高速缓存管理单位的属性来设定。作为高速缓存管理单位例如可以举出例如槽位和段等。1个槽位可以至少由1个或1个以上的段构成,1个段例如具有16KB程度的数据大小。作为高速缓存管理单位的属性例如可以举出空闲状态、不正常状态、正常状态。空闲状态是表示高速缓存管理单位为未使用的状态。不正常状态是表示高速缓存管理单位中存储的数据未写入存储设备的状态。正常状态是表示高速缓存管理单位中存储的数据已写入存储设备的状态。存在根据高速缓存管理单位的属性,希望在各高速缓存分区设置各管理信息的情况。相反,还有根据高速缓存管理单位的属性,可以适用于所有高速缓存分区的管理信息。
例如,管理信息由多种子管理信息构成时,可以在各高速缓存分区分别分割设置部分子管理信息,将剩余的子管理信息适用于所有高速缓存分区。在此,将子管理信息中的哪些用作分割管理信息和将哪些用作公共管理信息是基于高速缓存管理单位的属性确定的。
例如,管理信息可以构成为包括多种队列、与这些各队列分别相关的计数器。在此,基于高速缓存管理单位的属性,可以通过在各高速缓存分区分别设置各队列和各计数器的一部分来构成各分割管理信息。于是,可以将各队列的剩余部分和各计数器的剩余部分用作公共管理信息。“基于高速缓存管理单位的属性”也可以说成“基于队列(以及计数器)的属性”。
在此,还可以是相互相关的队列和计数器中的一方构成分割管理信息,另一方用作公共管理信息。即,相互相关的队列和计数器中,可以只分割计数器并分别分配给各高速缓存分区。
另外,可以在各队列分别相关联队列管理表。接着,与构成分割管理信息的队列相关的队列管理表可以分别设置在各高速缓存分区。即,队列和队列管理表是一直被一体使用,在队列分别设置在各高速缓存分区的情况下,队列管理表也是分别设置在各高速缓存分区。
管理信息构成为可以包括连接有未使用状态的高速缓存管理单位的空闲队列以及与该空闲队列相关的空闲队列计数器、连接有存储反映到存储设备组之前的不正常(dirty)状态的数据的高速缓存管理单位的不正常队列以及与该不正常队列相关的不正常队列计数器、连接有存储反映到存储设备组之后的正常(clean)状态的数据的高速缓存管理单位的正常队列以及与该正常队列相关的正常队列计数器、和计数使用中的高速缓存管理单位的总量的使用中计数器。另外,空闲队列计数器、正常队列、正常队列计数器以及使用中计数器作为分割管理信息可以分别设置在各高速缓存分区。另外,空闲队列、不正常队列以及不正常队列计数器可以用作公共管理信息。
通过将各高速缓存分区中的1个高速缓存分区设定为公共区域并分配属于该公共区域的资源,也可以设定新的高速缓存分区。例如,在初始状态,将所有高速缓存区域用作公共区域。接着,在新生成高速缓存分区的情况下,从公共区域截取部分高速缓存区域并分配给新的高速缓存分区。另外,在删除高速缓存分区时,将分配给该高速缓存分区的高速缓存区域返回到公共区域即可。


图1是表示本发明的实施例的存储子系统的外观图。
图2是表示存储子系统的逻辑概要结构的框图。
图3是存储子系统的更具体的框图。
图4是表示对各CLPR分配的高速缓存区域和VDEV的关系的说明图。
图5是表示具有阶段结构的高速缓存管理方法的说明图。
图6是SLCB表的状态转移图。
图7是表示队列、计数器以及队列管理表的关系的说明图。
图8是表示SLCB表的概要结构的说明图。
图9是表示高速缓存区域、各队列以及计数器的关系的说明图。
图10是表示分配CLPR的管理信息的情况的模式图。
图11是表示利用VDEV锁定和队列锁定可以移动数据的情况的说明图。
图12是表示从CLPR0向CLPR1移动VDEV的情况的说明图。
图13是表示移动VDEV时的处理的流程图。
图14是变更对CLPR的高速缓存分配时的流程图。
图15是表示空闲段的收集处理的流程图。
图16是从用作库区域的CLPR0截取缓存区域,设定新的CLPR的情况的说明图。
图17是表示定义CLPR时的处理的流程图。
图18是表示在子管理终端显示有关各CLPR的信息的情况的说明图。
具体实施例方式
下面,根据图1~图18说明本发明的实施例。本实施例公开了一种具有对与上位装置的数据交接分别进行控制的多个上位接口控制单元、分别提供逻辑存储区域的多个存储设备组、对与各存储设备组的数据交接分别进行控制的多个下位接口控制单元、通过各上位接口控制单元和各下位接口控制单元分别使用的存储器的存储子系统。另外,本实施例中,将存储器提供的高速缓存区域分割给多个高速缓存分区。另外,本实施例中,根据用于在存储器管理数据的高速缓存管理单位的属性,将管理信息分别分割给各高速缓存分区,基于各管理信息,按各高速缓存分区分别管理数据。
实施例1图1是表示存储子系统10的外观结构的概要斜视图。存储子系统10例如可以由基本壳体11和多个增设壳体12构成。基本壳体11是存储子系统10的最小结构单位,具有存储功能和控制功能的双方。增设壳体12是存储子系统10的选项,由基本壳体11具有的控制功能控制。例如,可以将最多4个增设壳体12连接到基本壳体11。
在基本壳体11分别可拆卸地设置有多个控制组件13、多个电源单元14、多个电池单元15和多个盘驱动器80。在增设壳体12可拆卸地设置有多个盘驱动器80、多个电源单元14和多个电池单元15。另外,在基本壳体11和各增设壳体12分别设置有多个冷却风扇16。
控制组件13是用于分别实现后述的通道适配器20、盘适配器30以及高速缓存40等的模块。即,在基本壳体11分别可拆卸地设置有多个通道适配器组件、多个盘适配器组件和1个或1个以上的存储器组件,能以组件单位进行交换。
图2是概要表示包含存储子系统10的整个存储系统的框图。存储子系统10经通信网CN1可进行双向通信地分别与多个主机1A~1C(以下,在不特别进行区别时,称为“主机1”)连接。在此,通信网CN1例如是LAN(LocalArea Network)、SAN(Storage Area Network)、因特网或专用线路等。在使用LAN时,主机1和存储子系统10之间的数据转发按照TCP/IP(TransmissionControl Protocol/Internet Protocol)协议进行。在使用SAN时,主机1和存储子系统10之间按照光纤通道协议进行数据转发。另外,在主机1是大型计算机时,例如按照FICON(Fiber Connection注册商标)、ESCON(EnterpriseSystem Connection注册商标)、ACONARC(Advanced ConnectionArchitecture注册商标)、FIBARC(Fiber Connection Architecture注册商标)等通信协议进行数据转发。
各主机1例如以服务器、个人计算机、工作站、大型计算机等来实现。例如,各主机1与位于图外的多个客户机终端经其他通信网连接。各主机1通过例如根据来自各客户机终端的请求来对存储子系统10进行数据读写,向各客户机终端提供服务。图中,只示出了1个,但在存储子系统10内可以设定多个虚拟壳体(SLPRStorage Logical Partition)。
SLPR是通过将存储子系统10内的各种物理资源和逻辑资源按各用户(或按各应用程序)进行分割并分配而构成的区域。即,例如在SLPR具有各专用的通道适配器20、各专用的高速缓存区域40、各专用的虚拟逻辑设备(VDEV)70等。即,SLPR如虚拟的小型存储子系统那样工作。
在SLPR可以设置至少1个以上的高速缓存分区(CLPRCache LogicalPartition)。图2中,在左侧只示出1个SLPR,但可以设置多个SLPR。另外,在1个SLPR内可以设定1个或多个CLPR。
CLPR是将高速缓存40逻辑分割成多个区域。CLPR可以对各通道适配器20分别设定。例如在安装n个通道适配器20时,可以设定n个CLPR。例如,可以设定为n=32,但本发明不限于此。各CLPR0~CLPRn是分别独立使用的,各主机1可以独占地仅使用其可利用的CLPR。于是,构成为从对某个CLPR的主机1来的操作尽量不影响其他CLPR。即,构成为即使在来自主机1的访问集中的情况下,也只用该主机1可利用的CLPR确保必要的高速缓存容量,不会抢夺其他CLPR的资源(高速缓存区域)。
另外,图中右侧所示的CLPR0是没有定义SLPR的公共区域,在该公共区域CLPR0存储有整个存储子系统10使用的各种信息。另外,如后所述,在初始状态,高速缓存40的整个区域分配给公共区域CLPR0。然后,通过从公共区域CLPR0截取规定量的高速缓存区域,设定新的CLPR。
图2所示的例子中,主机1A只可以访问公共区域CLPR0并进行数据的输入输出。主机1B只可以访问公共区域CLPR1,主机1C只可以访问公共区域CLPR2,主机1N只可以访问公共区域CLPRn,不能利用或参考其他CLPR。
SVP(Service Processor)90是用于管理和监视存储子系统10的计算机装置,提供管理用的服务器功能。SVP90例如经存储子系统10内设置的LAN等内部网CN3(参考图3),从各通道适配器20和各盘适配器30等收集各种环境信息和性能信息等。作为SVP90收集的信息例如可以举出装置结构、电源告警、温度告警、输入输出速度(IOPS)等。SVP90和各管理终端2A~2N、3例如经LAN等的通信网CN2连接。管理者通过经管理终端登录SVP90,在权限范围内可以进行例如RAID结构的设定、各种组件(通道适配器组件、盘适配器组件、存储器组件、盘驱动器等)的停止运转处理和各种设定变更等。
SVP90可以连接多个管理终端2A~2N、3。在此,管理终端2A~2N是按各SLPR设置的终端,管理终端3是为了管理整个存储子系统10而设置的终端。在以下说明中以对1个SLPR设置1个CLPR的情况为例进行说明。因此,管理终端2A~2N是由分别管理各CLPR的管理者(以下,称为分割管理者)分别操作的子终端。管理终端3是由管理整个存储子系统10的系统管理者(或还可以称为全体管理者)操作的全体终端。
各子终端2A~2N的分割管理者只可以对自己有管理权限的CLPR进行各种设定变更等,不允许参照或变更其他CLPR的结构等。与此不同,系统管理者可以对包含各CLPR的整个存储子系统10进行各种设定变更等。
系统管理者通过经全体终端3登录SVP90,适当分割存储子系统10具有的物理资源和逻辑资源,可以对各用户设定SLPR(CLPR)。另外,系统管理者还可以对各分割管理者发行用户ID等。分割管理者采用系统管理者发行的专用的用户ID可以登录SVP90。分割管理者通过操作子终端2,可以变更自己管理下的CLPR内的设定。
图3是着眼于存储子系统10的逻辑结构的框图。存储子系统10具有多个通道适配器(以下,CHA)20、多个盘适配器(以下,DKA)30、至少1个以上的高速缓存40、公共存储器50、开关单元60、多个虚拟逻辑设备(VDEV)70、多个盘驱动器80、SVP90。
各CHA20控制与各主机1间的数据转发,具有通信端口21。在存储子系统10可以设置例如32个CHA20。CHA20如例如开放系统用CHA、大型计算机系统用CHA等,根据主机1的种类来准备。
各CHA20从分别连接的主机1接收请求读写数据的命令和数据,按照从主机1接收到的命令工作。如果还包含DKA30的动作首先进行说明,则例如CHA20一从主机1接收数据的读出请求,就将读出命令存储到公共存储器50。DKA30随时参照公共存储器50,若发现未处理的读出命令,则从盘驱动器80读出数据,并存储到高速缓存40。CHA20将移到高速缓存40的数据读出,发送给命令发行源的主机1。
CHA20一从主机1接收数据的写入请求,就将写入命令存储到公共存储器50。另外,CHA20将接收到的数据(用户数据)存储到高速缓存40。在此,由于被主机1请求写入的数据没有写入盘驱动80(非正常数据),所以例如分别存储到多处而多重化。
CHA20在高速缓存40存储了数据之后,向主机1报告写入结束。接着,DKA30按照存储在公共存储器50中的写入命令,读出高速缓存40中存储的数据,并存储到规定的盘驱动器80。写入盘驱动器80的数据的属性从“非正常数据”变化为“正常数据”,从高速缓存40的多重管理释放。另外,本说明书中,“非正常数据”意味着没有写入盘驱动器80的状态的数据。另外,“正常数据”意味着已写入盘驱动器80的数据。
各DKA30在存储子系统10内可以设置多个,例如4个或8个。各DKA30控制与各盘驱动器80之间的数据通信。各DKA30和各盘驱动器80例如经SAN等通信网CN4连接,按照光纤通道协议以块单位进行数据转发。各DKA30随时监视盘驱动器80的状态,该监视结果经内部网CN3发送给SVP90。各CHA20和各DKA30分别具有例如安装有处理器和存储器等的印刷电路板、和存储到存储器的控制程序(都没有图示),利用这些硬件和软件的协作工作,分别实现规定功能。
高速缓存40例如存储用户数据等。高速缓存40例如由非易失性存储器构成。高速缓存40可以由多个存储器构成,可以多重管理非正常数据。本实施例中,通过将高速缓存40具有的整个高速缓存区域分割为多个,设定各CLPR0~n。
公共存储器(或控制存储器)50例如由非易失性存储器构成。在公共存储器50例如存储有控制信息和管理信息等。这些控制信息等信息可以由多个公共存储器50多重管理。公共存储器50和高速缓存40可以分别设置多个。另外,还可以在同一存储器基板混合安装高速缓存40和公共存储器50。或者,作为高速缓存区域使用部分存储器,作为控制区域使用其他部分。
开关单元60分别连接各CHA20、各DKA30、高速缓存40、公共存储器50。由此,所有CHA20、DKA30可以分别访问高速缓存40和公共存储器50。开关单元60例如可以构成为超高速纵横开关等。
存储子系统10可以安装多个盘驱动器80。各盘驱动器80例如可以用硬盘驱动器(HDD)或半导体存储器装置等来实现。盘驱动器80是物理存储设备(PDEV)。另外,根据RAID结构等也不同,例如在4个1组的盘驱动器80提供的物理存储区域上构筑虚拟的逻辑设备(VDEV)70。另外,在VDEV70上还可以设定虚拟逻辑设备。另外,由存储子系统10使用的存储资源不需要都设置在存储子系统10内,还可以利用在存储子系统10的外部存在的存储资源。例如,通过将外部的其他公司制造的存储子系统10具有的存储设备分配给特定VDEV70,管理对其他公司制造的存储设备的访问通路等,可以将其他公司的存储设备像自己的存储设备那样使用。
图4是模式表示各CLPR分割并利用资源的情况的说明图。图中示出利用公共区域CLPR0和2个专用CLPR1、2,分割并使用高速缓存40的情况。在各CLPR分别分配有高速缓存区域。各CLPR分别可使用的高速缓存区域的最大值(最大分配量)由系统管理者设定。在分别分配给各CLPR的高速缓存区域存储有由利用各CLPR的主机1使用的数据(写数据、读数据)。图4中,对存储有数据的区域标上斜线,记为“使用中”。各CLPR可以最多使用分别可用的最大分配量的高速缓存区域,不能使用其他CLPR的高速缓存区域。
另外,各CLPR不仅管理各高速缓存区域,还管理其他高速缓存相关数据。作为高速缓存相关数据例如可以举出DCR(F1)、侧文件F2、和PCR(F3)。
DCR(Dynamic Cache Residency)100是高速缓存固定化功能,是将VDEV70的特定区域存在的数据固定到高速缓存区域。由此,可以提高对重要的数据组的访问性能。
侧文件F2是存储用于将数据向图外的远程地点转发并复制的数据的文件。例如,在侧文件F2存储有规定量以上的远程复制对象的数据时,经通信网,向在距离上分离的场所的其他存储子系统转发数据并保持。远程复制的初始复制中,将指定的数据组全部复制到远程地点,之后更新的数据作为差分文件进行远程复制。
PCR(Partical Cache Residence)102是在存储子系统10设置NAS(NetworkAttached Storage)功能时使用的,是按数据种类固定到高速缓存区域的功能。DCR(F1)是固定特定存储空间中存在的数据的,PCR(F3)是固定特定种类的数据的。另外,这些高速缓存相关数据DCR(F1)、侧文件F2以及PCR(F3)分别只设置在需要它的CLPR。即,在没有设定固定化功能的CLPR没有存储有关高速缓存固定化的数据。同样,在没有设定远程复制的CLPR没有存储侧文件F2。
另外,如图4所示,在各CLPR分别分配有至少1个以上的VDEV70。写入各CLPR的高速缓存区域的数据写入到分别分配的VDEV70的规定区域。另外,从VDEV70读出的数据保持在对应的CLPR的高速缓存区域。
图5是表示用于管理存储在高速缓存区域的数据的方法的说明图。在存储子系统10,为了有效检索高速缓存40中存储的数据,以如下的层次结构进行管理。
首先,一有来自主机1的数据输入输出请求,就基于该输入输出请求中包含的LBA(Logical Block Address)求出VDEVSLOT号(VDEVSLOT#)。接着,基于VDEVSLOT号,通过参照VDSLOT-PAGE表T1,取得对下一层次的指针。在VDSLOT-PAGE表T1包含有对PAGE-DIR表T2的指针。在PAGE-DIR表T2包含对PAGE-GRPP表T3的指针。另外,在PAGE-GRPP表T3包含对GRPT1表T4的指针。在GRPT1表T4包含对GRPT2表T5的指针。在GRPT2表T5包含对SLCB(槽位控制表)T6的指针。
像这样,基于LBA,通过依序参照各表T1~T5,到达SLCB表T6。在SLCB表T6关联有至少1个以上的SGCB(段控制块)表T7。SGCB表7存储与作为高速缓存管理的最小单位的段有关的控制信息。在1个槽位可以相关联1~4个段。在1个段例如可以存储48KB或64KB的数据。
高速缓存管理的最小单位是段,但非正常数据(写入物理盘之前的状态)和正常数据(写入物理盘之后的状态)的各状态之间的转移是以槽位单位进行的。另外,高速缓存区域的确保(保留)和释放(解放)也是以槽位单位或段单位进行的。
如图8所示,在SLCB表T6可以包含后方指针、前方指针、队列状态、VDSLOT#、槽位状态、CLPR信息、至少1个以上的SGCB指针。队列状态包含与该SLCB表T6相关的队列种类和队列号。槽位状态包含与该SLCB表T6对应的槽位状态。CLPR信息包含与该SLCB表T6所属的CLPR相关的信息(CLPR号等)。SGCN指针包含用于指定与该SLCB表T6相关的SGCB表T7的指针。
另外,SLCB表T6和SGCB表T7例如为了避免发生指针变更等的竞争而失去匹配性,以VDEV70单位进行排斥控制。即,对于SLCB表T6或SGCB表T7所属的VDEV70,仅在取得了锁定的情况下,可以操作SLCB表T6或SGCB表T7。本说明书中,将该VDEV单位的排斥控制称为“VDEV锁定”。VDEV锁定还可以称为逻辑卷单位的排斥控制。
图6是表示SLCB表T6的状态转移的说明图。SLCB表T6例如可以取未使用状态ST1、设备反映完状态ST2、奇偶性无&设备反映前状态ST3、奇偶性生成中状态ST4以及奇偶性有&驱动器反映前状态ST5的5个状态。
未使用状态ST1是表示该槽位为未使用的状态。处于未使用状态的槽位(SLCB)由空闲SGCB队列(以下,简记为空闲队列)管理。设备反映完状态ST2是表示该槽位中存储的数据已经写入到物理设备(盘驱动器80)的状态。处于设备反映完状态ST2的槽位由正常队列管理。
奇偶性无&设备反映前状态ST3是表示例如如RAID5等那样需要奇偶性数据时,对该槽位中存储的数据还没有生成奇偶性数据的状态。处于奇偶性无&设备反映前状态ST3的槽位由中间非正常队列管理。奇偶性生成中状态ST4是表示对该槽位中存储的数据正在生成奇偶性数据。处于奇偶性生成中状态ST4的槽位由主非正常队列管理。
奇偶性有&驱动器反映前状态ST5是表示对于存储在该槽位的数据生成奇偶性数据,但还没有写入物理设备的状态。处于奇偶性有&驱动器反映前状态ST5的槽位由物理非正常队列(以下,简记为非正常队列)管理。
在有来自主机1的写访问时,状态从ST1经ST2转移到ST3,开始生成奇偶性数据。接着,若对请求写入的数据生成奇偶性数据,则状态从ST3经ST4变换为ST5。在从主机1向CLPR的高速缓存区域的1个或多个槽位写入了数据的时刻,向主机1发送写入结束报告。在该时刻,由于请求了写入的数据仅在高速缓存区域上存在,所以成为非正常状态(ST5)。
接着,若处于非正常状态的槽位的数据写入规定的物理设备(去标记),则该槽位从非正常状态变化为正常状态(ST5→ST2)。由于处于正常状态的数据写入物理设备,所以也可以根据需要从高速缓存区域删除。若从高速缓存上删除处于正常状态的槽位中存储的数据,则该槽位从正常状态返回到未使用状态(ST2→ST1)。
在有来自主机1的读访问时,通过依次执行与图5一起所述的各层次表T1~T6,指定请求的数据。接着,将主机1请求的数据从物理设备读出,存储到高速缓存区域的1个或多个槽位。存储从物理设备读出的数据的槽位具有正常状态。
图7是表示队列结构的说明图。队列100构成为在单方向或双向连接处于同一状态的SLCB表T6的等待行列。若SLCB表T6的状态变化,则基于例如如FIFO(First-In First-out先入先出)和LRU(Least Recently Used最长未使用时间)等的预先设定的算法,变化队列100的结构。
为了防止对SLCB表T6的操作相竞争而失去匹配性,对各队列100进行排斥控制。即,只有在取得了操作对象的队列锁定的情况下,可以对该队列进行操作。本说明书中,将该队列单位的排斥控制称为“队列锁定”。从而,在上述的VDEV锁定和队列锁定的2层次的排斥控制下,可以操作SLCB表T6。即,只有在取得了2个锁定,即要操作的SLCB表T6所属的VDEV70锁定和该SLCB表T6连接的队列锁定的情况下,可以变更该SLCB表T6的内容。
像这样,由于排斥控制对队列100的操作,所以考虑取得锁定时的总开销,设置多个同一种类的队列。正常队列、非正常队列、空闲队列等分别由多个队列构成。
在构成队列集的各队列分别关联有计数器200。计数器200管理属于该队列的SLCB表T6和SGCB表T7的个数。基于计数器200管理的SLCB数等,可以进行后述的过负荷控制等。
另外,在构成队列集的各队列100还关联有队列管理表300。队列管理表300管理队列100的结构等。队列100、计数器200以及队列管理表300分别存储在公共存储器50。
图9是模式表示各CLPR的高速缓存区域的使用状态和各队列的关系的说明图。各CLPR的高速缓存区域可以根据其使用状态分为“使用中区域”和“未使用区域”。使用中区域是表示存储有数据的槽位群(段群)。未使用区域表示空的槽位群(段群)。
将使用的段的总数与1个段的数据大小相乘的结果成为该CLPR的使用中区域的大小。在正在使用的段中包含有处于正常状态的段和处于非正常状态的段。从而,分配给该CLPR的高速缓存区域中的当前正在使用的区域的大小可以用(正常状态的段数+非正常状态的段数)表示。未使用区域的大小可以用处于空闲状态的段数表示。
空闲队列101管理处于空闲状态(未使用状态)的SLCB表T6。连接到空闲队列101的SLCB表T6(以及SGCB表T7)的个数由与空闲队列101相关联的空闲计数器201掌握。空闲队列101的控制单位是VDEV,队列锁定的单位也是VDEV单位。另外,例如按照FIFO使用空闲队列101。例如设置VDEV70的安装个数的2倍的空闲队列101。从而,若可安装的VDEV70的最大数为512,则空闲队列101的总数成为1024。
正常队列102管理处于正常状态的SLCB表T6。连接到正常队列102的SLCB表T6(以及SGCB表T7)的个数由与正常队列102相关联的正常计数器202掌握。正常队列102的控制单位为VDEV,队列锁定的单位也是VDEV单位。例如按照LRU使用正常队列102。例如设置VDEV70的安装数的4倍的净化队列102(512×4=2048)。
非正常队列103管理处于非正常状态的SLCB表T6。连接到非正常队列103的SLCB表T6(以及SGCB表T7)的个数由与非正常队列103相关联的非正常计数器203掌握。非正常队列103的控制单位为物理驱动器。例如设置盘驱动器80的安装数的32倍的非正常队列103。在安装2048个盘驱动器80时,可以设置65536个非正常队列103。非正常队列103用于管理写入物理设备之前的数据(段)。从而,物理设备(盘驱动器80)比逻辑设备(VDEV70)关联更深。因此,非正常队列103依赖于物理设备的个数设定。
使用中计数器206计数各CLPR的使用中的段数(非正常状态的段数+正常状态的段数)。
图10是表示各CLPR、各队列以及计数器等的关系的说明图。上述的各队列、计数器以及管理表构成用于管理高速缓存管理单位(段或槽位)的管理信息。本实施例中,根据段或槽位的性质(状态),区别为在各CLPR分别设置的管理信息(分割管理信息)和适用于所有CLPR的公共管理信息。
如图10所示,在各CLPR分别设置有正常队列102、正常计数器(正确是正常队列计数器)202、空闲队列计数器201、分类队列计数器204、使用中计数器206、BIND队列计数器205。另外,省略图示,但在各CLPR还分别设置用于管理正常队列102的结构的正常队列管理表。如上所述,在各CLPR分别设置的管理用的信息构成分割管理信息。
与此不同,空闲队列101、非正常队列103、非正常计数器(正确是非正常队列计数器)203、分类队列104、BIND队列105、用于管理这些各队列101、103~105的队列管理表301构成公共适用于所有CLPR的公共管理信息。
分类队列104是用于管理根据PCR功能固定到高速缓存区域的数据的队列。分类队列计数器204计数由PCR固定的段数。
BIND队列105是用于管理根据DCR功能固定到高速缓存区域的数据的队列。BIND队列计数器205计数由DCR固定的段数(或槽位数)。
通过分别设置用于管理存储固定的数据段的分类队列104以及BIND队列105,在各CLPR内,可以防止存储应固定的数据的段变更为空闲状态。
下面,说明构成管理信息的各子管理信息(队列、计数器、队列管理表)中,将哪些按各CLPR分别设置,将哪些适用于所有CLPR的理由。
正常队列102、正常计数器202以及正常队列管理表分别按各CLPR设置。若空闲状态的段耗尽,则正常状态的槽位被释放并变成空闲槽位。从而,正常队列102是使用频率最高的队列。假使,在所有CLPR使用1组正常队列的场合,若在某个CLPR产生空闲段耗尽,则在其他CLPR中会有存储被利用的数据的正常状态的槽位被释放的可能性。即,一方的CLPR中的高速缓存利用状态影响另一方的CLPR中的高速缓存利用状态。因此,本实施例中,可以对各CLPR分别设置正常队列102、正常计数器202。另外,队列管理表与队列一体采用。从而,在各CLPR分别设置正常队列102时,正常队列管理表也分别设置在各CLPR。
使用中计数器206在各CLPR分别设置。使用中计数器206计数相加了正常状态的段数和非正常状态的段数的值。从而,从使用中计数器206的计数值减去正常计数器202的计数值而所得的值成为该CLPR中的非正常状态的段数。从而,若在各CLPR分别设置正常计数器202和使用中计数器206,则不需要在各CLPR分别设置非正常计数器203。
非正常队列103是与物理设备相关联的队列,控制单位也成为物理设备单位。从而,假使,在各CLPR分别设置非正常队列103的场合,用于存储非正常队列管理表的存储容量增大,压迫公共存储器50的存储区域。例如,1个队列所需的信息量是队列管理表为16字节,计数器为4字节。由于队列分割意味着队列管理表的分割,所以公共存储器50的多个存储区域耗费于存储分割管理信息。因此,本实施例中,为了有效使用公共存储器50的存储资源,非正常队列103和非正常计数器203不设置在各CLPR,而适用于所有CLPR。
另外,从有效利用公共存储器50的存储资源的观点,空闲队列101也不是分别设置在各CLPR,在各CLPR只设置字节数少的空闲计数器201。
由于与空闲队列101相同的理由,分类队列104、BIND队列105也是在各CLPR分别只设置各计数器204和205,队列自身适用于所有CLPR。
像这样,本实施例中,根据子管理信息的属性,即,根据由子管理信息管理的高速缓存管理单位的属性,分配子管理信息。从而,有效利用公共存储器50的存储资源,可以确保各CLPR间的独立性。
图11是表示高速缓存管理结构和排斥控制的关系的说明图。图11中只示出与图10一起叙述的管理信息的一部分。图11中的“VDEV锁定Gr”表示VDEV锁定的组。为了操作目录,需要取得VDEV锁定,为了操作队列,需要操作队列锁定。即,为了移动CLPR管理的数据,需要对管理存储该数据的段的队列的操作权限、和对该段所属的目录的操作权限双方。
如图11的右侧所示,在各CLPR可以相关联1个或多个VDEV70。还可以将与某个CLPR相关联的VDEV70关联到另一CLPR。图12是表示将与CLPR0相关联的VDEV#1关联到CLPR1的情况的说明图。
在变更VDEV70的所属目的地CLPR时,需要变更VDEV70和CLPR的相关,并且,将所属于移动对象VDEV70的数据群与新的CLPR进行相关联。即,将移动对象的段(或槽位)从与移动源CLPR相关联的队列去除,连接到与移动目的地CLPR相关联的队列。在该操作时,需要VDEV锁定和队列锁定的双方。
图13是表示变更CLPR的结构时的处理的一例。在图13概要示出将与移动源CLPR相关联的VDEV70移动到移动目的地CLPR的情况。
首先,经管理终端3,系统管理者请求VDEV70的移动时(S1YES),CHA20或DKA30的代表处理器变更指定为移动对象的VDEV70的固有信息(S2)。即,该VDEV70所属的CLPR有关的信息(归属目的地CLPR信息)被改写为有关移动目的地CLPR的信息。
下面,代表处理器检索并抽出与移动对象的VDEV70对应的SLCB表T6,对于成为该移动对象的SLCB表T6变更CLPR信息(S3)。即,如与图8一起所述,对成为移动对象的各SLCB表T6,将有关该所属目的地CLPR的信息变更为有关移动目的地CLPR的信息。
接着,代表处理器检查移动对象的SLCB表T6的槽位状态是否是正常状态(S4)。在是正常状态的槽位的情况下(S4YES),即移动对象的SLCB表T6连接到正常队列102的情况下,代表处理器将该SLCB表T6的队列状态根据移动目的地CLPR进行变更(S5)。即,改写连接到在移动目的地CLPR设置的第几个正常队列102等的信息。
代表处理器变更队列状态之后,将移动对象的SLCB表T6从当前的正常队列102去除(S6)。接着,代表处理器根据要移动的正常槽位数,分别减去移动源CLPR设置的使用中计数器206和正常计数器202的计数值(S7)。接着,代表处理器将移动对象的SLCB表T6连接到移动目的地CLPR的正常队列102(S8)。接着,代表处理器分别增加移动目的地CLPR的使用中计数器206和正常计数器202的计数值(S9),结束本处理。
另一方面,在对应于移动对象的VDEV70的SLCB表T6不是正常状态的情况下(S4NO),代表处理器检查该移动对象的SLCB表T6是否是空闲状态(S10)。在移动对象的SLCB表T6为空闲状态的情况下(S10YES),代表处理器分别变更移动源以及移动目的地的空闲计数器201(S11)。即,根据要移动的空闲槽位数,减去移动源的空闲计数器201,加上移动目的地的空闲计数器201,结束处理。在移动对象的SLCB表T6是非正常状态时(S10NO),不作任何工作而结束处理。由于非正常队列103和非正常计数器203公共适用于所有CLPR,所以不需要进行队列移动和计数器的增减。
另外,在图13中省略,但连接到分类队列104和BIND队列105的SLCB表T6分别进行与空闲队列101相同的处理。分类队列104和BIND队列105不是在各CLPR分别分割设置,而是在各CLPR只设置其计数器204、205。从而,不产生队列间的移动,只发生移动源和移动目的地的计数器值的变更。
图14是表示变更CLPR的高速缓存分配量时的概要处理的流程图。在由系统管理者进行高速缓存分配处理的变更操作时(S31YES),代表处理器检测与高速缓存分配变更相关的SLCB表T6(S32)。接着,代表处理器将与变更相关的SLCB表T6的CLPR信息根据高速缓存分配的变更进行变更(S33)。
例如,减少CLPR1的高速缓存分配量,增加相应数量CLPR2的高速缓存分配量时,位于该变动区域的SLCB表T6的归属目的地CLPR从CLPR1变更为CLPR2。接着,根据高速缓存区域的分配变更,增减正常计数器202等的值并结束处理(S34)。
图15是概要表示用于确保空闲段的空闲段收集处理的流程图。在此,空闲段意味着处于空闲状态的段。本处理可以定期或在空闲段不足时(过负荷时)进行。
首先,检测正常状态的SLCB表T6中使用频率最低的状态(S4),将检测出的SLCB表T6的状态从正常状态变更为空闲状态(S42)。伴随着该状态变更,SLCB表T6从正常队列102代替为空闲队列101。另外,正常计数器202和空闲计数器201的计数值也分别变更。到确保规定量的空闲段为止,重复进行S41和S42的处理(S43)。
图16是表示定义CLPR的情况的模式图。本实施例中,作为公共库区域使用CLPR0。在CLPR0中存储有存储子系统10内公共使用的各种信息。另外,如上所述,各种管理信息存储在公共存储器50。
如图16(a)所示,在将用户专用的CLPR连1个也没有设定的初始状态下,高速缓存40具有的所有高速缓存区域所属于CLPR0。如图16(b)所示,分配给CLPR0的高速缓存区域可以区别为存储公共的各信息等的“使用中区域”和“未使用区域”。在新设定用户专用的CLPR1时,如图16(c)所示,从作为库区域的CLPR0截取所需的高速缓存区域,分配给CLPR1。另外,在新设定其他用户用的CLPR 2时,如图16(d)所示,从作为库区域使用的CLPR0截取所需量的高速缓存区域,分配给新生成的CLPR2。在删除用户专用的CLPR1或CLPR2时,分配给删除的CLPR的高速缓存区域返回到CLPR0。
图17是表示上述处理的流程图。在初始状态下,高速缓存40具有的所有缓存区域分配给作为库区域使用的公共区域CLPR0(S51)。在整个存储子系统10使用的各信息存储到CLPR0,被开始运用(S52)。
在新追加CLPR时(S53YES),变更CLPR结构(S54)。该CLPR结构变更处理是进行从CLPR0截取高速缓存区域并分配给新的CLPR等的处理。另一方面,在删除已经生成的CLPR时(S53NO、S55YES),进行将分配给删除的CLPR的高速缓存区域返回到CLPR0等的处理(S56)。另外,作为原则不可以删除CLPR0。
图18是表示对各子终端2显示与各子终端2管理的CLPR有关的信息等的情况的说明图。
SVP90具有认证单元91和结构管理单元92。各CLPR的管理者经子终端2访问SVP90,输入用户ID等。由认证单元91进行的用户认证结果是合法用户时,CLPR的管理者可以对自己管理下的CLPR进行结构变更。该结构变更的操作由结构管理单元92反映到各CLPR。另外,从结构管理单元92取得的有关CLPR的结构信息可以显示在子终端2。
作为可以在子终端2显示的信息,例如可以举出分配给CLPR的最大高速缓存量、有关分配给CLPR的VDEV的信息(VDEV号和卷大小等)、使用中的高速缓存大小、未使用的高速缓存大小、对CLPR的IO频率等。另外,管理整个存储子系统10的系统管理者经全体终端3可以取得有关所有CLPR的信息,可以进行各CLPR的结构变更等。
像这样,根据本实施例,构成为对存储子系统10内设定的各CLPR分割各管理用的信息。从而,可以抑制各CLPR间的干扰,可以提高使用方便性。即,在对一方的CLPR的访问增大的情况下,也可以极力防止对其他CLPR带来影响。
另外,本实施例中,基于段或槽位的属性,分配管理信息。从而,与将所有管理信息简单地分别设置在各CLPR的结构相比,可以降低管理信息整体的数据大小,可以有效使用公共存储器50。
另外,本发明不限于上述实施例。工作人员在本发明的范围内可以进行各种追加和变更等。
权利要求
1.一种存储子系统,具有多个通道适配器,分别控制与上位装置的数据交接;多个存储设备组,分别提供逻辑存储区域;多个盘适配器,分别控制与上述各存储设备组的数据交接;高速缓存,由上述各通道适配器和上述各盘适配器分别使用;多个高速缓存分区,逻辑分割上述高速缓存构成;控制存储器,存储用于管理上述各高速缓存分区的管理信息,上述管理信息由对上述各高速缓存分区分别设置的分割管理信息、和适用于上述各高速缓存分区的整体的公共管理信息构成。
2.如权利要求1所述的存储子系统,其特征在于上述各分割管理信息和公共管理信息基于高速缓存管理单位的属性来设定。
3.如权利要求1所述的存储子系统,其特征在于上述管理信息由多种子管理信息构成,基于高速缓存管理单位的属性,将上述各子管理信息的一部分按上述各高速缓存分区分别分割而构成上述各分割管理信息,将上述各子管理信息的剩余部分用作上述公共管理信息。
4.如权利要求1所述的存储子系统,其特征在于上述管理信息构成为,包括多种队列、与这些各队列分别相关的计数器,基于高速缓存管理单位的属性,通过在上述各高速缓存分区分别设置上述各队列和上述各计数器的一部分来构成上述各分割管理信息,将上述各队列的剩余部分和上述各计数器的剩余部分用作公共管理信息。
5.如权利要求4所述的存储子系统,其特征在于相互相关的上述队列和上述计数器中的一方构成上述分割管理信息,另一方用作上述公共管理信息。
6.如权利要求4所述的存储子系统,其特征在于与上述各队列分别相关联的队列管理表,与构成上述分割管理信息的队列相关的队列管理表分别设置在上述各高速缓存分区。
7.如权利要求1所述的存储子系统,其特征在于上述管理信息构成为,包括连接有未使用状态的高速缓存管理单位的空闲队列以及与该空闲队列相关的空闲队列计数器、连接有存储反映到上述存储设备组之前的非正常状态的数据的高速缓存管理单位的非正常队列以及与该非正常队列相关的非正常队列计数器、连接有存储反映到上述存储设备组之后的正常状态的数据的高速缓存管理单位的正常队列以及与该正常队列相关的正常队列计数器、和计数使用中的高速缓存管理单位的总量的使用中计数器,上述空闲队列计数器、上述正常队列、上述正常队列计数器以及上述使用中计数器分别设置在上述各高速缓存分区,分别构成上述分割管理信息,上述空闲队列、上述非正常队列以及上述非正常队列计数器用作上述公共管理信息。
8.如权利要求1所述的存储子系统,其特征在于在上述各通道适配器上可以分别设定上述各高速缓存分区。
9.如权利要求1所述的存储子系统,其特征在于通过将上述各高速缓存分区中的1个高速缓存分区设定为公共区域并分配属于该公共区域的资源,设定新的高速缓存分区。
10.一种控制存储子系统的方法,该存储子系统具有多个上位接口控制单元,分别控制与上位装置的数据交接;多个存储设备组,分别提供逻辑存储区域;多个下位接口控制单元,分别控制与上述各存储设备组的数据交接;存储器单元,由上述各上位接口控制单元和上述各下位接口控制单元分别使用,将上述存储器单元提供的高速缓存区域分割成多个缓存分区,根据用于在上述存储器单元中管理数据的高速缓存管理单位的属性,将管理信息分别分割给上述各高速缓存分区,基于上述各管理信息,按上述各高速缓存分区分别管理数据。
全文摘要
对各用户分割存储子系统的高速缓存区域,防止用户专用区域之间的干扰。在存储子系统内可以设定多个CLPR。CLPR是可以分割成高速缓存具有的高速缓存区域并使用的用户专用区域。为了管理高速缓存中存储的数据而所需的管理信息根据段或槽位的属性,分配给各CLPR。管理正常状态的段的正常队列(102)以及正常计数器(202)在各CLPR分别设置。非正常队列(103)以及非正常计数器(103)在所有CLPR中公共使用。空闲队列(101)、分类队列(104)以及BIND队列(105)公共适用于所有CLPR,在各CLPR分别只设置各计数器(201、204、205)。
文档编号G06F12/08GK1652093SQ200510000220
公开日2005年8月10日 申请日期2005年1月5日 优先权日2004年2月5日
发明者星野幸子, 坂口孝, 长副康之, 杉野升史 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1