存储装置的制造方法

文档序号:9221628阅读:392来源:国知局
存储装置的制造方法
【技术领域】
[0001]本发明涉及包括具有数据压缩功能的记忆装置的存储装置。
【背景技术】
[0002]通常,存储装置具有保存数据的物理记忆装置和控制物理记忆装置的控制器。控制器向与存储装置连接的计算机(例如主机)提供数据保存空间(通常为逻辑卷)。
[0003]存储装置基于RAID (Redundant Array of Independent (or Inexpensive) Disks:磁盘阵列)结构使用多个物理记忆装置,由此来将1/0(输入/输出)处理高速化,针对物理记忆装置的故障发挥高容错性。
[0004]存储装置通常搭载多个HDD (Hard Disk Drive:硬盘驱动器)来作为物理记忆装置,近年来,取代HDD,例如SSD(Solid State Drive:固态硬盘驱动器)之类的具有闪存(以下,称为FM)的物理记忆装置作为物理记忆介质而受到关注。相比于HDD,SSD具有I/O处理速度非常快的优点。
[0005]近年来,保存在存储装置内的数据量不断增加。因此,用于削减保存数据量、降低存储装置的成本的数据压缩技术受到关注。特别是,由于SSD比HDD的每比特成本(bitcost)价格更高,所以对通过压缩技术削减保存数据容量来增大表面容量的需求很高。
[0006]在专利文献I中公开了如下的技术:在存储控制器内,对存储装置的控制器(以下,称为存储控制器)从主机计算机接收的数据进行压缩,并将压缩后的数据(以下,称为压缩数据)保存在HDD内。
[0007]在专利文献2中公开了与闪存存储器(以下,称为SSD)有关的技术,在该闪存存储器中,SSD内部的控制器(以下,称为SSD控制器)具有数据压缩功能,向外部装置(存储控制器)提供的虚拟逻辑容量根据数据压缩率而变化。也就是说,压缩后的数据大小越小,SSD能够向外部装置提供的虚拟逻辑容量变得越大,而压缩后的数据大小越大,SSD能够向外部装置提供的虚拟逻辑容量变得越小。由于压缩后的数据大小依赖于作为压缩对象的数据的模式,所以压缩后的数据大小不是固定的。因此,在存储装置搭载有多个SSD的情况下,SSD之间能够向外部装置提供的虚拟逻辑容量可能不同。
[0008]现有技术文献
[0009]专利文献
[0010]专利文献1:日本特开平8-249128
[0011]专利文献2:PCT/JP2011/003204

【发明内容】

