虚拟存储设备网关的制作方法
【专利摘要】本发明提供了用于操作存储系统的方法和设备。在一个示例中,存储系统包括存储服务器和在虚拟机中实现的虚拟存储设备(VSA)。存储服务器提供对数据的第一共享名称空间访问。VSA通过网络连接可操作地连接到存储服务器系统,以及通过网络连接提供对数据的第二共享名称空间的访问。第二共享名称空间由策略定义,以及包括第一共享名称空间的子集。VSA还在VSA中复制数据的第三共享名称空间的数据使当网络连接不可用时,第三共享名称空间在VSA中可用。第三分共享名称空间由策略定义,以及包括第二共享名称空间的子集。
【专利说明】虚拟存储设备网关
[0001]相关申请的交叉引用
[0002]本申请要求2012年4月27日提交的美国专利申请号13/458,199的优先权,其全部内容通过引用方式被合并于此。
【技术领域】
[0003]本申请的各种实施例通常涉及管理数据存储系统的领域。更具体地,本申请的各种实施例涉及用于使用虚拟存储设备以从远程位置提供对共享数据的系统的访问的方法和系统。
【背景技术】
[0004]现代数据中心通常包括存储系统、存储控制器、大容量存储设备以及其它设备,用于管理、存储和提供对数据的访问。这些数据中心通常为地理上分散的用户提供数据服务。用户往往会有广为不同的存储和访问的需求。许多用户在核心位置或具有大型计算和网络资源的设施工作。与此同时,在边缘或远程位置的其它用户可能获取有限的对计算资源和/或网络连接。远程和边缘位置可能具有不可靠的、缓慢的或间断的网络连接。在一些情况下,网络访问可能仅通过相对昂贵的无线方式可用和/或可能预算的原因因为需要节约使用。网络连接也可能因为越来越多在家办公和移动位置工作的员工而间断。
[0005]在一些情况下,专用的存储设备在边缘位置实现,以最小化网络中断和延迟的不利影响。然而,在远程或边缘位置实现专用的存储装置由于设备成本、支持成本、缺乏足够的或可靠的电源、位置的数量、安全问题和/或物理空间的可用性可能是不可行的。这些问题对远程员工是更大的挑战。在许多情况下,在每个工作位置传输和设置额外的专用存储设备将是不可行的。
[0006]例如,放射科医师可能工作在家中或其它远程位置。放射科医生也可为地理上分布式的医疗设施提供服务。放射科医生和医疗设施需要对医疗影像和其它相关资料共享的、可靠的访问。然而,这个访问也因为隐私和法规遵从的原因必须谨慎控制。在许多情况下,对于医疗图像或其它数据的每个请求需要发送对数据的请求到核心存储位置,以及通过网络连接接收数据。缓慢或中断的网络连接对放射科医生的工作效率,其它有关的医疗服务提供者的效率,和/或治疗的及时性有显著影响。
[0007]在遥感应用中,计算设备通常被安装在远程位置以收集数据。这些位置的网络连接可以是最少的,以及环境可能不适合安装补充存储和处理设备。在这些远程位置实现专用的存储硬件,因为成本、环境或其它原因可能是不可行的。
[0008]在一些情况下,专用的存储装置,诸如云网关,被安装在远程位置以便于数据访问。然而,这些装置仅提供对核心存储位置的数据的专用的名称空间的访问,这样做是以额外的硬件为代价。名称空间是存储在数据存储系统中的文件或数据的标识符的逻辑分组。在许多情况下,名称空间可跨多个系统或用户被共享。专用名称空间中的数据集不容易被多个用户获得访问和/或修改。共享名称空间通常被存储在集中的位置,以为多个用户提供数据的访问。一些解决方案在远程位置缓存当前或最近访问的文件使它们在无论网络连接均可用。然而,当前或最近访问的文件通常仅是数据的整个共享名称空间的小的子集。在网络连接不可用,或没有足够的带宽以提供有效的实时访问期间,用户可能需要访问数据的较大或替代的子集。此外,像云网关的专用硬件设备通常带来其它限制,包括额外的电力、空间、安装、热、空气过滤和/或安全要求。此外,这些专用的硬件设备不能轻易或迅速扩展以适应不断变化的需求。
[0009]除了上述的连接问题,集中式数据访问由于计算和存储系统的不断演化的性质可能是有挑战性的。尽管一个组织可能理想地希望在单一框架和/或文件系统中管理他们所有的数据,但技术的演化通常意味着数据可跨越多个系统来传播。希望在仍保持适当的访问控制的同时,为这些用户提供简化的访问。所有这些问题为向用户,特别是在边缘或远程位置的用户,提供对跨多个系统的共享的数据的简化和可靠的访问提出了挑战。这些挑战因为日益分散的员工,以数据为中心的工作内容,向数据集中管理的持续的移动,以及不断演化的数据系统的结合,可能持续。
[0010]概述
[0011]在分布式存储系统中,当到集中的存储位置的网络连接不可用或当网络的使用因为一些其它原因被限制时,远程位置的用户访问共享名称空间可能有困难。专用的存储系统的硬件可在远程位置被安装,以及与集中的存储位置同步,以提供对共享名称空间的本地访问。然而,在远程位置安装专用的存储系统的硬件由于成本、电源要求、空间要求、支持的需求或其它原因往往是不期望的。因此,本文中介绍的虚拟存储设备(VSA),其可在现有的固定和移动计算硬件中被实现,以及当网络连接不可用时,在远程位置,其能够提供对共享名称空间或共享名称空间的优选子集的本地访问,而无需在远程位置安装或维护额外的计算硬件。
[0012]在一个示例中,存储系统包括存储服务器和在虚拟机中实现的VSA。存储服务器提供对数据的第一共享名称空间的访问。VSA可操作地通过网络连接连接到存储服务器系统,以及通过网络连接提供对数据的第二共享名称空间的访问。第二共享名称空间由策略定义,以及包括第一共享名称空间的子集。在VSA中,VSA也复制数据的第三共享名称空间的数据使当网络连接不可用时,第三共享名称空间在VSA中可用。第三空间由策略定义,以及包括第二共享名称空间的子集。这种存储系统使远程用户能够访问整个第二共享名称空间,即使它跨越多个文件系统,以及即使当网络连接不可用时,还允许远程用户继续使用在第三共享名称空间中的数据。
[0013]以上描述的VSA可在也用于其它目的的计算装置中被实现,从而改善数据访问,而不产生对额外的或专用的存储硬件的需求。VSA可在远程位置的现有的服务器或计算设备中的虚拟机中被实现。在一些情况下,计算设备可以是终端用户的个人计算机或移动计算设备。在一些情况下,存储系统的各种元件可作为联合组进行管理。
[0014]当网络连接可用时,VSA通过网络连接提供对存储服务器中的共享名称空间的访问。共享名称空间可由多个用户或系统进行访问。此外,VSA存储了共享名称空间的其它部分以使当网络连接不可用时,相关的数据名称空间可在VSA中可用。即使当网络连接不可用时,组成本地存储的共享名称空间的数据可被访问和/或修改。当网络连接可用时,基于策略,VSA被操作为存储系统的元件,使得数据在VSA和存储系统的其它元件之间被同步。
[0015]在一个实施例中,以上描述的方法还包括即使当网络连接不可用时,在VSA中允许第三共享名称空间中的数据集的修改。当网络连接变得可用时,对数据集的修改与存储系统的其它元件进行同步。此外,这个策略可允许VSA中新的数据集的创建。新的数据集是复制名称空间的一部分,最终通过网络连接与存储系统同步。
[0016]在一个实施例中,一个或多个额外的VSA也可在系统中被实现。VSA的数量可被动态地扩展,以满足系统变化的需求。额外的VSA可在相同的物理机或在不同的位置的另一个物理机上来实现。除了访问核心存储系统以及与核心存储系统同步数据,VSA还可访问来自彼此的数据以及在彼此之间同步数据。
[0017]本发明的实施例还包括其它的方法,具有各种组件的系统,以及存储了指令的非临时性机器可读存储介质,当由一个或多个处理器执行指令时,指示一个或多个处理器执行方法,方法的变化或本文描述的其它操作。尽管多个实施例已被公开,从展示和描述了本发明的说明性实施例的以下具体实施例来看,其它实施例对本领域的技术人员将仍然变得明显。将被认识到的是,本发明能够在各个方面进行修改,所有这些都不脱离本发明的范围。因此,附图和具体实施例应被认为是说明性的性质而不是限制性的。
【专利附图】
【附图说明】
[0018]本发明的实施例将通过使用附图被描述和说明,其中:
[0019]图1示出了本发明的一些实施例可利用的操作环境;
[0020]图2示出了操作存储系统的方法的示例;
[0021]图3示出了包括一个VSA的存储系统的示例;
[0022]图4示出了包括多个VSA的存储系统的示例;
[0023]图5示出了操作具有多个VSA的存储系统的方法的示例;以及
[0024]图6是可被用于实现存储系统的组件的系统的框图。
[0025]附图并不必然按比例绘制。例如,一些附图中元件的尺寸可被扩大或缩小,以帮助增进对本发明的实施例的理解。同样,出于对本发明的一些实施例的讨论的目的,一些组件和/或操作可被分成不同的块或被组合成一个块。此外,本发明可修改为各种修改和替换的形式,具体的实施例通过附图的例子的方式被示出,以及被详细描述如下。然而,并不旨将本发明限制于描述的特定实施例中。与此相反,本发明意在涵盖由所附权利要求书限定的发明的范围内的所有修改、等价物和替代物。
具体实施例
[0026]本申请的各种实施例通常涉及管理数据存储系统的领域。更具体地,本申请的各种实施例涉及用于使用虚拟存储设备以从远程位置提供对共享数据系统的访问的方法和系统。
[0027]在计算环境中,对集中式或核心数据存储设施的依赖持续增加。集中式数据设备能够提供更可靠的数据管理服务,以及为许多用户,包括地理上分散的用户提供对数据的共享访问。数据用户通常依赖网络连接,以便从这些中央位置访问数据。一些用户可能具有到中央存储数据的间断和/或不可靠的网络连接。如果数据不被存储在远程位置的本地,那么每个数据访问通过远程位置与核心数据存储之间的网络的回程。速度慢、不可靠或者不可用的网络访问会严重妨碍远程位置的工作活动。
[0028]通过在远程位置的虚拟机中实现VSA,本发明解决了这些和其它问题。虚拟机可在现有的、非专用的计算硬件中被实现,以及通过网络连接提供对由策略指定的、共享名称空间的访问。此外,当网络连接不可用,或不具有足够带宽时,VSA复制共享名称空间的指定部分的数据用于使用以满足数据访问需要。VSA可运行作为构成存储系统的联合组的设备的一个元件,使得当网络连接可用时,在VSA中复制的对名称空间的数据集的修改或添加与存储系统同步。额外的VSA可在相同的物理机器或在其他物理机中被实现,以满足一个或多个远程位置变化的需求。
[0029]已经在总体上描述了本发明的实施例,注意力转向图1,其示出了本发明的一些实施例可利用的操作环境。操作环境100包括计算机110、存储服务器系统130,客户端180A和180B,以及网络190。
[0030]存储服务器系统130包括存储服务器140、存储服务器150,以及驱动器142A、142BU52A,以及152B。存储服务器系统130还可包括用于管理、容纳或提供对数据或数据存储资源的访问的其他设备或不同类型的存储组件。存储服务器140和150是计算设备,每个包括实现了一个或多个文件系统的存储操作系统。本文中使用的术语“文件系统”,是数据的逻辑容器的结构化集合,其可能,但不必然以文件、目录、卷、LUN(逻辑单元号)、对象和/或其它类型的逻辑容器的形式存在。例如,存储服务器140和150可各自是服务器级计算机,其提供在可写、持久性存储介质,诸如驱动器142A、142B、152A和152B上与信息的组织有关的存储服务。驱动器142A、142B、152A和152B包括用于存储数据的持久性存储介质,以及每个可以是硬盘驱动器(HDD)、闪存、固态驱动器(SSD)、磁带驱动器或其他持久性存储设施的形式,或它们的组合。存储服务器140或存储服务器150也可利用其他类型的持久性存储设备,包括闪存,非易失性随机存取存储器(NVRAM)、微电子机械(MEMS)存储设备,或它们的组合。存储服务器140或存储服务器150也可利用其他的设备,包括存储控制器,用于访问和管理持久性存储设备。
[0031]与存储服务器140或存储服务器150相关的一些或全部持久性存储设备可被组织作为单个逻辑存储单元。例如,存储服务器140的驱动器142A和驱动器142B可被组织作为独立磁盘冗余阵列(RAID),它们作为单个逻辑存储单元运行。其它驱动器配置是可能的。存储服务器系统130被示为单块系统,但可包括分布在不同地理位置的系统或设备。存储服务器系统130还可包括额外的存储服务器,其使用与存储服务器140和存储服务器150相同或不同的存储操作系统运行。
[0032]存储在驱动器142A、142B、152A和152上的数据包括数据的第一共享名称空间。第一共享名称空间可以是整个企业或存储服务器系统130的全局名称空间。全局名称空间是异构的、包含在存储服务器系统130中的文件信息的抽象。全局名称空间使不同的和/或基于远程网络的文件系统聚集。这提供了这些文件系统的统一视图,其可降低管理和访问个体化系统的复杂性。例如,存储服务器140和存储服务器150可各自利用它们各自单独的通过使用不同文件系统被管理的名称空间。通过建立全局名称空间,存储服务器140和存储服务器150的名称空间可作为单个、虚拟的文件系统名称空间被无缝地访问。
[0033]图1示出了作为非分布式设备的存储服务器140和存储服务器150,本领域的技术人员将理解,两者中任一个可作为分布式设备或虚拟设备被实现。此外,存储服务器140和150的功能可适于各种存储服务器架构和技术,包括网络附属存储(NAS)系统,存储附属网络(SAN)或直接附属存储(DAS)系统。术语“存储服务器”被广泛用于包括这样的安排,包括存储服务器,其提供对数据的基于文件的访问,对数据的基于块的访问,对数据基于对象的访问,其他类型的访问,或它们的组合。
[0034]如图1所示,存储服务器140和150与其他设备直接连接,或通过网络190连接。网络190包括用于交换信息的一个或多个设备。例如,网络190可包括局域网(LAN)、广域网(WAN)、城域网(MAN)、电信网络、因特网,或它们的任意组合。网络190的每一个还可各自包括路由器、集线器、计算机、服务器,或其它类型的计算设备。网络190可以是有线网络、无线网络,或它们的组合。
[0035]客户端180A和180B是通过网络190与存储服务器140或存储服务器150进行通信,以访问存储在持久性存储介质上的数据的应用或系统。
[0036]计算机110是处理设备,以及可包括服务器、个人计算机、平板计算机、专用硬件、移动计算设备或智能电话。计算机110包括虚拟机114。虚拟机是计算环境,其中操作系统
(OS)或应用可在主机系统硬件和操作系统中被安装和运行。虚拟机114模拟物理计算环境,但对CPU、内存、硬盘、网络连接,或其它资源的请求通过将这些请求转换到计算机110的物理资源的虚拟化层被管理。虚拟机114可在虚拟化层中被创建,例如在主计算机110的操作系统之上运行的系统管理程序或虚拟化平台。虚拟化层可被用于在计算机110中创建额外的、独立的虚拟机环境。
[0037]虚拟机114包括虚拟存储设备(VSA)Iiet5VSA 116是在虚拟机114上运行的应用,其允许外部系统,例如存储服务器系统130,利用计算机110的存储资源。在一个示例中,VSA 116允许计算机110中可用的HDD空间的一部分被使用作为存储服务器系统130的扩展。从操作系统的角度看,虚拟机114将VSA 116的运行与计算机110上的其它处理活动隔离,以及允许VSA 116在与主计算机110的OS不同的OS中被实现。因为VSA 116在虚拟机114中运行,VSA 116易于运输,以及可在许多不同类型的设备中被实现。VSA 116也可被称为虚拟存储网络设备或虚拟存储优化设备。
[0038]图2示出了操作存储系统的方法200。方法200在下文被描述,与操作环境100中的实现有关。然而,在其他操作环境中实现方法200是可能的,以及下文关于操作环境100的元件的描述并不旨在限制。
[0039]在方法200的一个实现中,网络连接通过网络190在虚拟机114中的VSA 116与存储服务器系统130之间被建立(步骤210)。网络连接也可在VSA 116和被包括在存储服务器系统130中的一个或多个单独的存储服务器之间被建立。存储服务器系统130包括数据的第一共享名称空间,其可与包括客户端180A和180B的其他用户或系统分享。这个方法包括通过网络连接通过VSA提供对数据的第二共享名称空间的访问(步骤220)。第二个共享名称空间是第一共享名称空间的策略定义的子集。如本文所使用的,名称空间的“子集”可以是名称空间的一部分或整个第一共享名称空间。第一共享名称空间可包括每个存储服务器140和存储服务器150的单独的名称空间的一些或全部。策略确定第一共享名称空间的哪个或哪些子集被包括在由VSA116中可访问的第二共享名称空间中。策略将最常被存储在存储服务器系统130中,但在一些情况下也可存储在VSA 116中。这个策略也可阻止对不包括在第二共享名称空间中的第一名称空间的一部分的访问。系统管理员或其他人可通过适当地创建和/或修改策略,控制第一名称空间的哪些部分可被VSA 116访问。因为虚拟机114可在终端用户的计算装置中被实现,所以这个策略可提供下至个人用户级别的访问控制。
[0040]图2中,该方法还包括在VSA 116中复制第三共享名称空间的数据以使当网络190不可用或网络连接出于某些其他原因不能被建立时,第三共享名称空间的数据在VSA 116中可用(步骤230)。第三共享名称空间也由策略定义,以及是第二共享名称空间的子集。当网络连接不可用或不能提供足够的带宽以支持数据访问需求时,计算机110的用户可以这种方式继续访问第三共享名称空间中的任何数据集。即使网络连接可用,不通过网络连接,而是访问在VSA 116中的第三名称空间中的数据集也可有的其他好处。例如,在高峰使用时间,网络带宽可能较贵,而在这些高峰期为本地访问缓存共享名称空间可能更符合成本效益。
[0041]图3示出了存储系统300的运行。存储系统300是如图1所示的操作环境的一个示例。存储服务器系统130包括存储在驱动器142A、142B、152A、和152B上的数据。存储服务器140和存储服务器150是存储服务器系统130的两个元件,并且可利用不同的文件系统管理他们各自的数据集。存储服务器系统130还可包括额外的存储服务器,额外的持久性存储设备,或其他设备。
[0042]许多不同的逻辑名称空间可被定义,含有包含在存储服务器系统130中的数据的各种子集。为了解释的目的,名称空间360表示的驱动器142AU42B,以及152A上的数据。然而,一个名称空间通常不典型绝对地包括或排除整个磁盘(或其它存储设备),因为数据集通常分散在多个驱动器中。例如,在典型的RAID实现中,即使是最小的数据块也分散在多个驱动器上。然而,如图3所示,名称空间360包括特定的驱动器,目的是为了说明名称空间360包括由存储服务器140和存储服务器150管理的数据的子集。在一些情况下,名称空间360也可包括与其他存储服务器和/或其他存储服务器系统相关的数据,包括在其他地理位置的系统。
[0043]名称空间360是一个共享名称空间;即,在一些情况下,在名称空间360中的数据可由多个用户或系统访问和修改。策略定义哪些用户、计算机和/或系统被允许访问名称空间360。个别的策略可能会为每个用户、每台电脑、每个虚拟机,和/或每个VSA创建。可选地,这些个别策略的元素可在单个的策略中被限定。来自计算机110上运行的应用的访问共享名称空间360中的数据的请求由VSA 116处理,并通过网络190被路由到存储服务器系统130。对来自共享名称空间360的数据的访问根据这个策略被允许或拒绝。在一些情况下,这个策略可定义进一步的允许的细节。例如,读取权限可授予特定的数据集,而写入权限则不可。这些策略可取决于请求的数据集的当前状态以及该数据集目前是否正在被其它用户或系统访问而变化。
[0044]除了定义通过VSAl 16访问的存储服务器系统130中的数据的子集,这个策略还定义了将在VSA 116中被复制的可访问的名称空间的子集。在这个示例中,名称空间362定义了当网络连接不可用时希望在VSA 116中可用数据的子集。在一些情况下,空间362可包括所有的名称空间360,并且在逻辑上与之等同。当网络连接可用时,组成名称空间362的数据被复制到VSA 116。以这种方式中,当网络连接不可用时,包括在空间362中的任何数据集将在计算机110中本地可用。
[0045]另外,即使当网络连接可用时,名称空间362中的数据集可从VSA116中的本地副本访问,以提高访问速度,减少网络拥塞,降低成本,或其他目的。尽管名称空间362的数据已被复制到VSA 116,名称空间362是共享名称空间,其中的数据仍然可由其他客户端、用户或系统从存储服务器系统130访问。例如,计算机110的用户可访问VSA 116的复制名称空间362中的数据集,在同一时间段,客户端180A正在从存储服务器系统130访问相同的数据集。当网络连接可用时,存储服务器系统130管理VSA 116中的复制名称空间362的同步,以包括已经发生在名称空间360中的任何变化。同步的细节可通过策略进一步定义。
[0046]现有的工具是本领域已知的用于智能地管理和同步跨地域分布的存储库的数据集。策略引擎管理数据是如何被存储、放置、合并、同步、替换和/或保护的。这个策略引擎还执行修订控制功能,以及建立规则,其可允许在VSA 116中的复制空间362的数据集被修改,即使其他用户或系统正在从存储服务器系统130访问或修改名称空间362的数据集。各种修订控制的方法和各种修订控制系统在本领域中是公知的。本文所描述的策略描述了名称空间的哪些子集在VSA 116是可访问且可被复制,其可在现有的修订控制系统或策略引擎中被实现,或者可被独立地实现。
[0047]存储服务器系统130和/或存储服务器140和150可被配置用于自动地与驱动器142A、142B、152A和152B上的这些数据集的一个或多个实例同步对VSA 116中的复制名称空间362的数据集作出的任何变化。同步可在网络连接可用时尽快自动发生或可在一个预定的时间发生。这个同步过程也可由或通过VSA 116触发或控制。
[0048]除了允许对被复制到VSA 116的名称空间362的一个或多个数据集的修改,这个策略也可允许新的数据集在名称空间362中被创建。即使在此时VSA 116和存储服务器系统130之间没有网络连接可用,VSA 116可允许新的数据集在名称空间362的复制实例中被创建。当网络连接可用时,添加的数据集按照策略中设定的规则在存储服务器系统130中被更新到名称空间362或与名称空间362合并。
[0049]在一些情况下,存储服务器系统130可作为联合存储系统被操作。联合存储系统是被提供数据是如何在存储网络间被存储、管理和迁移的规则的通用管理系统管理的自主存储资源或节点的集合。存储资源可包括通过使用多种文件系统的各种控制器或装置管理的存储容量。在一些情况下,VSA116作为联合存储系统的逻辑扩展被管理。在一些情况下,VSA 116以类似用于在存储服务器140和150上管理数据集的方式作为联合节点被操作。
[0050]以上述的方式使用的VSA 116减小缓慢和间断的网络连接的不利影响,以及当网络连接不可用时,提供对共享名称空间的访问。在此期间,与共享名称空间362中的一个或多个数据集的相关的处理可在计算机110上或通过计算机110继续。与此同时,其他用户,诸如客户端180A或180B,可继续利用来自存储系统130的名称空间362的数据集。这种能力对移动员工特别有用。当计算机110在网络访问不可用的远程位置被使用时,这种能力也可能是有益的。因为VSA 116在计算机110的虚拟机114中被实现,对实现不需要额外的硬件。在一些情况下,虚拟机114和VSA 116可在移动员工已从一个位置携带到另一位置的笔记本计算机或其他移动计算装置中被实现。
[0051]名称空间360和空间362可被定义以包括包含在存储服务器系统130中的任何数据,达到并包括在存储服务器系统130中的所有数据。然而,作为一个实际问题,通常会有其它的限制,其需要名称空间360和名称空间362是所有可用的数据的较小的子集。这些限制可以包括计算机110上的存储容量、网络带宽、数据管理开销的限制、以及用户访问权限。名称空间360可以被定义为在存储服务器系统130中的计算机110的用户已被授予访问权限数据的整个子集。尽管当网络连接可用时,用户可通过VSA 116访问整个名称空间,整个名称空间可能太大以至于不能被复制到VSA 116。因此,较重要或在当前具有较高访问优先级的数据的较小的子集可被定义用于复制,使计算机110上的可用的存储空间以及其他资源得到最佳利用。
[0052]在一个实例中,名称空间360可包括与计算机110的用户已工作的所有项目相关的数据集,而名称空间362仅包括与用户目前正在工作的项目相关的数据集。由于用户的大多数的时间预计花费在当前的项目上,限定名称空间362以包括当前活动项目将提高网络连接不可用时,所需的数据集可用的可能性,同时保留计算机110的存储资源。随着时间的推移,定义名称空间360和362的策略可改变以满足用户变化的需求、计算资源的可用性和/或网络连接的可用性。在一个示例中,由于用户的工作分配改变,这个策略可被改变以定义名称空间362作为名称空间360的不同的子集。
[0053]图4示出了存储系统400,其中本发明的一个或多个实施例可被利用。存储系统400包括计算机410、计算机420、数据系统430和网络492、494、和496。网络492、494和496是网络190的示例。
[0054]数据系统430是用于整个公司或组织的数据操作的逻辑表示。数据系统430包括数据中心432和数据中心434。数据中心432和434包括用于容纳计算机系统和有关的部件的设施,如存储系统。数据中心432和434还可包括电源、通讯设备和环境控制。数据系统430通常将包括其他设备,诸如接口设备。然而,仅有数据中心432和434被示出用于解释的目的。数据中心432和数据中心434可在两个不同的地理位置以及通过一个或多个网络可操作地被连接。数据中心432和434可以协调或联合的方式运行,使得数据的一个或多个逻辑名称空间可以被定义以跨越两个数据中心。例如,名称空间463包括来自两个数据中心的每一个的数据。
[0055]计算机410和420是计算机110的示例。计算机410和420是在不同地理位置上的两个单独的处理设备、在同一机架上的两个服务器,或在同一硬件设备中的两个处理器。虚拟机414、415和424是虚拟机114的示例。虚拟机414包括VSA 416,以及虚拟机415包括 VSA 418。虚拟机 424 包括 VSA426。VSA 416、418 和 426 是 VSA 116 的示例。
[0056]VSA 416基于策略,提供对数据中心432的共享名称空间461的访问。VSA 416还复制共享名称空间462,其是共享名称空间461的子集。VSA 418以类似的方式运行,但执行与共享名称空间463和464有关的功能。名称空间463和464均跨越两个数据中心。VSA416和418彼此独立地在计算机410中运行,但是每一个通过与它相关的虚拟机提供对各自相关的名称空间的访问。在计算机410中实现的VSA的数量可根据需求的变化而变化。在一个示例中,多个用户可利用计算机410以及VSA 416和418中的一个可专用于各自的用户。在另一示例中,VSA 416和418的每一个支持通过使用计算机410执行的不同的应用或操作。以这种方式,特定的计算机、站点或位置的需求可通过添加或删除VSA同时留下一些VSA不变而改变。
[0057]VSA 416和VSA 418被示为提供对不重叠的名称空间的访问。然而,VSA 416和418还可以被配置用于提供对相同的名称空间或部分重叠的名称空间的访问。在其它示例中,VSA 416和VSA 418可作为VSA簇运行。簇式VSA可提供对名称空间的冗余访问,提供故障转移或故障恢复能力,和/或提供与失效的VSA相关的其他恢复能力。
[0058]在图4的一个替代的实现中,计算机410可包括多个虚拟机以及一个或多个VSA可在每个虚拟机中被实现。
[0059]虚拟机424的VSA 426提供对名称空间465的访问,以及以类似于图3描述的方式复制名称空间466的数据。如图所示,空间465和466可能与可通过其他VSA访问的其他名称空间重叠。例如,在VSA 426中被复制的名称空间466的数据集可在计算机420本地被访问,而也包括在名称空间463中的相同数据集正在通过VSA 418被访问。
[0060]图5示出了用于操作包括多个VSA的存储系统的方法500。对图5的描述涉及图4的VSA 418。然而,方法500的其他实现是可能的。在这个示例中,计算机410中需要访问名称空间463中的数据集合。需要的数据集在已被复制在VSA 418中的名称空间464的数据集中不可用。
[0061]在步骤510中,VSA 418确定计算机410和数据系统430之间通过网络492的网络连接是否可用。如果网络连接可用,如先前示例中描述的,这个数据集从数据系统430通过网络492被访问(步骤570)。如果到数据系统430的网络连接不可用,则确定通过网络496到对等VSA 426的网络连接是否可用(步骤520)。如果这个连接可用,那么确定需要的数据集是否在对等VSA 426中可用(步骤530)。如果数据集在VSA 426中可用,这个数据集从VSA 426由VSA 418进行访问(步骤580)。如果数据集在VSA 426中不可用,确定计算机420和数据系统430之间通过网络494的网络连接是否可用。如果网络连接可用,这个数据集从数据系统430通过VSA 426、网络496和网络494由VSA 418访问。
[0062]在上面的示例中,VSA 426可被配置用于检查与请求的数据集相关的允许的策略,以确定VSA 418是否允许访问请求的数据集。在一些情况下,VSA 418可能请求根据策略VSA 426不被允许来访问的数据集。在这种情况下,即使计算机420的用户可能不被允许访问这个数据集,VSA 426可协助建立VSA 418和数据系统430之间的安全连接或隧道。
[0063]在上面的示例的一个变型中,即使网络492可用,VSA 416或VSA418可从对等VSA, iu VSA 426访问数据。如果网络492和/或数据系统430过载或因为某些其他原因表现不佳,那么这可能是有益的。VSA 416,418,以及426中的一个或多个可作为数据系统430的联合元件运行,使得它们在逻辑上成为数据系统430的元件。
[0064]图6是可用于实现存储系统的组件的系统600的框图。例如,图6的系统可被用于实现客户端系统、计算机、网络设备,或存储服务器。在说明性的实施例中,系统600包括一个或多个处理器610、存储器620、网络适配器640和存储适配器650,所有通过互连660互连。
[0065]存储器620包括可由处理器寻址的存储单兀610和适配器640和650,用于存储与这里介绍的技术相关的软件程序代码和数据结构。处理器610和适配器640和650依次包括被配置用于执行软件代码和操控数据结构的处理元件和/或逻辑电路。其他处理和存储器实现,包括各种机器可读存储介质可被用于存储和执行涉及这里介绍的技术的程序指令,这对本领域技术人员将是明显的。
[0066]网络适配器640包括多个端口,通过点对点链路、广域网、公共网络上实现的虚拟私人网络或共享局域网将系统600与一个或多个其他系统相连。网络适配器640可包括将系统600连接到如网络190的网络所需要的机械部件和电气电路。一个或多个系统可与其他系统通过网络190通过根据预定义的协议,如TCP/IP协议,交换数据的分组或帧进行通?目。
[0067]存储适配器650与在处理器610上运行的操作系统相连以访问附加存储设备上的信息。这个信息可被存储在可写存储介质的任何类型的附加阵列,诸如硬盘驱动器(HDD)、磁带、光盘、闪存、固态驱动器(SSD)、随机存取存储器(RAM)、MEM存储器和/或任何其他类似的适于存储信息的介质。存储适配器650包括多个具有输入/输出(I/O)接口电路的端口,其通过I/O连接布置与磁盘相连。
[0068]本发明的实施例包括各种步骤和操作,这些已在上文描述。这些步骤和操作可由硬件部件来执行,或者可在机器可执行指令中体现,其可被用于引起以指令编程的一个或多个通用或专用处理器来执行这些步骤。可替代地,这些步骤可通过硬件、软件和/或固件的组合来执行。
[0069]本发明的实施例可作为计算机程序产品被提供,其可包括机器可读介质,其上存储有可用于对计算机或其它电子设备进行编程以执行一些或全部本文描述的操作的非临时性指令。机器可读介质可包括,但不限于光盘、光盘只读存储器(CD-ROM)、磁光盘、软盘、ROM、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适于存储电子指令的其他类型的机器可读介质。此外,本发明的实施例也可作为计算机程序产品被下载,其中这个程序可经由通信链路通过体现在载波或其他传播介质波中的数据信号的方法从远程计算机转移到请求的计算机。
[0070]短语“在一些实施例中”,“根据一些实施例”,“如实施例中所示”,“在其他实施例中”,“在一些示例中”,以及类似物表示该短语之后的特定的特征、结构或特性被包括在本发明的至少一个实施例中,并且可被包括在本发明的一个以上实施例中。此外,这些短语并不必然涉及相同的实施例或不同的实施例。
[0071]尽管本发明的一个或多个实施例的详细说明已经在上文给出,各种替代、修改和等同物在不脱离本发明的精神的情况下对本领域技术人员将是明显的。例如,尽管上文描述的实施例涉及具体的特征,但本发明的范围还包括具有不同的特征的组合的实施例,以及不包括所有的描述的特征的实施例。因此,本发明的范围旨在涵盖在本权利要求书的范围之内的所有这样的替代、修改,以及变化,以及所有等同物。因此,以上描述不应被视为对由本发明的权利要求限定的范围的限制。
【权利要求】
1.一种存储系统,所述系统包括: 包括数据的第一共享名称空间的存储服务器系统;以及 在虚拟机中实现的虚拟存储设备(VSA),可操作地通过网络连接连接到所述存储服务器系统,以: 通过所述网络连接提供对数据的第二共享名称空间的访问,其中所述第二共享名称空间由策略定义,以及包括所述第一共享名称空间的子集;以及 在所述VSA中复制第三共享名称空间的数据使当所述网络连接不可用时,所述第三共享名称空间的所述复制的数据在VSA中可用,其中所述第三共享名称空间由所述策略定义,以及包括所述第二共享名称空间的子集。
2.根据权利要求1所述的存储系统,其中所述VSA被配置为: 当所述网络连接不可用时,在所述VSA中允许在所述第三共享名称空间中的数据集的修改;以及 当所述网络连接可用时,基于所述策略,将所述修改与所述第一共享名称空间同步。
3.权利要求1所述的存储系统,其中所述VSA被配置用于: 当所述网络连接不可用时,在所述VSA中允许在所述第三共享名称空间中的新的数据集的创建;以及 当所述网络连接可用时,添加所述新的数据集到所述第一共享名称空间。
4.根据权利要求1所述的存储系统,进一步包括: 在所述虚拟机中实现的对等VSA,通过所述网络连接可操作地连接到所述存储服务器系统,以: 通过所述网络连接提供对数据的第四共享名称空间的访问,其中所述第四共享名称空间由所述策略定义,以及包括所述第一共享名称空间的子集;以及 在所述对等VSA中复制第五共享名称空间的数据使当所述网络连接不可用时,所述第五共享名称空间的所述数据在所述VSA中可用,其中所述第五共享名称空间是所述第四共孚名称空间的子集。
5.根据权利要求4所述的存储系统,其中所述VSA和所述对等VSA包括VSA簇。
6.根据权利要求1所述的存储系统,其中所述存储服务器系统包括运行作为联合组的多个数据存储设备。
7.根据权利要求1所述的存储系统,所述虚拟机在终端用户计算设备中被实现。
8.一种操作存储系统的方法,所述方法包括: 在虚拟机中的虚拟存储设备(VSA)和存储服务器系统之间建立网络连接: 在所述VSA中通过所述网络连接提供对数据的第二共享名称空间的访问,其中所述第二共享名称空间是所述存储服务器系统的第一共享名称空间的策略定义的子集;以及 在所述VSA中复制数据的第三共享名称空间的数据使当所述网络连接不可用时,所述第三共享名称空间的所述数据在所述VSA中可用,其中所述第三共享名称空间是所述存储服务器系统的所述第二共享名称空间的策略定义的子集。
9.根据权利要求8所述的方法,进一步包括: 当所述网络连接不可用时,在所述VSA中允许在所述第三共享名称空间中的数据集的修改;以及 当所述网络连接可用时,将所述修改与所述第一共享名称空间同步。
10.根据权利要求8方法,进一步包括: 当所述网络连接不可用时,在所述VSA中允许在所述第三共享名称空间中的新的数据集的创建;以及 当所述网络连接可用时,添加所述新的数据集到所述第一共享名称空间。
11.根据权利要求8所述的方法,进一步包括: 在对等VSA中通过所述网络连接提供对第四共享名称空间的访问,其中所述第四共享名称空间是所述第一共享名称空间的策略定义的子集;以及 在所述对等VSA中复制数据的第五共享名称空间的数据使当所述网络连接不可用时,所述第五共享名称空间的所述的数据在所述对等VSA中可用,其中所述第五共享名称空间是所述第四共享名称空间的策略定义的子集。
12.根据权利要求11所述方法,其中所述对等VSA在所述虚拟机中被实现。
13.根据权利要求11所述方法,其中所述对等VSA在另一个虚拟机中被实现。
14.根据权利要求11所述的方法,进一步包括通过所述VSA访问所述第五名称空间的所述复制的数据。
15.根据权利要求8所述的方法,其中所述存储服务器系统包括运行作为联合组的多个数据存储设备。
16.根据权利要求15所述的方法,其中所述VSA被包括在所述联合组中。
17.根据权利要求8所述的方法,其中所述虚拟机在便携式终端用户计算设备中被实现。
18.一种非临时性机器可读存储介质存储指令,当由一个或多个处理器执行时,指示所述一个或多个处理器: 在虚拟机中的虚拟存储设备(VSA)和存储服务器系统之间建立网络连接: 在所述VSA中提供对数据的第二共享名称空间的访问,其中所述第二共享名称空间是所述存储服务器系统的第一共享名称空间的策略定义的子集; 在所述VSA中复制第三共享名称空间的数据使当所述网络连接不可用时,所述第三共享名称空间的所述数据在所述VSA中可用,其中所述第三共享名称空间是所述第二共享名称空间的策略定义的子集; 当所述网络连接不可用时,在所述VSA中允许所述第三共享名称空间中的数据集的修改;以及 当所述网络连接可用时,将所述修改与所述第一共享名称空间同步。
19.根据权利要求18所述的机器可读存储介质,其中所述指令进一步指示所述一个或多个处理器: 当所述网络连接不可用时,在所述VSA中允许在所述第三共享名称空间中的新的数据集的创建;以及 当所述网络连接可用时,添加所述新的数据集到所述第一共享名称空间。
20.根据权利要求18所述的机器可读存储介质,其中所述指令进一步指示所述一个或多个处理器 通过对等VSA中的所述网络连接提供对第四共享名称空间的访问,其中所述第四共享名称空间是所述第一共享名称空间的策略定义的子集;以及 复制所述对等VSA中的数据的第五共享名称空间的数据使当所述网络连接不可用时,所述第五共享名称空间的所述的数据在所述对等VSA中可用,其中所述第五共享名称空间是所述第四共享名称空间的策略定义的子集。
21.根据权利要求20所述的机器可读存储介质,其中所述对等VSA在所述虚拟机中被实现。
22.根据权利要求20所述的机器可读存储介质,其中所述对等VSA在另一个虚拟机中被实现。
23.根据权利要求20所述的机器可读存储介质,其中所述指令进一步指示所述一个或多个处理器向所述VSA提供对所述对等VSA中的所述第五名称空间的所述复制的数据的访问。
24.根据权利要求18所述的机器可读存储介质,其中所述存储服务器系统包括运行作为联合组的多个数据存储设备。
25.根据权利要求18所述的机器可读存储介质,其中所述VSA被包括在所述联合组中。
26.—种包括虚拟机的处理设备,其包括虚拟存储设备(VSA),可操作地通过网络连接连接到存储服务器系统,以: 通过所述网络连接提供对数据的第二共享名称空间的访问,其中所述第二共享名称空间是在所述存储服务器系统中的第一共享名称空间的子集; 在所述VSA中复制数据的第三共享名称空间的数据,其中所述第三共享名称空间是所述第二共享名称空间的子集; 当所述网络连接不可用时,在所述VSA中允许在所述第三共享名称空间中的现有数据集的修改;以及 当所述网络连接可用时,将所述修改与所述第一共享名称空间同步; 当所述网络连接不可用时,在所述VSA中允许所述所述第三共享名称空间中的新的数据集的创建;以及 当所述网络连接可用时,添加所述新的数据集到所述第一共享名称空间。
27.根据权利要求26所述的处理设备,其中所述虚拟机包括额外的VSA被配置用于与所述VSA作为簇共同运行。
28.根据权利要求26所述的处理设备,其中所述VSA和所述存储服务器系统包括联合组。
【文档编号】G06F15/16GK104395898SQ201380034665
【公开日】2015年3月4日 申请日期:2013年4月29日 优先权日:2012年4月27日
【发明者】约瑟夫·P·卡拉东纳, 大卫·斯里克, 达雷尔·G·萨格斯 申请人:网络装置公司