计算机系统以及计算机系统控制方法

文档序号:10663530阅读:486来源:国知局
计算机系统以及计算机系统控制方法
【专利摘要】本发明实际有效地削减了服务器存储器之间的传送数据量,并实现了服务器存储器之间的实效频带的宽带化。接口设备位于服务器模块内,当接收到由服务器处理器发布的读取请求时,将基于读取请求的读取指令发送至存储器处理器,在从存储器处理器接收到使接口设备针对将读取请求的对象数据转换得到的转换后对象数据的逆转换的逆转换指示的情况下,进行一边对保存于存储器内存上的传送源地址的转换后对象数据进行逆转换、一边传送至服务器内存上的传送目的地地址的DMA。
【专利说明】
计算机系统以及计算机系统控制方法
技术领域
[0001 ]本发明涉及计算机系统以及计算机系统控制方法。
【背景技术】
[0002]近年来在计算机系统中处理的数据量愈发增多。例如,已知如下大规模数据分析系统技术:每天从服务器收集数据并在存储器(storage)上构建数据库,在规定的定时将蓄积于分析用服务器的数据读出并进行分析处理。在这种计算机系统中要求针对庞大的处理请求的高速响应。
[0003]另一方面,与服务器及存储器各自的性能提高、以及基于闪存存储装置的存储利用而使得后端的宽带化相应地,需要使服务器与存储器之间的连接频带也进一步实现宽带化。
[0004]例如,已知如下技术:在经由SAN(Storage Area Network:存储区域网络)而将服务器计算机与存储装置连接的计算机系统中,例如通过将压缩解压机构设置于服务器计算机而经由SAN的线路来传送压缩后的数据(例如,专利文献I)。
[0005]专利文献1:美国专利申请公开第2013/0332652号说明书

【发明内容】