[0012]在如专利文献I那样的在现有的存储装置中所采用的由存储控制器进行的数据压缩中,存储控制器首先压缩数据,将压缩后的数据划分成规定的大小,并保存(条带化)至SSD、HDD等各种记忆装置,因此,构成RAID组的记忆装置的逻辑容量总是均等的。
[0013]在专利文献2中,存储控制器将数据条带化并保存至RAID组内的多个SSD。为了进行条带化来保存数据,RAID组内的各SSD需要具有相同大小的空闲容量。也就是说,若RAID组内的某个SSD没有空闲容量,则即使其他SSD有空闲容量,也不能再保存数据。
[0014]像这样,在SSD内部进行数据压缩的情况下,即使存储控制器在构成RAID组的多个SSD中保存了相同容量的数据,由于压缩率依赖于数据模式,所以实际上保存在作为记忆介质的闪存内的数据量也因SSD而不同。因此,在因数据压缩而导致空闲容量在构成RAID组的SSD间不均等的情况下,若某个SSD没有空闲容量,则即使其他SSD有空闲容量,也不能再保存数据,产生无法使用的空闲容量。
[0015]像这样,存储装置产生如下的问题:若构成RAID组的记忆装置分别执行数据压缩,则记忆装置的记忆容量的使用率下降。
[0016]为了解决上述问题,本发明具有:多个半导体记忆装置,其分别具有多个非易失性半导体存储芯片和内存控制器,所述内存控制器压缩数据,并将压缩后的数据保存在多个所述非易失性半导体存储芯片内;和存储控制器,其控制多个RAID组,所述多个RAID组分别以规定数包括在多个所述半导体记忆装置内包含的半导体记忆装置,所述存储控制器控制数据向多个所述半导体记忆装置的写入以及从多个所述半导体记忆装置的读取。
[0017]内存控制器将多个非易失性半导体存储芯片的记忆区域与逻辑记忆区域对应地提供至所述存储控制器。存储控制器将多个半导体记忆装置各自提供的逻辑记忆区域分别划分成多个条目,该条目为具有规定的大小的逻辑记忆区域,分别从多个半导体记忆装置获取在多个非易失性半导体存储芯片内保存的与数据容量有关的容量信息,基于容量信息,从多个所述半导体记忆装置中,选择第一半导体记忆装置和比所述第一半导体记忆装置的数据保存量多出规定值以上的第二半导体记忆装置,基于容量信息,将属于第一半导体记忆装置的多个条目中数据保存量小的条目的数据与属于第二半导体记忆装置的多个条目中数据保存量大的条目的数据交换。
[0018]发明效果
[0019]能够减小构成RAID组的各记忆装置之间的空闲物理容量的差值。通过使空闲物理容量的差值变小,空闲逻辑容量的差值也变小。其结果为,能够扩大作为RAID组可使用的逻辑容量。通过在记忆装置内进行的数据压缩,能够以低成本构建包括存储装置在内的系统,通过扩大作为RAID组可使用的容量,能够进一步以低成本构建系统。
【附图说明】
[0020]图1是示出实施例1的SSD的地址空间的概要的图。
[0021]图2是示出实施例1的概要的图。
[0022]图3是示出实施例1的概要的图。
[0023]图4是示出包括实施例1的存储装置的存储系统的结构例的图。
[0024]图5是示出实施例1的SSD的结构例的图。
[0025]图6是示出实施例1的闪存芯片的结构例的图。
[0026]图7是示出实施例1的SSD的地址空间的结构例的图。
[0027]图8是示出实施例1的上级的容量虚拟化技术的概要说明图。
[0028]图9是示出实施例1的容量均衡化处理与虚拟卷之间的关系的一个例子的图。
[0029]图10是示出实施例1的存储控制器所具有的高速缓冲存储器的结构例的图。
[0030]图11是示出实施例1的盘管理TBL的结构例的图。
[0031]图12是示出实施例1的RG管理TBL的结构例的图。
[0032]图13是示出实施例1的池(pool)管理TBL的结构例的图。
[0033]图14是示出实施例1的条目(entry)管理TBL的结构例的图。
[0034]图15是示出实施例1的区(extent)管理TBL的结构例的图。
[0035]图16是示出实施例1的虚拟卷管理TBL的结构例的图。
[0036]图17是示出实施例1的SSD所具有的高速缓冲存储器的结构例的图。
[0037]图18是示出实施例1的逻辑物理转换TBL的结构例的图。
[0038]图19是示出实施例1的块(block)管理TBL的结构例的图。
[0039]图20是示出实施例1的容量管理TBL的结构例的图。
[0040]图21是示出实施例1的存储控制器的任务的概要的时序图。
[0041]图22是示出实施例1的存储控制器的数据写处理的一个例子的时序图。
[0042]图23是示出实施例1的区分配处理的一个例子的时序图。
[0043]图24是示出实施例1的SSD写处理的一个例子的时序图。
[0044]图25是示出实施例1的读请求的处理的一个例子的时序图。
[0045]图26是示出实施例1的定期监视处理S105的详细内容的时序图。
[0046]图27是示出实施例1的容量均衡化处理S106的详细内容的时序图。
[0047]图28涉及实施例1的以条目为单位的容量均衡化处理的一个例子,是示出RG内数据移动的概要的图。
[0048]图29涉及实施例1的以条目为单位的容量均衡化处理的一个例子,是示出RG之间数据移动的概要的图。
[0049]图30是示出实施例1的以条目为单位的容量均衡化处理的一个例子的时序图。
[0050]图31涉及实施例1的以区为单位的容量均衡化处理的一个例子,是示出RG之间数据移动的概要的图。
[0051]图32是示出实施例1的以区为单位的容量均衡化处理的一个例子的时序图。
[0052]图33是示出实施例1的以区为单位的容量均衡化处理的另一个例子的概要的图。
[0053]图34是示出实施例2的SSD的地址空间的概要的图。
[0054]图35是示出实施例2的区分配处理S505的详细内容的时序图。
[0055]图36是实施例3的层级再配置功能的概要说明图。
[0056]图37是示出实施例3的虚拟卷管理TBL的结构例的图。
[0057]图38是示出实施例3的虚拟卷管理TBL的结构例的图。
[0058]图39是示出实施例3的存储控制器的任务的概要的时序图。
[0059]图40是示出实施例3的层级再配置处理的一个例子的时序图。
【具体实施方式】
[0060]以下,基于附图,对几个实施例进行说明。
[0061]实施例1
[0062]首先,利用图1?图3,说明本实施例的概要。
[0063]图1是示出实施例1的SSD的地址空间的概要的图。
[0064]本发明的SSD具有向外部装置(利用SSD的存储控制器等)提供的逻辑性的地址空间即“逻辑地址空间(以下,称为逻辑空间)”和与该逻辑地址空间对应的实际保存数据的物理性的地址空间即“物理地址空间(以下,称为物理空间)”。另外,以下,将地址空间的大小定义为“容量”。即,逻辑地址空间的大小为“逻辑容量”,物理地址空间的大小为“物理容量”。
[0065]在此,本发明的SSD具有下级的容量虚拟化功能和数据压缩功能。
[0066]首先,基于下级的容量虚拟化功能,SSD能够向外部装置提供比物理空间更大的逻辑空间。
[0067]接着,通过数据压缩功能,SSD在内部压缩从外部装置写入的数据,并将压缩后的数据(以下,称为压缩数据)保存至作为物理记忆介质的闪存(FM)。即,在写入某个数据时,通过进行压缩能够减少实际上消耗的物理容量。在此,物理容量的消耗量依赖于数据的压缩率。此外,数据压缩率能够通过“为了保存压缩数据而消耗的物理容量+伴随写请求的数据大小”计算得出。即,在通过数据压缩而使1KB的写数据成为2KB的大小时,数据压缩率为1/5(20%)。在本发明中,数据压缩率的值越小(越接近于0%),则意味着压缩效果越尚。
[0068]在此,将数据压缩率的上限定义为最大数据压缩率(以下,称为最大压缩率)。最大压缩率是指,在获得最大的数据压缩效果时的数据压缩率,其为根据SSD所具有的压缩算法等而决定/推测出的参数。此后,以将最大压缩率设计为1/8(12.5% )的SSD为前提进行说明。像这样,数据压缩率根据保存在SSD内的数据的模式,在最大压缩率(12.5% )到无压缩效果(100% )之间变化。
[0069]本发明的SSD通过结合上述下级的容量虚拟化功能和数据压缩功能,能够向外部装置提供比物理容量更大的逻辑容量,另一方面,具有可提供的(即,外部装置能够使用)逻辑容量根据数据压缩率而变化的特性。例如,在向物理容量为100GB的SSD内保存了数据时,在能够利用最大压缩率即1/8压缩了数据的情况下,SSD的逻辑容量为8倍即为800GB。另一方面,在完全没有获得压缩效果的情况下,即,在压缩率为100%时,SSD的逻辑容量等于物理容量,即为100GB。
[0070]像这样,能够向外部装置提供的逻辑容量能够根据“能够向外部装置提供的逻辑容量=物理容量+压缩率”的数学式得到。
[0071]利用图1jfSSD的逻辑空间与物理空间之间的对应关系进行详细的说明。图1示出了因具备100GB的物理容量和最大压缩率为1/8的规格而最大能够提供800GB的逻辑空间的SSD在某个时间点的状态。
[0072]最大逻辑容量30001为SSD能够向外部装置提供的逻辑容量的上限值,在图1中,其容量为800GB。在此,不一定总是能够向外部装置提供800GB的逻辑空间。之所以如此,是因为可提供的逻辑容量会根据在SSD内部实施的数据压缩的压缩率而变化。因此,在SSD的逻辑空间中存在可使用的空间和不可使用的空间。
[0073]可使用逻辑空间30002为SSD能够向外部装置提供的逻辑空间,外部装置将可使用逻辑空间30002的大小识别为该SSD的逻辑容量。在图1中,逻辑空间30002的大小为650GB。接着,不可使用逻辑空间30003是在没能以最大压缩率1/8压缩在SSD内保存的数据时所产生的逻辑空间的损失量,在图1中,其大小为150GB。
[0074]S卩,最大逻辑容量30001等于可使用逻辑空间30002的大小(容量)和不可使用逻辑空间30003的大小(容量)的合计值。
[0075]接着来说,可使用逻辑空间30002由空闲逻辑空间30004以及使用中逻辑空间30005构成。
[0076]使用中逻辑空间30005为在可使用逻辑空间30002中已被外部装置使用的空间。具体来说,在该空间中,从外部装置写入的数据已经处于保存完毕的状态。在此,在SSD内部将保存在本区域内的数据压缩,该压缩数据保存在构建物理空间的FM内。此外,在图1中,使用中物理空间30005的大小为250GB。
[0077]另一方面,空闲逻辑空间30004是在可使用逻辑空间30002中没有被外部装置使用的逻辑空间。在该区域中,还没有保存来自外部装置的数据,处于空闲的状态。在图1中,该空闲逻辑空间的大小为400GB。
[0078]接着,对该SSD的物理空间进行说明。
[0079]物理空间由使用中物理空间30007和空闲物理空间30006构成。使用中物理空间30007是与使用中逻辑空间30005对应的空间,是保存有写入到使用中逻辑空间30005的数据的压缩数据的空间。在图1中,使用中物理空间30007的大小为50GB。S卩,在图1中,示出了如下的情况:外部装置使用大小为250GB的逻辑空间来进行数据保存,该数据在SSD内部平均被压缩至1/5,由此实际上消耗的物理容量为50GB。
[0080]另一方面,空闲物理空间30006是没有保存数据即处于空闲状态的物理容量。在图1中,其大小为50GB。
[0081]空闲物理空间30006为与空闲逻辑空间30004对应的空间。具体来说,空闲逻辑空间30004的大小等于空闲物理空间30006的大小除以最大压缩率得到的值。在图中,存在50GB的空闲物理容量,而且SSD的最大压缩率为1/8,因此,存在400GB的空闲逻辑容量。
[0082]综上所述,图1的SSD最大能够向外部装置提供800GB的逻辑容量。在能够向外部提供的逻辑容量为800GB时,在SSD内部,成立可使用逻辑容量=最大逻辑容量30001的关系。此外,可使用逻辑容量是指可使用逻辑空间30002的大小。
[0083]用于达成可使用逻辑容量为800GB的条件是,利用最大压缩率1/8压缩数据并进行保存。然而,数据的压缩率因保存对象数据的模式等而变化。因此,还存在完全不能压缩数据的情况。假设在完全不能压缩数据的情况下,此时的可使用逻辑容量等于物理容量,即为100GB。像这样,由于数据压缩率总是变动,所以与此相伴地,可使用逻辑容量也在100GB至800GB之间变化。
[0084]S卩,在图1中,外部装置识别出的SSD的大小在100GB至800GB之间变化。此外,在未使用SSD的状态下,100GB的物理空间全部处于空闲的状态,因此,外部装置识别出的SSD的大小为800GB。在此,由于空闲逻辑空间30004的大小为期待值,所以其大小也可以通过将空闲物理空间30006除以平均压缩率来求出。
[0085]在图2中,RAID组(以下,称为RG)是利用三台在图1中说明的SSD(SSD11、SSD12、SSD13)构建而成的。
[0086]在此,SSDll的物理空间由空闲物理空间30036和使用中物理空间30037构成,与物理空间对应的SSDll的逻辑空间由不可使用逻辑空间30033、空闲逻辑空间30034以及使用中逻辑空间30035构建而成。同样地,SSD12的物理空间由空闲物理空间30046和使用中物理空间30047构成,与物理空间对应的SSD12的逻辑空间由不可使用逻辑空间30043、空闲逻辑空间30044以及使用中逻辑空间30045构建而成。另外,SSD13的物理空间由空闲物理空间30056和使用中物理空间30057构成,与物理空间对应的SSD13的逻辑空间由不可使用逻辑空间30053、空闲逻辑空间30054以及使用中逻辑空间30055构建而成。
[0087]而且,利用存储控制器(未图示),在该RG内创建了多个区(extent)。在图中,区30010表示某一个区的结构例。存储控制器使用SSD的逻辑空间来构建区。
[0088]在此,区由从各SSD中使用规定大小的逻辑空间创建出的“条目”构成。当前,在区30010中,存在由SSDll的任意的逻辑空间创建的条目30011、由SSD12的任意的逻辑空间创建的条目30012以及由SSD13的任意的逻辑空间创建的条目30013。此外,各条目30011,30012,30013的大小相等。但是,在各条目内保存的数据在SSD内被压缩,并作为压缩数据保存在物理空间内。在图中,条目30011的数据在SSDll内被压缩,并保存为压缩数据30014。另外,条目30012的数据在SSD12内被压缩,并保存为压缩数据30015。并且,条目30013的数据在SSD13内被压缩,并保存为压缩数据30016。此时,由于压缩率不同,所以压缩数据30014、30015、30016的大小也不均等。在图中,四边形的大小表示数据的大小,压缩数据的大小关系为压缩数据30016 >压缩数据30015 >压缩数据30014。S卩,压缩率从高到低的顺序为压缩数据30014 >压缩数据30015 >压缩数据30016。在此,压缩率高意味着能够使压缩数据更小。
[0089]接着,区创建完毕空间30020表示在该逻辑空间内区已创建完毕。该空间的大小依赖于各SSD的使用中逻辑空间的大小。区可创建空间30021表示在该逻辑空间内能够创建区,该空间的大小依赖于在RG内空闲逻辑空间最小的SSD的空闲逻辑空间的大小。区不可创建空间30022表示在该逻辑空间内不能够创建区,该空间的大小依赖于在RG内不可使用逻辑空间最大的SSD的不可使用逻辑空间的大小。
[0090]在此,由于区
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1