CN101414245A - 存储装置以及使用该存储装置的数据存储方法 - Google Patents
存储装置以及使用该存储装置的数据存储方法 Download PDFInfo
- Publication number
- CN101414245A CN101414245A CNA2008101089125A CN200810108912A CN101414245A CN 101414245 A CN101414245 A CN 101414245A CN A2008101089125 A CNA2008101089125 A CN A2008101089125A CN 200810108912 A CN200810108912 A CN 200810108912A CN 101414245 A CN101414245 A CN 101414245A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- storage
- volume
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 220
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013500 data storage Methods 0.000 title claims abstract description 30
- 238000007906 compression Methods 0.000 claims description 158
- 230000006835 compression Effects 0.000 claims description 158
- 230000005055 memory storage Effects 0.000 claims description 96
- 230000015654 memory Effects 0.000 claims description 56
- 238000012795 verification Methods 0.000 claims description 45
- 238000005096 rolling process Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 48
- 238000007726 management method Methods 0.000 description 31
- 230000033228 biological regulation Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000013144 data compression Methods 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000005755 formation reaction Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002650 habitual effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1014—Compression, i.e. RAID systems with parity using compression techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供存储装置以及使用该存储装置的数据存储方法。本发明的课题是提供一种可以在规定的RAID结构下高效地存储基于写入数据的压缩数据的存储装置。本发明是具备磁盘设备和对其进行控制的磁盘控制器的存储装置。磁盘控制器通过卷容量虚拟化功能提供由实际卷和虚拟卷构成的数据卷。虚拟卷与用于存储数据实体的池卷相关联,将数据实体存储在池卷中。磁盘控制器依照来自主机装置的写入请求,在RAID5控制下压缩写入数据,将该压缩数据存储在实际卷的存储区域中,并且,在无法完全存储在该存储区域中时,将压缩数据中未存储完的部分存储在虚拟卷中。
Description
技术领域
本发明涉及存储装置以及使用该存储装置的数据存储方法,尤其涉及在RAID控制下压缩写入数据来高效地进行存储的存储技术。
背景技术
已知为了有效利用存储装置有限的存储资源而压缩数据来进行存储的技术。压缩数据来进行存储的情况下,压缩后的数据的大小不固定,很大程度上取决于压缩前的数据的内容。
下述专利文献1公开了一种存储装置,其在磁盘驱动器中压缩数据来进行存储时,将无法完全存储在规定存储区域中的压缩数据的一部分存储在溢出(over flow)用的存储区域中。具体而言,在专利文献1中,当将来自主处理装置的数据写入磁盘驱动器时,通过数据压缩单元压缩该数据,根据写入目的地地址,判定能否将压缩数据存储在磁盘驱动器内的固定大小存储区域的相应块中,当判定为无法完全存储时,将该压缩数据的一部分存储在相应的块中,同时将该压缩数据的剩余部分存储在溢出存储区域中。
另外,近年来,从大容量和高可靠性等观点出发,采用RAID(RedundantArrays of Independent Disks)技术的存储装置逐渐占据主流。在RAID中,根据硬盘驱动器的结构定义了RAID级别(RAID0~6)。例如,RAID1是在多台硬盘驱动器中同时写入相同内容的数据(镜像)的方式。另外,RAID5是将块单位的数据和纠错码数据(校验数据)一起分散写入到多台硬盘驱动器的方式。
【专利文献1】特开平5-189157号公报
RAID结构中,在实用中总体性能优秀的RAID5的结构是主流。如上所述,在RAID5中从耐故障性的观点出发而存在校验数据。因此,在RAID5的结构下,在压缩写入数据来进行存储的情况下也压缩其校验数据来进行存储。与写入数据相比,校验数据的数据位的随机性一般较高,无法期待高压缩效率。因此,很可能由于压缩效率的低下而导致不断发生数据的溢出,在仅仅准备了以往的溢出用存储区域的情况下,有可能立即耗尽。另外,在预先准备足够大小的溢出用存储区域的情况下,运转成本升高,很不经济。
发明内容
因此,本发明的目的在于,提出一种可以在规定的RAID结构下高效地存储基于写入数据的压缩数据的存储装置。
具体而言,本发明提出一种存储装置,其在无法将压缩数据完全存储在规定的存储区域中时,将该压缩数据中未存储完的部分(溢出部分)存储在可以根据使用实际情况而灵活扩展的存储区域(扩展存储区域)中。
另外,本发明提出一种存储装置,其当在某RAID结构下无法期待压缩数据的高效存储时,通过可以期待高效存储的其它RAID结构来存储该压缩数据。即,本发明提出一种根据针对校验数据的压缩效率,来选择存储压缩数据的最佳RAID结构的存储装置。
为了解决上述问题,本发明的存储装置包含以下技术特征而构成。
即,遵从第一观点的本发明是具备:具有存储数据的存储介质的磁盘设备、和控制所述磁盘设备的磁盘控制器的存储装置。所述磁盘控制器具备:用于与主机装置连接的通道适配器;与所述磁盘设备相连的磁盘适配器;以及对所述通道适配器和所述磁盘适配器之间交换的数据进行暂时存储的高速缓冲存储器。另外,所述磁盘适配器控制所述磁盘设备以便形成数据卷和池卷,所述数据卷包含被定义了比所述存储介质的固有存储容量大的存储容量的、与所述存储介质的存储区域相对应的实际卷,以及分配了所述实际卷以外的存储区域的虚拟卷,所述池卷被分配了用于存储与分配给所述虚拟卷的存储区域相对应的数据的存储区域。
所述磁盘适配器,在规定的RAID结构的控制下,基于依照从所述主机装置发送的写入请求的写入数据,生成该写入数据所属的校验组内的校验数据,压缩所述校验组内的每一个所述写入数据以及每一个所述生成的校验数据,生成压缩数据以及压缩校验数据。另外,所述磁盘适配器判断所述校验组内的每一个所述压缩数据以及每一个所述压缩校验数据是否超过规定大小,将所述压缩数据以及所述压缩校验数据中未超过所述规定大小的部分的数据存储在所述实际卷的存储区域中,将所述压缩数据以及所述压缩校验数据中超过所述规定大小的部分的数据存储在所述虚拟卷所对应的所述池卷的存储区域中。
另外,本发明可以作为方法发明来把握。即,遵从第二观点的本发明,是具备以下各部的存储装置中的数据存储方法:具有存储数据的存储介质的磁盘设备;和控制所述磁盘设备的磁盘控制器。
所述数据存储方法包含以下步骤:所述磁盘控制器控制所述磁盘设备以便形成数据卷和池卷,所述数据卷包含被定义了比所述存储介质的固有存储容量大的存储容量的、与所述存储介质的存储区域相对应的实际卷,以及分配了所述实际卷以外的存储区域的虚拟卷,所述池卷被分配了用于存储与分配给所述虚拟卷的存储区域相对应的数据的存储区域;所述磁盘控制器按照规定的RAID结构,基于依照从所述主机装置发送的写入请求的写入数据,生成该写入数据所属的校验组内的校验数据;所述磁盘控制器压缩所述校验组内的每一个所述写入数据以及每一个所述生成的校验数据,生成压缩数据以及压缩校验数据;所述磁盘控制器判断所述校验组内的每一个所述压缩数据以及每一个所述压缩校验数据是否超过规定大小;所述磁盘控制器,将所述压缩数据以及所述压缩校验数据中未超过所述规定大小的部分的数据存储在所述实际卷的存储区域中,并且将所述压缩数据以及所述压缩校验数据中超过所述规定大小的部分的数据存储在所述虚拟卷所对应的所述池卷的存储区域中。
根据本发明,可以在规定的RAID结构下高效地存储基于写入压缩数据的压缩数据。
另外,根据本发明,在无法将压缩数据完全存储在规定的存储区域中时,将其存储在扩展存储区域中,因此,可以采用与存储区域的使用实际情况对应的灵活的磁盘设备的结构。
而且,根据本发明,根据针对包含校验位的数据的压缩效率来选择最佳RAID结构,因此可以进行压缩数据的高效存储。
附图说明
图1是用于说明本发明的一个实施方式的存储***的结构的图。
图2是用于从功能上说明本发明的一个实施方式的存储装置中的磁盘控制器的磁盘适配器的图。
图3是表示本发明的一个实施方式的存储装置中的共享存储器的内容的图。
图4是表示本发明的一个实施方式的存储装置中的区段管理表的一例的图。
图5是表示本发明的一个实施方式的存储装置的共享存储器中存储的地址管理表的一例的图。
图6是用于说明本发明的一个实施方式的存储装置的共享存储器中存储的数据卷的图。
图7是用于从概念上说明本发明的一个实施方式的存储装置中的存储区域的动态分配的图。
图8是表示本发明的一个实施方式的存储装置中的共享存储器中存储的数据块管理表的一例的图。
图9是表示本发明的一个实施方式的存储装置中的共享存储器中存储的磁盘设备管理表的一例的图。
图10是用于说明本发明的一个实施方式的存储装置中的数据写入机制的图。
图11是用于说明本发明的一个实施方式的存储装置中的数据写入机制的图。
图12是用于说明本发明的一个实施方式的存储装置中的数据写入处理的流程图。
图13是用于说明针对本发明的一个实施方式的存储装置的虚拟卷的数据写入处理的流程图。
图14是用于说明本发明的一个实施方式的存储装置中的数据写入机制的图。
图15是用于说明本发明的一个实施方式的存储装置中的数据写入机制的图。
图16是表示本发明的一个实施方式的存储装置中的共享存储器中存储的磁盘设备管理表的一例的图。
图17是用于说明本发明的一个实施方式的存储装置中的数据写入处理的流程图。
图18是用于说明本发明的一个实施方式的存储装置中的数据写入机制的图。
图19是用于说明本发明的一个实施方式的存储装置中的数据写入机制的图。
图20是表示本发明的一个实施方式的存储装置中的共享存储器中存储的磁盘设备管理表的一例的图。
图21是用于说明本发明的一个实施方式的存储装置中的数据写入处理的流程图。
图22是用于说明本发明的一个实施方式的存储装置中的数据写入处理的流程图。
图23是用于说明本发明的一个实施方式的存储装置中的数据写入处理的流程图。
图24是表示本发明的一个实施方式的存储装置中的共享存储器中存储的磁盘设备管理表的一例的图。
图25是用于说明本发明的一个实施方式的存储装置中的数据写入处理的流程图。
符号说明
1计算机***、2网络、3主机装置、4存储装置、5磁盘设备、6磁盘控制器、61通道适配器、62高速缓冲存储器、63磁盘适配器、64共享存储器、65内部交换机
具体实施方式
接下来,参照附图说明本发明的实施方式。
(第一实施方式)
在第一实施方式中说明如下构成的存储装置:在RAID5的结构下压缩写入数据,当无法将该压缩后的数据完全存储在数据卷上的实际存储区域中时,将该未存储完的部分存储在通过卷容量虚拟化功能提供的扩展存储区域中。
图1是用于说明本发明的一个实施方式的存储***的结构的图。如该图所示,计算机***1包含经由网络2与主机装置3相连的存储装置4。
网络2是例如LAN、因特网或SAN(Storage Area Network),包含网络交换机和集线器等而构成。在本实施方式中,网络2由使用光纤通道协议的SAN(FC-SAN)构成。
主机装置3例如是,作为银行的业务***或飞机的座席预约业务***等的核心的计算机。主机装置3具备处理器、主存储器、通信接口和本地输入输出装置等硬件资源,另外,具备设备驱动程序和操作***(OS)、应用程序等软件资源(未图示)。由此,主机装置3在处理器的控制下执行各种程序,通过与硬件资源的协同工作来实现希望的处理。例如,主机装置3通过在处理器的控制下执行业务应用程序,访问以下详细描述的存储装置4,实现希望的业务***。
存储装置4是向主机装置3提供数据存储服务的辅助存储装置。存储装置4具备:存储数据的磁盘设备5;和管理磁盘设备5的结构、控制对磁盘设备5的写入或读出的I/O处理的磁盘控制器6。存储装置4还可以包含用于管理存储装置4全体的管理装置乃至服务处理器(未图示)。或者也可以构成包含管理装置的功能的磁盘控制器6。管理装置例如是安装了管理程序的通用计算机。
本实施方式的存储装置4如后所述,在RAID控制下压缩写入数据,将该压缩数据存储在磁盘设备5的规定的存储区域。当压缩数据超过规定的块大小时,存储装置4将该超过的部分存储在扩展存储区域(池卷)中。如后所述,池卷(Pool Volume)是与通过卷容量虚拟化功能提供的虚拟卷相对应的、存储数据实体的逻辑卷。
磁盘设备5例如是包含多个硬盘驱动器(HDD)或半导体存储器等存储介质而构成的物理设备(PDEV)。有时也将多个硬盘的集合体称为磁盘阵列(DiskArray)。在磁盘设备5中,在磁盘控制器6的控制下形成用于向主机装置3提供的一个以上的逻辑设备(LDEV)。可以对应于将若干硬盘驱动器虚拟地汇总为一个设备而得到的虚拟设备VDEV,来形成逻辑设备。
逻辑设备是主机装置3能够识别的逻辑存储装置。可以对逻辑设备分配逻辑单元(LU)。在这种情况下,将各逻辑设备分配给后述的通道适配器61中设置的各端口,由此,主机装置3将逻辑设备识别为逻辑单元。对各逻辑单元赋予逻辑单元号码(LUN)。另外,将逻辑单元分割为I/O访问的最小单位、即块,对各块分配逻辑块地址(LBA)。由此,主机装置3通过将由LUN和LBA构成的逻辑地址赋予存储装置4,可以对特定逻辑单元中的任意块中存储的数据进行访问。逻辑设备以及逻辑单元可以通过应用存储装置4的***环境而区别,但在本发明中可以将二者取相同含义。
在逻辑设备中定义与属性对应的逻辑卷(LVOL或VOL)。但习惯上有时也将二者取相同含义。在本实施方式中,作为逻辑卷而定义数据卷和池卷。如后所述,数据卷包含实际卷以及虚拟卷。
磁盘控制器6具备:通道适配器(CHA)61、高速缓冲存储器(CM)62、磁盘适配器(DKA)63以及共享存储器(SM)64,这些部件(component)经由内部交换器(SW)65相互连接。从高速性、耐故障性的观点出发,理想的是将这些部件冗余化。
磁盘控制器6是控制磁盘设备5,实现数据存储服务的存储装置4的主***板(Main System Board)。本实施方式的磁盘控制器6包含实现除了基于来自主机装置3的访问请求的通常的I/O处理功能以外,还实现数据压缩/解压功能、RAID功能以及卷容量虚拟化功能的结构。
通道适配器61是用于经由网络2将存储装置4与主机装置3可通信地连接的部件。在本例中搭载了两个通道适配器61。各通道适配器61具备:微处理器611、本地存储器(local memory)612、通信接口(I/F)613和I/O处理器614。
微处理器611是通过执行存储在本地存储器612中的微程序,总体地控制通道适配器61的动作的芯片电路。通信I/F613从网络2取得通信数据包(packet)乃至帧(frame),或者向网络2送出通信数据包。通信I/F613具备用于与网络2连接的多个端口(未图示)。I/O处理器614控制与经由内部交换机65连接的磁盘控制器6内的其它部件(例如高速缓冲存储器62或共享存储器64)之间的数据收发。
具体而言,微处理器611,当经由通信I/F613接收到数据包时,进行与规定的协议对应的协议变换处理,取出内部数据。接着,微处理器611解释该内部数据并控制I/O处理器614,若该内部数据是写入命令,则将该写入命令写入共享存储器64,将其写入数据(即用户数据)写入到高速缓冲存储器62中。I/O处理器614接受该控制,将写入命令写入共享存储器64,并且将其写入数据写入到高速缓冲存储器62中。
另外,微处理器611按照读出命令,通过I/O处理器614从高速缓冲存储器62取出读出数据,进行与规定的协议对应的协议变换处理来生成数据包,并且经由通信I/F613发送至网络2。
高速缓冲存储器62为了对主机装置3提供高***性能,对主机装置3和磁盘设备5(逻辑卷)之间交换的用户数据进行暂时存储(高速缓冲存储)。即,高速缓冲存储器62是用于通道适配器61和磁盘适配器63之间的数据转发的存储器。高速缓冲存储器62例如由DRAM等易失性存储器构成。或者,高速缓冲存储器62也可以由闪速存储器等非易失性存储器构成。
高速缓冲存储器62如后所述,还用作对压缩后的写入数据(压缩数据)进行暂时存储的存储器。例如通过磁盘适配器63来进行数据压缩/解压处理。
磁盘适配器63是对经由磁盘通道连接的磁盘设备5进行I/O访问的部件。在本例中搭载了两个磁盘适配器63。各磁盘适配器63具备:微处理器631、本地存储器632、磁盘接口(I/F)633和I/O处理器634。在本实施方式中,磁盘适配器63安装了I/O控制功能、数据压缩/解压功能、RAID功能以及卷容量虚拟化功能。这些功能例如作为图2所示的固件(firmware)而实现。
微处理器631是通过执行存储在本地存储器632中的微程序,总体控制磁盘适配器63的动作的芯片电路。在本实施方式中,微处理器631在RAID控制下对高速缓冲存储器62中存储的写入数据进行按照规定的压缩算法的压缩处理来生成压缩数据,将其写入磁盘设备5的规定的存储区域。这里所说的规定的存储区域是指实际卷上的存储区域(实际存储区域)。将压缩数据中无法完全存储在该实际存储区域中的部分的数据,存储在通过卷容量虚拟化功能而管理的扩展存储区域(池卷)中。压缩/解压算法,例如可以应用LZW方式等已知算法。
磁盘I/F633是用于对作为物理设备的磁盘设备5进行I/O访问的接口。I/O处理器634控制与经由内部交换机65连接的其它部件(例如高速缓冲存储器62或共享存储器64)之间的数据收发。
更具体而言,微处理器631定期地(例如数十毫秒)或不定期地通过I/O处理器634参照共享存储器64。微处理器631当发现共享存储器64上的未处理的写入命令时,从高速缓冲存储器62取出对应的写入数据,在RAID控制下进行压缩处理,生成压缩数据。即,生成基于写入数据的校验数据,生成与包含该校验数据的写入数据对应的压缩数据。将压缩数据再次存储在高速缓冲存储器62上的压缩数据用块中。然后,微处理器631在RAID控制下将生成的压缩数据存储在形成了数据卷的磁盘设备5上的规定的存储区域(块)中(降级)。例如,若在RAID5(3D+1P)的结构中,将压缩数据与其校验数据一起分散存储在物理上不同系列的磁盘设备5中。另外,此时,微处理器631判断能否将生成的压缩数据完全存储在数据卷中规定的实际存储区域中,当判断为无法完全存储时,将该压缩数据中未存储完的部分的数据存储在通过卷容量虚拟化功能而管理的扩展存储区域中。
另外,微处理器631按照共享存储器64上的读出命令,在RAID控制下从规定的逻辑卷读出压缩数据,将其暂时存储在高速缓冲存储器62中。然后,微处理器631进行解压处理,将所得到的解压数据(原始数据)再次写入高速缓冲存储器62(升级)。当将压缩数据的一部分存储在扩展存储区域中时,微处理器631适宜从扩展存储区域读出该部分压缩数据,合并成一个压缩数据。
共享存储器64对存储装置4内的各部件应参照的各种信息进行存储。共享存储器64由例如DRAM等易失性存储器构成。
内部交换机65是由交叉开关(Crossbar Switch)等构成的交换设备。内部交换机65协调所输入的数据信号的冲突,切换数据信号的路径,构建发送源模块和发送目的地模块的路径。此外,内部交换机65也可以是数据包交换方式的交换设备。
图3是表示本发明的一个实施方式的存储装置4中的共享存储器64的内容的图。如该图所示,共享存储器64存储例如***结构信息、高速缓冲存储管理表、数据块管理表、物理设备管理表等各种信息。
***结构信息是磁盘设备5的结构信息或存储装置4内的各部件上运行的微程序的版本信息等、与***结构相关的信息。作为磁盘设备5的结构信息,包含例如RAID结构信息、物理设备/逻辑设备(卷)的结构信息、卷容量虚拟化结构信息。物理设备/逻辑设备结构信息,例如被定义为区段(segment)管理表以及地址管理表。另外,卷容量虚拟化结构信息例如包含池卷管理表。
通过***管理者操作的管理装置,来设定·管理***结构信息。例如,***管理者可以操作管理装置来设定RAID5(3D+1P)的结构。另外,***管理者,与硬盘驱动器的增设相配合地操作管理装置,来设定卷容量虚拟化结构信息。
高速缓冲存储管理表是管理在高速缓冲存储器62中高速缓冲存储的数据的目录信息的表。高速缓冲存储管理表管理如下内容:构成写入数据的每一个数据块对应于磁盘设备5(逻辑卷)上的哪个块。
如上所述,在本实施方式中,在逻辑卷(数据卷)中不存储写入数据本身,而是存储其压缩数据。因此,典型地考虑平均压缩率,将数据卷上规定的存储区域的块大小规定得小于在高速缓冲存储器62上规定的块大小。另外,磁盘适配器63,将从高速缓冲存储器62的规定的块中读出并压缩的数据,再次存储在高速缓冲存储器62的其它块(压缩数据用块)中,然后进行降级。因此,高速缓冲存储管理表,将高速缓冲存储器62上的RAW状态的写入数据以及压缩数据的各逻辑地址,与数据卷上的逻辑地址对应起来。
数据块管理表是用于管理通过RAID控制的每个校验组的数据块的表。所谓校验组(parity group),在本说明书中是指同时并行地被写入阵列磁盘的数据块组。例如,若是RAID5(3D+1P),则由3个数据块和一个校验块构成的数据块组属于同一校验组。
磁盘设备管理表,是用于管理在RAID控制下形成数据卷的、具有条带(stripe)结构的(即作为物理上不同系列而构成的)“磁盘设备”的地址空间的使用状况的表。准备条带结构数量的磁盘设备管理表。例如,若是RAID5(3D+1P),则准备4个磁盘设备管理表。此外,如按照惯用的RAID的说明,则可以认为条带构成的各个磁盘设备等同于各个物理设备。然而,在本实施方式中,以包含通过卷容量虚拟化功能而不具有物理存储区域的虚拟卷的概念,说明条带构成的“磁盘设备”。因此,在本说明书中,将在RAID控制下条带构成的各个磁盘设备称为“伪磁盘设备”。若是RAID5(3D+1P),则在4个伪磁盘设备上形成某个数据卷。
图4表示本发明的一个实施方式的存储装置4中的区段管理表的一例。区段管理表,是用于管理存储装置4所提供的逻辑卷上的存储区域空间的表。如该图所示,区段管理表包含:磁盘ID(Disk ID)、区段号码(Segment#)、LBA开始地址(LBA_start)、LBA结束地址(LBA_end)、区段的使用状况(In_use)。
磁盘ID是用于唯一识别构成磁盘设备5的物理设备的识别符。区段号码是用于唯一识别区段的号码。区段是磁盘控制器6管理的磁盘设备5上的存储区域。LBA开始地址以及LBA结束地址是表示磁盘设备5上的区段的物理的开始位置以及结束位置的地址。根据LBA开始地址以及LBA结束地址求得区段的大小。使用状况表示区段是否已被使用。在区段处于使用中的情况下设定“1”的值,在未使用的情况下设定“0”的值。
图5表示本发明的一个实施方式的存储装置4的共享存储器64中存储的地址管理表的一例。地址管理表是将存储装置4提供的逻辑卷上的存储区域(即逻辑地址空间)和磁盘设备5上的实际的存储区域(即物理地址空间)对应起来的表。磁盘适配器63通过参照地址管理表,将作为数据的存储目的地而指定的逻辑地址变换为磁盘设备5上的物理地址,按照该物理地址来进行访问。另外,地址管理表对逻辑卷中作为池卷而被使用的区段进行定义。
即,如该图所示,地址管理表包含逻辑单元号码(LUN)、区段号码(Segment#)、LBA开始地址(LBA_start)、LBA结束地址(LBA_end)以及池分配状况。逻辑单元号码是用于唯一识别存储装置4向主机装置3提供的逻辑卷的号码。区段号码是用于唯一识别区段管理表中所管理的存储区域的号码。逻辑卷LU由多个区段构成。LBA开始地址以及LBA结束地址表示区段的逻辑的开始地址和结束地址。池分配状况表示该区段是否作为池卷被使用。当区段作为池卷被使用时,写入“1”。
图6是用于说明本发明的一个实施方式的存储装置4的共享存储器64中存储的数据卷的图。如该图所示,数据卷DVOL0具有0~99999的逻辑地址空间,分配了第一磁盘设备以及第二磁盘设备中的各个区段。第一磁盘设备5如图4所示那样,是分配了磁盘ID“0”的物理设备,第二磁盘设备5是分配了磁盘ID“1”的物理设备。另外,如图5所示那样,区段号码“1”所表示的区段提供数据卷DVOL0上的0~1299的逻辑地址空间。另外,区段号码“3”所表示的区段提供1300~1999的逻辑地址空间。于是,数据卷DVOL0像一个磁盘设备那样被处理。
数据卷DVOL0的逻辑地址空间2000-99999,未被分配作为物理设备的磁盘设备。磁盘控制器6表面上也对数据卷DVOL0的该空间存储数据。为此,存储装置4还具有被称为池卷PVOL的逻辑卷,将应该对数据卷DVOL0内的存储区域中未被分配磁盘设备5上的区段的存储区域(扩展存储区域)存储的数据,存储在该池卷PVOL上。即,在数据卷DVOL0的逻辑地址空间2000~49999中存储的数据实体,被存储在池卷PVOL中。因此,在内部按照池卷管理表对池卷PVOL来进行针对数据卷的扩展存储区域的访问。应该存储在扩展存储区域中的数据,是无法完全存储在通过物理设备而实际提供的存储区域(实际存储区域)中的压缩后的数据块。
该图简略地说明了应用了卷容量虚拟化功能的数据卷DVOL。在本实施方式中,磁盘设备5根据RAID结构而条带构成。因此,实际通过物理上不同系列的4个伪磁盘设备来提供数据卷DVOL。
图7是用于在概念上说明本发明的一个实施方式的存储装置4中的存储区域的动态分配的图。
如上所述,在本实施方式的存储装置4的磁盘设备5中形成数据卷DVOL和池卷PVOL。数据卷DVOL是提供给主机装置3的逻辑卷。数据卷DVOL依存于构成实际安装的磁盘设备5的物理设备的固有存储容量,分为实际卷和虚拟卷。即,实际卷包含在由构成磁盘设备5的物理设备实际提供的区段上形成的物理存储区域。与之相对,虚拟卷对应于实际提供的区段以外的虚拟的存储区域(扩展存储区域)。因此,在虚拟卷中不存储数据实体。池卷PVOL是提供在将来追加安装磁盘设备、确保物理存储区域并且定义新数据卷DVOL之前的期间,对应该存储在虚拟卷中的数据实体进行暂时存储的存储区域的逻辑卷。
针对数据卷VOL中的实际卷上的存储区域,存储装置4将主机装置3识别的逻辑地址(LUN和LBA)与磁盘设备5中的存储区域上的物理地址一对一地关联起来。由此,主机装置3可以通过指定规定的逻辑地址来访问磁盘设备5上所希望的存储区域。
另一方面,关于池卷PVOL上的存储区域,不将主机装置3识别的逻辑地址与实际用于访问数据的磁盘设备5上的物理地址直接关联起来。磁盘适配器63按照指定了数据卷DVOL中的虚拟卷上的存储区域的数据写入命令,将该存储区域动态地分配给池卷PVOL。另外,磁盘适配器63按照从数据卷DVOL中的虚拟卷上的存储区域的读出命令,从池卷PVOL上的该存储区域读出数据。
这样,存储装置4保持池卷管理表,管理虚拟卷和池卷之间的动态的分配。池卷管理表例如被保持在磁盘控制器6的共享存储器64中。存储装置4当无法将压缩数据完全存储在实际卷中时,将该未存储完的部分存储在池卷PVOL中,同时将虚拟卷上的逻辑地址和表示池卷地址的指针关联起来,登录在池卷管理表中。
图8是表示本发明的一个实施方式的存储装置4中的共享存储器64中存储的数据块管理表的一例的图。如该图所示,数据块管理表将槽ID(slot ID)和数据卷内的地址对应起来。槽ID是用于识别校验组内的数据块的识别符。由此,数据块管理表管理如下内容:校验组内的数据块存储在哪个物理设备的哪个地址。
图9是表示本发明的一个实施方式的存储装置4中的共享存储器64中存储的磁盘设备管理表的一例的图。如该图所示,磁盘设备管理表将各伪磁盘设备内的各个地址所表示的存储区域、与其中存储的数据块(槽识别符)对应起来。另外,磁盘设备管理表管理着扩展存储区域中的使用状况。在本例中表示了与伪磁盘设备(0)对应的磁盘设备管理表。即,该图的磁盘设备管理表表示在以地址“xxxx”表示的存储区域中存储“D1-1”、在扩展存储区域1中存储“D1-2”的情况。另外,还表示可以使用扩展存储区域2。而且,还表示扩展存储区域n尚未被分配实际的存储区域。
图10和图11是用于说明本发明的一个实施方式的存储装置4中的数据写入机制(mechanism)的图。具体而言,这些图表示某个写入数据在被压缩后,在RAID5(3D+1P)下被存储在不同系列的伪磁盘设备中的情况。
针对数据卷的写入数据,在存储装置4的内部作为被分块化的数据(数据块)来处理。单位块的大小例如是64KB。在本实施方式中,将写入数据压缩后存储,因此在数据卷上规定小于该大小的(例如16KB)的单位存储区域。高速缓冲存储器62上的64KB的各块,与数据卷上的16KB的各块相对应。因此,在将64KB的数据压缩时,若其压缩数据未超过16KB,则可以容纳在与高速缓冲存储器62上的64KB块对应的数据卷上的16KB块(基本块)中,但是若其压缩数据超过了16KB,则需要该16KB块以外的备用块。即,当64KB×1数据块的压缩数据由16KB×3数据块构成时,将超出的2数据块存储在备用块中。
现在,假设存在对某个数据卷的数据D1的写入请求。为了简化说明,假设写入数据D1是块大小为64KB的单一的数据块。为了在RAID控制下将写入数据D1存储在数据卷中,需要与相同校验组内的数据块D2和D3一起计算校验位(parity)并将它们存储(图10(A))。
数据块D1~D3在磁盘适配器63的控制下被压缩,得到图10(B)所示的压缩数据块。压缩数据块的单位大小为16KB。即,压缩前的数据块D1成为压缩数据块D1-1和D1-2;压缩前的数据块D2成为压缩数据块D2-1和D2-2,并且压缩前的数据块D3成为压缩数据块D3-1。另外,将这些压缩前数据块D1~D3的校验数据P变换为压缩数据块P1-1~P1-4。即,压缩数据块D1-2、D2-2以及P2-2~P2-4是无法完全存储在数据卷上的基本块中的数据块。
在本实施方式中,高速缓冲存储器62上的64KB块,与数据卷上的16KB基本块相关联。基本块是数据卷的实际卷中的存储区域(实际存储区域)。另外,根据数据的内容,有时无法将其压缩数据完全存储在实际存储区域中,因此,将该无法完全存储的部分的数据块存储在虚拟卷的块(扩展存储区域)中。
即,如图11所示,压缩数据块D1-1、D2-1、D3-1以及P-1,在RAID控制下分别被存储在构成数据卷的RAID组中的伪磁盘设备(0)~伪磁盘设备(3)上的实际卷中的块(实际存储区域)中。另外,压缩数据块D1-2、D2-2以及P-2~P-4,分别被存储在该RAID组中的对应的伪磁盘设备(0)~伪磁盘设备(4)上的虚拟卷中的块(扩展存储区域)中。但是,如上所述,虚拟卷未被分配存储数据实体的物理设备的区段。因此,虚拟卷中存储的数据实体被存储在池卷中。
图12是用于说明本发明的一个实施方式的存储装置4中的数据写入处理的流程图。具体而言,该图说明了数据写入处理时的磁盘适配器63的动作。
即,磁盘适配器63参照共享存储器64,当发现未处理的写入命令时,确定高速缓冲存储器62上的与之对应的写入数据。磁盘适配器63根据该写入数据生成遵从RAID结构的校验数据(STEP1201)。即,在本例中,磁盘适配器63遵从RAID5(3D+1P)的结构,针对每3个数据块生成1个校验数据块。通过这3个数据块和1个校验数据块形成1个校验组。因此,即使是1个数据块的写入,也需要与校验组内的其余两个数据块一起生成新的校验数据块。一般将其称为“写惩罚”(write penalty)。在该阶段,各数据块为64KB的块大小。
接着,磁盘适配器63对该校验组中的各数据块(包含校验数据块)进行压缩处理,分别生成压缩数据列(STEP1202)。压缩数据列由1个以上的数据块(压缩数据块)构成。磁盘适配器63将各个压缩所得的数据块写入高速缓冲存储器62中的压缩数据用块中,更新高速缓冲存储管理表。压缩数据用块例如是16KB的块大小。
磁盘适配器63接着为了将压缩数据块分散存储在不同系列的伪磁盘设备中,而进行以下处理。
具体而言,磁盘适配器63,首先将校验周期(parity cycle)变量I设定为0(STEP1203)。接着,磁盘适配器63在数据块管理表中登录该压缩数据块的条目(STEP1204)。即,磁盘适配器63,对于构成应该存储在伪磁盘设备(I)中的压缩数据列的先头的压缩数据块,分配伪磁盘设备(I)中的实际存储区域的地址。即,当压缩数据列由压缩数据块D1-1以及D1-2构成时,对该压缩数据块D1-1首先分配伪磁盘设备(I)中的实际存储区域的地址。接着,磁盘适配器63按照该地址在该实际存储区域中存储压缩数据块(STEP1205)。
然后,磁盘适配器63判断该压缩数据列是否包含超过部分的压缩数据块(STEP1206)。即,判断压缩数据列是否由两个以上的压缩数据块构成。磁盘适配器63,当判断为没有超过部分的压缩数据块时(STEP1206,否),将校验周期变量I的值增加1(STEP1209),判断校验周期变量I是否在规定的校验周期数(在本例中为4)以下(STEP1210)。当校验周期变量I在规定的校验周期数以下时(STEP1210,否),由于校验组内有未处理的压缩数据块,因此返回STEP1204的处理。
磁盘适配器63,当判断为存在超过部分的压缩数据块时(STEP1206,是),在数据块管理表中登录该超过部分的压缩数据块的条目(STEP1207)。即,磁盘适配器63对该超过部分压缩数据块分配伪磁盘设备(I)中的扩展存储区域的地址。
接着,磁盘适配器63进行用于将超过部分的压缩数据块存储在虚拟卷中的处理(STEP1208)。在后面详细描述针对虚拟卷的存储处理。
然后,磁盘适配器63将校验周期变量I的值增加1(STEP1209),判断校验周期变量I是否在规定的校验周期数(在本例中为4)以下(STEP1210)。当校验周期变量I在规定的校验周期数以下时(STEP1201,否),由于校验组内有未处理的压缩数据块,因此返回STEP1204的处理。
当校验周期变量I达到规定的校验周期数时(STEP1210,是),磁盘适配器63结束该数据写入处理。
图13是用于说明针对本发明的一个实施方式的存储装置4中的虚拟卷的数据写入处理的流程图。具体而言,该图是用于说明图12所示的STEP1208的详细情况的流程图。
即,如该图所示,磁盘适配器63首先判断是否已经对虚拟卷分配了池卷上的存储区域(STEP1301)。磁盘适配器63,当判断为未对虚拟卷分配池卷上的存储区域时(STEP1301,否),在池卷管理表中追加关于超过部分的压缩数据块的条目(STEP1302)。若以上述例子而言,则关于压缩数据块D1-2,将虚拟卷的地址和池卷的地址对应起来。
接着,磁盘适配器63在磁盘设备管理表的扩展存储区域中追加数据块(STEP1303)。然后,磁盘适配器63将超过部分的压缩数据块存储在虚拟卷中(STEP1304)。在这种情况下,实际上在磁盘适配器63的控制下,将该超过部分的压缩数据块存储在提供池卷的磁盘设备5中。
如上所述,根据本实施方式,在采用为了压缩存储写入数据而将高速缓冲存储器62上的块固定地分配给磁盘设备5上的更小的块的结构的存储装置中,即使在无法将压缩数据完全存储在磁盘设备5上的该块中时,也可以将该压缩数据中未存储完的部分的数据存储在扩展存储区域中。该扩展存储区域,作为与之相关联的池卷而被管理,因此可以采用与存储区域的使用实际相对应的灵活的磁盘设备的结构。
(第二实施方式)
在第二实施方式中,说明在RAID结构下对写入数据的压缩数据进行镜像(mirroring)来存储时,将复制的压缩数据存储在虚拟卷中而构成的存储装置4。
图14和图15是用于说明本发明的一个实施方式的存储装置4中的数据写入机制的图。具体而言,这些图说明了在将某写入数据D4~D6压缩后,在RAID1(4D)下存储在伪磁盘设备中的情况。
考虑对某数据卷存储写入数据D4~D6的情况。为了简化说明,设写入数据D4~D6是块大小为64KB的单一的数据块。数据块D4~D6在磁盘适配器63的控制下被压缩,得到压缩数据块D4-1~D6-1。另外,以压缩数据块D4-1’~D6-1’表示压缩数据块D4-1~D6-1的复制数据(镜像数据)。压缩数据块的大小是16KB。因此,存储装置4对于64KB×3数据块存储16KB×6数据块(图14)。
在本实施方式中如图15所示,将这些压缩数据块分散存储在每个伪磁盘设备的实际存储区域中,同时将镜像后的压缩数据块分散存储在扩展存储区域中。但是,如本例所示,当数据周期(data cycle)是3、伪磁盘设备是4个时,也可以将一个镜像后的压缩数据块存储在第四伪磁盘设备的实际存储区域中。
图16是表示在本发明的一个实施方式的存储装置4中的共享存储器64中存储的磁盘设备管理表的一例。如该图所示,本实施方式的磁盘设备管理表,针对每个槽ID,将第一地址和第二地址对应起来。第二地址是存储镜像后的压缩数据块的数据卷的地址。
图17是用于说明本发明的一个实施方式的存储装置4中的数据写入处理的流程图。具体而言,该图说明了数据写入处理时的磁盘适配器63的动作。此外,在本例中,RAID组是4D。
即,如该图所示,磁盘适配器63参照共享存储器64,当发现未处理的写入命令时,确定高速缓冲存储器62上与之对应的写入数据。磁盘适配器63遵从RAID1,对构成该写入数据的数据块进行压缩处理,生成压缩数据块(STEP1701)。而且将该压缩数据块二重化(STEP1702)。将压缩数据块及其二重化后的数据块存储在高速缓冲存储器62中的压缩数据用块中。在本例中,将3个压缩数据块作为1个数据周期,在其后接着存储二重化后的压缩数据块。
然后,磁盘适配器63为了将压缩数据块分散存储在不同系列的伪磁盘设备中而进行以下处理。即,磁盘适配器63首先将1个数据周期的量的压缩数据块分散存储在不同的伪磁盘设备(0)~伪磁盘设备(2)中(STEP1703)。然后,磁盘适配器63将数据周期变量I设置为0(STEP1704)。
磁盘适配器63判断数据周期变量I是否为0(STEP1705)。即,磁盘适配器63选择在伪磁盘设备(0)中存储的压缩数据块(例如D4-1)所对应的二重化后的压缩数据块(例如D4-1’)。
磁盘适配器63,当判断为数据周期变量I是0时(STEP1705,是),将该二重化后的压缩数据块存储在伪磁盘设备(3)的实际存储区域中(STEP1706),在数据块管理表中登录该二重化后的压缩数据块的条目(STEP1707)。
与之相对,当数据周期变量I是0以外时,磁盘适配器63将该二重化后的压缩数据块存储在伪磁盘设备(I-1)的扩展存储区域中(STEP1708),在数据块管理表中登录该二重化后的压缩数据块的条目(STEP1709)。即,将伪磁盘设备(0)以外的伪磁盘设备中存储的压缩数据块所对应的二重化后的压缩数据块,存储在循环改变(rotate shift)了一次的伪磁盘设备中。
然后,磁盘适配器63将数据周期变量I的值增加1(STEP1710),判断数据周期变量I是否到达1个数据周期(STEP1711)。当数据周期变量I未到达1个数据周期时(STEP1711,否),磁盘适配器63返回STEP1705的处理。另一方面,当数据周期变量I到达了1个数据周期时(STEP1711,是),结束该写入处理。
如上所述,根据本实施方式,在RAID1的结构下将写入数据的压缩数据进行镜像来存储时,将复制的压缩数据存储在虚拟卷中,因此可以实现高效的数据存储。
(第三实施方式)
第三实施方式是上述第一实施方式中表示的技术特征和上述第二实施方式中表示的技术特征的组合。具体而言,在本实施方式中,存储装置4在数据写入处理时,针对每个校验组生成校验数据块,对各数据块进行压缩处理。存储装置4基于压缩处理的结果,判断使用校验位(parity)的数据存储方式和基于镜像的数据存储方式中的哪种方式是高效的数据存储,按照被认为高效的数据存储方式,将压缩数据块存储在数据卷中。在这种情况下,如上所述,适宜将压缩数据块存储在虚拟卷中。
图18和图19是用于说明本发明的一个实施方式的存储装置4中的数据写入机制的图。具体而言,这些图表示了在将某写入数据压缩后,在RAID5(3D+1P)或RAID1(4D)下存储在伪磁盘设备中的情况。
现在,假定有针对某个数据卷的数据D1的写入请求,接着有数据D5的写入请求。为了简化说明,设写入数据是块大小为64KB的单一的数据块。为了在RAID5控制下将写入数据(数据块)存储在数据卷中,需要与各个相同的校验组内的数据块一起计算校验位并将它们存储。即,关于数据块D1,与数据块D2和D3一起计算校验数据块P1,另外,关于数据块D5,与数据块D4和D6一起计算校验数据块P2。它们是在高速缓冲存储器62上的64KB块中存储的、压缩前的数据块。
假定数据块D1~D3和P1通过磁盘适配器63被压缩,得到图18(A)所示的数据块。它们是被存储在高速缓冲存储器62上的16KB块中的压缩数据块。如上所述,压缩数据块D1-2、D2-2以及P1-2~P1-4,是无法完全存储在数据卷的实际卷的实际存储区域中的数据块。
另一方面,假定数据块D4~D6以及P2通过磁盘适配器63被压缩,得到图18(B)所示的压缩数据块。即,将数据块D4~D6变换为,压缩到可以存储在数据卷的实际卷中的一个实际存储区域中而得的压缩数据块D4-1~D6-1。另外,数据块P2的压缩效率低(压缩率高),被变换为压缩数据块P2-1~P2-4。此外,在本说明书中,压缩率是指将压缩后的数据大小除以压缩前的数据大小而得到的值。因此,所谓压缩率低,意味着压缩后的数据大小较小、压缩效率高。
因此,根据数据块D4~D6和P2生成7个压缩数据块。与之相对,在将数据块D4-1~D6-1二重化来存储在数据卷中时,若存储6个压缩数据块便足够。因此,本实施方式的存储装置4在压缩写入数据后,检查包含校验位的压缩数据块的数量,选择存储更少数量的压缩数据块便足够的方式。
因此,如图19所示,将压缩数据块D1-1、D2-1、D3-1以及P-1在RAID5控制下分别存储在构成数据卷的RAID组中的伪磁盘设备(0)~伪磁盘设备(3)的实际卷中。另外,将压缩数据块D1-2、D2-2以及P-2~P-4分别存储在该RAID组中的对应的伪磁盘设备(0)~伪磁盘设备(4)的虚拟卷中。
另外,压缩数据块D4-1~D6-1在RAID1控制下被镜像,利用扩展存储区域存储在伪磁盘设备(0)~伪磁盘设备(3)中。
图20是表示本发明的一个实施方式的存储装置4中的共享存储器64中存储的磁盘设备管理表的一例的图。具体而言,该图表示了按照上述例子通过使用校验位的数据存储方式存储了写入数据时的磁盘设备管理表。通过基于镜像的数据存储方式存储了写入数据时的磁盘设备管理表,与图16所示的磁盘设备管理表相同。
图21~图23是用于说明本发明的一个实施方式的存储装置4中的数据写入处理的流程图。具体而言,该图说明了数据写入处理时的磁盘适配器63的动作。
即,磁盘适配器63参照共享存储器64,当发现未处理的写入命令时,确定高速缓冲存储器62上与之对应的写入数据。磁盘适配器63根据该写入数据,生成遵从RAID结构的校验数据(STEP2101)。即,在本例中,磁盘适配器63遵从RAID5(3D+1P)的结构,针对每3个数据块形成由1个校验数据块构成的校验组。在此阶段,各数据块是64KB的块大小。
接着,磁盘适配器63对形成的校验组内的各数据块进行压缩处理,分别生成压缩数据列(STEP2102)。磁盘适配器63将构成各压缩数据列的每一个压缩数据块,写入高速缓冲存储器62中的压缩数据用块中,更新高速缓冲存储管理表。压缩数据用块例如是16KB的块大小。
接着,磁盘适配器63判断校验组内的压缩数据块(不包含压缩校验数据块)数是否比压缩校验数据块数少(STEP2103)。即,磁盘适配器63判断使用校验位的数据存储方式和基于镜像的数据存储方式中的哪种方式可以高效地存储写入数据。
磁盘适配器63,当判断为校验组内的压缩数据块数比压缩校验数据块数少时,进行图22所示的处理。图22所示的处理是使用校验位的数据存储处理,与图12所示的STEP1203以后的处理相同,因此省略说明。
与之相对,磁盘适配器63在判断为校验组内的压缩数据块数比压缩后校验数据块数多时,进行图23所示的处理。图23所示的处理是基于镜像的数据存储处理,与图17所示的STEP1702以后的处理相同,因此省略说明。
如上所述,根据本实施方式,当压缩写入数据来进行存储时,根据包含校验位的压缩数据的大小、和不使用校验位而进行二重化所得到的压缩数据的大小,选择最佳的RAID结构,因此可以实现压缩数据的高效存储。
(第四实施方式)
第四实施方式是第三实施方式的变形,其特征在于,存储了针对数据写入请求的前一次的数据存储方式,当存在针对该数据的其它写入请求时,利用该存储的数据存储方式。
图24(A)和(B)是表示本发明的一个实施方式的存储装置4中的共享存储器64中存储的磁盘设备管理表的一例的图。如该图所示,本实施方式的磁盘设备管理表与上述磁盘设备管理表大体相同,但在保持了存储前一次的数据存储方式的学习信息这点不同。即,该图(A)表示将RAID5作为学习信息而保持的状态,该图(B)表示没有学习信息的状态。
图25是用于说明本发明的一个实施方式的存储装置4中的数据写入处理的流程图。
如该图所示,磁盘适配器63参照共享存储器64,当发现未处理的写入命令时,确定高速缓冲存储器62上的与之对应的写入数据。磁盘适配器63参照针对写入数据的数据块管理表,取得当前的学习信息(STEP2501),判断当前的学习信息是否是“RAID1”(STEP2502)。
磁盘适配器63,当判断为当前的学习信息不是“RAID1”时(STEP2502,否),在RAID5的控制下进行压缩数据的存储处理。
即,磁盘适配器63如前所述那样生成遵从RAID结构的校验数据块(STEP2503),接着,压缩校验组内的各数据块(STEP2504)。
然后,磁盘适配器63判断校验组内的压缩数据块(不包含压缩校验数据块)数是否比压缩校验数据块数少(STEP2505)。即,磁盘适配器63判断使用校验位的数据存储方式和使用镜像的数据存储方式中的哪种方式可以高效地存储写入数据。
磁盘适配器63,当判断为校验组内的压缩数据块数比压缩校验数据块数多时,进行基于镜像的数据存储处理(STEP2509)。基于镜像的数据存储处理与图23所示的处理相同。
与之相对,磁盘适配器63,当判断为校验组内的压缩数据块数比压缩校验数据块数少时,进行使用校验位的数据存储处理(STEP2506)。使用校验位的数据存储处理与图22所示的处理相同。
然后,为了下一次的数据写入处理,磁盘适配器63将数据块管理表的学习信息设定为“RAID5”(STEP2507)。
在STEP2502中,当判断为当前的学习信息是“RAID1”时(STEP2502,是),在RAID1控制下进行压缩数据的存储处理。
即,磁盘适配器63首先压缩数据块(STEP2508),接着进行基于镜像的数据存储处理(STEP2509)。
在结束基于镜像的数据存储处理后,磁盘适配器63为了判断是否更新学习信息,而生成遵从RAID结构的校验数据块(STEP2510),接着,压缩校验组内的各数据块(STEP2511)。磁盘适配器63判断校验组内的压缩数据块(不包含压缩后校验数据块)数是否比压缩校验数据块数少(STEP2512)。
磁盘适配器63,当判断为校验组内的压缩数据块数比压缩校验数据块数少时(STEP2512,是),将数据块管理表的学习信息设定为“RAID5”(STEP2507)。
与之相对,磁盘适配器63当判断为校验组内的压缩数据块数比压缩后校验数据块数多时(STEP2512,否),将数据块管理表的学习信息设定为“RAID1”(STEP2513)。
通过以上所述,根据本实施方式,由于存储了前一次的数据存储方式,因此可以进行更高效的RAID结构的选择。
上述实施方式是用于说明本发明的例子,本发明不限定于上述实施方式。本发明在不超出其主旨的范围内可以通过各种形态来实施。
例如,在上述实施方式中,在流程图中按顺序地构成了磁盘适配器的动作,但只要不在动作结果中产生矛盾,也可以改变处理的顺序或者并行进行处理。
另外,在上述实施方式中采用了RAID5,但也可以是作为使用校验位的其它RAID结构而已知的RAID3、RAID4或RAID6。
产业上的可利用性
本发明可以广泛应用于采用RAID结构的存储装置。
Claims (10)
1.一种存储装置,其具备:具有存储数据的存储介质的磁盘设备、控制所述磁盘设备的磁盘控制器,该存储装置的特征在于,
所述磁盘控制器具备:
用于与主机装置连接的通道适配器;
与所述磁盘设备相连的磁盘适配器;以及
对所述通道适配器和所述磁盘适配器之间交换的数据进行暂时存储的高速缓冲存储器,
所述磁盘适配器,
控制所述磁盘设备以便形成数据卷和池卷,所述数据卷包含被定义了比所述存储介质的固有存储容量大的存储容量的、与所述存储介质的存储区域相对应的实际卷,以及分配了所述实际卷以外的存储区域的虚拟卷,所述池卷被分配了用于存储与分配给所述虚拟卷的存储区域相对应的数据的存储区域,
所述磁盘适配器,
在规定的RAID结构的控制下,基于依照从所述主机装置发送的写入请求的写入数据,生成该写入数据所属的校验组内的校验数据,
压缩所述校验组内的每一个所述写入数据以及每一个所述生成的校验数据,生成压缩数据以及压缩校验数据,
判断所述校验组内的每一个所述压缩数据以及每一个所述压缩校验数据是否超过规定大小,
将所述压缩数据以及所述压缩校验数据中未超过所述规定大小的部分的数据存储在所述实际卷的存储区域中,将所述压缩数据以及所述压缩校验数据中超过所述规定大小的部分的数据存储在所述虚拟卷所对应的所述池卷的存储区域中。
2.根据权利要求1所述的存储装置,其特征在于,
所述磁盘适配器,
根据构成所述写入数据的数据块以及所述校验组内的其它数据块,生成所述校验数据的数据块,
根据压缩数据列是否由超过规定数量的压缩数据块构成,来判断是否超过了所述规定大小,所述压缩数据列是通过对所述校验组内的每一个所述数据块进行压缩而得到的,
将未超过所述规定数量的所述压缩数据块存储在所述实际卷的存储区域中,将超过所述规定数量的所述压缩数据块存储在所述虚拟卷所对应的所述池卷的存储区域中。
3.根据权利要求2所述的存储装置,其特征在于,
所述磁盘适配器,
将所述校验组内的每一个所述压缩数据块分散存储在构成所述数据卷的、物理上不同系列的磁盘设备中。
4.根据权利要求3所述的存储装置,其特征在于,
所述磁盘适配器,
将构成所述压缩数据列的所述压缩数据块存储在构成所述数据卷的同一系列的磁盘设备中所形成的实际卷以及虚拟卷中。
5.根据权利要求2所述的存储装置,其特征在于,
存储所述校验组内的每一个所述数据块的、在所述高速缓冲存储器上形成的存储区域的大小,大于所述实际卷的单位存储区域的大小。
6.根据权利要求2所述的存储装置,其特征在于,
所述磁盘适配器,
判断除所述校验数据的压缩数据块以外的压缩数据块的数量,是否少于所述校验数据的压缩数据块的数量,
当判断为除所述校验数据的压缩数据块以外的压缩数据块的数量,少于所述校验数据的压缩数据块的数量时,将未超过所述规定数量的所述压缩数据块存储在所述实际卷的存储区域中,将超过所述规定数量的所述压缩数据块存储在所述虚拟卷所对应的所述池卷的存储区域中。
7.根据权利要求6所述的存储装置,其特征在于,
所述磁盘适配器,
当判断为除所述校验数据的压缩数据块以外的压缩数据块的数量,多于所述校验数据的压缩数据块的数量时,将除所述校验数据的压缩数据块以外的每一个压缩数据块二重化,
将所述二重化后的每一个压缩数据块存储在构成所述数据卷的、物理上不同系列的磁盘设备中。
8.根据权利要求7所述的存储装置,其特征在于,
所述磁盘适配器,
分别将所述校验组内的所述二重化后的压缩数据块中的一部分压缩数据块存储在所述数据卷的实际卷中,将另一部分压缩数据块存储在所述数据卷的虚拟卷中。
9.根据权利要求1所述的存储装置,其特征在于,
所述磁盘适配器,
存储针对依照所述写入请求的写入数据的、基于RAID结构的数据存储方式,按照该存储的数据存储方式压缩所述写入数据,存储在所述数据卷中。
10.一种存储装置中的数据存储方法,该存储装置具备:具有存储数据的存储介质的磁盘设备;和控制所述磁盘设备的磁盘控制器,所述数据存储方法的特征在于,具有以下步骤:
所述磁盘控制器控制所述磁盘设备以便形成数据卷和池卷,所述数据卷包含被定义了比所述存储介质的固有存储容量大的存储容量的、与所述存储介质的存储区域相对应的实际卷,以及分配了所述实际卷以外的存储区域的虚拟卷,所述池卷被分配了用于存储与分配给所述虚拟卷的存储区域相对应的数据的存储区域;
所述磁盘控制器按照规定的RAID结构,基于依照从所述主机装置发送的写入请求的写入数据,生成该写入数据所属的校验组内的校验数据;
所述磁盘控制器压缩所述校验组内的每一个所述写入数据以及每一个所述生成的校验数据,生成压缩数据以及压缩校验数据;
所述磁盘控制器判断所述校验组内的每一个所述压缩数据以及每一个所述压缩校验数据是否超过规定大小;
所述磁盘控制器,将所述压缩数据以及所述压缩校验数据中未超过所述规定大小的部分的数据存储在所述实际卷的存储区域中,并且将所述压缩数据以及所述压缩校验数据中超过所述规定大小的部分的数据存储在所述虚拟卷所对应的所述池卷的存储区域中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007-272900 | 2007-10-19 | ||
JP2007272900 | 2007-10-19 | ||
JP2007272900A JP5112003B2 (ja) | 2007-10-19 | 2007-10-19 | ストレージ装置及びこれを用いたデータ格納方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101414245A true CN101414245A (zh) | 2009-04-22 |
CN101414245B CN101414245B (zh) | 2011-10-26 |
Family
ID=40364298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101089125A Expired - Fee Related CN101414245B (zh) | 2007-10-19 | 2008-06-06 | 存储装置以及使用该存储装置的数据存储方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8037244B2 (zh) |
EP (1) | EP2051167A3 (zh) |
JP (1) | JP5112003B2 (zh) |
CN (1) | CN101414245B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101556557B (zh) * | 2009-05-14 | 2011-03-23 | 浙江大学 | 一种基于对象存储设备的对象文件组织方法 |
CN102012865A (zh) * | 2010-10-27 | 2011-04-13 | 威海威高电子工程有限公司 | 量化数据存储方法 |
CN102073830A (zh) * | 2011-01-12 | 2011-05-25 | 深圳昂楷科技有限公司 | 一种动态扩展透明加密文件附加信息的方法 |
CN104778018A (zh) * | 2015-04-23 | 2015-07-15 | 南京道熵信息技术有限公司 | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 |
US20150256621A1 (en) * | 2012-11-19 | 2015-09-10 | Hitachi, Ltd. | Management system and management method |
CN104937561A (zh) * | 2013-05-17 | 2015-09-23 | 株式会社日立制作所 | 存储装置 |
CN104956312A (zh) * | 2013-12-12 | 2015-09-30 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
CN105739930A (zh) * | 2016-02-02 | 2016-07-06 | 华为技术有限公司 | 一种存储架构及其初始化方法和数据存储方法及管理装置 |
CN109313426A (zh) * | 2016-10-21 | 2019-02-05 | 株式会社东芝 | 控制器 |
CN111190534A (zh) * | 2018-11-14 | 2020-05-22 | 株式会社日立制作所 | 卷管理装置、卷管理方法和存储介质 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009098996A (ja) * | 2007-10-18 | 2009-05-07 | Hitachi Ltd | ストレージシステム |
US8650328B1 (en) * | 2008-12-15 | 2014-02-11 | American Megatrends, Inc. | Bi-directional communication between redundant storage controllers |
JP5423407B2 (ja) * | 2010-01-08 | 2014-02-19 | 富士通株式会社 | 記憶管理装置、記憶管理方法および記憶管理プログラム |
US8112663B2 (en) * | 2010-03-26 | 2012-02-07 | Lsi Corporation | Method to establish redundancy and fault tolerance better than RAID level 6 without using parity |
US8181062B2 (en) * | 2010-03-26 | 2012-05-15 | Lsi Corporation | Method to establish high level of redundancy, fault tolerance and performance in a raid system without using parity and mirroring |
US8909891B2 (en) * | 2011-07-21 | 2014-12-09 | International Business Machines Corporation | Virtual logical volume for overflow storage of special data sets |
US9619389B1 (en) | 2013-07-11 | 2017-04-11 | Unigen Corporation | System for a backward and forward application environment compatible distributed shared coherent storage |
KR102088403B1 (ko) | 2013-08-08 | 2020-03-13 | 삼성전자 주식회사 | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 |
WO2015075837A1 (ja) * | 2013-11-25 | 2015-05-28 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
CN105022586B (zh) * | 2014-04-17 | 2018-06-05 | ***通信集团公司 | 一种数据处理方法、装置和*** |
US9830220B1 (en) * | 2014-09-29 | 2017-11-28 | EMC IP Holding Company LLC | Enhanced error recovery for data storage drives |
WO2016073018A1 (en) * | 2014-11-04 | 2016-05-12 | Hewlett Packard Enterprise Development Lp | Storing excess data in a raid 60 array |
WO2016151831A1 (ja) * | 2015-03-26 | 2016-09-29 | 株式会社日立製作所 | ストレージシステム |
WO2017000097A1 (zh) * | 2015-06-27 | 2017-01-05 | 华为技术有限公司 | 一种数据转发的方法、装置和*** |
US10037245B2 (en) | 2016-03-29 | 2018-07-31 | International Business Machines Corporation | Raid system performance enhancement using compressed data and byte addressable storage devices |
US10437667B2 (en) | 2016-03-29 | 2019-10-08 | International Business Machines Corporation | Raid system performance enhancement using compressed data |
CN107305476B (zh) * | 2016-04-25 | 2020-03-31 | 群联电子股份有限公司 | 数据校正方法、存储器控制电路单元与存储器存储装置 |
KR102664665B1 (ko) * | 2016-08-22 | 2024-05-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN107577551A (zh) * | 2017-09-06 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种固态硬盘写失败处理方法及*** |
JP6429963B2 (ja) * | 2017-09-14 | 2018-11-28 | 株式会社日立製作所 | ストレージ装置及びストレージ装置の制御方法 |
US10852966B1 (en) * | 2017-10-18 | 2020-12-01 | EMC IP Holding Company, LLC | System and method for creating mapped RAID group during expansion of extent pool |
JP2019079113A (ja) | 2017-10-20 | 2019-05-23 | 株式会社日立製作所 | ストレージ装置、データ管理方法、及びデータ管理プログラム |
US11372984B2 (en) * | 2019-08-14 | 2022-06-28 | International Business Machines Corporation | Key-compressible encryption |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247638A (en) | 1990-06-18 | 1993-09-21 | Storage Technology Corporation | Apparatus for compressing data in a dynamically mapped virtual data storage subsystem |
JP2550239B2 (ja) * | 1991-09-12 | 1996-11-06 | 株式会社日立製作所 | 外部記憶装置システム |
JPH05189157A (ja) * | 1992-01-13 | 1993-07-30 | Toshiba Corp | ディスク型記憶装置 |
JP3419538B2 (ja) * | 1994-03-24 | 2003-06-23 | 株式会社日立製作所 | 記憶制御方法及びそれを用いた圧縮機能付きディスクシステム |
EP1376329A2 (en) * | 1994-06-22 | 2004-01-02 | Hewlett-Packard Company, A Delaware Corporation | Method of utilizing storage disks of differing capacity in a single storage volume in a hierarchic disk array |
US6442659B1 (en) * | 1998-02-17 | 2002-08-27 | Emc Corporation | Raid-type storage system and technique |
JP4220726B2 (ja) * | 2002-06-05 | 2009-02-04 | 株式会社日立製作所 | 外部記憶装置システム及び記憶制御装置 |
US7051152B1 (en) * | 2002-08-07 | 2006-05-23 | Nvidia Corporation | Method and system of improving disk access time by compression |
US7350101B1 (en) * | 2002-12-23 | 2008-03-25 | Storage Technology Corporation | Simultaneous writing and reconstruction of a redundant array of independent limited performance storage devices |
CN1523504A (zh) * | 2003-02-18 | 2004-08-25 | 盖内蒂克瓦尔有限公司 | 确保远程加载数据的保密性和不被修改性的信息验证装置与方法 |
JP4757038B2 (ja) * | 2006-01-25 | 2011-08-24 | 株式会社日立製作所 | ストレージシステム及び記憶制御装置 |
US9007603B2 (en) | 2006-03-31 | 2015-04-14 | Konica Minolta Laboratory U.S.A., Inc. | Print management method and apparatus with destination panel |
-
2007
- 2007-10-19 JP JP2007272900A patent/JP5112003B2/ja not_active Expired - Fee Related
-
2008
- 2008-01-17 US US12/007,940 patent/US8037244B2/en not_active Expired - Fee Related
- 2008-04-22 EP EP08251492A patent/EP2051167A3/en not_active Withdrawn
- 2008-06-06 CN CN2008101089125A patent/CN101414245B/zh not_active Expired - Fee Related
-
2011
- 2011-07-26 US US13/191,079 patent/US8171217B2/en not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101556557B (zh) * | 2009-05-14 | 2011-03-23 | 浙江大学 | 一种基于对象存储设备的对象文件组织方法 |
CN102012865A (zh) * | 2010-10-27 | 2011-04-13 | 威海威高电子工程有限公司 | 量化数据存储方法 |
CN102073830A (zh) * | 2011-01-12 | 2011-05-25 | 深圳昂楷科技有限公司 | 一种动态扩展透明加密文件附加信息的方法 |
US9578098B2 (en) * | 2012-11-19 | 2017-02-21 | Hitachi, Ltd. | Management system and management method |
US20150256621A1 (en) * | 2012-11-19 | 2015-09-10 | Hitachi, Ltd. | Management system and management method |
CN104937561A (zh) * | 2013-05-17 | 2015-09-23 | 株式会社日立制作所 | 存储装置 |
CN104937561B (zh) * | 2013-05-17 | 2018-01-02 | 株式会社日立制作所 | 存储装置 |
CN104956312A (zh) * | 2013-12-12 | 2015-09-30 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
CN104956312B (zh) * | 2013-12-12 | 2018-02-13 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
CN108108311A (zh) * | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
CN104778018B (zh) * | 2015-04-23 | 2018-06-05 | 南京道熵信息技术有限公司 | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 |
CN104778018A (zh) * | 2015-04-23 | 2015-07-15 | 南京道熵信息技术有限公司 | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 |
CN105739930A (zh) * | 2016-02-02 | 2016-07-06 | 华为技术有限公司 | 一种存储架构及其初始化方法和数据存储方法及管理装置 |
CN109313426A (zh) * | 2016-10-21 | 2019-02-05 | 株式会社东芝 | 控制器 |
CN109313426B (zh) * | 2016-10-21 | 2021-10-08 | 株式会社东芝 | 控制器 |
CN111190534A (zh) * | 2018-11-14 | 2020-05-22 | 株式会社日立制作所 | 卷管理装置、卷管理方法和存储介质 |
CN111190534B (zh) * | 2018-11-14 | 2023-06-02 | 株式会社日立制作所 | 卷管理装置、卷管理方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20090106492A1 (en) | 2009-04-23 |
US20110283064A1 (en) | 2011-11-17 |
EP2051167A2 (en) | 2009-04-22 |
JP5112003B2 (ja) | 2013-01-09 |
US8171217B2 (en) | 2012-05-01 |
EP2051167A3 (en) | 2011-05-04 |
CN101414245B (zh) | 2011-10-26 |
JP2009104236A (ja) | 2009-05-14 |
US8037244B2 (en) | 2011-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101414245B (zh) | 存储装置以及使用该存储装置的数据存储方法 | |
US11327661B2 (en) | Storage system and data management method | |
US10073621B1 (en) | Managing storage device mappings in storage systems | |
US8650360B2 (en) | Storage system | |
CN111158587B (zh) | 基于存储池虚拟化管理的分布式存储***及数据读写方法 | |
US8819338B2 (en) | Storage system and storage apparatus | |
US8938582B2 (en) | Storage systems with reduced energy consumption | |
US7694072B2 (en) | System and method for flexible physical-logical mapping raid arrays | |
US10678470B2 (en) | Computer system,control method for physical storage device,and recording medium | |
WO2016142998A1 (ja) | 計算機システム | |
US20080195832A1 (en) | Storage controller and storage system | |
CN102164165A (zh) | 一种网络存储***的管理方法及装置 | |
US20210271393A1 (en) | Method and apparatus for performing data access management of all flash array server | |
CN101997919A (zh) | 一种存储资源的管理方法及管理装置 | |
US6898666B1 (en) | Multiple memory system support through segment assignment | |
US11868612B1 (en) | Managing storage operations in storage systems | |
CN116069266B (zh) | 磁盘漫游控制方法、装置、设备及计算机可读存储介质 | |
US11467904B2 (en) | Storage system and control method of the same | |
US11561695B1 (en) | Using drive compression in uncompressed tier | |
Fekete | RAIDX: Raid Extended for Heterogeneous Arrays | |
WO2006036810A2 (en) | System and method for flexible physical-to-logical mapping in raid arrays |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111026 |
|
CF01 | Termination of patent right due to non-payment of annual fee |