数据存储系统中的垃圾收集的制作方法

文档序号:30236061发布日期:2022-06-01 17:25阅读:233来源:国知局
数据存储系统中的垃圾收集的制作方法

1.本发明涉及数据存储系统中的垃圾收集。


背景技术:

2.用于在数据存储系统中执行写入的流行策略通常是写入数据域中的新数据范围。这种策略的优点在于可以更新raid(独立磁盘冗余阵列)阵列而无需执行从磁盘的任何读取。
3.典型的“写入”将执行以下操作:将接收给定卷(volume)的输入-输出(io),其具有地址、大小和一些数据。存储分配器将为该卷分配物理域上的存储位置。io路径然后将写入到物理域上的该位置。在写入完成后,更新正向和反向查找结构,并且完成io。作为正向查找更新的一部分,日志也被更新。
4.典型的“读取”将检查正向查找结构以识别数据位于数据域上的何处。然后,将读取数据域,并且将该处的数据返回给用户。


技术实现要素:

5.各种实施例涉及一种在存储系统中进行垃圾收集的方法,其中虚拟地址空间被映射到物理地址空间,虚拟地址空间在盘区中被寻址,并且存储系统具有一个或多个处理器、多个存储设备和缓存存储器。该方法可以包括选择第一目的地盘区作为用于接收垃圾收集的数据的当前目的地盘区,以及选择第一源盘区作为要进行垃圾收集的当前源盘区,该当前源盘区包括有效数据的一个或多个部分。该方法还可包含确定被选择作为用于接收垃圾收集的数据的该当前目的地盘区的目的地盘区是否已满。该方法可包含确定被选择作为进行垃圾收集的该当前源盘区的源盘区是否包括未被复制到目的地盘区的有效数据的一个或多个部分。另外,响应于确定用于接收垃圾收集的数据的该当前目的地盘区未满并且确定进行垃圾收集的该当前源盘区包括未复制到目的地盘区的有效数据的一个或多个部分,该方法可以包括经由该缓存存储器将未复制到目的地盘区的有效数据的该部分之一从该当前源盘区复制到该当前目的地盘区。另外,响应于确定用于接收垃圾收集的数据的该当前目的地盘区是满的,该方法可以包括将经由该缓存存储器复制到该当前目的地盘区的该有效数据清除出该缓存存储器。另外,在将被移动到该当前目的地盘区的该有效数据清除出该缓存存储器之后,该方法可以包括将映射到其中存储有经由该缓存存储器被复制到该当前目的地盘区的所有有效数据的一个或多个源盘区的该虚拟地址空间的该物理地址空间释放为可用于写入。
6.垃圾收集方法的各种实施例可以包括:响应于确定用于接收垃圾收集的数据的该当前目的地盘区是满的,选择第二目的地盘区作为用于接收垃圾收集的数据的该当前目的地盘区。
7.垃圾收集方法的各种实施例可以包括:响应于确定用于接收垃圾收集的数据的该第二目的地盘区是满的,将经由该缓存存储器复制到该当前目的地盘区的该有效数据从该
缓存存储器中清除,其中以与确定该目的地盘区为满的顺序相同的顺序,将经由该缓存存储器复制到当前目的地盘区的有效数据从该缓存存储器中清除。
8.垃圾收集方法的各种实施例可以包括:响应于确定进行垃圾收集的该当前源盘区不包括未复制到目的地盘区的有效数据的部分,选择第二源盘区作为要进行垃圾收集的该当前源盘区。
9.垃圾收集方法的各种实施例可以包括:借助于向每个目的地盘区分配序列号来控制在目的地盘区的缓存清除之后的物理地址空间的释放,每个序列号允许对通过将数据复制到该目的地盘区中而完成其垃圾收集的该源盘区进行查找,将尚未执行清除的最早目的地盘区的序列号存储为低水印序列号,并且将被分配用于从源盘区进行垃圾收集的该当前目的地盘区的序列号存储为高水印序列号,其中,在完成从该缓存存储器中清除最早的目的地盘区时该低水印序列号递增,在选择用于垃圾收集的另一目的地盘区时该高水印序列号递增。
10.垃圾收集方法的各种实施例可以包括:其中,响应于确定该可用虚拟地址空间小于阈值:暂停将有效数据从源盘区复制到目的地盘区;以及将映射到具有在该低水印值与该高水印值之间的序列号的至少一个目的地盘区的该虚拟地址空间的该物理地址空间释放为可用于写入。
11.垃圾收集方法的各种实施例可以包括:维护存储具有在该低水印值和该高水印值之间的序列号的目的地盘区的恢复信息的日志,该恢复信息包括其有效数据经受垃圾收集的源盘区与对应的目的地盘区之间的映射。
12.垃圾收集方法的各种实施例可以包括:响应于确定在垃圾收集期间缓存内容的丢失,使用该恢复信息来重建正向查找元数据结构,该正向查找元数据结构将虚拟地址空间链接到在该恢复信息中标识的该源盘区的物理地址空间。
13.各种实施例涉及一种用于存储系统中的垃圾收集的计算机程序产品,其中虚拟地址空间被映射到物理地址空间,虚拟地址空间在盘区中被寻址,并且存储系统具有一个或多个处理器、多个存储设备和缓存存储器。
14.各种实施例涉及一种存储系统,其具有映射到物理地址空间的虚拟地址空间,该虚拟地址空间在盘区中被寻址,该存储系统具有一个或多个处理器、多个存储装置和缓存存储器,该存储系统包括:存储分配器和垃圾收集器。
15.各种实施例可以保护数据存储系统在缓存故障时进行的垃圾收集方面免受数据丢失。各种实施例提供了一种与垃圾收集的数据相关的缓存清除操作相协调的垃圾收集算法。执行垃圾收集,使得不丢弃旧数据(即,存储在缓存清除块中的活动(live)数据),直到存储分配器确定正从垃圾收集块移动的任何活动数据已经成功地通过缓存清除到其新的物理存储器位置,并且因此已经安全地到达垃圾收集的活动数据的目标块并被存储在其中。
16.注意,尽管各种实施例已经被设计为在使用压缩的存储系统中成功地操作,但是实施例也可以用在不使用压缩的存储系统中。实施例的实现方式可以用于将新数据写入新位置并且依赖于垃圾收集的任何数据减少。例如,即使在相同位置的重写可能已经起作用,也可以按照所建议的那样写入未压缩数据。
17.在某些实施例中,可以借助于向每个目的地盘区分配序列号来控制在目的地盘区
的缓存清除之后的物理地址空间的释放,每个序列号允许查找通过将数据移动到该目的地盘区中而完成其垃圾收集的源盘区,未完成清除的最早目的地盘区的序列号被存储为低水印序列号,并且当前被分配用于从源盘区进行垃圾收集的目的地盘区的序列号被存储为高水印序列号,其中,在完成从缓存存储器中清除最早目的地盘区时,低水印序列号递增,并且在选择用于垃圾收集的另一目的地盘区时,高水印序列号递增。如果确定可用的虚拟地址空间已经变得稀缺,则这可以通过以下步骤来管理:暂停将有效数据从源盘区移动到目的地盘区;以及将映射到具有在低水印值和高水印值之间的序列号的目的地盘区的虚拟地址空间的物理地址空间释放为可用于写入。
18.为了例如从自发的缓存内容丢失或损坏中恢复,维护存储针对低水印序列号和高水印序列号之间的每个序列号的恢复信息的日志是有益的,恢复信息针对每个序列号包括到以下源盘区的映射,该源盘区通过将数据移动到与该序列号相关联的目的地盘区中来完成其垃圾收集。在垃圾收集期间缓存内容丢失的情况下,恢复信息可被用于重建正向查找元数据结构,该结构将虚拟地址空间链接到在恢复信息中标识的源盘区的物理地址空间。
19.该方法和存储系统特别适合于但不限于与操作系统结合使用,在该操作系统中,每个写入都对新的盘区执行。该方法和存储系统特别适合于但不限于与操作系统一起使用,在该操作系统中以压缩形式存储数据。
20.总之,各种实施例提供了一种用于虚拟化存储系统的垃圾收集方法,该虚拟化存储系统的虚拟地址空间以称为盘区的块来寻址。旧盘区是通过将其仍然有效的数据转移到被称为目的地盘区的新盘区中而被垃圾收集的。然后,可以释放垃圾收集的盘区以便重新用于新的写入。为了考虑在垃圾收集的数据仍处于被写入物理存储器的过程中时缓存丢失的可能性,在垃圾收集的盘区的垃圾收集之后,最初阻止释放垃圾收集的盘区。在接收垃圾收集的数据的目的地盘区已满后,启动该目的地盘区的缓存清除。然后,在完成缓存清除时,释放与该目的地盘区相关联的垃圾收集盘区的存储空间。
附图说明
21.下面,将仅通过示例的方式参考附图中示出的示例性实施例来进一步描述本发明。
22.图1示出了具有大容量存储设备的计算机系统环境。
23.图2是示出数据存储系统的硬件结构的框图。
24.图3a和3b是示出根据本公开的方法中的步骤的流程图。
25.图4a到4d是示出根据本公开的方法的垃圾收集的示例进程的示意性框图。
26.图5描绘了根据本公开的实施例的云计算环境。
27.图6描绘了根据本公开的实施例的抽象模型层。
28.图7是根据本公开的实施例的连接到存储系统的服务器的示意图。
具体实施方式
29.在以下详细描述中,出于解释而非限制的目的,阐述了具体细节以便提供对本公开的更好理解。对于本领域技术人员来说显而易见的是本公开可以在脱离这些具体细节的其它实施例中实施。
30.如上所述,用于在数据存储系统中执行写入的流行策略是总是在数据域中写入新数据范围。这种策略的优点在于可以更新raid(独立磁盘冗余阵列)阵列而无需执行从磁盘的任何读取。然而,总是执行写入新数据范围的结果是分配了大量存储器空间,其然后必须通过垃圾收集来回收。实际上,如果使用数据压缩(这在诸如ibm z/os的一些操作系统中是一个选项),则写入的大小将不可避免地变化,因为该大小将取决于数据的可压缩性。例如,一次写入可能占用8k的空间,而另一次写入仅占用1k的空间。因此,不可能始终盖写处于适当位置的数据,因为不能保证在使用压缩时被盖写的数据将适合旧存储器位置,所以必须总是对新数据范围执行写入。
31.垃圾收集回收由于盖写而变成由陈旧数据主导的旧数据范围,并且因此仅包含稀少数量的活动数据。垃圾收集通过回收剩余的活动数据并将其以连续块写入新数据范围而继续进行。当数据被盖写时,称其为无效。垃圾收集将在数据域上取得具有无效数据的区域,将活动数据移出该区域并将其写入数据域上的新位置;在该过程中更新正向查找元数据。正向查找元数据可以被实现为树,最常见的是b树。正向b树结构将虚拟存储器地址映射到虚拟存储系统中的物理存储器地址。反向查找元数据描述了哪些卷引用物理域的给定范围,并因此记载了在物理域上分配了什么数据子范围以及没有分配什么数据子范围。因此,垃圾收集算法需要反向查找结构。
32.维护日志,该日志可用于在缓存故障的事件中重建正向查找元数据结构。缓存故障通常促成数千兆字节的活动数据的丢失。日志记录确保对正向查找元数据的每次更新都记载在顺序日志中。该日志可被重放以重建正向查找元数据。将正向查找元数据的周期性复制(有时称为快照)集成到该方案中消除了对潜在不断增长的日志大小的需要,因为日志然后仅需要跟踪自最后快照以来的正向查找更新。在正向查找元数据具有诸如b树的树结构的情况下,周期性复制有时被称为树快照。注意,日志引用的数据本身通常不被记入日志,因为这样做会花费过高的写带宽。日志记录正向查找元数据(例如b树更新)的方法需要少得多的带宽。在不同的实施例中,查找结构的日志记录和更新可以由各种模块或组件来执行。在各种实施例中,查找结构的日志记录和更新可以由垃圾收集器的存储分配器来执行。
33.典型的“写入”将执行以下操作:将针对定卷接收输入-输出(io),其具有地址、大小和一些数据。存储分配器将为该卷分配物理域上的存储位置。io路径然后将写入物理域上的该位置。在写入完成后,更新正向和反向查找结构,并且完成io。作为正向查找更新的一部分,日志也被更新。
34.典型的“读”将检查正向查找结构以识别数据位于数据域上的何处。然后,将读取数据域,并且将此处的数据返回给用户。
35.在系统故障的事件中,缓存内容可能丢失:如果缓存存在于实现数据缩减技术的组件之下,则可能丢失传输中(in-flight)的数据。(传输中的数据是尚未完全写入介质的任何数据,因此如果缓存被丢弃则其可能丢失。)这是存储系统中的常见故障模式,并且在一定程度上是可接受的-或至少是预期的。这是当使用该缓存时所产生的性能折衷。
36.在具有用于更新的固定物理域位置的存储系统或厚卷中,可以容忍缓存的丢失,因为结果仅仅是在更新在故障点处的缓存中未决的情况下返回旧数据。然而,对于数据减小卷,在重写期间可能无法一致地写入到同一位置,这是指在故障时作为垃圾被收集的数
据也可能丢失,因此旧数据的这一部分未被返回。在文件系统中,返回陈旧数据通常优于返回介质错误(即,数据丢失)。
37.图1示出了示例性计算机系统10,计算机系统10包括中央处理单元(cpu)12,其连接到(多个)大容量存储设备14和存储器设备16。大容量存储设备可包括硬盘驱动器(hdd)设备,其可被配置在独立磁盘冗余阵列(raid)中。可以在位于系统10中或其它地方的(一个或多个)设备14上执行垃圾收集操作。存储器设备16可包括例如电可擦除可编程只读存储器(eeprom)或相关设备的主机(例如,ram、rom、闪存等)的存储器。存储器设备16和大容量存储设备14经由信号承载介质连接到cpu 12。此外,cpu 12通过通信端口18连接到通信网络20,其具有附接的多个附加计算机系统22和24。计算机系统10可包括用于计算机系统10的每个单独的组件的一个或多个处理器设备(例如,cpu 12)和附加的存储器设备16,以执行和完成垃圾收集和其他操作,如在此所述。
38.图2是示出用于实现本发明的实施例的计算机系统中的数据存储系统的硬件结构的示例性框图200。主机计算机210、220、225每个都用作中央处理单元,用于作为数据存储系统200的一部分执行数据处理。主机(物理或虚拟设备)210、220和225可以是在数据存储系统200中实现本发明目的的一个或多个新的物理设备或逻辑设备。在一个实施例中,仅作为示例,数据存储系统200可被实现为system storage
tm v9000
tm
。网络连接260可以是光纤通道架构、光纤通道点对点链路、以太网架构或点对点链路上的光纤通道、ficon或escon i/o接口、任何其他i/o接口类型、无线网络、有线网络、lan、wan、异构、同构、公共(即,因特网)、私有或其任何组合。主机210、220和225可以是本地的或分布在一个或多个位置之间的,并且可以配备有到存储控制器240的任何类型的架构(或架构通道)或网络适配器260,诸如光纤通道、ficon、escon、以太网、光纤、无线或同轴适配器。数据存储系统200相应地配备有适当的架构或网络适配器260以进行通信。图2中描述的数据存储系统200包括存储控制器240和存储器230。
39.在图2中存储控制器240被示为单个处理单元,包括微处理器242、系统存储器243和非易失性存储装置(“nvs”)216。然而,注意,存储控制器240也可以包括多个处理单元,每个处理单元具有其自己的处理器复合体和系统存储器,并且通过数据存储系统200内的专用网络互连。存储装置230可以包括一个或多个存储设备,例如存储阵列,其通过存储网络连接到存储控制器240。
40.在一些实施例中,包括在存储装置230中的设备可以以环路架构连接。存储控制器240管理存储装置230,并且促进对针对存储装置230的写和读请求的处理。存储控制器240的系统存储器243存储操作软件250、程序指令和数据,处理器242可以访问这些程序指令和数据以执行与管理存储装置230相关联的功能和方法步骤,包括垃圾收集。如图2所示,系统存储器243包括内部存储器缓存245(或者可替代地,与外部缓存通信),其是用于存储装置230的缓存。缓存存储器用于缓冲相应的写入请求的写入数据和读取请求的读取数据。在一个实施例中,缓存245被分配在系统存储器243外部的设备中,但仍可由微处理器242访问,并且可用于提供防止数据丢失的附加安全性。
41.在一些实施例中,缓存245用易失性存储器和非易失性存储器实现,并且经由本地总线(图2中未示出)耦合到微处理器242,以增强数据存储系统200的性能。在数据存储控制器240中包括的nvs 216可由微处理器242访问,并用于提供对包括垃圾收集的操作的附加
支持。nvs 216可被称为永久缓存,因为其可用不需要电力来保持其数据的非易失性存储器来实现。nvs 216可以与缓存245集成。在一些实施例中,诸如电池的备用电源(图2中未示出)为nvs 216提供足够的电力,以在数据存储系统200掉电的情况下保持存储在其中的数据。在某些实施例中,nvs 216的容量小于或等于缓存245的总容量。
42.存储装置230可以在物理上包括一个或多个存储设备,例如存储阵列。存储阵列是单独的存储设备(诸如硬盘)的逻辑组合。在某些实施例中,存储装置230包括jbod(磁盘簇)阵列或raid(独立磁盘冗余阵列)阵列。物理存储阵列的集合可以进一步组合以形成等级(rank),这使物理存储与逻辑配置分离。可以将等级中的存储空间分配到逻辑卷中,逻辑卷定义了在写入/读取请求中指定的存储位置。
43.如图2所示的存储系统可以包括逻辑卷(或简称为“卷”),可以具有不同种类的分配。存储器230a、230b和230n被示为数据存储系统200中的等级,并且在此被称为等级230a、等级230b和等级230n。等级可以是数据存储系统200本地的,或者可以位于物理上远程的位置。换句话说,本地存储控制器可以与远程存储控制器连接,并管理远程位置处的存储。等级230a被示为配置有两个完整卷234和236以及一个部分卷232a。等级230b被示为具有另一部分卷232b。因此,卷232跨等级230a和230b分配。等级230n被示为完全分配给卷238,即,等级230n指卷238的整个物理存储。从以上示例中,将理解,等级可被配置为包括一个或多个部分卷和/或整个卷。
44.存储控制器240包括垃圾收集模块255,以协助日志文件系统中的垃圾收集。垃圾收集模块255与存储控制器240、主机210、220、225和存储设备230的组件结合操作。垃圾收集模块255可以位于缓存245中或存储控制器240的其他组件中。
45.存储控制器240包括控制开关241(用于控制到主机计算机210、220、225的光纤通道协议)、微处理器242(用于控制所有存储控制器240)、非易失性控制存储器243(用于存储用于控制存储控制器240的操作的微程序(操作软件)250)、缓存245(用于临时存储(缓冲)数据)、以及缓冲器244(用于辅助缓存245读取和写入数据)、控制开关241(用于控制以控制传输到存储设备230或从存储设备230传输的数据的协议)、以及垃圾收集模块255(其中可设置信息)。可以实现多个缓冲器244以帮助日志文件系统中的垃圾收集。
46.主机计算机或一个或多个物理或虚拟设备210、220、225和存储控制器240通过作为接口的网络适配器(这可以是光纤通道)260连接,即,经由被称为“架构”的交换机。微处理器242可以控制存储器243存储来自主机设备(物理或虚拟)210的命令信息和用于识别主机设备(物理或虚拟)210的信息。控制开关241、缓冲器244、缓存245、操作软件250、微处理器242、存储器243、nvs 216和垃圾收集模块255彼此通信。诸如操作软件245的一些或所有组件可以包括在存储器243中,用于执行日志文件系统中的垃圾收集。所示设备内的每个组件可以被链接在一起,并且可以彼此通信。
47.图7示出了连接到存储系统712的服务器710,其中可以在各种实施例中实现本发明的原理。服务器710经由接口(例如使用诸如scsi(小型计算机系统接口)的标准的接口)执行关于存储系统712的读取和写入动作。存储系统712具有提供处理和存储功能的多个连接的物理组件。由一组物理存储装置714(其优选地包括一组盘)提供主要长期存储功能,一组物理存储装置714被分成逻辑分配区域716。存储系统712内还通过写入缓存718提供附加存储器,附加存储器由存储系统712的处理组件本地使用。
48.从外部服务器710的角度来看,存储系统712呈现一个或多个虚拟盘720(虚盘(vdisks)),它们以逻辑方式向外部服务器710呈现所存储的数据。表示为存在于到服务器710的单个虚盘720上的数据实际上可存储在实际物理存储域714内的不同盘714上。由存储系统712内的两个组件(正向查找结构722和反向查找结构724)管理虚盘720与物理盘714之间的映射。正向查找结构722将虚盘720中的一个或多个地址映射到存储数据的盘714中的实际物理位置。反向查找结构24将盘714内的物理位置映射回虚盘720中的一个或多个虚盘内的地址。
49.当读取从服务器710到达虚盘720时,虚盘720与正向查找结构722通信,以便获得数据的物理地址,然后从物理域714内的地址读取所需数据。在读取的情况下,不需要对正向查找结构722或反向查找结构724中的任一个进行改变。
50.当写入从服务器710到达虚盘720时的行为更复杂。当新数据写入盘714时,必须更新正向查找结构722,以便将虚盘720中的新数据的地址与数据实际存储在盘714中的物理位置连接。在这种情况下,必须更新正向查找结构722和反向查找结构724两者,以反映虚盘720向服务器710呈现的数据与该数据在盘714中存储的实际物理位置之间的连接。
51.存储系统712还包括两个另外的组件,分别是存储分配器726和垃圾收集器728。存储分配器726执行多种功能,主要围绕从物理域714内的活动区域716分配活动块(其与虚盘720通信)、以及针对所分配的数据维护空闲(free)列表,这将在下面更详细描述。当新数据要被写入存储系统712时,正向查找结构722写入由分配的块位置确定的位置。顶层存储分配器726具有在任何给定时间被跟踪的一组“现用(active)”区域716。可以跟踪有限数量的这些区域716。例如,在区域大小为十亿字节(例如)的艾字节物理域714中,这将导致对十亿个区域的跟踪。即使存储分配器26内的区域条目仅占4b(即,跟踪区域716中有多少块可用),这也将花费4gb的存储器价值,该存储器是更好地用作缓存的存储器。因此,维持一组现用区域16,直到n个区域16大(其中n是缓存18可处理的最大值)。当现用区域716中的所有存储被耗尽时,该整个区域716退出该组现用区域716,用于跟踪区域716的存储器可以被回收,并且如果适用,由垃圾收集器728执行垃圾收集。当所有n个区域716起作用时,不能分配另外的区域716,且这意味着没有空闲列表(存储器的未被分配的块的列表)可接收额外的主机块。垃圾收集器728通过将其它有效数据重写到新区域176,基本上收回存在有限的有效数据的区域716,这将这些收回的区域716释放回存储分配器726。垃圾收集器728(或垃圾收集模块)连接到用于执行垃圾收集的反向查找结构724。
52.存储系统712作为精简配置(也称为空间高效)而呈现给服务器710,其中底层存储可以远小于呈现给主机(服务器710)的存储。这通过将虚拟域写入映射到物理域的元数据结构以及通过压缩和去重复来实现。利用压缩的实现必须实现空间恢复的机制,称为垃圾收集,这是因为不保证对相同虚拟地址的任何两次写入将利用相同的物理存储量。很久以来,盘714被留下许多小的空闲空间区域,并且期望通过移动物理域中的写入(以及更新这些写入在虚拟域中的映射)来合并这些区域。
53.现在描述日志的作用。日志跟踪进入b树的更新。b树存储在虚拟地址和物理地址之间的映射。日志的作用是在更新期间发生错误的情况下跟踪对这些映射的改变。然后,可以参考日志中的恢复信息来恢复b树。因此避免了由于缓存内容丢失或其他错误而导致的虚拟域和物理域之间的映射的破坏。
54.在这种情况下,重写操作、与记录日志相关的步骤是:将新数据写入新位置;更新b树以记录新位置的物理地址;以及将旧的物理数据标记为无效(陈旧的)。垃圾收集然后将必须运行和移动与无效数据混合的任何非无效数据(即,仍然有效的数据)。典型地,特定虚拟存储器块中的有效数据将仅构成总数的相当小的部分,例如10%或更少。垃圾收集将移动仍然有效的数据(其最可能是冷的(即,在主存储器、物理存储上,并且不再在缓存存储器中)),并且垃圾收集的动作将使得该冷数据变热,即,在缓存存储器中处于传输中,并且因此在故障时存在丢失的风险。
55.各种实施例提供了一种用于虚拟化存储系统的垃圾收集方法,其中虚拟地址空间被映射到物理地址空间。该方法可以通过修改系统的存储分配器来实现。该方法可以用于以压缩形式存储数据的存储系统,例如ibmz/os,并且也可用于未被压缩的存储系统。该方法特别被设想用于总是写入新的虚拟存储器空间以减少读取并因此消耗大量虚拟存储器空间且需要持续的垃圾收集的存储系统。根据各种实施例,存储分配器跟踪用于按块写入的虚拟存储器,每个块是虚拟存储器地址的范围。这些块被称为“盘区(extent)”。
56.在各种实施例中,垃圾收集方法如下进行。存储分配器选择用以接收垃圾收集的数据的盘区,其被称为目的地或目标盘区。
57.存储分配器选择要进行垃圾收集的盘区(称为源盘区),源盘区的虚拟地址被标记为包括有效数据或无效数据。如上所述,相对于源盘区的大小,有效数据量可能相当小,即远小于无效数据量。换句话说,每个目的地盘区可能具有足够的空间来接收来自几个源盘区的所有有效数据;可能5到10是典型的数字。
58.存储分配器,或者在一些实施例中,垃圾收集器728(或垃圾收集模块255),经由缓存存储器将源盘区中的有效数据移动或复制到目的地盘区,然后重复地依次选择第二、第三等源盘区以进行垃圾收集,每次经由缓存存储器将有效数据移动到目的地盘区。这一直进行到目的地盘区满为止。垃圾收集器728(或垃圾收集模块255)可以确定目的地盘区何时满。当目的地盘区变满时,可以滚动(roll)仍然要从源盘区移动或复制的、正被垃圾收集的其余数据,即复制到下一个被分配的目的地盘区中。来自给定源盘区的整个源盘区数据不需要进入一个目的地盘区。其可以被一分为二;它只需要根据最后一个来标记,因为各种实施例提供了顺序清除(flush),所以可以保证两个目的地盘区随后都将被清除。
59.当达到当前用于垃圾收集的目的地盘区满时,存储分配器或垃圾收集器选择另一盘区以成为下一目的地盘区,并因此允许继续垃圾收集。然后,通过用垃圾收集的有效数据填满下一目的地盘区来重复该过程,等等。
60.与连续的目的地盘区的持续填充和从大得多的数量的源盘区中清空仍然有效的数据异步地,每个完整的目的地盘区依次从缓存中被清除。仅在每个该目的地盘区变满之后才启动将每个目的地盘区按照它们被分配和填充的顺序从缓存存储器中清除。清除和垃圾收集传送被独立地控制,因此清除每个目的地盘区所花费的时间量相对于垃圾收集的速度可能更慢或更快。由于在源盘区和目的地盘区之间的清除和垃圾收集传送之间的异步,所以垃圾收集的源盘区的虚拟地址空间不是立即可用于新的写入,而是被临时保留。在完成每个目的地盘区的清除之后先进行释放,其中“释放”意味着使得对映射到源盘区的虚拟地址空间的物理地址空间的写入可用,源盘区的有效数据通过清除该特定目的地盘区而被完全从缓存存储器中清除。因此,尽管缓存清除和随后的旧地址释放不与从源盘区到目的
地盘区的垃圾收集同步地执行,但是这些活动是协调的。
61.图3a示出了垃圾收集活动的处理流程。在步骤s1中,选择目的地盘区以接收垃圾收集数据。在步骤s2中,选择源盘区进行垃圾收集。步骤s1和s2可以由存储分配器执行。在步骤s3中,识别源盘区中的有效数据,并且在步骤s4中,将该有效数据移动或复制到目的地盘区。步骤s4和s5可以由存储分配器或由垃圾收集器执行。在步骤s5中,如果目的地盘区已满(如由存储分配器或由垃圾收集器确定的),则处理流程返回到步骤s1以选择新的目的地盘区来继续垃圾收集,并且在步骤s2中将选择来自现有源盘区或新源盘区的其它数据。现在满的目的地盘区是如图3b所示的缓存清除的候选。
62.图3b示出了缓存清除和释放已经被垃圾收集的盘区(即源盘区)的处理流程。在步骤f1中选择完整的目的地盘区用于缓存清除。由垃圾收集器选择完整的目的地盘区用于缓存清除。在步骤f2,可由垃圾收集器启动缓存清除。在如在步骤f3中由垃圾收集器确定的缓存清除完成后,在步骤f4中,可以由存储分配器释放被映射到已经被垃圾收集到刚清除的目的地盘区中的源盘区的存储器空间,用于新的写入。
63.更详细地,可以实现该方法,使得对盘的每次写入具有元数据报头,该元数据报头文档化其最初属于什么卷和正向查找逻辑块地址(lba)。在完成所有元数据更新时,与特定盘区相关的反向查找结构(例如b树)被更新并通过缓存存储器被清除到主存储器(从缓存到盘)。在完成垃圾收集时,垃圾收集的盘区使其反向查找元数据更新到其已经被垃圾收集的文档,但是垃圾收集的盘区不被立即处理,即,不立即对新的写入可用,而是其被临时保留并且因此在缓存内容丢失的情况下保持可用。仅当垃圾收集的盘区随后被重新使用或丢弃时,丢弃该盘区的反向查找元数据。
64.盘区可以由多于一个的实现正向查找结构(例如b树)同时使用。在对一个盘区完成了所有元数据更新后,触发缓存清除。由于写入总是被写到“新”位置(或者写到新近分配的存储装置,或者写到先前垃圾收集的盘区),因此缓存实际上仅用作全跨度写入的临时缓冲器。
65.存储分配器区分被用于接收入站(inbound)到系统的新写入的当前盘区和被内部地用于从其它盘区接收垃圾收集的数据的当前盘区。存储分配器通过使用一对序列号来跟踪当前在垃圾收集中起作用的一组盘区。(在支持多个存储节点的系统中,可以为每个节点使用单独的序列号)。
66.当对盘区执行垃圾收集时,不是允许旧盘区在其被垃圾收集之后立即被重新使用,而是该旧盘区被临时保持在其上,即临时延迟,将其标记为可用于写入的新盘区。由于来自已被垃圾收集的盘区的活动数据可能已被指派以移动到多个目的地盘区,且单独地跟踪这些盘区中的每一者是昂贵的,因此各种实施例通过一对序列号来跟踪哪些盘区当前用于写入,该对序列号在本文中被称为低水印序列号和高水印序列号。使用低和高水印序列号简化了在目的地盘区的缓存清除之后对物理地址空间的释放的控制。存储控制器向每个目的地盘区分配唯一的序列号。每个序列号允许查找通过将数据移动到目的地盘区而完成垃圾收集的源盘区。将未完成清除的最早目的地盘区的序列号存储为低水印序列号。当前分配用于从源盘区进行垃圾收集的目的地盘区的序列号被存储为高水印序列号。在完成将最早的目的地盘区从缓存存储器中清除后,递增低水印序列号值,且在选择另一目的地盘区进行垃圾收集后,递增高水印序列号值。由于清除的速度是可变的,并且在某些时间段上
可能比目的地盘区的填充更慢,而在其它时间段上可能更快,因此低水印值和高水印值之间的差将随着时间而增大和减小。
67.由于以递增的序列号的顺序清除目的地盘区,所以低水印序列号总是与清除未完成的最早目的地盘区相对应。因此,具有在低水印序列号和高水印序列号之间的索引的盘区的范围指示潜在地处于缓存内容丢失或其他缓存错误的风险的那些目的地盘区(并且因此指示它们已经接收到垃圾收集数据的垃圾收集盘区)。只有当肯定已知目的地盘区已被清除到盘时,才可以安全地释放依赖于该目的地盘区的垃圾收集盘区以用于新的写入。
68.低水印序列号和高水印序列号的存在还可以简化需要存储到日志中以防止缓存错误的内容。存储控制器可以将存储在日志中的恢复信息限制到与低水印值和高水印值之间的序列号相关联的存储器地址相链接的存储器地址。每个这种序列号的恢复信息包括到源盘区的映射,通过将数据移动到与该序列号相关联的目的地盘区中来完成该源盘区的垃圾收集。在垃圾收集期间缓存内容丢失的事件中,恢复信息用于重建正向查找元数据结构,该结构将虚拟地址空间链接到在恢复信息中标识的源盘区的物理地址空间。即,日志可以尝试通过重放(replay)方法恢复正向查找结构。该重放方法将读取指示目的地盘区的物理地址的日志条目,然后读取物理域中的目的地盘区以确定日志条目所指的位置是否具有属于其试图恢复的卷的正确元数据报头。如果发现在日志和数据域之间不匹配,则日志重放继续到稍后的日志条目,并且被恢复的地址被留下作为介质错误;以便稍后的日志条目找到更有效的数据。这种重放方法试图找到没有被重写的最后一个引用。在2019年8月22日提交的共同拥有的共同未决的美国专利申请系列号16/548,474中公开了该重放方法的其他细节,该申请的题目为“在日志结构化阵列存储系统中的数据恢复期间的数据验证”,该申请的全部内容通过引用并入本文。当识别到已经恢复了对垃圾收集的盘区的引用时,必须将所讨论的盘区处理为垃圾收集还未成功,并且因此处理为需要第二轮垃圾收集。因为反向查找元数据可能已将恢复的引用标记为无效,所以有必要将该范围标记为经受垃圾收集而不使用反向查找结构。这可以通过利用与每次写入相关联的报头数据来实现。垃圾收集将把它能够在数据盘上标识的所有卷写入从报头注入io路径。io路径将拒绝最初来自不匹配正向查找结构的位置的写入。这是针对使用反向查找结构的垃圾收集和没有反向查找结构的垃圾收集来完成的,因为它消除了反向查找结构与正向查找结构完全一致的要求。因为在完成清除之前,我们已经识别并防止了属于垃圾收集的盘区的重新使用,所以在缓存丢失的情况下,该重放方法将总是找到属于垃圾收集的盘区的数据。
69.所提出的方法的结果是,它将比常规方法消耗更多的存储器空间,因为它比立即重用已被垃圾收集的盘区的方法保持盘区更长时间。因此,使用所提出的方法将导致虚拟存储器空间的短缺是可能的,记住,特定用户、企业实体或应用通常将仅被分配固定量的虚拟存储器空间。特别地,如果清除无论出于什么原因而变慢,则低水印值和高水印值之间的差可能变高,这意味着大量的存储空间可能被浪费在垃圾收集中。因此,如果空闲虚拟存储器的量减少到低于某个阈值,例如总可用虚拟存储器的10%或5%,则根据所提出的方法停止垃圾收集活动可能是有益的,该方法将允许分配给针对其源盘区尚未被释放的那些目的地盘区的垃圾收集目的地盘区的虚拟存储器空间被释放为可用于新的写入。如果确定可用的虚拟地址空间已经变得稀缺,则存储分配器通过暂停有效数据从源到目的地盘区的移动来暂停垃圾收集。然后,它可以释放映射到目的地盘区的虚拟地址空间的物理地址空间作
为写入可用,其中序列号在低水印值和高水印值之间。这种释放实际上可能不是瞬时的,因为它将涉及首先通知存储分配器的所有部分停止使用这些目的地盘区。在与这些目的地盘区相关联的所有存储装置已报告为已完全使用或已被丢弃,则可释放这些目的地盘区以用于新的写入。处理相同问题的另一选项是对低水印值与高水印值之间的差设置最高限额(cap),因此存在可与垃圾收集捆绑的最大数量的目的地盘区。当命中最高限额时,这将停止垃圾收集,直到低水印序列号递增,即,直到完成当前缓存清除。
70.图4a到4d是示出根据所提出的方法的垃圾收集的示例性过程的示意性框图。图4a至4d示意性地示出了时间序列。最初,虚拟存储器使用三个示例盘区:ext1、ext2、ext3,其经由缓存进行到物理存储器的传送。盘区1(ext1)包括冷数据和要被垃圾收集的陈旧(仍然有效)数据的混合。盘区2(ext2)包含冷静态数据。盘区3(ext3)是当前用于新写入的盘区。然后,基于其相对小比例的仍然有效的数据,将盘区1识别为垃圾收集的候选。垃圾收集过程读取盘区并选择要保留的数据(401)。如图4b中示意性所示,来自盘区1的陈旧数据被标识为被丢弃,而来自盘区1的仍然有效的“活动”数据被写入盘区3。图4c示出了即使在完成从盘区1到盘区3的垃圾收集之后,数据仍被保留在盘区1中,而垃圾收集的数据可能仍经由缓存被传输到物理存储。图4d然后示出了在缓存已被清除到关于盘区3的物理存储后可以如何丢弃盘区1。
71.本领域的普通技术人员将清楚,优选实施例的逻辑过程步骤的全部或部分可以备选地在逻辑装置或多个逻辑装置中实施,该逻辑装置或多个逻辑装置包括布置成执行方法的逻辑过程步骤的逻辑元件,并且该逻辑元件可以包括硬件组件、固件组件或其组合。
72.本领域技术人员同样清楚,优选实施例的所有或部分逻辑部件可以替代地在包括逻辑元件的逻辑设备中实现,以执行该方法的步骤,并且这样的逻辑元件可以包括诸如在例如可编程逻辑阵列或专用集成电路中的逻辑门的部件。这种逻辑布置还可以实现为使能元件,用于使用例如虚拟硬件描述符语言在这种阵列或电路中临时或永久地建立逻辑结构,可以使用固定或可传输载体介质来存储和传输该虚拟硬件描述符语言。
73.在另一个替换实施例中,本发明可以以部署服务的计算机实现的方法的形式来实现,该方法包括部署计算机程序的步骤,当将该计算机程序部署到计算机基础结构中并在其上执行时,其可操作以使得计算设备执行该方法的所有步骤。
74.可以理解,优选实施例的方法和组件可以替换地全部或部分地在包括用于执行并行软件的两个或多个处理器的并行计算系统中实现。
75.本公开的另一实施例是按照系统和方法定义的计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),计算机可读程序指令用于使处理器执行本发明的各方面。
76.计算机可读存储介质可以是能够保持和存储指令以供指令执行设备使用的有形设备。
77.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),计算机可读程序指令用于使处理器执行本发明的各方面。
78.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、
电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
79.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
80.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者是以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如smalltalk、c++等)以及过程编程语言(例如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
81.在此参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
82.这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
83.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
84.附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程
序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
85.应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
86.云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
87.特征如下:
88.按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
89.广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和pda)使用的标准机制来访问。
90.资源池化:供应商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
91.快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
92.测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
93.服务模型如下:
94.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
95.平台即服务(paas):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
96.基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能
够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
97.部署模型如下:
98.私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
99.社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
100.公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
101.混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
102.云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
103.现在参考图5,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图5中所示的计算设备54a-n的类型仅旨在说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
104.根据本公开的实施例的附加组件可以如下安装在图5的环境中的web浏览器中。云计算节点10之一可以托管网站,可以应请求从该网站将附加组件下载到诸如计算设备54a、54b和54c中的任何一个的第三方计算设备。该请求使得该附加组件从节点10经由网络连接被发送到计算设备54a/54b/54c,其中该附加组件与用于将该附加组件与已经存在于计算设备上的web浏览器集成的安装程序一起被发送。
105.现在参考图6,示出了由云计算环境50(图5)提供的一组功能抽象层。应当预先理解,图6中所示的组件、层和功能仅旨在说明,并且本公开的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
106.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61、基于risc(精简指令集计算机)架构的服务器62、服务器63、刀片服务器64、存储装置65、以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
107.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71、虚拟存储器72、虚拟网络73(包括虚拟专用网络)、虚拟应用和操作系统74、以及虚拟客户机75。
108.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)规划和履行85提供对云计算资源的预安排和采购,其中根据sla预期未来需求。
109.工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91、软件生命周期管理92、虚拟教室教育传送93、数据分析处理94、交易处理95、以及根据本公开的实施例的具有如上所述的垃圾收集管理的存储分配器96。
110.本领域技术人员将清楚,在不脱离本公开的范围的情况下,可以对前述示例性实施例进行许多改进和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1