访问内容可寻址存储系统的虚拟库中的内容的方法和装置的制作方法

文档序号:6634941阅读:141来源:国知局
专利名称:访问内容可寻址存储系统的虚拟库中的内容的方法和装置的制作方法
技术领域
本发明涉及包括存储系统的计算机系统。
背景技术
实际上,所有计算机应用程序均依赖于存储器,其可用于保存计算机代码及由计算机代码操作的数据。典型的计算机系统包括一个或多个执行这样的应用程序的主计算机或服务器及一个或多个保存数据的存储系统。在这样的计算机系统中,存储系统通常包括多个物理的存储设备(例如磁盘设备),数据保存在这些设备上。
一些存储系统接收和处理访问请求,其使用内容地址识别数据或其它内容,而不是使用指明数据在存储系统中的物理或逻辑存储地址。如在此使用的,内容地址是基于(至少部分)其相应内容单元的内容计算的地址,其可以是数据和/或元数据。例如,内容单元的内容地址可通过散列内容单元并使用所得到的散列值形成内容地址的至少一部分而进行计算。通过内容地址识别和访问内容单元的存储系统在此被称为内容可寻址存储(CAS)系统。


图1A和1B示出了CAS系统处理两种不同类型的访问请求的例子分别为写请求和读请求。图1A示出了包括CAS系统203和主计算机201的计算机系统,主计算机201发送写请求205给CAS系统。写请求205包括将被保存在CAS系统上的内容单元207。响应于接收写请求和/或保存内容单元,CAS系统可计算内容单元的内容地址并将响应209发送回主计算机201以承认写请求的接收并将内容单元207的内容地址返回给主计算机,从而主计算机随后可使用内容地址访问内容单元207。或者,或此外,主机201可产生内容地址209并将其连同内容单元207一起传送给存储系统。
图1B示出了在图1B的计算机系统中处理读请求的例子。主计算机201发送读请求211给CAS系统203。读请求通过将内容地址209包含在请求中而识别将由CAS系统203返回的内容单元。响应于读请求211,CAS系统203将对应于内容地址209的内容单元207返回给主计算机201。
因为与内容单元相关联的内容地址可独立于保存内容单元的位置,主计算机或应用程序不须知道内容单元在CAS系统上的物理或逻辑存储位置。主计算机或应用程序可简单地通过内容地址而访问内容单元。CAS系统可以对主计算机或其上执行的任何应用程序透明的方式、基于内容单元的内容地址确定内容单元的存储位置。