[0006]专利文献I的系统利用FCXFibreChannel:光纤通道)将服务器计算机与存储装置之间连接。在本结构中为了改善服务器计算机与存储装置之间的频带,而增加FC的端口数量或利用新时代产品等,从而导致成本提高。
[0007]另外,专利文献I的系统将数据高速缓存用的闪存驱动搭载于服务器侧,通过实施读取数据的命中/未命中判断而能够减少对存储装置的访问。因此,需要在服务器侧准备闪存,并由服务器对高速缓存区域进行管理。并且,为了对是否需要不进行解压地将服务器侧的压缩数据读出进行判断,需要预先针对每个对象设定规则,并在服务器侧对保存有数据的区域是否被压缩的信息进行管理。并且,因在高速缓存未命中的情况下向服务器侧内存传送存储数据之前将存储数据临时保存于闪存的处理、以及压缩数据的解压处理等这类的服务器处理成本变大,结果为,有因通频带以外的解压处理负荷而导致系统性能下降的可能性。
[0008]因而,本申请的目的在于,无需在应用程序侧的事前设计,与I/O的特性联动地实现符合需要的解压读取、非解压读取的区分使用,由此,来实际有效地削减服务器存储器之间的传送数据量,实现服务器存储器之间的实效频带的宽带化。
[0009]为了解决上述课题,作为本发明的一个方案的计算机系统具有:存储器模块,其具有存储器处理器、存储器内存以及储存设备;服务器模块,其具有服务器处理器以及服务器内存;以及接口设备,其与服务器处理器和存储器处理器连接。接口设备位于服务器模块内,当接收到由服务器处理器发布的读取请求时,将基于读取请求的读取指令发送至存储器处理器,在从存储器处理器接收到使接口设备针对将读取请求的对象数据转换得到的转换后对象数据进行逆转换的逆转换指示的情况下,进行一边对在存储器内存上的传送源地址保存的转换后对象数据进行逆转换、一边将其传送至服务器内存上的传送目的地地址的DMA(Direct Memory Access:直接存储器访问)。
【附图说明】
[0010]图1表示实施例的服务器存储器系统的结构。
[0011]图2表示第一具体例的服务器存储器系统的结构。
[0012]图3表示第二具体例的服务器存储器系统的结构。
[0013]图4表示第三具体例的服务器存储器系统的结构。
[0014]图5表示第四具体例的服务器存储器系统的结构。
[0015]图6表示虚拟服务器存储器系统的结构。
[0016]图7表示变形例的服务器存储器系统的结构。
[0017]图8表示SS连接机构的结构。
[0018]图9表示DMA控制器的结构。
[0019]图10表示压缩储存设备的结构。
[0020]图11表示ST内存内的存储区域的结构。
[0021]图12表示物理设备内的存储区域的结构。
[0022]图13表示存储器系统内的存储区域的结构。
[0023]图14表示存储器系统内的页面的结构。
[0024]图15表示虚拟卷管理表。
[0025]图16表示存储池管理表。
[0026]图17表示RAID组管理表。
[0027]图18表示物理设备管理表。
[0028]图19表示虚拟页面管理表。
[0029]图20表示实际页面管理表。
[0030]图21表示空闲实际页面管理表。
[0031]图22表示物理设备内的存储区域的结构。
[0032]图23表示压缩管理表。
[0033]图24表示ST控制器从压缩储存设备获取压缩信息的动作。
[0034]图25表示ST控制器从压缩储存设备获取压缩数据的第一动作。
[0035]图26表示ST控制器从压缩储存设备获取压缩数据的第二动作。
[0036]图27表示ST控制器从压缩储存设备获取压缩数据的第三动作。
[0037]图28表示解压DMA处理中的ST控制器与SS连接机构之间的动作。
[0038]图29表示压缩信息SGL。
[0039]图30表示数据格式。
[0040]图31表示SS系统的读取处理中的第一处理。
[0041]图32表示SS系统的读取处理中的紧随第一处理之后的第二处理。
[0042]图33表示基于SS连接机构的解压DMA处理中的第一处理。
[0043]图34表示基于SS连接机构的解压DMA处理中的紧随第一处理之后的第二处理。
[0044]图35表示解压DMA处理中的保障码核查处理中的第一处理。
[0045]图36表示解压DMA处理中的保障码核查处理中的紧随第一处理之后的第二处理。
[0046]图37表示解压DMA处理中的保障码核查处理中的紧随第二处理之后的第三处理。
[0047]图38表示SS系统的写入处理中的第一处理。
[0048]图39表示SS系统的写入处理中的紧随第一处理之后的第二处理。
[0049]图40表示SS系统的写入处理中的紧随第二处理之后的第三处理。
[0050]图41表示基于SS连接机构的压缩DMA处理中的第一处理。
[0051]图42表示基于SS连接机构的压缩DMA处理中的紧随第一处理之后的第二处理。
[0052]图43表示压缩卸载写入处理。
[0053]图44表示进行基于服务器的解密和基于SS连接机构的解压的情况下的读取处理中的第一处理。
[0054]图45表示进行基于服务器的解密和基于SS连接机构的解压的情况下的读取处理中的第一处理之后的第二处理。
[0055]图46表示服务器/服务器间连接的结构。
[0056]图47表示存储器/存储器间连接的结构。
【具体实施方式】
[0057]在此后的说明中,利用“aaa表”、“aaa列表”、“aaaDB”、“aaa队列”等形式对本发明的信息进行说明,但信息也可以利用除了表、列表、DB、队列等数据结构以外的形式来表述。因此,为了表示不依赖于数据结构,有时将“aaa表”、“aaa列表”、“aaaDB”、“aaa队列”等称为
、” ο
[0058]并且,当对各信息的内容进行说明时,使用“标识信息”、“标识符”、“名”、“名字”、“ID”之类的表现形式,但这些表现形式能够相互替换。
[0059]在以下的说明中,有时将“程序”作为主语进行处理相关的说明,但由于程序是由处理器执行的,由此利用存储器以及通信端口(通信控制设备)进行规定的处理,所以也可以以处理器为主语进行说明。另外,可以将以程序为主语公开的处理看作是由存储控制器等计算机、信息处理装置进行的处理。另外,程序的一部分或全部可以由专用硬件来实现。
[0060]另外,各种程序可以通过程序发布服务器、计算机可读取的存储介质(computer-readable memory media)而安装于各计算机。在该情况下,程序发布服务器包括处理器(例如CPU:Central Processing Unit(中央存储器))和存储资源,存储资源还对发布程序和作为发布对象的程序进行存储。而且,CPU执行发布程序,从而程序发布服务器的CPU将发布对象的程序配置于其它计算机。
[0061 ]以下,利用附图对本发明的实施例进行说明。
[0062]以下,对本发明的实施例的服务器存储器(SS)系统进行说明。
[0063]图1表示实施例的服务器存储器系统的结构。
[0064]该SS系统包括服务器100以及存储器系统300。服务器100和存储器系统300可以收纳于一个框体。有时将SS系统称为计算机系统。
[0065]服务器100包括服务器(SV)内存110、服务器(SV)处理器120、以及服务器存储器(SS)连接机构200 JV内存110与SV处理器120经由内部总线而相互连接。SV内存110是内存,其对应用程序、OS(Operating System:操作系统)、驱动等用于服务器100的控制的程序以及数据进行保存。SV处理器120是微处理器,其根据SV内存110内的程序而执行处理。SS连接机构200经由服务器侧总线而与SV处理器120连接,经由存储器侧总线而与存储器系统300连接,并对SV处理器120与存储器系统300之间的通信进行控制。
[0066]SV处理器120与SS连接机构200之间由服务器侧总线连接。SS连接机构200与ST处理器420之间由与服务器侧总线相同形式的总线即存储器侧总线连接。本实施例将PCIExpress(PCIe)用作服务器侧总线以及存储器侧总线。服务器侧总线以及存储器侧总线分别可以是背板(backplane)等基板,也可以是线缆。在本系统中,利用与服务器100的内部总线相同的总线从服务器100连接至存储器系统300,由此能够实现服务器100与存储器系统300的存储区域之间的DMA传送,针对从SV处理器120发送来的要求,存储器系统300内的存储器(ST)处理器使搭载于SS连接机构200的DMA引擎启动,将存储器系统300内的ST内存上的数据向SV内存110上传送、或者将SV内存110上的数据向存储器系统300内的ST内存上传送。通过这种结构,不依赖于所谓的SAN等网络交换机的转发(forward)功能,构建出利用宽带的总线将服务器100与存储器系统300连接的一体式系统,实现了频带的扩展与延迟时间的改善。并且,在本系统中因实现了 DMA传送而能够实现I/O性能的提高。
[0067]此外,服务器100可以包括作为具有压缩解压功能的闪存(FM)的带压缩解压功能FM。服务器100可以包括经由内部总线而与SV处理器120连接、且经由服务器侧总线而与SS连接机构200连接的根组件(RC:Root Complex)。
[0068]SS连接机构200对来自服务器100的写入数据进行压缩并将压缩后的数据向存储器系统300传送,对来自存储器系统300的读取数据进行解压并将解压后的数据向服务器100传送。
[0069]存储器系统300包括存储器(ST)控制器400、以及储存装置500。储存装置500对由服务器100访问的数据进行保存。ST控制器400与储存装置500以及服务器100连接,并对向储存装置500的访问进行控制。有时将ST控制器400称为控制器。
[0070]ST控制器400包括存储器(ST)内存410、存储器(ST)处理器420以及驱动接口(I/F)430 AT内存410、ST处理器420以及驱动I/F430经由内部总线而相互连接。ST内存410是内存(memory),其对用于存储器系统300的控制的程序及数据进行保存。ST处理器420是微处理器,其经由存储器侧总线而与SS连接机构200连接,并根据保存于ST内存410的程序而执行处理。驱动I/F430经由存储装置侧总线而与储存装置500连接,并对ST处理器420与储存装置500之间的通信进行控制。
[0071]此外,ST控制器400可以包括带压缩解压功能FM。在该情况下,ST处理器420将带压缩解压功能FM用作高速缓存区域,从而能够对高速缓存的数据进行压缩及解压。ST控制器400可以包括经由内部总线而与ST处理器420连接、且经由存储器侧总线而与SS连接机构200连接的RC。
[0072]储存装置500包括多个储存设备600(#0、#1、#2、#3)。有时将物理的储存设备600称为物理设备,将虚拟的储存设备称为虚拟设备。有时将具有数据的压缩解压功能的物理设备称为压缩储存设备600a,将不具有数据的压缩解压功能的物理设备称为非压缩储存设备
600b ο
[0073]此外,对于数据的压缩及解密,可以利用压缩储存设备600a来进行,也可以利用ST控制器400来进行,还可以利用服务器100来进行。
[0074]另外,能够将SS系统的压缩替换为删除重复(deduplicat1n)等其它转换。通过该转换而从元数据生成转换结果数据。转换结果数据的大小比元数据的大小更小。另外,通过逆转换而由转换结果数据生成元数据。针对压缩的逆转换为解压。针对删除重复的逆转换为元数据的复原。
[0075]此处,对服务器存储器系统的结构的几个具体例进行说明。
[0076]图2表示第一具体例的服务器存储器系统的结构。
[0077]各SS连接机构200可以与多个ST控制器400直接连接。第一具体例的SS系统包括多个服务器100、以及一个存储器系统300。存储器系统300包括两个ST控制器400。各ST控制器400包括:两个ST处理器420;与各ST处理器420连接的多个ST内存410;以及与各ST处理器420连接的多个驱动I/F430。一个ST控制器400内的两个ST处理器420经由ST控制器400间总线而分别与另一个ST控制器400内的两个ST处理器420连接。此外,ST处理器420可以为多个。即使在为多个的情况下也经由ST控制器间总线而分别与另一个ST控制器400内的多个ST处理器420连接。
[0078]图3表示第二具体例的服务器存储器系统的结构。
[0079]各SS连接机构200可以经由接口扩展装置700而与多个ST控制器400连接。此处,对第二具体例相对于第一具体例的不同点进行说明。第二具体例的SS系统包括多个服务器100、以及与各ST控制器400连接的接口扩展装置700。接口扩展装置700进行使服务器100与ST控制器400之间的连接路径数增加的控制。能够利用接口扩展装置700使更多的服务器100与一台存储器直接连结。接口扩展装置700例如是PCIe交换机。
[0080]图4表示第三具体例的服务器存储器系统的结构。
[0081 ]各服务器100可以包括多个SS连接机构200。此处,对第三具体例相对于第二具体例的不同点进行说明。在第三具体例中,各服务器100包括两个SS连接机构200。两个SS连接机构200经由接口扩展装置700而与两个ST控制器400分别连接。
[0082]在该结构中,将存储器侧总线设为2根PCIex4,将服务器侧总线设为I根PCIex8,由此使得存储器侧总线与服务器侧总线的频带取得平衡。此处,通过将存储器侧总线变更为I根PCIex4、且将服务器侧总线变更为I根PCIex8,仅将存储器侧总线的频带变更为1/2。在该情况下,在利用SS连接机构200对从存储器侧总线向SS连接机构200传送的压缩数据进行解压并将解压后的数据向服务器侧总线传送时,即使在存储器侧总线中被压缩为1/2的数据在服务器侧总线中恢复为原来的大小的数据,存储器侧总线及服务器侧总线也能够确保各自的频带。另外,通过各服务器100包括2个SS连接机构200而能够确保硬件的冗余性。此外,各服务器100可以包括I个SS连接机构200,考虑压缩率可以与存储器侧总线相比将服务器侧总线的频带设为宽频带。例如,可以将存储器侧总线设为2根PCIex4、且将服务器侧总线设为I根PCIexl6。并且,即使将存储器侧总线设为2根PCIex4、且将服务器侧总线设为2根PCIexS,也能够获得同等的效果。这样,服务器侧总线以及存储器侧总线通过遵照PCIe而能够与压缩对应地分配所需的频带。
[0083]图5表示第四具体例的服务器存储器系统的结构。
[0084]SS系统可以包括多个存储器系统300。此处,对第四具体例相对于第三具体例的不同点进行说明。在第四具体例中,SS系统包括两个存储器系统300。一个服务器100内的两个SS连接机构200经由接口扩展装置700而分别与两个存储器系统300连接。一个SS连接机构200经由接口扩展装置700而与一个存储器系统300内的两个ST控制器400连接。在该结构中,通过将两个SS连接机构200搭载于服务器100,能够使更多的存储器系统300与服务器100连接,从而对于服务器100能够提供宽频带且高性能的存储器资源。
[0085]图6表示虚拟服务器存储器系统的结构。
[0086]物理的SS系统2000可以执行虚拟化机构3000,并可以在虚拟化机构3000上执行虚拟服务器存储器(SS)系统1000。虚拟SS系统1000包括虚拟服务器1100、以及虚拟存储器系统1300O在该情况下,SS系统2000至少在物理上具备处理器2020、内存2010、存储装置2500、SS连接机构2200。虚拟服务器1100提供与服务器100相同的功能。更具体而言,虚拟服务器1100包括:虚拟SV内存2110,其提供与SV内存110相同的功能;以及虚拟SS连接机构1200,其提供与SS连接机构200相同的功能。虚拟存储器系统1300包括:虚拟ST控制器1400,其提供与ST控制器400相同的功能;以及虚拟存储装置1500,其提供与储存装置500相同的功能。虚拟ST控制器1400包括提供与ST内存410相同的功能的虚拟ST内存1410。
[0087]虚拟化机构3000将内存2010内的存储区域分配给虚拟SV内存1110,将SS连接机构2200的处理能力分配给虚拟SS连接机构1200,将内存2010内的存储区域分配给虚拟ST内存1410,并将存储装置2500内的存储区域分配给虚拟存储装置1500。
[0088]虚拟SS系统1000可以在单独的服务器、服务器和存储器系统等其它结构的计算机系统上执行。另外,计算机系统可以包括压缩解压电路以取代SS连接机构。
[0089]图7表示变形例的服务器存储器系统的结构。
[0090]此处,对变形例的SS系统相对于实施例的SS系统的不同点进行说明。在该变形例中,SS系统具有存储器系统300a以取代存储器系统300,并具有ST控制器400a以取代ST控制器400。将SS连接机构200设置于ST控制器400a内以取代服务器100内的SS连接机构200OSS连接机构200与服务器100内的SV处理器120连接,并与ST控制器400a内的ST处理器420连接。服务器100还可以包括FM140。该FM140可以具有压缩解压功能,并根据来自SV处理器120的指示而执行压缩解压。ST控制器400a还可以包括FM440。该FM440可以具有压缩解压功能,并根据来自ST处理器420的指示而进行压缩或解压以取代SS连接机构200。在本结构时,写入的动作是在图38?40所公开的流程中,在将数据向SS连接机构200送出之前利用FM140对数据进行压缩。SS连接机构200读出该压缩数据并对其进行解压,进而一边将其重新压缩为本实施例的存储器系统300的压缩格式、一边经由ST内存410而写入储存设备600。此外,SS连接机构200可以在将压缩数据读出时不对其进行解压,而是进一步将其压缩为本实施例的存储器系统300的压缩格式。利用本结构能够使写入频带实现宽带化。另外,读取动作是在图31、32所公开的流程中,在SS连接机构200将利用ST控制器400a内的FM440压缩后的数据、或者压缩保存于储存设备600的数据读出的情况下,在对数据进行解压的基础上,一边重新将其压缩为服务器100的压缩格式、一边与服务器100侧的FM140或者SV内存110之间进行DMA传送。通过以上结构,SS连接机构200与具有压缩解压功能的FM440协作实现了系统的宽带化。此外,在如前所述那样SS连接机构200不进行解压而将压缩数据读出的情况下,可以将其重新压缩为服务器100的压缩格式。即,SS连接机构200可以设置于服务器100内,也可以设置于ST控制器400内,还可以设置于服务器100与ST控制器400之间。
[0091]图8表示SS连接机构200的结构。
[0092]SS连接机构200例如作为ASIC(applicat1n specific integrated circuit:专用集成电路)而被安装。SS连接机构200包括IF(Interface:接口)处理器210、DMA(DirectMemory Access:直接存储器访问)控制器220、内部记忆体230、寄存器240、接口 250、两个接口 260、以及内部交换机270。有时将DMA控制器220称为DMA<JF处理器210、DMA控制器220、内部记忆体230、寄存器240、接口 250以及两个接口 260经由内部交换机270而互相连接。一方的接口 250经由服务器侧总线而与SV处理器120连接。另一方的两个接口 260经由存储器侧总线而与两个ST处理器420分别连接。内部记忆体230是内存,其对程序及数据进行保存。IF处理器210是微处理器,其根据内部记忆体230内的程序而执行处理。DMA控制器220根据来自IF处理器210的指示而执行数据传送(存储器间传送)。寄存器240对IF处理器210的设定值进行保存。内部交换机270根据来自IF处理器210的指示而对各部分之间的通信进行控制。此外,SV侧接口及ST侧接口可以分别为多个,并借助各总线及接口的扩展而与SV处理器120及ST处理器420连接。
[0093]图9表示DMA控制器220的结构。
[0094]DMA控制器220包括压缩设备221、解压设备222、保障码处理设备(0)223、保障码处理设备(1)224、数据传送控制设备225、以及两个接口 226、227。两个接口与内部交换机连接。压缩设备221对非压缩数据进行压缩而使其转换为压缩数据。解压设备222对压缩数据进行解压而使其转换为非压缩数据。保障码处理设备(0)223对非压缩数据的保障码进行计算,并将保障码附加于非压缩数据。并且,保障码处理设备(0)223基于非压缩数据和保障码而检测非压缩数据的错误。保障码处理设备(I)对压缩数据的保障码进行计算,并将保障码附加于压缩数据。并且,保障码处理设备(1)224基于压缩数据和保障码而检测压缩数据的错误。另外,各保障码处理装置还分别进行保障码的删除。数据传送控制设备225对数据的传送进行控制。
[0095]SS连接机构200利用PCIe与服务器100及ST控制器400连接,由此能够在服务器100内的SV内存110与ST控制器400的ST内存410之间进行DMA传送,并能够在DMA传送时进行数据的压缩或解压。
[0096]以下,对压缩储存设备600a进行说明。
[0097]图10表示压缩储存设备600a的结构。
[0098]压缩储存设备600a包括储存设备(SD)控制器610、以及与SD控制器610连接的多个闪存(ΡΜ)620<^?控制器610包括RAM(Random Access Memory:随机存取存储器)611、物理设备(SD)处理器612、保障码处理设备613、压缩/解压设备614、I/O接口 615、以及FM接口 616。SD控制器610内的各部分经由内部总线而相互连接。I /0接口 615经由存储装置侧总线而与ST控制器400的驱动I/F430连接。RAM611例如是DRAM(Dynamic RAM:动态随机存取存储器),其对程序及数据进行存储。SD处理器612是微处理器,其根据保存于RAM611的程序而执行处理。保障码处理设备613基于数据而生成保障码,将保障码附加于数据,基于数据和保障码而进行数据的核查,并对错误进行检测。另外,还进行保障码的删除。压缩/解压设备614对非压缩数据进行压缩而使其转换为压缩数据,并对压缩数据进行解压而使其转换为非压缩数据。FM接口616与多个FM620连接。该压缩储存设备600a可以根据来自ST处理器420的指示而进行压缩或解压以取代SS连接机构200。另外,压缩储存设备600a可以针对数据输入通过内部判断来对数据进行压缩,在从ST处理器420未特别发出指示的情况下,可以在内部对压缩后的数据进行解压并将解压后的数据输出。
[0099]以下,对存储器系统300内的存储区域的结构进行说明。
[0100]图11表示ST内存410内的存储区域的结构。
[0101]ST内存410内的存储区域包括虚拟卷管理表810、存储池管理表820、RAID组管理表830、物理设备管理表840、虚拟页面管理表850、实际页面管理表860、以及空闲实际页面管理表870。后文中对这些表进行说明。ST内存410内的存储区域还包括存储器(ST)高速缓存区域880、以及存储器(ST)缓存区域890 JT高速缓存区域880临时保存写入数据、读取数据,并将其用于针对写入、读取存取的数据命中。ST缓冲区域890对由ST控制器400发送接收的数据、控制信息进行保存。
[0102]图12表示压缩储存设备600a内的存储区域的结构。
[0103]压缩储存设备600a内的存储区域包括RAM中的元数据区域910、高速缓存区域930以及缓冲区域940、和FM620中的数据区域950。元数据区域910对元数据进行保存并包括压缩管理表920。高速缓存区域930对临时的数据进行保存。缓冲区域940对由压缩储存设备600a发送接收的数据、控制信息进行保存。数据区域950对数据进行保存。此外,SD控制器610内的RAM611内的信息可以存在于所连接的FM620内。
[0104]图13表示存储器系统300内的存储区域的结构。
[0105]ST控制器400将物理设备内的存储区域分配给虚拟设备。物理设备可以是压缩储存设备600a(压缩SD)和非压缩储存设备(非压缩SD)的任意设备。ST控制器400利用多个虚拟设备而创建奇偶校验组。奇偶校验组可以是利用分别基于多个压缩储存设备600a的多个虚拟设备的压缩奇偶校验组、以及利用分别基于多个非压缩存储装置的多个虚拟设备的非压缩奇偶校验组中的任意奇偶校验组。ST控制器400利用存储池管理表820将奇偶校验组内的存储区域分配给存储池。ST控制器400利用虚拟卷管理表810将存储池内的存储区域分配给虚拟卷。在每个存储池中,可以存在压缩数据保存用的压缩存储池、以及未被压缩地保存的数据用的非压缩存储池。此外,压缩存储池例如可以通过由具有压缩功能的功能设备的存储区域构成的压缩奇偶校验组提供,向该存储池的保存可以为由与ST控制器400、ST控制器400连接的压缩机构压缩的结构。另外,虚拟卷中也可以存在写入的数据被压缩而保存于存储区域的压缩虚拟卷、以及写入的数据未被压缩而保存于存储区域的非压缩虚拟卷,这两种虚拟卷可以混在一起。ST控制器400向服务器100提供虚拟卷。
[0106]图14表示存储器系统300内的页面的结构。
[0107]奇偶校验组包括多个实际页面。虚拟卷包括多个虚拟页面。ST控制器400利用实际页面管理表860将实际页面分配给虚拟页面。通过使用压缩奇偶校验组,能够使分配给虚拟页面的实际页面的合计大小比物理设备的合计大小大。另外,ST控制器400能够对压缩奇偶校验组内的实际页面和非压缩奇偶校验组内的实际页面进行切换并分配给虚拟页面。由此,能够对有无压缩效果进行切换。另外,当使用压缩奇偶校验组时,还能够使分配给虚拟页面的实际页面的合计大小达到与物理设备的合计大小相同的大小,能够不增加FM620的容量地降低利用率,从而能够增长FM620的寿命。
[0108]图15表示虚拟卷管理表810。
[0109]虚拟卷管理表810包括针对每个虚拟卷的条目。与一个虚拟卷对应的条目包括卷编号(#)、卷容量、已分配容量、池编号(#)以及卷属性。卷编号是表示该虚拟卷的标识符。卷容量是该虚拟卷的容量。已分配容量是在该虚拟卷内被分配有实际页面的虚拟页面的合计大小。池编号是表示包括能够分配给该虚拟卷的实际页面的存储池的标识符。卷属性表示该虚拟卷中有无压缩。
[0110]图16表示存储池管理表820。
[0111]存储池管理表820包括针对每个存储池的条目。与一个存储池对应的条目包括池编号(#)、RAID(Redundant Arrays of Inexpensive Disks:磁盘阵列)组列表、池属性以及空闲虚拟页面数。池编号是表示该存储池的标识符。RAID组列表是表示该存储池中包含的RAID组的标识符。池属性表示用于该存储池的物理设备的种类。空闲虚拟页面数表示该存储池的空闲虚拟页面的数量。此外,在系统内如图13所示那样设置有压缩存储池和非压缩存储池的情况下,可以具有对压缩/非压缩的池属性进行保存的栏。
[0112]图17表示RAID组管理表830。
[0113]RAID组管理表830包括针对每个RAID组的条目。与一个RAID组对应的条目包括RAID组编号(#)、RAID级别以及物理设备编号(S)13RAID组编号是表示该RAID组的标识符。RAID级别表示该RAID组的RAID级别。物理设备编号是表示用于该RAID组的物理设备的标识符。
[0114]图18表示物理设备管理表840。
[0115]物理设备管理表840包括针对每个物理设备的条目。与一个物理设备对应的条目包括虚拟设备编号(#)、物理设备编号(#)、物理容量、逻辑使用容量以及物理使用容量。虚拟设备编号是表示被分配了该物理设备的虚拟设备的标识符。物理设备编号是表示该物理设备的标识符。物理容量是该物理设备的容量。逻辑使用容量是该虚拟设备的逻辑存储区域的使用量。物理使用容量是该物理设备的物理存储容量的使用量。
[0116]图19表示虚拟页面管理表850。
[0117]虚拟页面管理表850针对每个虚拟页面来创建。与一个虚拟页面对应的虚拟页面管理表850包括虚拟卷编号(#)、实际页面指针以及页面属性。虚拟卷编号是表示包含该虚拟页面在内的虚拟卷的标识符。实际页面指针是指向分配给该虚拟页面的实际页面的指针。页面属性表示该实际页面是对压缩数据进行保存还是对非压缩数据进行保存。在该图所示的两个虚拟页面管理表850中,上方的虚拟页面管理表850表示被分配了实际页面的虚拟页面,实际页面指针指向实际页面。下方的虚拟页面管理表850表示未被分配实际页面的虚拟页面,实际页面指针示出无(NULL)。
[0118]图20表示实际页面管理表860。
[0119]实际页面管理表860针对每个实际页面来创建。与一个实际页面对应的实际页面管理表860包括RAID组编号(#)、实际页面首部地址以及空闲页面指针。RAID组编号是表示包含该实际页面的RAID组的标识符。实际页面首部地址表示该RAID组中的该实际页面的首部地址。空闲页面指针在该实际页面是空闲实际页面的情况下指向下一个空闲实际页面的实际页面管理表860。
[0120]图21表示空闲实际页面管理表870。
[0121]空闲实际页面管理表870包括空闲页面管理指针。该空闲页面管理指针指向空闲页面的实际页面管理表860。连续的空闲页面的最后的空闲页面的实际页面管理表860内的空闲页面指针是指向空闲页面管理指针。
[0122]图22表示物理设备内的存储区域的结构。
[0123]压缩储存设备600a将压缩管理表920保存于RAM611或FM620。压缩储存设备600a的SD控制器610向ST控制器400提供存储区域的块单位的逻辑地址,并利用压缩管理表920对逻辑地址以块单位来分配实际地址。此处所示的块单位表示块存储的数据单位。压缩储存设备600a利用通过非压缩数据换算对多个数据块进行汇总而得到的单位(例如对多个
0.5kB的数据块容量进行汇总而得到8kB,此后作为压缩单位)判断可否压缩,在进行压缩的情况下以该单位将非压缩数据压缩为各个压缩单位。非压缩储存设备将实际地址管理表保存于RAM。非压缩储存设备的SD控制器610向ST控制器400提供每个数据块的逻辑地址,并利用实际地址管理表对逻辑地址分配数据块的实际地址。
[0124]图23表示压缩管理表920。
[0125]压缩管理表920在每个储存设备600中保存于储存设备600内的RAM611或FM620。在储存设备600为HDD的情况下,将压缩管理表920保存于HDD。作为其它方法,可以对多个储存设备600的压缩管理表920进行汇总,并保存于存储器控制器的ST内存410、或者存储器控制器的闪存来进行管理。
[0126]压缩管理表920包括压缩储存设备600a内的每个压缩单位的条目。与一个压缩单位对应的条目包括逻辑地址、实际地址、压缩标志、压缩后块数。逻辑地址表示该压缩数据的首部的逻辑地址。实际地址表示该压缩单位的首部的实际地址。压缩标志表示该压缩单位的数据是否被压缩。压缩后块数表示与将该非压缩数据压缩后的数据相关的块数。此处,将压缩单位内的数据块全部都是非压缩数据的情况下的压缩后块数设为最大块数,在压缩单位包含压缩数据块的情况下,压缩块数比最大块数小。即,在压缩单位内的数据块全部都是非压缩数据块的情况下,压缩后块数恒定,在压缩单位包含压缩块的情况下,压缩后块数可变。此外,在压缩后块数与最大块数相同或者多于最大块数的情况下,取代压缩数据而对非压缩数据进行保存,因此,在压缩后块数与最大块数相同的情况下,可以对非压缩数据进行保存,可以不具有表示该压缩单位的数据是否被压缩的压缩标志。图23中示出8KB的压缩单位变为8KB的压缩数据的情况,此时,通过压缩标志而判别该8KB是否为压缩数据。
[0127]图24表示ST控制器400从压缩储存设备600a获取压缩信息的第一动作。
[0128]压缩信息是与保存于压缩储存设备600a的对象数据的压缩相关的信息。ST控制器400向压缩储存设备600a发送用于获取对象数据的压缩信息的压缩信息请求。压缩储存设备600a根据压缩信息请求而从压缩管理表920读出对象数据的压缩信息,并向ST控制器400发送表示压缩信息的压缩信息响应。压缩信息示出对象数据的压缩状态。压缩信息请求包括:表示要求压缩信息的指令代码;该请求的标识符;压缩储存设备600a内的对象数据的逻辑地址即地址;以及作为对象数据的大小的请求大小。压缩信息响应包括:对应的压缩信息请求的标识符;包含对象数据在内的压缩单位组的压缩后的大小即压缩后整体大小;以及在对包含该对象数据在内的压缩单位组的首部的压缩单位进行解压时作为从该解压数据的首部至对象数据的首部的偏移量的首部偏移位置。并且,压缩信息响应在该压缩单位组内的每个压缩单位中包括:表示该压缩单位有无压缩的压缩有无标志;以及表示压缩后的该压缩单位内的块数的压缩后块数。此外,当ST控制器400在压缩后块数与压缩前块数相同的情况下判断为非压缩、且在压缩后块数与压缩前块数不同的情况下判断为压缩时,可以设为不需要压缩有无标志。
[0129]根据该动作,ST控制器400能够获取由压缩储存设备600a、SS连接机构200等ST控制器400以外的设备压缩的数据的压缩信息。另外,ST控制器400向SS系统内的其它部位传送压缩信息,从而,即使处于进行压缩的部位以外的部位,也能够获取解压所需的压缩信息。另外,ST控制器400将分散保存于多个压缩储存设备600a的压缩数据按照逻辑地址的顺序分别读出,并且从各压缩储存设备600a分别获取压缩信息,由此能够以将分散保存于压缩储存设备600a的压缩数据连续地向ST内存410保存的方式重新对这些压缩数据进行排列。此外,ST控制器400可以在重新排列中使用SGL,从而使它们逻辑地连续而并非物理地连续。由此,SS连接机构200能够从ST内存410按时序读取压缩数据。
[0130]图25表示ST控制器400从压缩储存设备600a获取压缩数据的动作。
[0131]压缩储存设备600a在对从ST控制器400接收到的数据进行压缩并保存的情况下,能够根据通常的读取请求对压缩数据进行解压而生成非压缩数据,并能够向ST控制器400发送非压缩数据。
[0132]此处,对如下的情况进行说明:ST控制器400向压缩储存设备600a发送压缩数据读取请求,该压缩数据读取请求用于保持压缩数据的状态不变地获取保存于压缩储存设备600a的对象数据。压缩储存设备600a与压缩数据读取请求对应地读出压缩数据,发送对象数据的压缩数据,且向ST控制器400发布表示其读出结果的压缩数据读取响应。压缩数据读取请求包括:指示将压缩数据保持压缩状态不变地进行读取的指令代码;该请求的标识符;压缩储存设备600a内的对象数据的逻辑地址即地址;以及对象数据的大小即请求大小。此夕卜,对象数据的大小利用通过前述的压缩信息读取而获取到的值。压缩数据读取响应包括:对应的压缩数据读取请求的标识符;与读取处理相关的状态;以及表示向ST控制器400传送的对象数据的大小的传送大小。
[0133]根据该动作,ST控制器400能够不利用压缩储存设备600a进行解压地获取对象数据的压缩数据。由此,能够削减压缩储存设备600a与ST控制器400之间的总线的频带使用量、以及ST控制器400内的频带使用量。
[0134]就获取压缩信息而言,除利用前述的压缩信息请求的方法以外,作为ST控制器400通过I次请求而获取压缩信息和压缩数据的方法,还可以采用如图26所示的第二动作那样在读取压缩数据时将压缩信息赋给压缩数据的首部或末尾而进行传送的方法、或者如图27所示的第三动作那样将压缩信息附加于读取压缩数据的响应的方法。在该情况下,不实施压缩信息的读取而仅实施压缩数据的读取,将压缩数据读取请求的对象数据大小设定为压缩前的数据大小。与该请求相应的压缩读取响应的对象数据的大小设定为压缩后的数据大小。ST控制器400在接收到压缩读取响应时从与压缩数据一起读出的压缩信息中获取压缩后数据大小,并将其与压缩读取响应的已传送大小进行比较,由此,即使在ST控制器400产生传送大小的下溢错误的情况下,也判断为已传送的数据是传送了与压缩后数据大小相当的量,并判断为正常传送。此外,此后虽实施解压DMA传送,但通过其中的保障码核查而判断最终的传送数据的匹配性。通过同时读出压缩数据和压缩信息、且不对压缩读取响应设定压缩信息,能够通过自动响应来实施压缩读取响应。另外,通过将获取压缩信息和获取压缩数据的请求集中于I次请求,来降低因请求数增加引起的性能开销。
[0135]图28表示解压DMA处理中的ST控制器400与SS连接机构200之间的动作。
[0136]ST控制器400能够对SS连接机构200发布指示解压DMA处理的解压DMA请求。解压DMA处理是如下的处理:从指定的内存将对象数据的压缩数据读出,对该压缩数据进行解压而生成非压缩数据,并向指定的内存写入该非压缩数据。例如,解压DMA处理从ST控制器400内的ST内存410读出对象数据的压缩数据,对该压缩数据进行解压而生成非压缩数据,并向服务器100内的SV内存110写入该非压缩数据。SS连接机构200基于解压DMA请求而读出ST内存410内的、表示与压缩数据相关的信息的SGL(Scatter/Gather List:分散/收集列表)SP压缩信息SGL。进而,SS连接机构200从由ST内存410内的压缩信息SGL表示的存储区域读出压缩数据。进而,SS连接机构200对压缩数据进行解压,并在向SV内存110写入非压缩数据之后向ST控制器400发布解压DMA响应。压缩信息SGL是在将分散保存于存储器系统300内的多个压缩数据读出至ST内存410的情况下,按顺序示出ST内存410内的多个压缩数据的地址、大小的列表。例如,在压缩数据保存于RAID组的情况下,将压缩数据分散保存于ST内存410内。SS连接机构200能够通过追询压缩信息SGL而时序地将压缩数据读出,按顺序对该压缩数据进行解压并将解压后的数据时序地向SV内存110写入。由此,与对分散保存的各部分进行解压传送的情况相比,能够提高性能。
[0137]解压DMA请求包括:表示解压DMA处理的指令代码;表示成为解压DMA请求的基础的来自服务器100的读取请求的标识符;对象数据的压缩等的参数;表示附加于对象数据的非压缩数据的保障码的非压缩保障码信息;表示附加于对象数据的压缩数据的保障码的压缩保障码信息;表示对象数据的非压缩数据的长度的非压缩传送长度;表示对象数据的非压缩数据的长度的非压缩传送长度;以及ST内存410内的压缩信息SGL的地址即SGL地址。此夕卜,可以取代SGL地址而直接指定数据的地址,也可以设定数据的地址和SGL地址双方。在仅设定了数据的地址的情况下,省略对压缩信息SGL的获取。
[0138]保障码是根据读取出的数据和该数据被保存的地址并通过CRC(CyclicRedundancy Check:循环冗赘核查)等保障码运算而计算出的值的期望值。在读取时,由于附加于非压缩数据的保障码被压缩,所以无法利用ST控制器400进行核查。因此,ST控制器400将保障码的核查所需的保障码信息包含于解压DMA请求等,并将其向SS连接机构200发送。由于由ST控制器400管理的地址有时与由服务器100指定的地址不同,所以将该由ST控制器400管理的地址包含于保障码信息中,且从ST控制器400向SS连接机构200发送。例如,在ST控制器400进行自动精简配置的情况下,存储池内的地址包含于保障码信息中。由此,SS连接机构200能够检查压缩数据及非压缩数据中是否存在错误、以及是否是从指定的地址读出了压缩数据。另外,在保障码附加于压缩数据的情况下,考虑将处理向硬件卸载而降低ST处理器420的负荷,ST处理器420通过解压DMA请求而向SS连接机构200交付期望值。
[0139]在压缩数据包含储存设备专用代码的情况下,SS连接机构200基于表示储存设备专用代码的位置的信息,从压缩数据将储存设备专用代码除去。表示储存设备专用代码的位置的信息可以包含于解压DMA请求内的参数中,也可以预先存储于SS连接机构200内的寄存器中。由此,即使在压缩储存设备600a对数据进行压缩并附加了储存设备专用代码的情况下,对于从压缩储存设备600a读出的压缩数据,SS连接机构200也能够从其中将储存设备专用代码除去并对其进行解压。此外,储存设备专用代码有可能附加于压缩数据和解压后数据的双方,在附加于双方的情况下,SS连接机构200分别进行双方的除去。
[0140]解压DMA响应包括:表示是解压DMA响应的指令代码;对应的解压DMA请求的标识符;与解压DMA处理相关的状态;表示向服务器100传送的非压缩数据的大小的非压缩传送大小;表示解压DMA处理中的错误的错误报告。根据该解压DMA响应,ST控制器400能够获知对象数据的非压缩数据。
[0141]进而,ST控制器400能够对SS连接机构200发布指示压缩DMA处理的压缩DMA请求。压缩DMA处理是如下的处理:从指定的存储器读出对象数据的非压缩数据,对该非压缩数据进行压缩而生成压缩数据,并向指定的内存写入该压缩数据。例如,压缩DMA处理从服务器100内的SV内存110读出对象数据的非压缩数据,对该非压缩数据进行压缩而生成压缩数据,并向ST控制器400内的ST内存410写入该压缩数据。
[0142]图29表示压缩信息SGL。
[0143]当在ST内存410内确保了保存对象数据的存储区域时,ST处理器420生成表示该存储区域的压缩信息SGL并将其保存于ST内存410内。还有时将ST内存410内的保存数据的区域划分为多个部位,压缩信息SGL可以针对上述多个地址而分别持有信息。压缩信息SGL包括:该压缩信息SGL的标识符;以及SGL信息,作为与该压缩信息SGL相关的信息,该SGL信息表示该压缩信息SGL内存在几个有效的地址、是否不存在下一个SGL而是末端的SGL、在存在下一个SGL的情况下该下一个SGL地址有效等。压缩信息SGL还包括对象数据内的每个传送数据(i)的传送数据信息(i)(i为0、1、::)。传送数据信息(i)包括:ST内存410内的该压缩信息(i)的地址(i);表示与该地址(i)对应的传送数据(i)的压缩数据大小的传送大小(i);表示构成与该地址(i)对应的传送数据(i)的每个压缩单位有无压缩的压缩有无标志(i);以及表示针对传送数据(i)内的每个压缩单位通过压缩而变为几个数据块的压缩后块数(i)。在前述的SGL信息中设定为下一个压缩信息SGL连续的情况下,该压缩信息SGL还包括下一个压缩信息SGL的地址即后续SGL地址。另外,压缩信息SGL包括用于对压缩信息SGL内的各字段进行核查的SGL字段核查码。此外,针对每个压缩单位存在有无压缩两种情况,在无法压缩的情况下可以对与压缩单位相同的块数进行保存,在未能压缩的情况下,可以对比压缩单位少的块数进行保存,并将压缩有无标志省略。另外,传送大小根据压缩后块数来计算,所以可以将其省略。并且,此处示出的压缩信息SGL为一例,可以搭载通过前述的压缩信息的获取而获取到的首部偏移位置等其他与压缩有关的信息。
[0144]由此,在读取处理中,即使ST处理器420在为了对来自压缩储存设备600a的对象数据进行保存而在ST内存410内无法确保连续的存储区域的情况下,通过SS连接机构200追询压缩信息SGL,也能够从ST内存410按时序读出对象数据。
[0145]此外,解压DMA请求可以包括压缩信息SGL的内容以取代SGL地址。另外,可以将解压DMA请求的大小扩大、或者将请求连结在一起而载入很多信息,可以不使用SGL而是将压缩信息SGL的内容载入解压DMA请求。另外,可以分为解压DMA请求和SGL双方来对压缩信息进行搭载。
[0146]另外,当在SV内存110内确保了保存对象数据的存储区域时,SV处理器120生成表示该存储区域的SGLS卩服务器SGL,并保存于SV内存110内。服务器SGL构成为包括:该服务器SGL的标识符;由该SGL内的有效的地址数、是否存在后续SGL的标志、以及该SGL是否为末端的标志等构成的SGL信息;服务器100侧的保存目的地地址;以及传送大小。保存目的地地址和传送大小可以与压缩信息SGL同样地保存有多个。另外,可以包括后续SGL地址、SGL字段的核查码。还可以包括与其它传送目的地相关的信息。
[0147]在写入处理中,即使在为了保存对象数据而无法在SV内存110内确保连续的存储区域的情况下,通过SS连接机构200追询服务器SGL,SV处理器120也能够从SV内存110按时序读出对象数据。
[0148]图30表示数据格式。
[0149]该图示出压缩数据格式与非压缩数据格式的关系。压缩数据以该形式保存于压缩储存设备600a。例如,压缩数据保持该形式不变地被从压缩储存设备600a向ST控制器400读出,并被从ST控制器400向SS连接机构200读出。SS连接机构200通过对压缩数据进行解压而生成非压缩数据。作为压缩数据格式,存在第一压缩数据格式、第二压缩数据格式、第三压缩数据格式,作为非压缩数据格式,存在第一非压缩数据格式、第二非压缩数据格式等。此夕卜,压缩数据格式与非压缩数据格式的组合可以设为记载的对应关系以外的组合。另外,此处所示的格式为一例,只要规定了压缩数据格式与非压缩数据格式的对应关系即可,也可以设为其它格式。
[0150]在第一非压缩数据格式中,压缩数据包括多个压缩数据块。压缩数据块为压缩单位。在各压缩数据块之后附加有该压缩数据块的保障码。若对压缩数据块进行解压,则变为多个数据块。数据块为块。在各数据块之后附加有该数据块的保障码。
[0151]在对来自ST控制器400的数据进行压缩并保存的情况下,压缩储存设备600a将压缩数据分散写入多个FM620,因此有时将固有的CRC、FM620内的表示地址的储存设备专用代码附加于压缩储存设备600a。在该情况下,使用第二非压缩数据格式。在第二非压缩数据格式中,在各数据块之后附加有该数据块的保障码,在该保障码之后附加有储存设备专用代码(专用代码)。此外,此处所示的专用代码是指为了储存设备600本身专用而附加的单独的代码,例如,相当于储存设备600生成并附加的保障码等。在SS连接机构200对压缩数据进行解压的情况下,从非压缩数据将储存设备专用代码除去而向服务器100传送。另外,如第三非压缩数据格式那样,有时对于压缩数据也附加储存设备专用代码,在该情况下,也同样在SS连接机构200对压缩数据进行解压之前将储存设备专用代码除去,然后再实施解压处理。
[0152]以下,对服务器100将压缩储存设备600a内的压缩数据作为对象数据而将对象数据读出的读取处理进行说明。在本实施例中,在DMA处理中,SS连接机构负责解压处理,从而能够进行作为服务器存储器之间的内存之间的数据直接传送处理的一环的、数据的解压处理。
[0153]在本实施例中,通过在服务器100与存储器系统300之间设置SS连接机构200,使服务器100侧与存储器系统300侧增加的处理减少、并实现压缩数据的解压处理。通过该结构,能够在内存之间直接进行数据的交接过程中降低处理数据量。因而,能够实现服务器存储器之间的频带的有效利用。
[0154]图31表示SS系统的读取处理中的第一处理,图32表示SS系统的读取处理中的紧随第一处理之后的第二处理。这些图表示如下单元的动作:服务器100内的SV处理器120、SS连接机构200内的IF处理器210、ST控制器400内的ST处理器420、以及压缩储存设备600a内的SD处理器612。此处,对由SS连接机构200进行对象数据的解压处理的情况下的读取处理进行说明。
[0155]在SlllO中,服务器100内的SV处理器120在SV内存110内准备与读取大小相应的SV内存110区域来作为对读取的数据进行保存的存储区域。此处,SV处理器120生成作为表示SV区域的SGL的服务器SGL并向SV内存110保存。在S1120中,SV处理器120生成读取请求并向SS连接机构200发送。读取请求表示虚拟卷以及该虚拟卷内的虚拟页面,其中,所述虚拟卷以及虚拟页面表示保存对象数据的存储区域。
[0156]在S1130中,SS连接机构200内的IF处理器210执行对来自SV处理器120的被排队的读取请求进行解析的读取请求处理。在S1140中,IF处理器210生成基于解析结果的读取请求并向ST控制器400发布。此外,为了与从SV处理器120向IF处理器210的读取请求进行区另IJ,有时将从IF处理器210向ST控制器400的读取请求称为读取指令。发送目的地是具有对特定的对象数据进行保存的存储区域的所有权的ST控制器400及ST处理器。在S1150中,IF处理器210执行用于获取服务器SGL的服务器SGL处理。在S1160中,IF处理器210从服务器100接收服务器SGL。在S1170中,IF处理器210将接收到的服务器SGL保存于内部记忆体。此夕卜,可以将搭载于SGL的地址信息、长度信息载入读取请求中,在无法完全载入读取请求的情况下,可以使剩余的信息形成为SGL的形式。
[0157]在S1210中,ST控制器400内的ST处理器420执行对来自IF处理器210的被排队的读取请求进行解析的读取请求处理。此处,ST处理器420基于虚拟卷管理表810、存储池管理表820、RAID组管理表830、物理设备管理表840、虚拟页面管理表850以及实际页面管理表860,并根据读取请求而确定保存对象数据的压缩储存设备600a、以及该压缩储存设备600a内的存储区域的逻辑地址。在S1220中,ST处理器420判断是否进行解压DMA处理(压缩判断)。在判断为对象数据满足预先规定的判断基准的情况下,在S1230中,ST处理器420将要求对象数据的压缩信息的压缩信息请求向压缩储存设备600a发送。压缩判断中还包括ST控制器400内的高速缓存中是否存储有对象数据的判断。后文中对高速缓存判断进行说明。此外,可以在压缩判断(S1220)之后使处理向S1420转移(图中的虚线的箭头),以非压缩数据的大小进行数据保存区域的确保,并仅通过压缩数据读取请求而获取压缩信息和压缩数据的双方。在该情况下,压缩储存设备600a的SD处理器612在接收到压缩读取请求之后(S1430之后)实施压缩信息的获取等处理(S1320?S1360、图中的虚线的框内)。此外,可以设想压缩数据读取请求的要求,使压缩储存设备600a实施先读处理。
[0158]在SI310中,压缩储存设备600a内的SD处理器612执行对来自ST处理器420的被排队的压缩信息请求进行解析的压缩信息请求处理。在S1320中,SD处理器612从RAM内的压缩管理表920获取对象数据的压缩信息。在S1330中,SD处理器612对对象数据的压缩数据的大小即压缩后整体大小进行计算。在S1340中,SD处理器612向ST处理器420发送包含对象数据的压缩信息的压缩信息响应。在S1350中,SD处理器612从FM620读出对象数据的压缩数据,并将压缩数据向RAM内的存储区域即SD区域保存。在S1360中,SD处理器612基于压缩信息而对RAM内的压缩数据进行重新排列。
[0159]在S1410中,ST处理器420执行对来自SD处理器612的被排队的压缩信息响应进行解析的压缩信息响应处理。在S1420中,ST处理器420在ST内存410内,确保用于基于压缩信息响应而对压缩数据进行保存的、ST内存410内的存储区域即ST区域(确保数据保存区域)。在S1430中,ST处理器420将压缩数据读取请求向SD处理器612发送。在S1440中,ST处理器420生成表示ST区域的压缩信息SGL并将其向ST内存410保存。
[0160]在S1510中,SD处理器612从ST处理器420基于被排队的压缩数据读取请求而从RAM读出压缩数据,并使处理向S1520(图中的A)转移。在S1520中,SD处理器612将读出的压缩数据保持压缩数据不变地向ST控制器400的ST区域传送。在S1530中,SD处理器612向ST处理器420发送表示压缩数据读取请求的结果的压缩数据读取响应。在S1540中,SD处理器612将RAM内的SD区域释放并完成读取处理。此外,RAM内的SD区域的释放是指,考虑再传送且在解压DMA响应返回之后根据ST处理器420的指示来进行释放。或者,可以设置计时器,并在经过规定时间之后释放。
[0161]ST处理器420在通过压缩判断S1220而判断为不实施解压DMA的情况下,实施通常的读取传送,在S1420中以非压缩的数据大小而确保数据保存区域,并在S1430中发送通常读取请求。然后,ST处理器420针对读出至ST内存410的数据而在S1620中实施通常的读取传送的DMA请求。在该情况下,不执行压缩信息请求S1230、压缩信息请求处理S1310、压缩后整体大小计算S1330、压缩信息响应S1340、压缩信息响应处理S1410。在判断为不进行解压DMA传送的数据是在储存设备600中被压缩的数据的情况下,成为不包含保持压缩状态不变地将压缩数据读取请求S1430读出的主旨的指示在内的通常的读取请求,接收到该读取请求的储存设备600在储存设备600内实施压缩信息的获取S1320、从FM的压缩数据的读出和DRAM保存S1350、压缩数据重新排列S1360,对通过储存设备600的解压功能(压缩/解压设备614)而解压后的数据实施通常读取处理以取代压缩读取处理S1510,进行通常数据保存以取代压缩数据保存S1520,并使通常读取响应返回至ST处理器420以取代压缩读取响应S1530o
[0162]此外,对储存设备600不具有压缩功能而将在储存设备600外压缩了的数据保存于储存设备600的情况进行说明。作为例子,将压缩数据保存于作为不具有压缩功能的储存设备600的HDD的情况等与此对应。此外,存储器系统300预先针对所连接的每个储存设备而掌握其有无压缩解压功能。另外,在无法掌握的情况下,设为能够从存储器系统300的管理装置进行设定、或者ST处理器420向储存设备访问而确认有无压缩解压功能。ST处理器420不对储存设备600执行压缩信息请求(S1320)等,ST处理器420从在压缩判断(S1220)之后保存有压缩信息的存储区域读出压缩信息,并将处理向确保数据保存区域(S1420)推进(图中的虚线的箭头)。作为压缩信息的保存场所而考虑ST内存410、或者搭载于ST控制器400的闪存、抑或储存设备600等。ST处理器420在获取到压缩信息之后进行压缩信息SGL的生成(S1440),并在将压缩数据向ST控制器400侧读出(S1430?S1610)之后对SS连接机构200发送解压DMA传送请求(S1620)。此外,在未进行解压DMA的情况下,在ST处理器420从储存设备600将数据读出(S1430?S1610)之后,在读出的数据为压缩数据的情况下,利用ST处理器420、或者搭载于ST控制器400的解压硬件对压缩数据进行解压,然后通过通常的非压缩数据的DMA传送对数据进行传送以取代S1620的解压DMA请求。若在读出的数据为非压缩数据的情况下,保持原样地取代S1620的解压DMA请求而通过通常的非压缩数据的DMA传送对数据进行传送。此外,在读出的数据为非压缩数据的情况下,当从储存设备600向ST控制器400读出数据时,有时在储存设备600内对压缩数据进行解压,有时数据在储存设备600内未被压缩。
[0163]此外,ST处理器420可以使用SS连接机构200内的解压DMA作为解压硬件而临时将压缩数据从ST控制器400读出至SS连接机构200并对其进行解压,在回写至ST控制器400之后,取代S1620的解压DMA请求而发送通常的DMA请求。ST处理器420在通常DMA请求之前从ST内存410区域进行SGL的生成,并在将非压缩数据向ST控制器400侧读出之后对SS连接机构200发送DMA传送请求。
[0164]在S1610中,ST处理器420执行对来自SD处理器612的被排队的压缩数据读取响应进行解析的压缩数据读取响应处理。在S1620中,ST处理器420向IF处理器210发送解压DMA请求。此时,使DMA请求或者压缩信息SGL中包含压缩前的数据长度和压缩后的数据容量,由此,SS连接机构200能够从ST控制器400读出与压缩后的数据大小相应的数据,并能够判断是否与来自服务器100的要求大小相应的解压DMA传送是否完成了。
[0165]在S1710中,IF处理器210执行对来自ST处理器420的被排队的解压DMA请求进行解析的解压DMA请求处理。在S1720中,IF处理器210根据需要而获取ST内存410内的压缩信息SGL。在S1730中,IF处理器210使DMA控制器220的解压DMA处理启动。在S1740中,DMA控制器220基于来自IF处理器210的指示而进行解压DMA处理,由此将保存于ST控制器400内的ST区域的压缩数据读出并对其进行解压,并将所获得的非压缩数据向服务器100内的SV区域写入。在S1750中,IF处理器210从DMA控制器220接收解压DMA处理完毕的通知。在S1760中,IF处理器210在正常传送结束的情况下利用自动响应而向SV处理器120发送读取响应。
[0166]在S1810中,SV处理器120根据来自IF处理器210的被排队的读取响应而完成读取处理。
[0167]在S1770中,IF处理器210向ST处理器420发送针对解压DMA请求的解压DMA响应。在S1910中,ST处理器420执行对来自IF处理器210的被排队的解压DMA响应进行解析的解压DMA响应处理。在S1920中,ST处理器420将ST区域释放。在S1930中,ST处理器420完成读取处理。
[0168]根据以上读取处理,ST控制器400使SS连接机构200进行压缩数据的解压,由此能够削减从压缩储存设备600a至SS连接机构200的路径的频带的使用量,从而能够提高SS系统的1性能。
[0169]如前所述,在读取处理中,ST处理器420在从IF处理器210接收到读取请求的时间点(S1220)判断是否进行解压DMA处理。由于在存储器系统300侧进行解压DMA判断,从而无需服务器100侧的压缩信息管理、解压处理。并且,由于在存储器系统300侧对压缩信息进行管理,从而即使在多个服务器100之间不进行压缩信息的传送也能够作为共享存储器而在服务器100之间共享压缩数据。此外,通过在存储器侧与I/O联动地进行解压DMA判断,能够基于与I/O容量、ST内存410的命中/未命中判断信息等I/O的特性相关的信息而针对每个I/O判断是否实施解压DMA传送。另外,进而在对解压DMA传送进行判断之后,ST处理器420可以在从SD处理器612接收到压缩数据读取响应的时间点(S1610)再次根据储存设备600的响应而判断是否进行解压DMA处理。在判断为进行解压DMA处理的情况下,SS连接机构200如前述的读取处理所示那样进行解压DMA处理。在判断为不进行解压DMA处理的情况下,SS连接机构200进行将ST控制器400内的非压缩数据向服务器100传送的通常DMA处理。在进行通常DMA处理的情况下,可以是压缩储存设备600a对对象数据的压缩数据进行解压并将解压后的数据向ST控制器400传送,ST控制器400对非压缩数据进行保存,也可以是压缩储存设备600a将对象数据的压缩数据向ST控制器400传送,ST控制器400对非压缩数据进行解压保存。以下,对作为判断为ST处理器420进行解压DMA处理的压缩判断(S1220)的条件的例子的RO?R13进行说明。此外,可以将RO?R13的多个条件同时用于压缩判断。
[0170](RO)当对象数据在ST控制器400中实现了高速缓存命中时,在作为对象的实现了高速缓存命中的数据为压缩数据的情况下,ST处理器420对该数据实施解压DMA处理。在实现了高速缓存命中的对象数据为非压缩数据的情况下,实施通常DMA处理。在对象数据出现高速缓存未命中的情况下,ST处理器420在读取请求满足下述其它条件时实施解压DMA处理。这样,通过进行命中/未命中判断,在针对基于读取请求的传送中的压缩数据而存在写入请求的情况下,ST处理器420能够进行排他控制。例如,在读取传送之后,ST处理器420将高速缓存区域上的压缩数据删除,对保存于物理设备的压缩数据进行解压,并对该数据实施写入。由此,能够防止写入与读取的冲突,且能够应对解压DMA处理时的写入处理。
[0171](Rl)当对象数据在ST控制器400中出现高速缓存未命中时、且当对象数据的虚拟页面或者池属性抑或虚拟卷具有压缩属性时、且当向具有解压功能的服务器100或者具有解压功能的外接存储器传送压缩后的对象数据时,判断为ST处理器420进行解压DMA处理。外接存储器是与ST控制器400连接且由ST控制器400控制的存储器系统300。利用SS连接机构200对保存于储存设备600内的压缩数据进行解压并将解压后的数据向服务器100传送,由此能够呈现出存储器系统300内的总线、与存储器系统300以及SS连接机构200之间的总线的较宽的频带,从而能够缩短这些总线中的传送时间。
[0172](R2)针对具有预先规定的大小的每个压缩单位进行数据的压缩/解压。因而,针对压缩单位以下的数据大小的读取要求,有时会因设为压缩单位而包含多余的数据,从非压缩数据角度来看,读出的量变多。因而,负荷可能与该不需要的数据的读出相应地升高,成为导致系统的性能无法提高的主要原因。因此,可以在根据读取请求而指定的非压缩时的数据容量为规定值以下时判断为ST处理器420不实施解压传送。当非压缩时的数据容量为规定值以上时,由于不需要的数据的读出量相对于读出数据的量变小,所以无法充分体现解压DMA传送的效果,从而ST处理器420进行实施解压DMA传送的判断。此外,即使压缩后的大小中包含不需要的数据,若规定值与压缩单位相比足够小,则也体现出解压DMA传送的效果,但是,通过进行获取压缩率且进行判断的开销而特别是将该规定值设定为压缩单位的容量,能够不等待储存设备600或者ST内存410中所具有的压缩信息的读出便进行传送处理,因此能够使传送处理实现高速化。
[0173](R3)ST处理器420将读取请求的指令履历保存于ST内存410,并基于指令履历而对读取请求的时序性进行判断。在判断为读取请求为时序读取、且对象数据的存储区域具有条件Rl的压缩属性的情况下,对解压DMA处理进行判断。通过相当于时序读取实施解压DMA处理,能够将储存设备600与ST控制器400之间的总线、ST控制器400内的总线、ST控制器400与SS连接机构200之间的总线、以及SS连接机构200与服务器100之间的总线的处理延迟隐藏,从而能够充分使用各传送路的频带。
[0174](R4)在将对象数据的压缩数据高速缓存于ST控制器400、且ST处理器420将该数据判断为是读取请求之后的写入数据的情况下,判断为具有时序性,进而在对象数据的存储区域具有条件Rl的压缩属性的情况下,ST处理器420实施解压DMA处理。由此,若使之后的数据在某种程度上转储至高速缓存区域或缓存区域,则ST处理器420考虑接下来利用该数据的可能性,判断为时序读取访问,并根据与条件R3同样的理由而实施解压DMA处理。
[0175](R5)在读取请求是向具有条件Rl的压缩属性的存储区域的访问、且对象数据的访问频率低的情况下,由于高速缓存的必要性低,因此ST处理器420判断为可以不预先保存解压后的数据,并实施解压DMA处理。由此,ST处理器420判断为可以不预先使访问频率低的数据转储至ST控制器400的高速缓存区域而是使其立即消失,并实施解压DMA处理。当解压DMA处理的对象数据被压缩、且在ST控制器400的高速缓存区域中实现了高速缓存命中时,覆写成本高,因此,在大多情况下,优选ST处理器420尽量对访问频率低且具有时序性的数据进行解压DMA处理,对访问频率高的数据进行解压并将解压后的数据保存于ST控制器400的高速缓存区域,因而,ST处理器420实施通常DMA处理。
[0176](R6)在ST控制器400具有带压缩解压功能高速缓存、且对象数据经由该高速缓存而被读取的情况下,ST处理器420通过实施解压DMA处理而保持压缩的状态不变地将该数据向SS连接机构200传送。在该情况下,即使将压缩数据保存于高速缓存,在存在向压缩数据的写入等的情况下,高速缓存也能够对压缩数据进行解压,因此保持压缩数据的状态不变地实施传送。
[0177](R7)在对象数据的非压缩数据在ST控制器400中实现了高速缓存命中、且该高速缓存是带压缩解压功能的高速缓存的情况下,ST处理器420判断为进行解压DMA传送,并在高速缓存对对象数据进行压缩之后通过SS连接机构200的解压DMA处理而实施压缩数据的传送,由此能够使频带实现宽带化。
[0178](R8)在服务器100具有带压缩解压功能存储器、且从ST控制器400的传送目的地是带压缩解压功能存储器的情况下,ST处理器420实施通常DMA处理。若利用带压缩解压功能存储器实施解压,则能够使SS连接机构200与带压缩解压功能内存之间的总线实现宽带化。
[0179](R9)在将对象数据从ST控制器400向其它ST控制器400传送的情况下、且在传送目的地的ST控制器400不具有压缩解压功能的情况下,ST处理器420实施解压DMA处理。在传送目的地的ST控制器400具有压缩解压功能的情况下,保持压缩数据的状态不变地进行传送。在传送目的地的ST控制器400不具有压缩解压功能的情况下,无法对传送来的压缩数据进行解压。
[0180](RlO)当对对象数据的压缩数据进行保存的压缩储存设备600a的负荷高时,ST处理器420将传送时的解压向解压DMA处理卸载。在具有多个SS连接机构200的情况下,ST处理器420基于SS连接机构200的1的平衡而进行解压DMA处理的负荷分散。
[0181](Rll)当ST控制器400具有压缩解压功能、且该ST控制器400的负荷高时,ST处理器420将传送时的解压向解压DMA卸载。其它动作与条件RlO相同。
[0182](R12)在ST处理器420基于来自服务器100的提示信息而判断向对象数据的访问的时序性的情况下,ST处理器420实施解压DMA处理。提示信息是服务器100进行压缩及解压的情况下的、与基于服务器100的压缩及解压相关的信息。该方法是为了获得与条件Rl同样的效果而对时序性进行判断的方法之一。
[0183](R13)当在ST控制器400内的高速缓存中不存在废数据时,由于写入并不冲突,因此ST处理器420判断为进行解压DMA处理。在解压DMA处理中或者在解压DMA处理之后,若保存于高速缓存区域或缓存区域的数据未被解压过一次则无法被覆写等,因此ST处理器420将这种数据从解压DMA处理的对象中排除。
[0184]此处,对在读取处理中利用DMA控制器220进行的解压DMA处理(SI 740)进行说明。
[0185]图33表示基于SS连接机构200的解压DMA处理中的第一处理,图34表示基于SS连接机构200的解压DMA处理中的紧随第一处理之后的第二处理。
[0186]若SS连接机构200的DMA控制器220从ST控制器400接收到解压DMA请求,则执行解压DMA处理。
[0187]在S2110中,DMA控制器220对解压DMA请求进行解析,并确定传送源和传送目的地的地址。此外,从设定于解压DMA请求的地址(数据地址)或者压缩信息SGL中获取传送源的地址。关于传送目的地的地址,当接收到来自服务器100的读取请求时,SS连接机构200使读取请求内的传送目的地的地址与读取请求的标识符对应地进行保存,并利用管理的读取请求中所包含的地址信息或者服务器SGL中所包含的地址信息。在S2120中,DMA控制器220根据需要而获取压缩信息SGL,并从压缩信息SGL获取压缩信息。
[0188]在S2130中,DMA控制器220对包含对象数据在内的压缩单位组一边进行解压一边进行传送,从解压后的数据容量中减去首部偏移位置之后的容量成为由解压DMA请求指定的传送大小,直至DMA传送全部完毕为止,从解压DMA处理的对象数据中按顺序选择对象压缩单位并反复执行S2130?S2240。
[0189]在S2140中,DMA控制器220判断是否存在对象压缩单位的压缩数据的保障码。在判断为不存在压缩数据的保障码的情况下(S2140:否),DMA控制器220使处理向S2160转移。在判断为存在压缩数据的保障码的情况下(S2140:是),在S2150中,DMA控制器220执行对压缩数据的保障码进行核查的压缩数据核查处理,将保障码删除并使处理向S2160转移。
[0190]在S2160中,DMA控制器220判断对象压缩单位是否被压缩。在判断为对象压缩单位未被压缩的情况下(S2160:否),DMA控制器220使处理向S2180转移。在判断为对象压缩单位被压缩的情况下(S2160:是),将储存设备专用代码附加于压缩数据,在解压时需要在除去之后进行解压的情况下,将专用代码除去。在S2170中,DMA控制器220进行对象压缩单位的解压处理,从而由对象压缩单位的压缩数据生成非压缩数据,并使处理向S2180转移。
[0191]在S2180中,DMA控制器220判断是否存在通过解压处理而生成的解压后的非压缩数据的保障码。在判断为不存在非压缩数据的保障码的情况下(S2180:否),DMA控制器220使处理向S2210(图中的A)转移。在判断为存在非压缩数据的保障码的情况下(S2180:是),在S2190中,DMA控制器220执行对非压缩数据的保障码进行核查的非压缩数据核查处理,将保障码删除并使处理向S2210(图中的A)转移。
[0192]在S2210中,DMA控制器220判断是否对该对象压缩单位设定了首部偏移位置、即是否包含未传送的数据。在判断为对象压缩单位不满足数据选择条件的情况下(S2210:否),DMA控制器220使处理向S2230转移。此处,数据选择条件是指对对象压缩单位设定首部偏移位置并包含未传送的数据。在判断为对象块不满足数据选择条件的情况下(S2210:是),即在对对象压缩单位设定了首部偏移位置、且包含未传送的数据的情况下,在S2220中,DMA控制器220使传送开始位置仅从对对象压缩单位进行解压后的数据的首部移动首部偏移位置的量,不传送与首部偏移位置相应的数据,对首部偏移位置之后的数据进行传送,并使处理向S2230转移。由此,即使在解压后的非压缩数据的一部分是对象数据的情况下,DMA控制器220也能够仅对对象数据进行传送。
[0193]在S2230中,DMA控制器220将对象压缩单位的数据保存于传送目的地。在S2240中,DMA控制器220使对象压缩单位的传送开始位置的地址仅增加传送来的大小,并判断与传送大小相应的传送是否已完毕。在判断为传送未完毕的情况下(S2240:否),DMA控制器220使处理向S2130(图中的B)转移。在判断为传送已完毕的情况下(S2240:是),在S2250中,DMA控制器220向ST控制器400通知解压DMA处理已正常结束的主旨的通知,并使该流程结束。
[0194]即使在保障码未附加于压缩数据、且保障码仅附加于压缩前的非压缩数据的情况下、且在保障码不一致的情况下,为了确定错误产生部位,DMA控制器220也通过相同的路径对解压后的数据进行传送来确定错误的产生部位。
[0195]此外,在S2220中,在解压后的非压缩数据的一部分是对象数据的情况下,SS连接机构200从非压缩数据提取对象数据,但也可以是ST控制器400从非压缩数据提取对象数据。此处,向带压缩解压功能FM的高速缓存区域或者ST内存410的高速缓存区域传送压缩储存设备600a内的对象数据的压缩数据。然后,ST处理器420利用带压缩解压功能闪存的硬件或者ST处理器420的软件对压缩数据进行解压而生成非压缩数据,并从非压缩数据提取对象数据。然后,ST处理器420利用带压缩解压功能闪存的硬件或者ST处理器420的软件对提取出的对象数据进行压缩而使其转换为压缩数据,并向高速缓存区域保存该压缩数据。由此,能够降低ST控制器400的高速缓存区域与SV内存110之间的总线的频带的使用率,从而能够提尚读取性能。
[0196]根据以上的解压DMA处理,通过掌握I/O特性的存储器系统300侧的判断,能够根据状况而从ST控制器400向服务器100传送压缩数据。并且,由DMA控制器220实现了数据的解压,从而不会使服务器100侧的SV处理器120的负荷增大。特别是在DMA控制器220设置于服务器100侧的情况下,能够读出ST控制器/服务器之间的频带以上的数据,能够实现对频带的有效利用。例如,在大规模数据分析系统中,当为了进行分析而将数据从存储器读出时,若ST控制器/服务器之间的读取频带狭窄,则分析服务器的分析处理用的处理器的利用效率下降而导致分析处理时间增加。根据本系统,由于削减了读出的数据量,因此能够使读取频带实现宽带化,因读出时间缩短而能够实现分析处理的时间的缩短。
[0197]另外,根据本实施例的结构,能够核查压缩数据及非压缩数据是否正常(解压成功)。另外,即使在从作为压缩单位的数据块的中途对ST内存410内的对象数据进行保存的情况下,也能够仅将对象数据传送给SV内存110。
[0198]此处,对在解压DMA处理中基于压缩数据核查处理(S2150)以及非压缩数据核查处理(S2190)的结果而进行的保障码核查处理进行说明。
[0199]图35表示解压DMA处理中的保障码核查处理中的第一处理,图36表示解压DMA处理中的保障码核查处理中的紧随第一处理之后的第二处理,图37表示解压DMA处理中的保障码核查处理中的紧随第二处理之后的第三处理。
[0200]在解压DMA处理中,在S2310中,SS连接机构200的IF处理器210与压缩数据核查处理相应地判断压缩数据的保障码中是否存在错误。在判断为压缩数据的保障码中不存在错误的情况下(S2310:否),IF处理器210使处理向S2510转移。此外,即使在保障码未附加于压缩数据的情况下,也设为与压缩数据的保障码中不存在错误时相同的流程。
[0201]在判断为压缩数据的保障码中存在错误的情况下(S2310:是),在S2320中,IF处理器210将表示在压缩数据的保障码中产生了错误的信息设定于解压DMA响应。在S2330中,IF处理器210将解压DMA响应发送至ST处理器420。
[0202]在S2340中,ST处理器420判断DMA控制器220是否出现故障。对故障的判断,通过是否存在来自DMA控制器220的DMA控制器220内部产生错误的通知来判断。在存在DMA控制器220的故障的通知的情况下(S2340:是),在S2350中,ST处理器420对DMA控制器故障进行判断并使该流程结束。此外,在即使DMA控制器220出现故障也不发送内部产生错误的通知的情况下,ST处理器420无法判断DMA控制器有无故障,因此在本判断中进入无故障通知的流程。另外,故障通知可以作为DMA控制器220的内部错误而包含在解压DMA响应中。
[0203]在判断为不存在DMA控制器220的故障的通知的情况下(S2350:否),怀疑存储器控制器的控制软件的错误,在S2360中,ST处理器420根据预先设定的错误的主要原因和针对该主要原因而定义的处理来决定闭塞等今后的动作,并使该流程结束。此外,可以进行再传送等,并可以在错误次数超过阈值的情况下进行闭塞。
[0204]在S2510中,IF处理器210判断解压后的非压缩数据的保障码中是否存在错误。在判断为非压缩数据的保障码中不存在错误的情况下(S2510:否),IF处理器210使该流程结束。
[0205]在判断为非压缩数据的保障码中存在错误的情况下(S2510:是),在S2520中,IF处理器210将表示非压缩数据的保障码中产生了错误的信息设定于解压DMA响应。在S2530中,IF处理器210将解压DMA响应发送至ST处理器420。
[0206]在S2540中,ST处理器420判断DMA控制器220是否出现了故障。对于判断,通过与前述的压缩数据的保障码相同的方法进行判断。在存在DMA控制器220出现故障的通知的情况下(S2550:是),在S2550中,ST处理器420对DMA控制器故障进行判断,并使该流程结束。
[0207]在不存在DMA控制器220出现故障的通知的情况下(S2550:否),在S2560中,ST处理器420判断是否存在压缩数据的保障码。在存在压缩数据的保障码的情况下(S2560:是),在S2570中,ST处理器420例如能够根据储存设备600与ST控制器400之间的保障码核查结果、以及ST控制器400与SS连接机构200之间的保障码核查结果而进行产生错误部位的检索,根据检索结果并基于预先设定的错误的主要原因和针对该主要原因而定义的处理来决定闭塞等今后的动作,并使该流程结束。在不存在压缩数据的保障码的情况下(S2560:否),由于未进行储存设备600与ST控制器400之间的保障码核查,因此难以确定在储存设备600与ST控制器400之间或者ST控制器400与SS连接机构200之间的哪处部位产生错误,因而,在S2610中,ST处理器420向错误核查强化模式转移(图中的B)。此外,此处ST处理器420可以不向错误核查强化模式转移,而是根据预先设定的错误的主要原因和针对该主要原因而定义的处理来决定闭塞等今后的动作,并使该流程结束。在S2620中,ST处理器420判断在储存设备600中产生错误的可能性。在S2630中,ST处理器420确保对象数据的非压缩数据的容量中的、未收纳于ST区域中的容量的区域且将其追加至ST区域中,并制作表示ST区域的SGL。在S2640中,ST处理器420将保存于压缩储存设备600a的对象数据的压缩数据的解压和传送委托给压缩储存设备600a,并在传送路径中进行错误核查。通过对解压后的数据进行传送,能够利用解压后的数据的保障码而进行与将保障码附加于压缩数据时相同的核查,能够实现错误产生部位的区分。在S2650中,ST处理器420确定错误产生部位。此处,即使在无法确定错误产生部位的情况下,ST处理器420也使处理向下一步转移。在S2660中,ST处理器420根据错误的主要原因而决定闭塞等今后的动作,并使该流程结束。
[0208]此外,在错误核查强化模式下无法使错误再现的情况下,ST处理器420可以根据预先设定的错误的主要原因和针对该主要原因而定义的处理来决定闭塞等今后的动作,并使该流程结束,或者进行阈值管理且直至达到阈值为止将错误检验强化模式解除,通过解压DMA传送进行再传送,或者在错误核查强化模式下实施传送。
[0209]根据以上的保障码核查处理,ST处理器420能够基于压缩数据或者非压缩数据的保障码的错误而确定错误产生部位,并进行错误产生部位的闭塞等的处理。另外,即使在不存在保障码的情况下,ST处理器420也能够在某种程度上实施错误产生部位的检索。
[0210]ST处理器420可以对ST内存410的高速缓存区域设定命中无效标志。在该情况下,ST处理器420在时序读取中预测并先读取接下来的压缩数据,由此能够将压缩储存设备600a与ST内存410的高速缓存区域之间的延迟隐藏。
[0211]以下,对针对来自服务器100的对象数据进行压缩并将压缩后的数据写入压缩储存设备600a的写入处理进行说明。
[0212]图38表示SS系统的写入处理中的第一处理,图39表示SS系统的写入处理中的紧随第一处理之后的第二处理,图40表示SS系统的写入处理中的紧随第二处理之后的第三处理。这些图表示SV处理器120、IF处理器210、ST处理器420以及SD处理器612的动作。此处,对利用SS连接机构200进行对象数据的压缩处理的情况下的写入处理进行说明。
[0213]在S3110中,服务器100内的SV处理器120将写入处理的对象数据保存于SV内存110内的SV区域。此处,SV处理器120生成作为表示SV区域的SGL的服务器SGL并将其向SV内存110保存。在S3120中,SV处理器120将对象数据的写入请求向SS连接机构200发送。
[0214]在S3130中,SS连接机构200内的IF处理器210执行对来自SV处理器120的被排队的写入请求进行解析的写入请求处理。在S3140中,IF处理器210生成基于解析结果的写入请求并将其发送至ST处理器420。此外,对于从IF处理器210向ST控制器400的写入请求,为了与从SV处理器120向IF处理器210的写入请求进行区别,有时将其称为写入指令。在S3150中,IF处理器210进行用于获取服务器SGL的服务器SGL处理。在S3160中,IF处理器210从服务器100接收服务器SGL。在S3170中,IF处理器210将接收到的服务器SGL保存于内部记忆体。此外,可以将服务器SGL的信息搭载于写入请求,也可以将未载入写入请求的部分载入服务器SGL。
[0215]在S3210中,ST控制器400内的ST处理器420执行对来自IF处理器210的被排队的写入请求进行解析的写入请求处理。在S3220中,ST处理器420判断是否进行压缩DMA处理(压缩判断)。在判断为对对象数据进行压缩的情况下,在S3230中,ST处理器420基于解析结果而在ST内存410内确保用于保存对象数据的压缩数据的ST区域。在S3240中,ST处理器420生成表示ST区域的压缩信息SGL并向ST内存410保存。在S3250中,ST处理器420将压缩DMA请求向IF处理器210发送。
[0216]在S3310中,IF处理器210执行对压缩DMA请求进行解析的压缩DMA请求处理。在S3320中,IF处理器210获取ST内存410内的压缩信息SGL。在S3330中,IF处理器210使DMA控制器220的压缩DMA处理启动。在S3340中,DMA控制器220基于来自IF处理器210的指示而进行压缩DMA处理,由此将保存于服务器100内的SV区域的非压缩数据读出且对其进行压缩,并将所获得的压缩数据向ST控制器400内的ST区域写入。在S3350中,IF处理器210从DMA控制器220接收压缩DMA处理完毕的通知(向图中的A转移)。在S3360中,IF处理器210将对于压缩DMA请求的压缩DMA响应传送至ST处理器420。在压缩DMA响应中,对ST处理器420通知压缩前的数据大小、压缩后的数据大小、每个压缩单位的压缩数据大小、以及表示有无压缩的标志,并在ST控制器400侧作为压缩信息而对它们进行管理。
[0217]在S3410中,ST处理器420执行对来自IF处理器210的被排队的压缩DMA响应进行解析的压缩DMA响应处理。在S3420中,ST处理器420进行使ST区域内的压缩数据实现冗余化的数据冗余化。
[0218]例如,作为不需要奇偶校验计算的与RAIDl相当的数据冗余化,ST处理器420经由ST控制器间总线而将ST内存410内的压缩数据向其它ST控制器400内的ST内存410传送,由此将压缩数据保存于两个ST控制器400的ST内存410。
[0219]另外,例如,ST处理器420可以进行RAID5等、需要奇偶校验计算的数据冗余化。此处,将对象数据的压缩数据向ST控制器400内的高速缓存区域传送。此处为带压缩解压功能FM的高速缓存区域、或者ST内存410的高速缓存区域。然后,ST处理器420利用ST控制器400内的压缩解压功能并基于压缩信息对压缩数据进行解压而生成非压缩数据。此处,ST控制器400的压缩解压功能是带压缩解压功能FM的硬件、或者ST处理器420的软件。然后,ST处理器420进行RAID奇偶校验计算,并将生成的奇偶校验码向高速缓存区域保存。然后,ST处理器420利用ST控制器400的压缩解压功能,从而基于压缩信息而对奇偶校验进行压缩并将其向高速缓存区域保存。由此,能够降低SV内存110、与ST控制器400的高速缓存区域之间的总线的频带的使用率,从而能够提高写入性能。
[0220]在S3430中,ST处理器420将写入响应向IF处理器210发送,并使处理向S3510(图中的B)转移。
[0221 ] 在S3440中,IF处理器210执行对来自ST处理器420的被排队的写入响应进行解析的写入响应处理。在S3450中,IF处理器210将基于解析结果的写入响应发送至SV处理器120。在S3460中,SV处理器120完成写入处理。
[0222]在S3510中,ST处理器420开始进行将ST区域内的压缩数据向压缩储存设备600a写入的转储处理。
[0223]在S3520中,ST处理器420将包含与压缩数据相关的压缩信息在内的压缩信息写入请求发送至压缩储存设备600a内的SD处理器612。在S3530中,SD处理器612将来自ST处理器420的压缩信息向RAM写入。在S3540中,SD处理器612将对于压缩信息写入请求的压缩信息写入响应发送至ST处理器420。
[0224]在S3610中,ST处理器420向SD处理器612发送用于将压缩数据写入的压缩数据写入请求。在S3620中,SD处理器612在RAM内准备基于压缩数据请求而对压缩数据进行保存的SD区域。在S3630中,SD处理器612将表示压缩数据的写入准备完毕的压缩数据写入准备发送至ST处理器420。
[0225]在S3640中,ST处理器420根据来自SD处理器612的被排队的压缩数据写入准备而将压缩数据发送至SD处理器612。在S3650中,SD处理器612向SD区域写入压缩数据。在S3660中,SD处理器612与写入的完毕相应地,将对于压缩数据写入请求的压缩数据写入响应发送至ST处理器420。
[0226]根据以上的写入处理,ST控制器400使SS连接机构200进行非压缩数据的压缩,由此能够削减从SS连接机构200至压缩储存设备600a的路径的频带的使用量,从而能够提高SS系统的1性能。
[0227]在写入处理中,ST处理器420在从IF处理器210接收到对象数据的写入请求的时间点(S3220)判断是否进行压缩DMA处理。另外,ST处理器420可以在生成压缩信息SGL的时间点(S3240)判断是否进行压缩DMA处理。在判断为进行压缩DMA处理的情况下,SS连接机构200如前述的写入处理所示那样进行压缩DMA处理。在判断为不进行压缩DMA处理的情况下,SS连接机构200进行将对象数据的非压缩数据从服务器100向ST控制器400传送的通常DMA处理。在进行通常DMA处理的情况下,可以是ST控制器400将对象数据的非压缩数据向压缩储存设备600a传送,压缩储存设备600a对非压缩数据进行压缩保存,也可以是ST控制器400对对象数据进行压缩并将压缩后的数据向压缩储存设备600a传送,压缩储存设备600a对该数据进行保存。以下,对ST处理器420判断为进行压缩DMA处理的条件的例子Wl?W13进行说明。
[0228](Wl)当对象数据的写入目的地的虚拟页面或者池属性抑或虚拟卷表示压缩属性时,若不将压缩数据汇总进行管理,则管理负荷会增加,因此ST处理器420实施压缩DMA处理。另外,由于压缩数据的大小为可变长度,所以必须进行压缩数据大小和储存装置500的容量的管理,因而,若将对压缩数据进行保存的池或者卷作为用于压缩数据的压缩卷而进行操作,则ST处理器420容易进行管理。
[0229](W2)当写入请求满足条件Wl、且在通过RAIDlO等而存储于硬盘时判断为无需进行奇偶校验运算时,ST处理器420实施压缩DMA处理。在需要奇偶校验运算的情况下,若在进行该运算之后进行压缩,则容易进行管理。例如,若由压缩数据制作奇偶校验组,则每当进行覆写写入时大小均改变,因此,必须临时对奇偶校验组内的所有压缩数据进行解压而重新进行奇偶校验计算。
[0230](W3)ST处理器420将写入请求的指令履历保存于ST内存410,并基于指令履历而对写入请求的时序性进行判断。在将写入请求判断为时序写入、且写入请求满足条件Wl或W2的情况下,ST处理器420实施压缩DMA处理。若与前述的解压DMA处理的条件W2及W3同样地对时序的访问实施压缩DMA处理,则能够区分使用各传送路径的频带。
[0231](W4)在ST控制器400具有带压缩解压功能的高速缓存、且将对象数据向该高速缓存写入的情况下,ST处理器420实施解压DMA处理。这基于与条件R6同样的理由。
[0232](W5)当判断为将对象数据向压缩储存设备600a直接传送、或者临时将ST内存410向压缩储存设备600a传送时,ST处理器420实施解压DMA处理。这基于与条件R7同样的理由。
[0233](W6)在将对象数据从传送源的ST控制器400向传送目的地的ST控制器400传送的情况下、且在传送目的地的ST控制器400具有压缩解压功能的情况下,传送源的ST控制器400对对象数据进行压缩传送。这是基于与条件R9同样的理由。
[0234](W7)当保存对象数据的压缩数据的压缩储存设备600a的负荷高时,ST处理器420将传送时的压缩向压缩DMA处理卸载。这是基于与条件RlO同样的理由。
[0235](W8)当ST控制器400具有压缩解压功能、且该ST控制器400的负荷高时,ST处理器420将传送时的压缩向压缩DMA处理卸载。这是基于与前述的条件RlO同样的理由。
[0236](W9)在ST处理器420基于来自服务器100的提示信息来判断向对象数据访问的时序性的情况下,ST处理器420实施压缩DMA处理。其它动作与条件W3相同。
[0237](WlO)当写入请求在新的写入中满足条件Wl或W2时,ST处理器420实施压缩DMA处理。这是因为无需对已保存的数据进行解压并覆写。
[0238](Wll)当判断为写入请求满足条件Wl或W2、且不经由ST控制器400内的高速缓存而向压缩储存设备600a直接传送时,ST处理器420实施压缩DMA处理。这是因为,ST处理器420针对对象数据可以不通过特殊的路径来创建RAID奇偶校验码、或者可以不进行覆写处理。
[0239](W12)当判断为对象数据的改写频率低、或者对象数据是存档用途的数据时,ST处理器420实施压缩DMA处理。这是因为无需对对象数据进行高速缓存,从而不对高速缓存上存在的数据进行解压并覆写,因而,通过进行压缩传送而能够使用较宽的总线的频带。
[0240](W13)在ST控制器400内的高速缓存中不存在废数据的情况下,写入不冲突,因此ST处理器420实施压缩DMA处理。这是基于与条件W12相同的理由。
[0241](W14)由于将汇总了的压缩单位对非压缩数据进行压缩并管理,所以针对压缩单位以下的数据容量的写入要求,需要进行解压、合并、并读出压缩的多余数据的处理,因此,有时负荷升高而导致性能无法提高。因此,当数据大小为规定值以下时,ST处理器420可以判断为不实施压缩传送。
[0242]此处,对在写入处理中利用DMA控制器220进行的压缩DMA处理(S3340)进行说明。
[0243]图41表示基于SS连接机构200的压缩DMA处理中的第一处理,图42表示基于SS连接机构200的压缩DMA处理中的紧随第一处理之后的第二处理。
[0244]若从ST控制器400接收到压缩DMA请求,则SS连接机构200的DMA控制器220执行压缩DMA处理。
[0245]在S4110中,DMA控制器220对压缩DMA请求进行解析,确定传送源与传送目的地的地址。在S4120中,直至从传送数据块组大小减去首部偏移位置后的传送大小的DMA处理完毕为止,DMA控制器220从压缩DMA处理的对象数据中按顺序选择对象块并反复执行S4120?S4220o
[0246]在S4130中,DMA控制器220判断是否将保障码附加于对象块。此外,是否附加是由ST控制器400根据压缩DMA请求而设定的。在判断为不将保障码附加于对象块的情况下(S4130:否),DMA控制器220使处理向S4150转移。在判断为将保障码附加于对象块的情况下(S4130:是),在S4140中,DMA控制器220对对象块的压缩前的数据的保障码进行计算,将保障码附加于数据并使处理向S4150转移。
[0247]在S4150中,DMA控制器220通过进行对象块的压缩处理而生成压缩数据。在S4160中,DMA控制器220判断是否将保障码附加于压缩数据。在判断为不将保障码附加于压缩数据的情况下(S4160:否),DMA控制器220使处理向S4210(图中的A)转移。在判断为将保障码附加于压缩数据的情况下(S4160:是),在S4170中,DMA控制器220对压缩数据的保障码进行计算,将保障码附加于压缩数据,并使处理向S4210(图中的A)转移。
[0248]在S4210中,DMA控制器220将对象块的压缩数据保存于传送目的地。在S4220中,DMA控制器220使对象块的地址仅增加传送的大小,并判断与传送大小相应的传送是否已完毕。在判断为传送未完毕的情况下(S4220:否),DMA控制器220使处理向S4120(图中的B)转移。在判断为传送已完毕的情况下(S4220:是),在S4230中,DMA控制器220向ST控制器400通知压缩DMA处理已完毕,并使该流程结束。
[0249]根据以上的压缩DMA处理,能够一边对非压缩数据进行压缩、一边将压缩后的数据从该服务器100向ST控制器400传送。另外,能够将保障码附加于压缩数据及非压缩数据。
[0250]在写入处理中,SS连接机构200对对象数据的非压缩数据进行压缩而生成压缩数据,在将压缩数据向ST控制器400传送的情况下,决定将保障码附加于非压缩数据以及压缩数据的哪一个。例如,ST控制器400可以预先设定将保障码附加于非压缩数据和压缩数据双方,也可以基于存储区域的成本、通信的成本、储存设备600的可靠性等而决定附加保障码的对象,在压缩储存设备600a不发送所读出的保障码的情况下,可以判断为将保障码仅附加于非压缩数据。
[0251]此处,对如下的情况进行说明:在写入处理中压缩储存设备600a进行压缩处理的情况下、且在写入请求满足条件W7的情况下,将写入处理中的压缩处理从压缩储存设备600a向SS连接机构200卸载的压缩卸载写入处理。
[0252]图43表示压缩卸载写入处理。
[0253]与前述的写入处理同样地进行直至S3210为止的处理。在S3220中,在判断为写入请求满足条件W7的情况下,在S3260中,ST处理器420在ST内存410内确保用于基于写入请求的解析结果而保存对象数据的压缩数据的ST区域。在S3270中,ST处理器420生成表示作为传送源的SV区域、和作为传送目的地的ST区域的压缩信息SGL并保存至ST内存410。在S3280中,ST处理器420从与传送源(写入请求的发送源)的服务器100连接的SS连接机构200中选择进行压缩DMA处理的DMA控制器220作为压缩DMA装置。此处,ST处理器420对各DMA控制器220的I/O负荷进行测定且保存至向ST内存410,并选择I/O负荷最低的DMA控制器220作为压缩DMA装置。在S3290中,ST处理器420将压缩DMA请求向压缩DMA装置发送。此外,可以将压缩信息SGL的信息搭载于写入请求,也可以将未载入写入请求的部分载入压缩信息SGL。
[0254]以后的处理与前述的写入处理中的S3310?S3410相同。
[0255]与压缩卸载写入处理同样地,对在读取处理中压缩储存设备600a进行解压处理的情况下、且在判断为写入请求满足条件RlO的情况下,将读取处理中的解压处理从压缩储存设备600a向SS连接机构200卸载的压缩卸载读取处理进行说明。在压缩卸载读取处理中,ST处理器420在读取处理的S1220?S1620的处理中从与传送目的地(读取请求的发送源)的服务器100连接的SS连接机构200中选择进行解压DMA处理的DMA控制器220作为解压DMA装置,并将解压DMA请求发送至解压DMA装置。
[0256]像这样,通过使压缩及解压的负荷分散于压缩储存设备600a和SS连接机构200,能够提高SS系统的1性能。
[0257]以下,对服务器100包括带压缩解压功能FM的情况进行说明。
[0258]在搭载于服务器100的带压缩解压功能FM进行对象数据的压缩及解压的情况下,SV处理器120将与基于服务器100的压缩及解压相关的提示信息附加于向SS连接机构200的写入请求以及读取请求。ST处理器420将提示信息用于可否实施压缩DMA处理及解压DMA处理的判断。
[0259]例如,在SS连接机构200利用与由服务器100利用的压缩解压算法不同的压缩解压算法的情况下,具有基于SS连接机构200的压缩的效果,因此,由于提示信息表示压缩解压算法,从而ST处理器420可以基于提示信息而实施压缩DMA处理以及解压DMA处理。在SS连接机构200利用与由服务器100利用的压缩解压算法相同的压缩解压算法的情况下,由于提示信息表示压缩解压算法,从而ST处理器420可以基于提示信息而判断基于SS连接机构200的压缩的效果,并在判断为具有效果的情况下实施压缩DMA处理以及解压DMA处理。
[0260]另外,在ST处理器420利用搭载于ST控制器400的带压缩解压功能FM、或者ST处理器420的软件而进行对象数据的压缩及解压的情况下,将由ST控制器400管理的压缩信息经由SS连接机构200而向搭载于服务器100的带压缩解压功能FM通知。由此,搭载于服务器100的带压缩解压功能FM基于压缩信息而进行对象数据的压缩及解压。
[0261]以下,对SS系统中的压缩与加密或者删除重复的并用进行说明。
[0262]基本上,按照与进行写入处理时的压缩处理、以及加密处理或者删除重复处理的顺序的相反顺序,针对相同的主体,通过进行读取处理时的解压处理、以及作为加密处理的逆转换的解密处理、或者作为删除重复处理的逆转换的复原处理而读出。
[0263]在写入处理时,在压缩储存设备600a对从ST控制器400接受到的数据进行压缩之后进行加密处理或者删除重复处理的情况下,在读取处理时,压缩储存设备600a进行解密处理或者复原处理,并将压缩后的数据发送至ST控制器400。
[0264]解密处理可以由ST处理器420执行。在该情况下,可以将解密处理从ST处理器420向ST控制器400内的带解密功能的FM卸载。另外,针对在ST控制器400内被进行了解压以及处理的数据,可以利用带压缩解压功能FM对其进行再压缩。
[0265]经由通信网络而与SS系统连接的管理计算机、或者服务器100可以针对ST控制器400而预先设定规则。ST处理器420可以不将符合规则的数据作为基于SS连接机构200的DMA解压处理的对象,而是利用搭载于ST控制器400的带压缩解压功能FM、或者ST处理器420的软件在解压之后进行通常DMA处理。规则例如是指被加密压缩且保存于储存设备600的数据、被重复删除、被压缩且保存于储存设备600的数据。
[0266]以下,对SS系统进行删除重复和压缩的情况进行说明。
[0267]在SV处理器120进行删除重复的情况下,在写入处理中,与前述的压缩DMA处理相同,SS连接机构200可以对删除重复后的数据进行压缩并将压缩后的数据向ST控制器400传送。并且,SS连接机构200可以在读取处理中与前述的解压DMA处理同样地对来自ST控制器400的数据进行解压。在该情况下,SV处理器120在数据被从SS连接机构200向SV内存110传送之后使删除重复后的数据恢复为原来的数据。
[0268]在ST处理器420进行删除重复的情况下,在写入处理中,压缩储存设备600a可以对删除重复后的数据进行压缩。在读取处理中,压缩储存设备600a将压缩数据保持原样地向ST控制器400传送。ST处理器420利用带压缩解压功能FM等对压缩数据进行解压,使删除重复后的数据复原,利用带压缩解压功能FM等对复原后的数据进行压缩,并对压缩后的数据进行解压DMA处理。
[0269]在ST处理器420进行删除重复的情况下,在写入处理中,压缩储存设备600a或者ST控制器400可以对对象数据进行压缩,ST处理器420可以实施压缩后的数据的重复的删除。在读取处理中,ST处理器420从储存设备600读出数据,将对读出的数据的重复的删除解除,并对解除后的数据进行解压DMA处理。
[0270]根据该动作,与仅进行压缩的情况相比,能够削减服务器侧总线的频带的使用量,从而能够进一步削减其它通信的频带的使用量。
[0271]此外,SS系统可以进行删除重复以及删除重复的解除以取代前述的压缩及解压。在该情况下也与进行压缩及解压的情况同样地,能够削减服务器侧总线的频带的使用量、存储器系统内的通信的频带的使用量、存储装置的存储容量的使用量。
[0272]以下,对SS系统进行加密和压缩的情况进行说明。
[0273]压缩储存设备600a可以进行压缩和加密。在写入处理中,为了削减存储容量和保护数据,压缩储存设备600a对对象数据进行压缩,并对压缩后的数据进行加密保存。在读取处理中,压缩储存设备600a对保存后的数据进行解密,并将解密后的数据向ST控制器400传送(S1530)。若对加密后的数据进行压缩,则压缩率变差,因此在压缩储存设备600a具有压缩功能和加密功能的情况下,优选进行压缩之后再进行加密。在具有压缩功能和加密功能的情况下,在与SS连接机构200之间的解压DMA传送时,对在压缩储存设备600a内加密后的数据进行解密之后,保持压缩的状态不变地将数据传送至ST内存410,SS连接机构200—边进行解压一边将数据传送至服务器存储器器。
[0274]根据从储存设备600主体以及储存设备600至ST控制器400之间的路径中的数据保护的观点,可以从储存设备600至ST控制器400保持加密的状态不变地对数据进行传送。在读取处理中,ST控制器400从压缩储存设备600a读出被压缩并加密的数据,对读出的数据进行解密(S1610),并对解密后的数据进行解压DMA处理。在ST控制器400中,ST处理器420可以进行解密,ST控制器400具有加密解密专用硬件,该硬件也可以进行解密,ST控制器400具有带加密解密功能的FM,该FM也可以进行解密。
[0275]根据存储器系统300内的数据保护的观点,可以从储存设备600至服务器100保持加密的状态不变地对数据进行传送。通过在服务器100中进行解密,防止数据从存储器系统300内的数据的保存场所、存储器系统300内的数据的路径泄漏以保护数据。在读取处理中,SV处理器120对从ST控制器400向SV内存110保持加密状态不变地传送的数据进行解密,并向ST处理器420通知解密已完毕。ST处理器420根据通知而对SS连接机构200指示SV内存110内的存储区域之间的解压DMA处理,SS连接机构200对SV内存110内的数据进行解压。此外,SS连接机构200可以具有解密功能,在该情况下,可以通过解压DMA传送而将保存于ST内存410的被压缩并加密的数据读出并进行解密,并在进行解压处理之后将解压后的数据向SV内存110传送。
[0276]服务器100包括用于压缩解压的压缩解压电路,在服务器100负责对象数据的压缩及解压的处理的情况下,SV处理器120将表示不需要基于SS连接机构200及ST控制器400的压缩及解压的标识符赋给读取指令及写入指令。在该情况下,ST处理器420将基于服务器100的压缩及解压所需的信息发送至SV处理器120。
[0277]根据该动作,通过对数据进行压缩和加密,能够提高SS系统的1性能,并且能够提高SS系统的安全性。
[0278]此处,对在服务器100包括解密电路的情况下由解密电路进行解密、SS连接机构200进行解压的情况进行说明。解密电路可以是带解密功能的FM,也可以是具有解密功能的带压缩解压功能FM。
[0279]图44表示进行基于服务器100的解密和基于SS连接机构200的解压的情况下的读取处理中的第一处理,图45表示进行基于服务器100的解密和基于SS连接机构200的解压的情况下的读取处理中的紧随第一处理之后的第二处理。
[0280]与前述的读取处理同样滴,进行直至S1610为止的处理。但是,在ST内存410中取代压缩数据而对压缩后被加密的压缩后加密数据进行保存。在S5620中,ST处理器420将请求服务器传送后解压DMA处理的服务器传送后解压DMA请求发送至IF处理器210。服务器传送后解压DMA处理包括通常DMA处理、以及传送后解压DMA处理。此处的通常DMA处理,从ST控制器400内的ST内存410读出对象数据的压缩后加密数据,并将该压缩后加密数据向服务器100内的SV内存110写入。传送后解压DMA处理从服务器100内的SV内存110读出对象数据的压缩数据,对该压缩数据进行解压而生成非压缩数据,并将该非压缩数据向服务器100内的SV内存110写入。
[0281]在S5710中,IF处理器210执行对来自ST处理器420的被排队的传送后解压DMA请求进行解析的DMA请求处理。在S5720中,IF处理器210获取ST内存410内的压缩信息SGL。在S5730中,IF处理器210使DMA控制器220的通常DMA处理启动。在S5740中,DMA控制器220基于来自IF处理器210的指示而进行通常DMA处理,由此将保存于ST控制器400内的ST区域的压缩后加密数据读出,并将其向服务器100内的SV区域写入。在S5750中,IF处理器210从DMA控制器220接收通常DMA处理完毕的通知。在S5760中,IF处理器210利用自动响应而将读取响应发送至SV处理器120。
[0282]在S5810中,SV处理器120根据来自IF处理器210的被排队的读取响应而使处理向S6110(图中的B)转移。
[0283]在S6110中,SV处理器120利用解密电路而执行对压缩后加密数据进行解密的解密处理,将压缩后加密数据转换为压缩数据,并将压缩数据向SV内存110内的SVR区域保存。在S6120中,SV处理器120将请求传送后DMA处理的传送后解压DMA请求向IF处理器210发送。
[0284]在S6130中,IF处理器210执行对来自SV处理器120的被排队的传送后解压DMA请求进行解析的传送后解压DMA请求处理。在S6720中,IF处理器210获取ST内存410内的压缩信息SGL。在S6730中,IF处理器210使DMA控制器220的解压DMA处理启动。在S6740中,DMA控制器220基于来自IF处理器210的指示而进行解压DMA处理,由此将保存于服务器100内的SVR区域的压缩数据读出且对其进行解压,并将所获得的非压缩数据向服务器100内的SV区域写入。在S6750中,IF处理器210从DMA控制器220接收解压DMA处理完毕的通知。在S6760中,IF处理器210将对于传送后解压DMA请求的传送后解压DMA响应发送至SV处理器120。
[0285]在S6810中,SV处理器120根据来自IF处理器210的被排队的读取响应而完成读取处理。
[0286]在S6770中,IF处理器210将针对服务器传送后解压DMA请求的服务器传送后解压DMA响应发送至ST处理器420。在S6910中,ST处理器420执行对来自IF处理器210的被排队的服务器传送后解压DMA响应进行解析的服务器传送后解压DMA响应处理。在S6920中,ST处理器420释放ST区域。在S6930中,ST处理器420完成读取处理。
[0287]以上是在进行基于服务器100的解密和基于SS连接机构200的解压的情况下的读取处理。
[0288]根据该动作,在读取处理中,在从压缩储存设备600a至SS连接机构200的路径中对数据进行加密,从而能够提高安全性。另外,服务器100进行解密处理,SS连接机构200进行解压处理,由此能够使负荷分散。此外,SS连接机构200也可以实施解密处理。
[0289]根据以上的各实施例,在服务器100从存储器系统300读取数据的情况下,与服务器100及存储器系统300连接的接口设备(中继设备、SS连接机构200)从ST控制器400读出压缩数据,由此能够降低存储器系统300所具有的物理上的频带的使用量。另外,在服务器100向存储器系统300写入数据的情况下,接口设备将压缩数据向ST控制器400写入,由此能够降低存储器系统300所具有的物理上的频带的使用量。由此,能够减少从服务器100向存储器系统300访问的响应时间。
[0290]以上示出了经由服务器100与存储器系统300之间的SS连接机构200的数据传送,但是如图46所示,SS连接机构200可以将服务器100与服务器100之间连接(服务器/服务器间连接)并将其用于数据传送。在该情况下,当将在搭载于SV内存110或者服务器100的闪存140中保存的压缩数据向另一个服务器100的SV内存110或者闪存140传送时,利用传送目的地的SS连接机构200并按照与前述的解压DMA传送同样的次序进行解压DMA传送。由此,能够使服务器/服务器之间的传送实现宽带化,能够在聚类间传送等时高速地实施传送。
[0291]另外,如图47所示,可以经由SS连接机构200而将存储器系统300a与存储器系统300a之间连接(存储器.存储器间连接)并将其用于数据传送。在该情况下,当将在存储器系统300a的储存设备或者ST内存410抑或ST控制器400a搭载的存储器搭载闪存440中保存的压缩数据向另一个存储器系统300a的储存设备600或者ST内存410抑或存储器搭载闪存440传送时,利用传送目的地的SS连接机构200并按照与前述的解压DMA传送同样的次序进行解压DMA传送。由此能够使存储器系统400a与存储器系统300a之间的传送实现宽带化,能够高速地实施从外接存储器的数据读出传送、从存档存储器的数据读出。
[0292]另外,在将SS连接机构200用于前述的服务器/服务器间连接、存储器/存储器间连接的方法中,可以实施压缩DMA传送。
[0293]本发明不限定于以上实施例,在不脱离其主旨的范围内,能够变更为其他各种各样的形式。
[0294]例如可以形成为,将SS连接机构200搭载于计算机系统中的处理器与存储器之间的I/F,SS连接机构200通过同样的方法将保存于内存的压缩数据读出并将其交付给处理器进行解压。
[0295]计算机系统可以包括SS系统等。作为存储器模块,计算机系统可以包括存储器系统300等。作为服务器模块,计算机系统可以包括服务器100等。作为接口设备,计算机系统可以包括SS连接机构200、中继设备等。作为储存设备,计算机系统可以包括压缩储存设备600a等。作为控制器,储存设备可以包括SD控制器610等。作为逆转换功能,控制器可以包括压缩/解压设备614等。作为内存,储存设备可以包括FM620等。作为转换功能,计算机系统可以包括压缩设备221等。作为逆转换功能,计算机系统可以包括解压设备222等。作为转换电路,计算机系统可以包括压缩/解压设备614、带压缩解压功能FM、ST处理器420等。计算机系统例如可以将压缩用作转换且将解压用作逆转换。计算机系统例如可以将删除重复用作转换、且将删除重复的复原用作逆转换。计算机系统可以将压缩数据等用作转换后对象数据。计算机系统可以将非压缩数据等用作逆转换结果数据。计算机系统可以将解压DMA请求等用作逆转换指示。计算机系统可以将压缩信息SGL等用作传送源地址。对于从接口设备向存储器控制器的读取指令,可以将解压DMA请求以及压缩信息SGL等用作从存储器控制器向接口设备的回信。计算机系统可以将压缩DMA请求等用作转换指示。计算机系统可以将通常DMA响应等用作读出指示。计算机系统可以将解压DMA响应等用作表示逆转换成功的主旨的响应。计算机系统可以将非压缩数据的保障码等用作第一保障码,并将非压缩保障码信息等用作第一保障码的期望值。计算机系统可以将压缩数据的保障码等用作第二保障码,并将压缩保障码信息等用作第二保障码的期望值。作为将服务器处理器与接口设备连接的总线,可以使用服务器侧总线等。作为将接口设备与存储器处理器连接的总线,可以使用存储器侧总线等。
[0296]附图文字说明
[0297]100:服务器100、110: SV存储器、120: SV处理器、200: SS接続機構、210:1F处理器、220: DMA控制器、300:存储系统、400: ST控制器、410: ST存储器420: ST处理器、430:磁盘I/F、500:存储装置、600:储存设备、610: SD控制器、620: FM、700:接口扩展装置。
【主权项】
1.一种计算机系统,其中, 具有: 存储器模块,其具有存储器处理器、存储器内存以及储存设备; 服务器模块,其具有服务器处理器以及服务器内存;以及 接口设备,其与所述服务器处理器和所述存储器处理器连接, 所述接口设备位于所述服务器模块内, 当接收到由所述服务器处理器发布的读取请求时,将基于所述读取请求的读取指令发送至所述存储器处理器,并且 在从所述存储器处理器接收到使所述接口设备针对将所述读取请求的对象数据转换得到的转换后对象数据进行逆转换的逆转换指示的情况下,进行一边对在所述存储器内存上的传送源地址保存的所述转换后对象数据进行逆转换、一边将其传送至所述服务器内存上的传送目的地地址的DMA,所述DMA是指直接存储器访问。2.根据权利要求1所述的计算机系统,其中, 所述存储器处理器在所述读取请求的对象数据作为数据量被削减了的转换后对象数据而被保存于所述储存设备的情况下,判断是否使所述接口设备进行所述逆转换,并且在判断为进行所述逆转换的情况下,作为所述读取指令的回复,将所述存储器内存上的所述传送源地址、以及所述逆转换指示发送至所述接口设备。3.根据权利要求1所述的计算机系统,其中, 所述转换是压缩处理,所述逆转换是解压处理。4.根据权利要求2所述的计算机系统,其中, 在所述对象数据的大小为规定值以上的情况下,所述存储器处理器判断为使所述接口设备进行所述逆转换。5.根据权利要求1所述的计算机系统,其中, 所述存储器处理器也将与在所述存储器内存的所述传送源地址保存的所述转换后对象数据的大小、以及所述转换后数据的所述转换前的大小相关的信息发送至所述接口设备。6.根据权利要求5所述的计算机系统,其中, 所述储存设备包括具有逆转换功能的控制器、以及多个内存, 在判断为使所述接口设备进行所述逆转换的情况下,所述存储器处理器使所述控制器执行读出指示,所述读出指示是指,将与所述大小相关的信息、以及所述对象数据的所述转换后对象数据读出至所述存储器内存上的所述传送源地址的指示, 所述读出指示是不进行所述逆转换而读出所述对象数据的指示。7.根据权利要求5所述的计算机系统,其中, 在判断为不使所述接口设备进行所述逆转换的情况下,所述存储器处理器向具有所述逆转换功能的控制器指示所述读取请求的对象数据的读出, 所述控制器对储存的所述转换后对象数据进行所述逆转换并读出至所述存储器内存上的所述传送源地址。8.根据权利要求1所述的计算机系统,其中, 所述接口设备将所述对象数据按照每规定大小的数据块进行所述逆转换,由此生成逆转换结果数据,在所述逆转换结果数据包含所述读取请求的对象数据以外的数据的情况下,从所述逆转换结果数据提取出所述对象数据,并传送至所述服务器内存上的传送目的地地址。9.根据权利要求1所述的计算机系统,其中, 所述逆转换指示包含所述对象数据的大小、以及附加于所述对象数据的第一保障码的期望值, 所述接口设备基于所述逆转换后的逆转换结果数据和所述第一保障码的期望值来判断所述逆转换是否成功,并向所述存储器处理器通知所述逆转换成功的响应。10.根据权利要求9所述的计算机系统,其中, 所述逆转换指示包含附加于所述转换后对象数据的第二保障码的期望值, 所述接口设备基于读出的所述转换后对象数据和所述第二保障码的期望值来判断所述转换后对象数据是否正常,在判断为所述转换后对象数据正常的情况下,判断所述逆转换是否成功。11.根据权利要求1所述的计算机系统,其中, 利用将所述服务器处理器与所述接口设备连接的总线,将所述接口设备与所述存储器处理器连接。12.根据权利要求1所述的计算机系统,其中, 所述接口设备接收由所述服务器处理器发布的写入请求,在从所述存储器处理器接收到使所述接口设备对所述写入请求的写入对象数据进行转换的转换指示的情况下, 进行一边对保存于所述服务器内存上的所述写入对象数据进行所述转换、一边将其传送至所述存储器内存上的地址的DMA。13.一种计算机系统控制方法,其控制计算机系统,所述计算机系统具有: 存储器模块,其具有存储器处理器、存储器内存以及储存设备;以及 服务器模块,其具有服务器处理器以及服务器内存, 其中, 当利用与所述服务器处理器以及所述存储器处理器连接、且位于所述服务器模块内的接口设备来接收由所述服务器处理器发布的读取请求时,将基于所述读取请求的读取指令发送至所述存储器处理器, 在利用所述接口设备从所述存储器处理器接收到使所述接口设备针对将所述读取请求的对象数据转换得到的转换后对象数据进行逆转换的逆转换指示的情况下,进行一边对在所述存储器内存上的传送源地址保存的所述转换数据进行逆转换、一边将其传送至所述服务器存储器上的传送目的地地址的DMA,所述DMA是指直接存储器访问。14.根据权利要求13所述的计算机系统控制方法,其中, 在所述读取请求的对象数据作为削减了数据量的转换后对象数据而被保存于所述储存设备的情况下,利用所述存储器处理器判断是否使所述接口设备进行所述逆转换, 在利用所述存储器处理器判断为进行所述逆转换的情况下,作为所述读取指令的发送的回信,将所述存储器内存上的所述传送源地址、以及所述逆转换指示发送至所述接口设备。15.根据权利要求13所述的计算机系统控制方法,其中,所述转换是压缩处理,所述逆转换是解压处理。
【文档编号】G06F13/28GK106030499SQ201480075734
【公开日】2016年10月12日
【申请日】2014年5月28日
【发明人】横井伸浩, 细谷睦, 水岛永雅, 吉井义裕, 柴田正文
【申请人】株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1