发明内容
本发明一例证性的实施例致力于管理计算机系统中的内容存储的方法,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一主机包括于其上运行的多个应用程序,多个应用程序包括至少第一和第二应用程序。该方法包括(A)将至少一CAS系统分割为多个虚拟的CAS存储库,其包括至少第一和第二虚拟库(virtual pool);及(B)将多个虚拟库中的每一个分配给多个应用程序中的至少一个,使得多个应用程序中的每一个仅被允许访问保存在包括于分配给应用程序之一的多个虚拟库之一中的至少一CAS系统中的内容单元,而不被允许访问保存在未包括于分配给应用程序之一的多个虚拟库之一中的至少一CAS系统中的内容单元。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一主机包括于其上运行的多个应用程序,多个应用程序包括至少第一和第二应用程序。该装置包括至少一存储器件;及至少一处理器,其连接到至少一存储器件,且其将至少一CAS系统分割为多个虚拟的CAS存储库,包括至少第一和第二虚拟库;及将多个虚拟库中的每一个分配给多个应用程序中的至少一个,使得多个应用程序中的每一个仅被允许访问保存在包括于分配给应用程序之一的多个虚拟库之一中的至少一CAS系统中的内容单元,而不被允许访问保存在未包括于分配给应用程序之一的多个虚拟库之一中的至少一CAS系统中的内容单元。
另一例证性的实施例致力于管理计算机系统中的内容存储的方法,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一主机包括于其上运行的多个应用程序,多个应用程序包括至少第一和第二应用程序。该方法包括(A)将至少一CAS系统分割为多个虚拟的CAS存储库,其包括至少第一和第二虚拟库;及(B)向第一和第二虚拟库分配不同的存储系统能力。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一主机包括于其上运行的至少一应用程序,多个应用程序包括至少第一和第二应用程序。该装置包括至少一存储器件;及至少一处理器,其连接到至少一存储器件,且其适于将至少一CAS系统分割为多个虚拟的CAS存储库,包括至少第一和第二虚拟库;及向第一和第二虚拟库分配不同的存储系统能力。
另一例证性的实施例致力于在计算机系统中处理输入/输出(I/O)请求的方法,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,包括至少第一和第二虚拟库,多个虚拟库中的每一个包括至少一CAS系统中不同的存储资源组。该方法包括(A)响应于第一I/O请求的接收,确定多个虚拟库中的至少一个作为第一I/O请求应被指引到其的虚拟库;及(B)将第一请求转发给存储资源组,该存储资源组包括第一I/O请求被指引到其的多个虚拟库中的至少一个。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,包括至少第一和第二虚拟库,多个虚拟库中的每一个包括至少一CAS系统中不同的存储资源组。该装置包括适于接收输入/输出(I/O)请求的输入设备;及至少一处理器,其连接到输入设备,且适于响应于来自输入设备的第一I/O请求的接收,确定多个虚拟库中的至少一个作为第一I/O请求应被指引到其的虚拟库;及将第一I/O请求转发给存储资源组,该存储资源组包括第一I/O请求被指引到其的多个虚拟库中的至少一个。
另一例证性的实施例致力于在计算机系统中使用的方法,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,包括至少第一和第二虚拟库。该方法包括由至少一主机执行的下述行为(A)将第一输入/输出(I/O)请求发给至少一CAS系统,其请求访问保存在至少一CAS系统上的至少一内容单元,其中第一I/O请求包括识别多个虚拟库中的至少一个的信息。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的至少一主计算机,计算机系统包括至少一主计算机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用基于(至少部分)内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,包括至少第一和第二虚拟库。至少一主计算机包括适于发出输入/输出(I/O)请求的输出设备;及至少一处理器,其连接到输出设备,且适于通过输出设备将第一I/O请求发给至少一CAS系统,其请求访问保存在至少一CAS系统上的至少一内容单元,其中第一I/O请求包括识别多个虚拟库中的至少一个的信息。
另一例证性的实施例致力于管理计算机系统中的内容存储的方法,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用标识符访问至少一CAS系统上的内容单元,标识符包括基于(至少部分)内容单元的内容产生的内容地址,其中至少一主机包括于其上运行的至少一应用程序。该方法包括(A)传输来自至少一主机的至少一输入/输出(I/O)请求,其请求保存在至少一CAS系统上的第一内容单元;及(B)包括在至少一I/O请求能力信息中,其指明将由至少一CAS系统应用于保存在其上的第一内容单元的至少一存储系统能力。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一主计算机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用标识符访问至少一CAS系统上的内容单元,标识符包括基于(至少部分)内容单元的内容产生的内容地址,其中至少一主机包括于其上运行的至少一应用程序。该装置包括适于传输输入/输出(I/O)请求的输出设备;及至少一处理器,其连接到输出设备,且适于通过输出设备传输至少一I/O请求,其请求保存在至少一CAS系统上的第一内容单元;及包括在至少一I/O请求能力信息中,其指明将由至少一CAS系统应用于保存在其上的第一内容单元的至少一存储系统能力。
另一例证性的实施例致力于管理计算机系统中的内容存储的方法,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用标识符访问至少一CAS系统上的内容单元,标识符包括基于(至少部分)内容单元的内容产生的内容地址,其中至少一主机包括于其上运行的至少一应用程序。该方法包括(A)在至少一CAS系统,接收至少一输入/输出(I/O)请求,其请求保存在至少一CAS系统上的第一内容单元,其中至少一I/O请求包括能力信息,其指明将由至少一CAS系统应用于第一内容单元的至少一存储系统能力;(B)检查至少一I/O请求中的能力信息;及(C)实现由能力信息指明的存储系统能力。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一主机和至少一内容可寻址存储(CAS)系统,其对至少一主机的内容单元执行多个操作,其中至少一主机使用标识符访问至少一CAS系统上的内容单元,标识符包括基于(至少部分)内容单元的内容产生的内容地址,其中至少一主机包括于其上运行的至少一应用程序。至少一CAS系统包括适于接收输入/输出(I/O)请求的输入设备;及至少一处理器,其连接到输入设备,且适于通过输入设备接收至少一I/O请求,其请求保存在至少一CAS系统上的第一内容单元,其中至少一I/O请求包括能力信息,其指明将由至少一CAS系统应用于第一内容单元的至少一存储系统能力;检查至少一I/O请求中的能力信息;及实现由能力信息指明的存储系统能力。
另一例证性的实施例致力于跟踪计算机系统中的内容存储的方法,计算机系统包括至少一服务器和至少一内容可寻址存储(CAS)系统,其对至少一内容源的内容单元执行多个操作,其中至少一内容源使用基于(至少部分)内容单元的内容产生的内容地址识别CAS系统上的内容单元,其中至少一内容源包括多个内容源,包括至少第一和第二内容源。该方法包括(A)从在第一内容源和CAS系统之间传送的至少一输入/输出(I/O)通信提取信息,其涉及至少一I/O通信在来自第一内容源的、保存在CAS系统中的内容单元的至少一特征上的影响。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一服务器和至少一内容可寻址存储(CAS)系统,其对至少一内容源的内容单元执行多个操作,其中至少一内容源使用基于(至少部分)内容单元的内容产生的内容地址识别CAS系统上的内容单元,其中至少一内容源包括多个内容源,包括至少第一和第二内容源。该装置包括适于接收在第一内容源和CAS系统之间传送的输入/输出(I/O)通信的输入设备;及至少一处理器,其连接到输入设备,且适于从通过输入设备接收的至少一I/O通信提取信息,该信息涉及至少一I/O通信在来自第一内容源的、保存在CAS系统中的内容单元的至少一特征上的影响。
另一例证性的实施例致力于跟踪计算机系统中的内容存储的方法,计算机系统包括至少一服务器和至少一内容可寻址存储(CAS)系统,其对至少一内容源的内容单元执行多个操作,其中至少一内容源使用基于(至少部分)内容单元的内容产生的内容地址识别CAS系统上的内容单元,其中至少一内容源包括多个内容源,包括至少第一和第二内容源。该方法包括(A)与将来自第一内容源的第一内容单元保存在CAS系统上相关联,将识别第一内容源的信息保存为第一内容单元的源。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一服务器和至少一内容可寻址存储(CAS)系统,其对至少一内容源的内容单元执行多个操作,其中至少一内容源使用基于(至少部分)内容单元的内容产生的内容地址识别CAS系统上的内容单元,其中至少一内容源包括多个内容源,包括至少第一和第二内容源。该装置包括至少一存储器件;及至少一处理器,其连接到至少一存储器件,并适于与将来自第一内容源的第一内容单元保存在CAS系统上相关联,将识别第一内容源的信息保存为第一内容单元的源。
另一例证性的实施例致力于跟踪计算机系统中的内容存储的方法,计算机系统包括至少一服务器和至少一内容可寻址存储(CAS)系统,其对至少一内容源的内容单元执行多个操作,其中至少一内容源使用基于(至少部分)内容单元的内容产生的内容地址识别CAS系统上的内容单元,其中至少一内容源包括多个内容源,包括至少第一和第二内容源。该方法包括(A)读与保存在CAS系统上的内容单元相关联的信息;及(B)至少部分基于在行为(A)中读的信息,从第一内容源确定保存在CAS系统中的内容单元的至少一特征。另一例证性的实施例致力于至少一计算机可读的介质,当在计算机系统上运行时,其实施上述方法。
另一例证性的实施例致力于在计算机系统中使用的装置,计算机系统包括至少一服务器和至少一内容可寻址存储(CAS)系统,其对至少一内容源的内容单元执行多个操作,其中至少一内容源使用基于(至少部分)内容单元的内容产生的内容地址识别CAS系统上的内容单元,其中至少一内容源包括多个内容源,包括至少第一和第二内容源。该装置包括至少一存储器件;及至少一处理器,其连接到至少一存储器件并适于读与保存在CAS系统上的内容单元相关联的信息;及至少部分基于与保存在CAS系统上的内容单元相关联的信息,从第一内容源确定保存在CAS系统中的内容单元的至少一特征。
附图简要说明图1A示出了计算机系统中写请求的执行,计算机系统包括主计算机和CAS系统,本发明的各个方面可使用于该计算机系统中。
图1B示出了图1A的计算机系统中读请求的执行。
图2示出了本发明的各方面可实施于其上的计算机系统,计算机系统包括CAS系统和运行应用程序并具有与CAS系统接口的API的主计算机。
图3示出了本发明的各方面可实施于其上的计算机系统,计算机系统包括主计算机、CAS系统和在其间参与通信的软件层401。
图4示出了根据本发明一实施例的包括多个CAS系统的计算机系统,CAS系统已被分割为虚拟库。
图5示出了图4的计算机系统,但包括参与主机和CAS系统之间的通信的层401。
图6示出了根据本发明另一实施例的包括CAS系统的计算机系统,其中存储节点已被分割为虚拟库。
图7为根据本发明一实施例的超级库的构成。
图8概念地示出了CAS系统,其中虚拟库均被分配但没有分割存储资源。
图9示出了根据本发明一实施例的计算机系统,其中多个CAS系统用作另一CAS系统和所保存的内容单元的内容源从而被分割为虚拟库。
图10示出了一计算机系统,其中主计算机、设备和CAS系统中的每一个均具有可实施本发明的一个或多个方面的控制器。
图11为根据本发明一实施例的将至少一CAS系统分割为虚拟库并将每一虚拟库分配给内容源的方法。
图12为根据本发明另一实施例的确定I/O被指引到哪一虚拟库并将I/O转发给所指明的虚拟库的存储资源的方法。
图13为根据本发明另一实施例的将CAS系统分割为虚拟库并分配不同的存储系统能力给每一虚拟库的方法。
图14为根据本发明另一实施例的传输包括指明内容单元的一个或多个存储系统能力的信息的I/O并使用所述信息实现所指明的存储系统能力的方法。
图15为根据本发明另一实施例的从I/O提取关于CAS系统上由I/O的源保存的内容单元的特征的信息的方法。及图16为根据本发明另一实施例的保存识别内容单元的源的信息并读该信息以确定由该源保存的内容单元的特征的方法。
具体实施例方式
申请人已意识到由于内容源(如主计算机或服务器、应用程序、其它存储系统等)并不指明保存在CAS系统中的内容单元的物理或逻辑存储位置,因而内容源不具有在物理上或逻辑上将在某些方面关联的内容单元分开的能力。例如,由同一主计算机或应用程序保存的内容单元可能位于完全不同的物理或逻辑位置。
申请人还意识到各种存储系统能力(如不同类型的删除能力、复制能力等)通常与内容单元的物理和/或逻辑存储位置有关系。因此,内容源无力指明内容单元的物理或逻辑存储位置将导致无力确保向在某些方面关联(如,自同一主机或同一应用程序的那些写入)的内容单元提供一致的存储系统能力。
此外,内容源不能控制哪一逻辑或物理存储资源用于保存内容源,从而可导致不能独立地跟踪或报告保存在存储系统上的、来自任何特定内容源的内容单元的一个或多个特征(例如,用于保存来自特定内容源的内容单元的存储容量、从特定内容源保存的内容单元的数量等)。
本发明的一实施例涉及将一个或多个CAS系统分为多个虚拟库。每一虚拟库可被分配以一个或多个内容源,使得内容源仅被允许访问分配给其的虚拟库中的内容单元,而不允许访问未分配给其的虚拟库中的内容单元。
如下面将详细论述的,CAS系统可以多种方式中的任一方式分为多个虚拟库,因为本发明的该方面并不限于任何特定的实施技术。例如,在本发明的一实施例中,不同的虚拟库可被分配给不同的存储系统资源(例如,不同的CAS系统、CAS系统内的不同存储节点等);或者,可在不考虑存储系统资源极限的情况下执行分割。
虚拟库的使用可提供多个优点,尽管本发明的涉及虚拟库的方面并不限于在此描述的任何特定优点。例如,在本发明的一实施例中,两个或多个虚拟库可被提供以不同的存储系统能力。在虚拟库的使用不限于该方面的同时,该能力是有利的,因为两个或多个内容源可被分配给不同的虚拟库,从而不同的存储系统能力可被应用于从不同内容源保存的内容。
在另一实施例中,每一虚拟库的跟踪和报告可独立进行。再一次地,在虚拟库的使用不限于该方面的同时,这是有利的,因为两个或多个内容源可被分配给两个不同的虚拟库,从而每一内容源使用的内容单元的特征可被独立跟踪和报告,如每一内容源使用的存储容量或因而保存的内容单元的数量。
如上所述,本发明的涉及将一个或多个CAS系统分为多个虚拟库的方面并不限于向不同虚拟库提供不同的存储能力和/或对不同虚拟库提供单独的跟踪和报告。类似地,应该意识到的是,本发明的涉及对CAS系统中的内容提供不同的存储能力和单独的跟踪和报告的方面并不限于与本发明的虚拟库方面一起使用,因为本发明的这些方面的每一方面的其它实施方式均是可能的,其不采用虚拟库。
例如,本发明的一实施例致力于使内容源能够指明(如在访问内容单元的输入/输出(I/O)请求中)至少一存储能力的技术,该存储能力将由CAS系统应用于内容单元。CAS系统可使用该信息将指明的存储系统能力应用于内容单元。尽管不限于该方面,本发明的该实施例使一个或多个内容源能够分配不同类型的存储能力给保存在CAS系统上的内容单元。
类似地,本发明的另一实施例致力于使能跟踪内容源和CAS系统之间的I/O通信的技术,以确定I/O在从内容源保存在CAS系统中的内容单元的至少一特征上的影响。该特征可涉及CAS系统中用于保存来自指定内容源的内容的存储容量的数量。然而,由于该特征还可涉及其它类型的信息,包括由内容源保存的内容单元的数量,本发明的该方面并不限于此。
在本发明的另一实施例中,当内容单元被保存到CAS系统时,识别内容单元的源的信息也可被保存。这使得该信息能够在随后被读以确定CAS系统中哪一内容源保存哪一内容单元。接着,该信息可用于多种类型的跟踪和报告行动,如确定每一源保存的内容单元的数量、每一内容源使用的存储容量等。这些确定可由主计算机或单独的附属设备(将在下面描述)进行,其从CAS系统读该信息,或可由CAS系统自身在内部进行,因为本发明的该方面并不限于任何特定的实施技术。在本发明的两个上述方面(涉及(1)跟踪I/O通信以提取信息,其涉及I/O在从特定内容源保存在存储系统上的内容单元的特征上的影响,及(2)保存内容单元的信息,其确定内容单元的源)在此连同在CAS系统上使用进行描述的同时,应该意识到的是,本发明的这些方面不限于此,而是可与任何类型的存储系统一起使用。
如上所述,本发明的一些实施例涉及CAS系统中虚拟库的使用。虚拟库是存储资源和/或内容单元的逻辑分组,其可基于任何适当的标准进行分组。例如,虚拟库可基于虚拟库被分配于其的内容源的身份(如主计算机、应用程序、其它存储系统等)进行确定,和/或基于虚拟库中分组在一起的内容单元的共同访问许可确定。内容单元还可基于将要应用于内容单元的存储系统能力而被分组在虚拟库内。例如,将要同步复制的内容单元可被分组在一虚拟库内,将要异步复制的内容单元被分组在另一虚拟库内。内容单元还可基于这些或其它标准的组合而被分组在虚拟库内。上面提供的可用于确定虚拟库的特征的标准(或单独或全体)的例子仅是说明性的,因为本发明并不限于此,因为任何适当的标准均可被使用。
应该意识到的是,本发明的涉及虚拟库的使用的方面可实现逻辑划分,其限制了CAS系统对特定内容单元的访问请求(如读请求、写请求、查询请求等)的响应。例如,如上所述,在本发明的一实施例中,不同的虚拟库可被分配给不同的内容源(如服务器、应用程序、另一存储系统等)。通过虚拟库的使用,CAS系统可被划分,使得内容源仅有权使用分配给内容源的虚拟库所分配的内容单元。因此,来自分配给特定虚拟库的内容源的访问请求可仅由分配给该虚拟库的存储资源和/或内容单元服务。例如,当对内容单元执行读或查询操作时,存储系统将仅基于保存在分配给内容源的适当虚拟库内的内容单元响应于访问请求。这可为所保存的内容提供安全措施,因为从不同内容源保存到存储系统的内容单元将不被用于响应于来自另一内容源的访问请求,从而通过不与另一潜在的、寻求访问内容单元的未经授权的实体共享内容单元而保持内容单元的安全性。例如,如果存储系统被分为两个虚拟库,其被分配给两个不同的服务器或应用程序,每一服务器或应用程序仅可访问分配给其相应的虚拟库的内容单元,而不能访问其它服务器或应用程序的内容单元。因此,每一内容源可被允许仅能访问保存在分配给该内容源的虚拟库中的内容单元。
虚拟库可以任何适当的方式创建和管理,因为本发明并不限于此。例如,根据本发明的一实施例,为帮助创建和管理虚拟库,每一虚拟库被提供以名称或标识符、将被应用于虚拟库中的内容单元的能力标识、及用于寻求访问虚拟库内的内容单元的服务器、应用程序、用户等的验证和/或授权技术。此外,对于虚拟库是通过划分存储系统资源而实现的实施例,虚拟库的管理和创建还可包括从虚拟库到用于保存内容单元的存储系统资源的映射。此外,一些技术可用来将存储资源添加到虚拟库或从虚拟库去除存储资源。
当然,在一些实施例中,虚拟库的管理可包括编辑或修改一个或多个虚拟库的一个或多个方面,以及删除或破坏虚拟库的能力。此外,根据本发明的一实施例,提供能力以按需增加提供给一个或多个虚拟库的存储容量。这可以多种方式中的任一方式实现,因为本发明并不限于任何特定的实施技术。类似地,用于处理可添加到计算机系统的另外的存储资源及将这些存储资源分配给一个或多个虚拟库的技术也可被提供。再次地,这可以多种方式中的任一方式实现,因为本发明并不限于任何特定的实施技术。可能用于处理新添加的存储资源的例子可包括将资源自动分配给最需要额外容量的虚拟库、将额外的存储资源在两个或多个虚拟库之间自动等同共享、及搁置额外的存储资源直到它们被管理员手工分配给一个或多个虚拟库。
在虚拟库可由管理员按上述进行配置的同时,应该意识到的是,本发明并不限于此,虚拟库可被自动建立或以任何其它适当的方式建立。
当将内容单元保存在已被分为多个虚拟库的CAS系统上时,关于内容单元应被放置在哪一虚拟库中的决定可由任何适当的实体以任何适当的方式进行。图2示出了示例性的计算机系统,其包括主计算机301、在其上运行的读和写内容单元的应用程序303、及适于将应用程序301与CAS系统307接口的应用编程接口(API)305。主机301可以是,例如,提供资源(如数据存储、电子邮件和/或其它服务)、客户系统(如由用户操作的通用计算机系统)、网络构件(如交换器)的服务器或任何其它类型的计算机。主机301由通信链路304连接到存储系统307,使得主机301可使用存储系统307来保存和检索内容单元。链路304可以是任何类型的通信链路,包括任何类型的网络或直接连接。
应用程序303可以是主机301的用户或管理员使用的任何计算机程序,且其将内容保存到存储系统307和/或从存储系统307检索内容。应用程序303与API305连接,使得应用程序303可使用API305与存储系统307进行通信。
API305可包括,例如,提供给应用程序303的程序员的计算机目标代码。计算机目标代码可包括可用于与存储系统通信的例程。当与API305连接时,应用程序可调用这些例程以与存储系统307通信。API305可与任何数量的应用程序连接,并保护应用程序303的程序员免遭存储系统307借以通信的内部协议的问题。应该意识到的是,在此描述的本发明的各个方面不限于与采用主机上的API来帮助主机301和存储系统307之间的通信的系统一起使用,因为主机/存储系统接口的实质可以多种方式中的任一方式实现。本发明并不限于任何特定的实施技术。作为另外的实施技术的例子,应用程序303可被个性化为与存储系统307直接通信。
在一实施例中,当将内容单元保存到存储系统307时,应用程序303可指明内容单元将被分配给其的虚拟库。虚拟库的标识可包括在自API305到存储系统307的通信或输入/输出(I/O)请求中以保存内容单元,且存储系统307可基于包含在请求中的信息将内容单元分配给适当的虚拟库。在一实施例中,虚拟库可使用独立于用于访问内容单元的标识符(如内容地址)的标识符进行识别。
在另一实施例中,API可确定内容单元将被分配给哪一虚拟库。API可以任何适当的方式做出决定。例如,当存储系统307包括单独的虚拟库来保存来自每一应用程序的内容单元且来自应用程序的所有内容单元均被保存在同一虚拟库中时,API305可确定哪一应用程序正请求保存内容单元并可发送请求给存储系统307,其指示内容单元将被放置在与该应用程序相关的虚拟库中。当虚拟库由API确定时,应用程序303可被通知以该决定。或者,应用程序303无需知道内容单元保存在哪一虚拟库中,甚或无需知道存储系统307被分为多个虚拟库。
当由特定应用程序保存的内容单元被保存在具有不同特征(如不同的存储系统能力)的不同虚拟库中时,应用程序可向API指明内容单元的存储所希望的特征。接着,API可选择对应于应用程序所请求的特征的虚拟库。如果对应于应用程序所请求的特征的虚拟库不存在(如存储系统能力的特殊组合),则API可创建对应于那些特征的虚拟库。
在另一实施例中,应用程序可能知道存储系统上的虚拟库及它们的相应特征,且可简单地向API指明内容单元所想要的虚拟库。
如上所述,内容单元可被分配给特定虚拟库的方式不限于上面提供的例子,因为大量其它分配技术也是可能的。分配可由计算机系统中的任何实体进行,包括主计算机、CAS系统、附属设备或网络组件等。此外,上面讨论的分配技术并不相互排斥,因为可以预期不同的分配技术可组合使用。
虚拟库可以任何适当的方式识别和/或指定。例如,在创建或在任何其它适当的时间,虚拟库可被分配以标识符(如由系统管理员或其它人)。应用程序、API或其它内容源可使用该标识符确定特定的内容单元将被保存到哪一特定的虚拟库中。类似地,在本发明的可从存储系统读信息以确定一个或多个内容单元保存在哪一虚拟库中的那些实施例中,标识符可用于确定虚拟库。
在另一实施例中,关于内容单元属于哪一虚拟库的决定可由独立于应用程序或API的软件层做出。这样的软件层的例子在申请号为10/836,415、题为“内容可寻址计算机系统中处理访问请求的方法和装置”的美国专利申请中有所描述,其通过引用而组合于此。如图3中所示,层401从API305接收访问请求并将访问请求转发给CAS系统307。应该理解的是,尽管在图3的计算机系统中仅示出了一个CAS系统307,但计算机系统可包括多个CAS系统,且层401可将请求转发给一个或多个CAS系统。层401以虚线示出以表明层可在计算机系统中的任何地方运行,如在主计算机、CAS系统、和/或位于主计算机和CAS系统之间的单独的附属设备上。层401可接收请求以保存内容单元、确定内容单元将被分配给哪一虚拟库、及转发请求以将内容单元保存到CAS系统,所转发的请求确定内容单元的虚拟库。然而,在本发明的CAS系统被分配给每一虚拟库的那些实施例中,所转发的请求无需确定内容单元的虚拟库,因为保存在特定CAS系统上的所有内容单元均属于同一虚拟库。在这样的实施例中,层401可转发请求以将内容单元保存到内容单元所属的、分配给虚拟库的CAS系统中,从而确定内容单元的虚拟库的信息是可选的。
层401可以任何适当的方式确定内容单元的虚拟库,包括但不限于上面对API305描述的任一选择技术。作为另一例子,层401可基于哪一主机或应用程序启动保存内容的请求选择虚拟库。在一实施例中,层401以对主计算机透明的方式将CAS系统分为多个虚拟库。当然,本发明的采用层401来分配内容单元给虚拟库的发明并不限于此,因为层401所做的任何分配均可提供给主计算机。此外,应该意识到的是,由层401将内容单元分配给虚拟库也可在主计算机301将内容单元直接传输给CAS系统307之前进行。在这样的实施例中,层401可提供虚拟库分配给主机301,其后,主计算机301可在直接发送(即不通过层401)给CAS系统307的输入/输出(I/O)通信中包括虚拟库信息。
如上所述,在本发明的一些实施例中,存储系统能力和/或访问许可可被分配给CAS系统中的一个或多个内容单元,而不用将内容单元逻辑分组为虚拟库。这可以任何适当的方式进行,因为本发明的该方面不限于任何特定的实施技术。例如,每一内容单元的信息可被保持(在CAS系统307上,在层401中或其它地方),其指明哪一存储系统能力将被应用于内容单元和/或哪一主机、用户或应用程序被允许访问内容单元。当然,应该意识到的是,对一个或多个内容单元提供不同的存储系统能力和/或访问许可也可使用本发明的虚拟库方面实现,使得每一内容单元可被保持的信息可指明内容单元属于哪一虚拟库,且确定用于不同虚拟库的存储能力和/或访问许可的附加信息也可被保持。
在此描述的本发明的各个方面,包括那些涉及可提供不同存储系统能力的虚拟库及分配不同存储系统能力给一个或多个内容单元而不必将它们分组为虚拟库的方面,均可与具有任何多种类型的存储系统能力的存储系统一起使用,因为本发明并不限于此。这样的存储系统能力的例子可包括,例如,复制能力(如不复制、立即复制、在指定时间复制等);删除能力(如防止删除、碎片删除、按下表1中所列的某些申请所指明的那样保持指定的保持周期、打开或关闭下表1中所列的某些申请中所描述类型的垃圾收集实用程序等);许可能力;服务质量能力(例如,当内容单元被访问时,优先服务哪一访问请求可取决于分配给内容单元的质量服务参数,其指明这样的参数如虚拟库允许连接的数量、允许的I/O运转速率、允许的数据传输速率等);缓存能力(如指明内容单元是否将被缓存及指明不同类型的缓存);索引和搜索能力(如,写到虚拟库的内容单元可被扫描以获得某一指定的信息,如关键字,并可为了随后的检索通过搜索由扫描检测到的信息而被索引);记录能力(如,保持某些操作的历史记录,如跟踪特定虚拟库的每一访问或跟踪特定类型的操作,如所有删除操作)。
存储系统能力的另一例子可包括存储空间分配额或各种类型的限制的执行。例如,存储系统可限制可被保存到存储系统或特定虚拟库的任一单个内容单元的大小、可被保存在任一特定虚拟库中的内容单元的数量、和/或由任一特定虚拟库使用的存储容量。如果响应于寻求写一个或多个内容单元到存储系统的I/O通信而使得一个或多个存储资源限制或分配额被超出,则存储系统可通过拒绝请求而执行存储系统能力。
可被分配给一个或多个虚拟库的另一存储系统能力涉及内容单元的内容地址的结构。在一实施例中,保存到同一虚拟库的内容单元均可具有同样的内容地址结构,但不同虚拟库之间的内容地址结构可不同。例如,内容地址可只包括散列值,或可包括散列值及保证唯一标识符(GUID)、时戳或任何其它适当信息中的任一或多个,其中保证唯一标识符帮助保证没有两个内容单元具有同样的内容地址,时戳指明内容单元保存到存储系统上时的时间。在此描述的内容地址结构的例子仅是说明性的。任何适当的内容地址结构均可使用,因为本发明不限于此。
应该意识到的是,上面描述的存储系统能力仅是可提供在存储系统中的能力的例子。从前述可见,本发明的涉及向不同虚拟库提供不同存储系统能力及独立于虚拟库的使用向内容单元分配一个或多个存储系统能力的方面并不限于与任何特定类型的存储系统能力一起使用,因为本发明的这些方面可与存储系统上提供的任何类型的存储系统能力一起使用,并可实现任何一批政策包括存储系统能力的各种组合。
本发明的涉及分配不同存储系统能力给不同内容单元的方面可以多种方式中的任一方式实施,因为本发明的该方面不限于任何特定的实施技术。根据下述的一实施例,存储系统被配置为包括一个或多个存储系统资源组(如物理或逻辑存储系统资源),其被配置来提供想要的存储系统能力,接着,每一内容单元被分配给提供所需要存储系统能力的存储系统资源。如下面将详细描述的,当本发明的该方面通过将CAS系统分为不同的虚拟库而实施时,存储系统资源可被分为形成虚拟库的多个组且每一组提供想要的存储系统能力集合。
应该意识到的是,当不同的存储系统能力通过将存储系统资源分为多个虚拟库并具有可用于每一虚拟库的不同存储系统能力组合而被分配给内容单元时,内容单元的I/O请求可指明所需要的存储系统能力,或直接地,或通过简单地指明适当的虚拟库。在一实施例中,虚拟库的标识可被映射到存储系统资源的标识,这些存储系统资源被分配给给虚拟库并被配置以所需要的存储系统能力。
类似地,在本发明的那些虚拟库被形成但未划分存储系统资源的实施例中,当I/O请求确定虚拟库时,虚拟库标识符可用于映射到所需要的存储系统能力(如通过采用数据储存库,其确定将要提供用于每一虚拟库的存储系统能力),存储系统资源可被选择或配置以提供所需要的存储系统能力。或者,应该意识到的是,某些存储系统能力仅可在读或删除内容单元时执行。例如,有各种类型的由存储系统支持的删除操作,每一删除操作提供不同的安全级别(如碎片),该安全级别是指数据删除后可潜在恢复的能力。在一实施例中,这样的能力可通过存储系统响应于指向内容单元的访问请求(如删除请求)而实现。
不同的存储系统能力被分配给内容单元但未将存储系统分为虚拟库的那些实施例可以多种方式中的任一方式实施。例如,内容单元的I/O请求可包括或直接或间接指明所需存储系统能力的信息。在接收这样的I/O请求时,存储系统(或图3中所示的层401)可确定所需的存储系统能力并将内容单元保存在被配置来提供这样的能力的存储系统资源上。或者,如上所述,某些能力可通过存储系统响应于内容单元的访问请求而实现。
上述关于不同的存储系统能力可被应用于不同的内容单元的方式的例子仅为说明性的目的而提供,因为本发明的涉及提供不同存储系统能力给不同内容单元的方面不限于任何特定的实施技术。
将一个或多个CAS系统分为多个虚拟库可以任何适当的方式实现,因为本发明的该方面并不限于任何特定的实施技术。在图4中所示的实施例中,不同的CAS系统被用于保存不同的虚拟库,使得没有两个虚拟库共享一CAS系统。在图5的例子中,存储环境包括三个CAS系统501、503和505。
图5中的存储环境示出了多个CAS系统(或存储器簇),其一起工作以提供组合的存储量,但它们相互独立。如在此使用的,术语存储系统(或簇)指一组一个或多个互连的节点,其共享至少一在逻辑上连接它们的软件实用程序。例如,存储系统的节点可共享一个或多个通信软件实用程序,使得存储系统中的节点可监视来自系统中其它节点的通信,但不监视来自系统外的节点的通信。可在存储系统内共享的软件实用程序的例子在表1中所列的一个或多个应用程序中有描述。
在图5所示的实施例中,多个存储系统可被管理以共同为一个或多个主计算机提供存储资源。根据本发明的一实施例,多个存储系统以对存储环境的用户(如主计算机或在其上运行的应用程序)透明的方式进行管理,使得用户在访问特定的数据单元时可以不知道该数据单元被保存在哪一存储系统上。因此,用户可将多个存储系统当成一个存储环境,而无需知道写到存储环境的数据被保存在哪一系统上。这样的一起工作以提供存储系统资源的一组存储系统可被称为联合。其它用于将两个或多个存储系统安排成联合的技术在下表1中所列的一个或多个申请中列出。
在上述的实施例中,联合被采用来提供多个不同的CAS系统以实现不同的虚拟库。然而,应该意识到的是,联合技术也可连同在此描述的本发明的其它实施例以其它方式进行使用。例如,在提及CAS系统的每一附图和描述中,应该意识到,可采用或单个CAS系统或CAS系统的联合。
在图4的例子中,每一存储系统(501、503和505)保存一虚拟库(分别是虚拟库A、B和C)的内容单元,使得存储环境500在逻辑上被分为三个虚拟库。每一虚拟库中的内容单元在物理上和逻辑上均独立于其它虚拟库中的内容单元。
除了通过将它们保存在不同的CAS系统上而逻辑上分割虚拟库以外,图4中所示的实施例还可被采用来实现本发明的涉及为不同内容单元提供不同存储系统能力的实施例。例如,不同的CAS系统可被配置以提供所需的不同的存储系统能力集合,使得每一内容单元可被分配给提供所需存储系统能力的虚拟库。类似地,在不同的CAS系统上保存不同的虚拟库还有利于单独跟踪内容单元的数量和/或各个虚拟库使用的存储资源的容量,因为物理分割有助于对每一CAS系统进行单独报告。
通过使用独立的CAS系统将存储环境分割为虚拟库可以多种方式中的任一方式实施,因为本发明不限于任何特定的实施技术。例如,如上所述,存储环境可由系统管理员分割为图4中所示的虚拟库。
在图4中所示的例子中,单一主机501经通信链路507连接到存储环境500。如上所述,通信链路可以是任何类型,包括专用通信链路、共享网络或任何其它使得的通信介质,因为本发明的各个方面不限制主机501连接到存储环境500的方式。此外,尽管在图4中所示为单个主机501连接到三个CAS系统,应该意识到的是,本发明不限于这样的配置,并可被采用在包括多个主机和任意数量的CAS系统的计算机系统中。此外,在图4中所示的实施例中,每一虚拟库均被保存在单独的CAS系统上。应该意识到的是,本发明的该方面不限于此,因为虚拟库可被保存在两个或多个CAS系统上。
在图4所示的实施例中,主机501与CAS环境500直接通信。因此,一旦存储环境500已被分为所需要的虚拟库(如由系统管理员),关于各个虚拟库的信息可被提供给主机501。例如,在主机包括多个应用程序的实施例中,每一应用程序具有分配给其的不同的虚拟库,主机501可被提供以指明哪一虚拟库被分配给每一应用程序的信息。主机501可使用该信息以将每一I/O请求指引到对应于适当虚拟库的CAS系统。将这样的信息提供给主机501及通过主机501发送给适当的CAS系统,仅是本发明的一说明性的实施例,因为本发明不限于此或任何其它特定的实施技术。
在本发明的另一实施例中,主机无需将每一I/O请求发送给对应于所需虚拟库的CAS系统,因为该发送可由一个或多个CAS系统执行。例如,主机可发出I/O请求510(图4),其包括确定所需要虚拟库的信息,当其被指引到特定的内容单元时,其还确定该内容单元。I/O请求可被发送给任一CAS系统,其继而可确定所需要的虚拟库。当所需要的虚拟库或内容单元未被保存在接收I/O请求的CAS系统上时,CAS系统可将I/O请求转发给适当的CAS系统。最初接收I/O请求的CAS系统可以任何适当的方式确定,因为本发明不限制该方面。例如,CAS系统之一可被指定来从主机501接收所有I/O请求,并可承担转发用于其它CAS系统的I/O请求的任务。应该意识到的是,I/O请求的发出可由主计算机上的任何实体进行,包括在主计算机上运行的应用程序。
图5示出了本发明的另一实施例,其包括层401,该层处理将I/O通信发送给适当的CAS系统的功能以实现在逻辑上分为多个虚拟库。如上所述,CAS层401可在主计算机、CAS存储系统之一、和/或连接到主计算机和CAS系统的网络组件或单独的附属设备上运行如上面参考CAS层应用描述的那样。层401可帮助以对主机601透明的方式将存储环境分为多个虚拟库,或者,主机601可被使得知道分割为虚拟库,因为图5中所示的本发明的实施例不限于此。
应该意识到的是,在一实施例中,分割为虚拟库不仅对主机601透明,而且对其上运行的任何应用程序均透明。例如,在不同的虚拟库被分配给不同的应用程序的实施例中,层401可以对应用程序透明的方式执行该分割,因为至及自每一应用程序的I/O通信可简单地被发送给适当的虚拟库,而无需应用程序知道存储环境已被分为虚拟库。当然,本发明不限于此,因为应用程序也可知道分割为虚拟库的情况。此外,在一些实施例中,在确定一个或多个内容单元的要求中应用程序可以是积极的参与者,这些要求可以是关于内容单元被保存在哪一虚拟库中(例如存储能力),使得应用程序可积极地参与选择虚拟库,至少通过为保存一个或多个内容单元指明一个或多个所需要的要求。
在另一实施例中,虚拟库不限于被形成于单独的存储系统上,因为单个存储系统可具有被分割的不同的逻辑和/或物理存储资源或节点以实现两个或多个虚拟库。应该意识到的是,该实施例与上述图4的实施例并不相互排斥,因为这两个实施例可一起使用,从而不同的CAS系统可被分割为不同的虚拟库,且CAS系统中的一个或多个还可被进一步分割以形成多个虚拟库。
如上所述,在此描述的本发明的各个方面不限于具有任何特定类型的配置的存储系统,因为本发明不限于此。因此,存储系统内的逻辑和/或物理存储资源或存储节点可以任何适当的方式分割以形成虚拟库,因为本发明不限于此。图6示出了一说明性的例子,连同具有表1中所列的几个申请中公开的访问节点和存储节点配置类型的存储系统。再次地,该配置的示出仅用于说明性的目的,因为本发明并不限于与包括访问和存储节点配置的存储系统一起使用。如在此使用的,提及存储节点并不限于在图6中所示的具有访问节点和存储节点配置的系统中使用的存储资源,在此以更一般的意义使用而指任何物理和/或逻辑存储资源,其例子包括可由CAS系统、物理存储设备(如磁盘驱动器)、或包括一个或多个处理器及一个或多个存储设备以形成单一存储节点的存储资源呈现的存储器的逻辑卷。
CAS系统700包括多个访问节点701a-701c和多个存储节点703a-703e。访问节点701可接收并响应于来自主计算机705的访问请求,其如上述实施例中描述的那样经任何适当的通信链路507连接到存储系统。存储节点703可保存由主计算机705发送给CAS系统700的数据。访问节点701和存储节点703可由网络(未示出)或其它连接,并可通信使得每一节点可使其存在为其它节点知道,从而节点共同形成单一的存储系统。节点可包括处理资源(如处理器或存储器)和/或存储装置。节点相互通信以保存数据、响应于访问请求、及实现其它功能。对CAS系统700的用户(如主计算机705或其上运行的应用程序)而言,CAS系统700可作为单一实体出现。即,用户不必知道存储环境包括多个独立的节点或某一数据单元被保存在哪一存储节点上。
图6示出了包括单一主机705和单一CAS系统700的计算机系统。如在此描述的所有实施例那样,图6所示的实施例并不限于在包括该配置的计算机系统中使用,并可被使用于包括多个主计算机和任意数量的CAS系统的计算机系统中。
在图6的实施例中,胜于将整个存储系统分配给每一虚拟库,存储系统内的存储节点可被分配给不同的虚拟库。例如,存储节点703a-703c可保存第一虚拟库(虚拟库X)的内容单元,而存储节点703d和703e可保存第二虚拟库(虚拟库Y)的内容单元。因此,当CAS系统700接收保存内容单元的请求时,CAS系统可确定内容单元属于哪一虚拟库并可将内容单元保存在分配给该虚拟库的存储节点上。类似地,当处理其它类型的访问请求(如读请求、查询请求等)时,存储系统可确定所请求的内容单元被保存在哪一虚拟库中并仅使用分配给该虚拟库的存储节点来处理请求。例如,响应于读或查询请求,存储系统可仅搜索分配给适当虚拟库的存储节点以确定所需要的内容单元是否保存在CAS系统700中。例如,如果读请求是从分配给虚拟库X(图6)的主机接收,但寻求读仅被保存在分配给虚拟库Y的存储节点703d-e中之一上的内容单元,CAS系统700将通过不返回所确定的内容单元而响应于读请求,但更愿拒绝访问所需要的内容单元。该拒绝可以任何适当的方式进行,因为本发明并不限于此。例如,CAS系统700可警告请求人该内容单元在CAS系统700上是可用的,但该请求人缺乏适当的访问特权,或者,系统700可简单地指出请求被拒绝,而不提供任何关于所需要的内容单元是否保存在另一虚拟库上的信息。
根据本发明的一实施例,CAS系统中的存储节点分配给不同的虚拟库有助于跟踪保存在CAS系统中的内容单元的特征,如保存在特定虚拟库中的内容单元的数量、所分配的和/或由虚拟库实际使用的存储容量等。例如,通过分配不同的存储节点给不同的虚拟库,来自每一存储节点的有关信息可被单独提取,且关于哪一存储节点被分配给每一虚拟库的知识可用于确定虚拟库的所想要的特征。
在本发明的另一实施例中,分割存储节点以形成多个虚拟库可用于帮助提供不同的存储系统能力给不同的虚拟库,因为不同的存储节点可被不同地配置以提供所需要的存储系统能力,其例子如上所述。
在图6中,只有存储节点被分为虚拟库,使得对保存在特定存储节点上的内容的访问请求可由任何访问节点接收和转发。然而,在另一实施例中,访问节点也可被分为虚拟库,从而访问节点只可处理与访问节点相同的虚拟库中的内容单元的访问请求。或者,在本发明的内容单元被保存在访问和存储节点上的其它实施例中,访问节点可被分为特殊的虚拟库,使得其只可保存属于该虚拟库的内容单元,当然,访问节点可接收和转发任何内容单元的访问请求,包括其它虚拟库中的那些内容单元的访问请求。
在本发明的另一实施例中,虚拟库可被创建,而不用将一个或多个CAS系统的存储资源分为多个虚拟库,其极限被限制为存储资源(如CAS系统或存储节点)的极限。一个或多个CAS系统逻辑上分割为虚拟库可以任何适当的方式完成,因为本发明的该方面不限于任何特定的实施技术。根据本发明的一实施例,用于分配给虚拟库的每一内容单元的信息连同确定内容单元被分配给哪一虚拟库的信息均被保存。信息可以任何适当的形式、在任何适当的位置进行保存,因为本发明的该方面不限于任何特定的实施技术。
本发明的一实施例适于与表1中所列的至少部分申请中所描述的系统一起使用,其中两种不同类型的内容单元被保存在存储系统上,即二进制大对象及内容描述符文件(CDF)。
二进制大对象是第一类型的内容单元,其包括描述数据(如应用数据)。CDF是第二类型的内容单元,其包括关于另一内容单元如二进制大对象或其它CDF的元数据(如描述信息),且可但不是必须包括其它数据。例如,二进制大对象可包括数据如病人的X光照片,而CDF可包括关于X光照片的元数据如何时照的X光、在X光照片中描述的病人的姓名等。每一CDF可通过在CDF内包括二进制大对象的内容地址而确定与其相关的二进制大对象,使得访问二进制大对象可这样实现首先访问CDF以检索二进制大对象的内容地址,接着使用所检索的内容地址访问二进制大对象。尽管在此描述的本发明的一实施例适于与使用二进制大对象/CDF体系结构的系统一起使用,应该意识到的是,本发明的涉及不用分割CAS系统中的存储资源而创建虚拟库的方面并不限于与使用二进制大对象/CDF体系结构的系统一起使用,也不限于与表1中所列申请中描述的系统一起使用。
在一实施例中,确定二进制大对象属于哪一虚拟库的信息可被保存在其相应CDF的元数据中。如在此描述的虚拟库未被CAS系统中的特定存储资源确定的所有实施例处描述的那样,CAS系统可将内容单元保存在任何可用的存储资源中(如存储节点、CAS系统、逻辑卷、物理存储装置等),因为其不必限制内容单元的存储位置以确保其被分配给适当的虚拟库。因此,一个或多个存储节点包括分配给不同虚拟库的内容单元是可能的,适当存储节点被视作划分为多个分区,其将内容单元保存在不同的虚拟库中。图8概念性地示出了这种情况,其中所示出的CAS系统包括两个存储资源901、902。存储资源901包括两个分配给不同虚拟库的内容单元904、905。在这一点上,内容单元904被分配给标记为VP1的第一虚拟库,内容单元905被分配给标记为VP2的第二虚拟库。存储资源902包括两个内容单元,其中内容单元907被分配给虚拟库VP1,内容单元908被分配给标记为VP3的虚拟库。因此,存储资源901、902中的每一个可被视作包括多个分区,其保存来自不同虚拟库的内容单元,且虚拟库VP1可被视作分布在两个存储资源901、902之间。应该意识到的是,图8的例子仅用于说明性的目的,且CAS系统可包括大量存储资源,每一CAS系统可包括任何数量的内容单元,且内容单元可以任何所希望的方式分布在任何所需要数量的虚拟库之间。
当实体(如CAS系统、单独的附属设备等)接收访问二进制大对象的请求时,实体可查看相应的CDF以确定二进制大对象被分配给了哪一虚拟库。实体接着可确定请求实体是否有权访问二进制大对象。例如,响应于查询,每一候选CDF可被打开和检查以确定相应的二进制大对象被分配给了哪一虚拟库,用于确定发出查询请求的实体(如服务器、应用程序、用户等)是否可见包括二进制大对象的虚拟库的目的。类似地,对于读或删除请求,适当的CDF可被打开以确保请求人应用程序可以看见包括二进制大对象的虚拟库,且只有那样访问请求才可被同意。
如上所述,在此公开的本发明的各个方面并不涉及任何特定的存储系统能力或它们得以实施的方式。存储系统可具有一个或多个在其上运行的工具或实用程序并负责实现一个或多个存储系统能力。对于本发明的确定相应的内容单元属于哪一虚拟库的信息被保存在CDF中的实施例,在存储系统上运行以实现存储系统能力的任何工具或实用程序均可首先打开二进制大对象的CDF以确定二进制大对象属于哪一虚拟库,从而确定哪一存储系统能力应被实现。
内容单元(如二进制大对象)的虚拟库的标识可以任何适当的方式进行。例如,根据本发明的一实施例,每一CDF包括指明CDF属于哪一虚拟库的信息,且CDF不包括关于因而被引用的二进制大对象的虚拟库分配的任何特殊信息。而是,由CDF引用的每一二进制大对象可通过定义而被包括在CDF所属的虚拟库中。如果二进制大对象被不同虚拟库中的两个或多个CDF所指向,则二进制大对象将被呈现在这些虚拟库的每一个中。然而,本发明的涉及将内容单元的虚拟库标识信息保存在二进制大对象/CDF体系结构中的方面并不限于该实施方式,因为其它实施方式也是可能的。例如,对每一引用的二进制大对象,每一CDF可包括单独的虚拟库标识信息,使得每一二进制大对象可被直接分配给虚拟库,而不是通过指向其的CDF间接分配。
如上所述,虚拟库的形成有助于跟踪由不同内容源获得的内容单元的不同特征。对于虚拟库标识信息包括在CDF中的实施例,所需要的关于特定虚拟库的信息(如保存到虚拟库的二进制大对象的数量、分配给虚拟库的存储容量等)可通过打开保存在存储系统上的CDF进行确定,从而确定每一二进制大对象属于哪一虚拟库。
在上述的实施例中,内容单元的虚拟库标识符仅被保存在CDF中,使得二进制大对象保持为仅保存数据的内容单元,而没有关于其的元数据。应该意识到的是,本发明并不限于此,二进制大对象的虚拟库标识符也可被保存在二进制大对象自身之中。
应该意识到的是,有时可能希望将一个或多个内容单元从一虚拟库移到另一虚拟库。例如,先前已被以使它们能被删除的方式保存的一些内容单元可能具有希望致使内容不可删除的状态(如,如果内容与诉讼有关)。如表1中所列申请的至少部分中所述的,某些采用CDF的系统通过(至少部分)基于CDF的内容产生的内容地址确定CDF。因此,如果二进制大对象要被移到新的虚拟库,包括在CDF中的虚拟库的标识符应改变,其继而可导致需要为CDF产生新的内容地址。这对寻求访问CDF的实体可能有些困难,因为它们经其原始的内容地址确定CDF。根据本发明的一实施例,该困难可通过将CDF引用的任何二进制大对象的虚拟库标识符保存在二进制大对象的一部分中而克服,该部分在产生CDF的内容地址时未被使用。
在本发明的另一实施例中,内容单元如与CDF关联的二进制大对象的虚拟库标识符未被保存在二进制大对象或CDF自身之内,而是保存在二进制大对象或相关CDF之外。结果,对虚拟库标识符的修改并不修改二进制大对象或其相应的CDF的内容,其意味着不必对修改后的二进制大对象或CDF产生新内容地址。确定内容单元属于哪一虚拟库的信息可被保存在任何适当的位置,因为本发明的该方面不限于任何特定的实施方式。
根据本发明的一实施例,保存在CAS系统中的内容单元的虚拟库标识符被保存在不包括在二进制大对象或CDF之内的表中。该表可以任何适当的方式保存。例如,在本发明的一实施例中,表可被包括在数据库中,其可包括分配给虚拟库的每一内容单元的项,每一项包括内容单元的标识符(如二进制大对象或指向二进制大对象的CDF的内容地址)及一个或多个确定内容单元属于哪一虚拟库的相关虚拟库标识符。如上述虚拟库标识符保存在CDF中的那些实施例中那样,当内容单元被访问时,包括为内容单元指明虚拟库的信息的数据库可被检查以检索该信息,其接着可以上述的方式进行使用。
当内容单元或其关联CDF被移到不同的库时,这可以通过更新数据库表中的虚拟库标识符而得以简单地实现。
根据本发明的一实施例,采用技术来确保在数据库表被破坏或丢失的情况下确定内容单元属于哪一虚拟库的信息是可恢复的。该附加的安全性可以任何适当的方式提供,因为本发明不限于任何特定的实施技术。根据本发明的一实施例,CAS系统包括一个或多个管理内容单元(如二进制大对象和CDF)的存储的文件系统。在这样的系统上,内容单元可被保存为CAS系统的文件系统中的文件,且内容单元的虚拟库标识符可被关联为文件属性。如此,如果数据库崩溃,虚拟库标识符可作为与文件相关联的属性而重新找回。
在本发明的另一实施例中,虚拟库标识符可被附加为保存相关内容单元的文件的标签。因此,如果对应于二进制大对象或CDF的数据库表项被丢失或破坏,关于内容单元的虚拟库的信息可从与相关文件一起保存的标签进行重新构建。
在上述实施例中,在文件属性或附加到文件的标签中包括虚拟库标识符可被用作除数据库查询之外的备份。在本发明的另一实施例中,这些技术中的任一技术均可被用作保存虚拟库标识符的单独的源,因为无需采用单独的数据库。
根据本发明的一实施例,虚拟库标识符可被映射(以任何适当的方式)到指明确定用于虚拟库的存储系统能力的定义的信息。因此,通过在发送给CAS系统的I/O请求中指明内容单元属于哪一虚拟库,即可指明内容单元所希望的存储系统能力。
如上所述,本发明的涉及为不同内容单元指定不同存储系统能力的方面并不限于与虚拟库一起使用。因此,应该意识到的是,在此描述的用于内容单元的信息可被保存的实施例不限于保存虚拟库标识符。而是,每一内容单元的信息均可被保存,其可用于确定将要应用于内容单元的所需要的存储系统能力。该信息可采取任何适当的形式,因为本发明的该方面不限于此。例如,信息可直接指明所需要的存储系统能力。或者,在本发明的另一实施例中,信息可指明内容单元的内容源,且内容源标识符接着可被映射(以任何适当的方式)到指明内容单元的所希望存储系统能力的定义的信息。
关于将要应用于每一内容单元的存储系统能力的信息可以任何适当的方式提供,因为本发明不限于任何特定的实施技术。根据本发明的一实施例,寻求将内容单元保存在CAS系统上的I/O请求可包括指明将由CAS系统应用于内容单元的所需存储系统能力的信息。这可以任何适当的方式进行。例如,信息可以使其不同于内容源用以确定内容单元的标识符(如内容地址)的方式提供。
类似地,如上所述,本发明的涉及报告和跟踪保存在存储系统上的内容单元的特征的实施例不限于与虚拟库一起使用。因此,如刚才所述,包括在保存内容单元的I/O请求中的信息可确定,直接地或间接地,I/O操作的内容源。该信息继而可用于确定I/O操作在由发出I/O请求的内容源保存在存储系统上的内容单元的特征上的影响。这可以任何适当的方式实现。
根据本发明的一实施例,可从在内容源和CAS系统之间传递的I/O通信提取信息,所提取的信息涉及I/O通信在自内容源保存于CAS系统中的内容单元的特征的影响。这样的特征的例子可包括CAS系统中的内容源所使用的存储容量的数量及由内容源保存在CAS系统上的内容单元的数量。所提取的信息可以任何适当的方式使用以确定I/O通信对这些特征的影响。例如,可保持对存储容量和/或由特定内容源保存在CAS系统上的内容单元的数量的连续计数,且所提取的信息可用于增加或减少计数器的计数。或者,所提取的信息可用于更新数据仓库,其保留有指明存储容量或由特定内容源保存在CAS系统上的内容单元的数量的信息。
在本发明的另一实施例中,而是从I/O通信提取涉及I/O操作对内容单元的数量或由CAS系统中的内容源使用的存储容量的影响的信息,该信息可与内容单元一起保存,其在随后可用于确定这样的(或其它所想要的)特征。该保存的信息可采取任何适当的形式,并可保存在任何适当的位置。作为一例子,该信息可确定每一内容单元的内容源,使得在随后的时间点,存储系统上的内容单元可被检查以确定内容单元的数量和/或CAS系统中由一个或多个内容源使用的存储容量。该信息可被保存在任何适当的位置。在一示例性的例子中,该信息可以与上述虚拟库标识符的存储相类似的方式保存在二进制大对象或CDF中。
在上面的讨论中,用于在存储环境中形成多个虚拟库的各种技术的每一种已被分别描述。然而,应该意识到的是,这些不同的技术可被组合在单一存储环境中,使得这些技术的任意两个或多个技术可一起使用。
仅作为组合上述技术的一例子,上述不用分割不同的存储资源以形成虚拟库就可实现虚拟库的技术可被选择为在CAS系统上实现一个或多个虚拟库的初始技术。在某一时间,CAS系统的存储容量可能已因需而被全部使用,从而希望增加另一CAS系统。在这样的环境中,上述技术中的另一技术可用于分割两个CAS系统,使得一个或多个虚拟库的不同集合可形成于每一CAS系统上,具有多个虚拟库的每一CAS系统通过使用上述不基于存储系统资源进行分割的技术而被进一步分割。再次地,这仅仅是采用多种上述技术的系统的一个例子,许多其它组合也是可能的。
在本发明的另一实施例中,虚拟库可按等级安排为一个或多个级别的超级库。超级库可用来在CAS系统内对内容提供另外的分级组织,其可在不同等级级别提供所有上述优点,包括内容单元的逻辑分割、跟踪由各个内容源使用的CAS系统资源、及不同存储系统能力的实现。
作为例子,存储环境可能从多个企业保存数据,从而可能希望将存储环境分割为用于不同企业的不同的库。此外,每一企业可能具有多个工作组,因而可能希望分割所保存的内容单元。例如,特定的企业可包括单独的工程、法律、和市场组,且可能希望因为上述任一原因(如单独报告存储资源的使用)而在逻辑上分割由这些组保存的内容单元。如图7的例子中所示,为工程、法律和市场组可形成单独的库803、805和807,且这三个库可被结合以形成整个企业的超级库。因此,库803、805和807中的每一个可以上述方式进行逻辑上的分割,但所有三个库的内容单元可通过包括在较大的超级库801中而在逻辑上成组。因此,存储环境可在企业级进行分割,但也可在更低的组级分割,其可提供可从上述内容意识到的许多优点。当访问请求被发给超级库801时,包括于其中的库803、805和807的每一个中的内容单元可被视作正响应于访问请求。此外,仅作为使用超级库的优点的一个例子,由工程、法律和市场组的每一个使用的存储资源可被单独跟踪,但整个企业的存储资源也可通过使用上述跟踪超级库801的使用的技术而方便地跟踪。
应该意识到的是,在图7示出了两个级别层次的虚拟库的同时,超级库的层次可具有任何数量的级别,因为本发明并不限于此。
在本发明的一实施例中,内容单元的数量或由虚拟库或源自特定内容源的内容单元耗用的存储容量的报告可被执行。在依赖于分割存储系统资源以在逻辑上分割不同虚拟库或源自不同内容源的内容单元的实施例中,存储容量可通过总计分配给虚拟库或保存来自特定内容源的每一物理分区(如存储系统或存储节点)上使用的存储空间而简单地确定。在未使用存储系统资源的分割的实施例中,容量报告可通过保持对每一虚拟库使用的存储容量的连续计数而得以实现。每当向虚拟库执行写时,由内容单元的写耗用的存储容量将被添加到虚拟库的连续计数中。或者,由虚拟库使用的容量可通过搜索虚拟库中的所有内容单元并求和每一这些内容单元所耗用的存储容量而得以确定。
如上所述,在此描述的本发明的各个方面可与多种类型的内容源一起使用,其例子之一为存储系统。图9示出了计算机系统配置的例子,本发明的各个方面可用于其上以为包括存储系统的内容源提供虚拟库。
更具体地,图9示出了包括主计算机1000、1001和本地CAS系统1003、1004以提供存储的计算机系统。此外,提供从CAS系统1003、1004到另一CAS系统1006的连接以提供因容错原因而进行的数据复制。CAS系统1006上的数据复制可以任何适当的方式进行,因为本发明不限于任何特定的技术。根据本发明的一实施例,CAS系统1006可用作在物理上远离CAS系统1003、1004以提供额外的安全性的远程数据镜像设备,尽管在此描述的本发明的各个方面不限于此。
在图9公开的实施例中,源自CAS系统1003的内容被保存在CAS系统1006中的第一虚拟库1008中,其被标记为虚拟库VP1,源自CAS系统1004的内容被保存在第二虚拟库1009中,其标记为VP2。
根据本发明的一实施例,将内容从多个CAS系统分割到集成仓库中的不同虚拟库可用于帮助在CAS系统1003、1004上的内容损失时将内容恢复到CAS系统1003、1004中的一个或多个上。例如,通过基于不同的内容源将CAS系统1006上的内容分割入多个虚拟库中,当希望将内容恢复到CAS系统1003上或替换主机1000的本地CAS系统时,虚拟库1008的内容可从CAS系统1006读取。这使得一个或多个CAS系统能够用作所复制的来自多个CAS系统的内容的储存库,同事还有助于在CAS系统发生故障时可容易地恢复。
如应从前述内容意识到的,本发明的一方面致力于将一个或多个CAS系统分割为多个虚拟库的方法,以及用于执行该方法的一个或多个装置。图11示出了执行该方法的过程。具体地,在行为1200,至少一CAS系统被分割为多个虚拟库,接着,在行为1201,每一库被分配给内容源。该方法可由系统管理员或计算机系统中的任何装置(或装置的组合)执行,包括由如上述的一个或多个主计算机、一个或多个CAS系统、一个或多个网络组件和/或一个或多个单独的附属设备执行。
本发明的另一实施例致力于响应I/O请求的技术,其通过确定请求被引向哪一虚拟库并将请求转发给包括该虚拟库的一组存储资源进行。图12示出了实施该技术的方法。在行为1202,确定I/O请求将被引向哪一虚拟库,在行为1203,I/O请求被引向所指明虚拟库的存储资源。该方法可以任何适当的方式实施,并可由计算机系统中的任何适当的组件(或组合)实施,包括如上所述的单独的层,或由接收I/O请求并能将一个或多个请求转发给所指明虚拟库保存于其上的另一CAS系统(如在联合中)的CAS系统实施。
本发明的另一实施例致力于将一个或多个CAS系统分割为多个虚拟库,并向至少两个虚拟库赋予不同的存储系统能力。图13示出了实施本发明的该方面的方法。在行为1301,一个或多个CAS系统被分为多个虚拟库,在行为1302,不同的存储系统能力被赋予不同的虚拟库。应该意识到的是,本发明的该方面可由系统管理员和/或计算机系统中的任何适当的组件(或组合)实施,其包括由上述的一个或多个主计算机、一个或多个CAS系统、一个或多个网络组件和/或一个或多个单独的附属设备实施。
在本发明的另一实施例中,从主机发出的至少一I/O请求指明将由CAS系统应用的至少一存储能力,且CAS系统检查能力信息并实现所希望的存储系统能力。图14示出了实施本发明的该方面的过程。在行为1401,指明内容单元的存储系统能力的I/O被传输。该行为可由主计算机(或其上运行的应用程序)或任何其它内容源执行。在行为1402,I/O请求被接收,指明至少一存储系统能力的信息被检查,且所指明的存储系统能力得以实现。行为1402可由CAS系统中的一个或多个、CAS层或系统中任何其它适当的组件(或组合)执行。
另一实施例致力于从在第一内容源和CAS系统之间传递的至少一I/O通信提取涉及I/O通信对内容单元的至少一特征(如内容单元的数量或所使用的存储容量)的影响的信息,存储单元从内容源保存在CAS系统中。图15示出了实施本发明的该方面的方法,其中,行为1501执行提取。应该意识到的是,本发明的该方面可由内容源自身、CAS系统、CAS层(其可被实施于主计算机、CAS系统、附属设备或网络组件上)、或系统中任何其它适当的组件(或组合)执行。
与从内容源保存内容单元相关联,本发明的另一实施例致力于保存指明内容单元的内容源的信息,且随后读该信息以确定从该内容源保存的内容单元的至少一特征。图16示出了实施本发明的该方面的过程。在行为1601,指明内容单元的源的信息被保存。该行为可由计算机系统中的任何组件执行,包括内容源(如主计算机),或由CAS层、一个或多个CAS系统、或系统中任何其它适当的组件执行。在行为1602,读取该信息,并至少部分基于该信息,确定从内容源保存在CAS系统中的内容单元的至少一特征。与行为1601一样,该行为可由计算机系统中任何适当的组件(或组合)执行,包括内容源、计算机系统中的一个或多个主计算机或服务器、附属设备、一个或多个CAS系统、或任何其它适当的组件。
本发明的上述实施例可在任何适当的CAS系统上实施。适当的CAS系统的例子在下表1中所列的专利申请中描述,其中的每一个均通过引用组合于此。应该意识到的是,在这些申请中描述的CAS系统仅仅是本发明的实施例可于其上实施的CAS系统的例子,因为本发明不限于在这些CAS系统上实施。
在附图所示的实施例中,存储系统为内容可寻址的存储(CAS)系统。然而,应该意识到的是,本发明的所有方面不限于此,因为本发明的各个方面可与其它类型的存储系统(如块I/O存储系统)一起使用。
表1


本发明的上述实施例可以任何适当的方式实施。例如,实施例可使用硬件、软件或其结合进行实施。当以软件实施时,软件代码可在任何适当的处理器或处理器集合上运行,无论是提供在单一计算机中还是分布在多个计算机之间。应该意识到的是,执行上述功能的任何组件或组件的集合一般均被当作控制上述功能的一个或多个控制器。一个或多个控制器可以任何适当的方式实施,如使用专用硬件或通用硬件(如一个或多个处理器),其使用微代码或软件编程以执行上述功能。
如上所述,在此描述的本发明的实施例的多个方面均可在计算机系统中的任意适当的位置实施,使得主计算机、附属设备、网络组件和/或CAS系统中的每一个均可包括控制器以执行在此描述的本发明的各个方面,且在此描述的功能在一个或多个控制器中被单独执行,或分布在多个控制器上。这被概念性地示出在图10中,其示出了包括主机1100、附属设备1101和CAS系统1102的简单计算机系统,它们分别包括控制器1104、1106和1107,其中的每一个均可实施在此描述的本发明的各个方面。应该意识到的是,本发明并不限于此,且不需要在图10所示的每一组件中均有至少一控制器。此外,如上所述,本发明可用于包括多个其它配置的计算机系统使,因为本发明不限于在具有图10所示的结构的计算机系统上使用。
应该意识到的是,本发明的实施例的一种实施方式包括至少一编码以计算机程序(即多个指令)的计算机可读的介质(如计算机存储器、软盘、光盘、磁带等),当在处理器上运行时,其执行本发明的实施例的上述功能。计算机可读的介质是可运输的,使得其上保存的程序可被装载到任何计算机环境资源上以实施在此描述的本发明的各个方面。此外,应该意识到的是,提及计算机程序,当其运行时,执行上述功能,其并不限于在主计算机上运行的应用程序。术语计算机程序在此以一般意义使用,其指可用于编程处理器以实施本发明的上述方面的任何类型的计算机代码(如软件或微代码)。
应该意识到的是,根据本发明的几个实施例,其中方法是在计算机可读的介质中实施,计算机实施的方法在其运行期间可人工接收输入(如从用户)。
在此使用的措词和术语均用于描述的目的而不应被当作限制。“包括”、“包含”、“具有”、“涉及”及其各种变化的使用意为包含其后列出的项目及另外的项目。
在已详细描述了本发明的几个实施例之后,本领域技术人员很容易做出各种修改和改进。这样的修改和改进应属于本发明的实质和范围之内。因此,前述描述仅作为例子,而不意为限制。本发明仅由下述权利要求及其等价物限定。
权利要求
1.编码以指令的至少一计算机可读的介质,当其在计算机系统上运行时,其执行处理输入/输出(I/O)请求的方法,其中计算机系统包括至少一主机和对至少一主机的内容单元执行多个操作的至少一内容可寻址存储(CAS)系统,其中至少一主机使用基于或至少部分基于内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,其包括至少第一和第二虚拟库,多个虚拟库中的每一个包括至少一CAS系统中的不同的存储资源组,该方法包括行为(A)响应于第一I/O请求的接收,确定多个虚拟库中的至少一个作为第一I/O请求被指引到其的虚拟库;及(B)将第一I/O请求转发给存储资源组,该存储资源组包括第一I/O请求被指引到其的多个虚拟库中的至少一个。
2.根据权利要求1所述的至少一计算机可读的介质,其中至少一CAS系统包括多个存储节点,其包括至少第一和第二存储节点组,其中行为(B)包括行为(B1)确定至少一存储节点,其包括包含于存储资源组中的存储资源,这些存储资源包括第一I/O请求被指引到其的虚拟库;及(B2)将第一I/O请求转发给在行为(B1)中确定的至少一存储节点。
3.根据权利要求1所述的至少一计算机可读的介质,其中至少一CAS系统包括多个存储节点,其中至少一存储节点被分割为多个分区,且其中行为(B)包括行为(B1)确定至少一存储节点分区,其包括包含于存储资源组中的存储资源,这些存储资源包括第一I/O请求被指引到其的虚拟库;及(B2)将第一I/O请求转发给在行为(B1)中确定的至少一存储节点分区。
4.根据权利要求1所述的至少一计算机可读的介质,其中第一I/O请求被指引到超级库,超级库包括多个虚拟库中的两个或更多个,其中行为(A)包括确定包括在超级库中的多个虚拟库中的两个或更多个的行为,且其中行为(B)包括将第一I/O请求转发给存储资源组的行为,存储资源组包括包含在超级库中的多个虚拟库中的两个或更多个。
5.在计算机系统中使用的装置,计算机系统包括至少一主机和对至少一主机的内容单元执行多个操作的至少一内容可寻址存储(CAS)系统,其中至少一主机使用基于或至少部分基于内容单元的内容产生的内容地址识别至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,其包括至少第一和第二虚拟库,多个虚拟库中的每一个包括至少一CAS系统中的不同的存储资源组,该装置包括适于接收输入/输出(I/O)请求的输入设备;及至少一处理器,其连接到输入设备,且适于响应于来自输入设备的第一I/O请求的接收,确定多个虚拟库中的至少一个作为第一I/O请求应被指引到其的虚拟库;及将第一I/O请求转发给存储资源组,该存储资源组包括第一I/O请求被指引到其的多个虚拟库中的至少一个。
6.编码以指令的至少一计算机可读的介质,当其在计算机系统中至少一主计算机上运行时,其实现方法,其中计算机系统还包括对至少一主机的内容单元执行多个操作的至少一内容可寻址存储(CAS)系统,其中至少一主机使用基于或至少部分基于内容单元的内容产生的内容地址访问至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,其包括至少第一和第二虚拟库,该方法包括行为(A)将第一输入/输出(I/O)请求发给至少一CAS系统,其请求访问保存在至少一CAS系统上的至少一内容单元,其中第一I/O请求包括识别多个虚拟库中的至少一个的信息。
7.根据权利要求6所述的至少一计算机可读的介质,其中行为(A)包括将识别多个虚拟库中的至少一个的信息包括在第一I/O请求中的行为,其方式不同于至少一主机访问至少一内容单元所使用的标识符。
8.根据权利要求6所述的至少一计算机可读的介质,其中该方法还包括行为(B),其选择多个虚拟库中的至少一个用于至少一内容单元,且其中行为(A)包括将识别多个虚拟库中的所选择虚拟库的信息包括在第一I/O请求中的行为。
9.根据权利要求6所述的至少一计算机可读的介质,其中多个虚拟库中的每一个包括至少一CAS系统中的不同存储资源组。
10.在计算机系统中使用的至少一主计算机,计算机系统包括至少一主计算机和对至少一主计算机的内容单元执行多个操作的至少一内容可寻址存储(CAS)系统,其中至少一主计算机使用基于或至少部分基于内容单元的内容产生的内容地址访问至少一CAS系统上的内容单元,其中至少一CAS系统被分割为多个虚拟的CAS存储库,其包括至少第一和第二虚拟库,至少一主计算机包括适于发出输入/输出(I/O)请求的输出设备;及至少一处理器,其连接到至少一输出设备,且适于通过输出设备将第一I/O请求发给至少一CAS系统,其请求访问保存在至少一CAS系统上的至少一内容单元,其中第一I/O请求包括识别多个虚拟库中的至少一个的信息。
全文摘要
本发明的一实施例致力于将一个或多个内容可寻址存储系统分割为多个虚拟库的方法。虚拟库可被分配给不同的内容源和/或可被赋予不同的存储系统能力。另一实施例致力于传输用于内容单元信息的输入/输出请求,其指明至少一存储容量将被应用于该内容单元,该实施例还致力于接收这样的I/O并实施所指明的存储系统能力。另一实施例致力于从源信息提取I/O请求,其涉及I/O对保存在CAS系统上的内容单元的至少一特征的影响。另一实施例致力于保存内容的信息,其识别源和/或读与所保存的内容单元相关联的信息并至少部分基于其确定自源保存的内容单元的至少一特征。
文档编号G06F3/06GK1808411SQ200510089040
公开日2006年7月26日 申请日期2005年8月3日 优先权日2004年8月4日
发明者斯蒂芬·托德, 迈克尔·基利恩, 汤姆·特格尔斯 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1