发明内容
一种根启动的系统和方法,可以包括连接到附加存储装置上的多个计算装置。每个计算装置可以从附加存储装置的只读基卷启动。所述只读基卷包括多个计算装置包含的公用数据,但不限于一个或多个操作系统、驱动程序、临时文件、应用程序和/或虚拟存储器交换空间。只读基卷上被频繁访问的数据可以存储在附加存储装置的缓存的一部分中。所述附加存储装置还可以包括多个卷,每个卷专用于所述多个计算装置中的一个,其重定向只读基卷的写快照。每个计算装置各自的卷可以包括计算装置的唯一项,例如唯一注册码、虚拟存储器交换空间和/或临时文件。如果任何一个计算装置改变只读基卷的数据,这种改变可以是直接的且存储于计算装置各自的卷内。每个卷上被频繁访问的数据可以存储在附加存储装置各自卷的缓存的一部分中。只读基卷、缓存的部分和各自的卷均可以作为虚拟卷呈现给多个计算装置中的每一个。当来自只读基卷的数据没有为各自的计算装置改变时,存储系统可将数据从只读基卷映射到计算装置各自的虚拟卷上,当来自各自的卷的数据为各自的计算装置改变时,存储系统可将数据从各自的卷映射到计算装置各自的虚拟卷上。
只读基卷可以存储于一个或多个可配置成RAID(独立磁盘冗余阵列)和/或为冗余目的与一个或多个其它存储装置镜像的固态驱动器(数据存储装置,使用固态存储器存储持久的数据)。多个卷可以各存储于一个或多个可配置成RAID的固态驱动和/或硬盘驱动器。所述的附加存储装置可实现增加公用数据到只读基卷的操作。以这种方式,用来根启动多个计算装置的只读基卷可通过提交新的公用数据到只读基卷来实现更新。
本发明可减少存储空间、I/O和关于从附加存储装置的卷根启动多个计算装置的低效缓存。本发明可以利用由存储只读基卷的一个或多个固态驱动器提供的读功能。由于仅一个只读基卷就可以用于多个计算装置,与硬盘驱动器相比,由固态驱动器提供的读功能可平衡固态驱动器通常的高成本。而且,本发明不需要在I/O路径重复数据删除代码,这使得系统的执行更为简单。
应当理解前述的总的描述和后述示例和解释饿详细说明不是对本公开的限制。所附图加入并作为说明书的一部分表示本公开的主题。说明书和附图一起用作说明本公开的原理
附图说明
通过参考所附图,本发明的许多优点可以更好地被本领域技术人员理解,其中:
图1是表示用于根启动的典型系统的示意图;
图2是从多个计算装置中的一个视角查看图1所示系统的示意图;
图3是本发明实施例所述的根启动系统的示意图;
图4是本发明实施例所述的从多个计算装置中的一个的视角查看图3所示系统的示意图;
图5是本发明实施例所述的根启动方法的流程图;
图6是本发明可选择的实施例所述的根启动方法的流程图;和
图7是本发明可选择的实施例所述的根启动方法的流程图。
具体实施方式
现在参照附图进一步详细地说明本发明公开的主题。
利用多个计算装置中的每一个的独立卷从附加存储装置根启动所述多个计算装置是低效率的。在从附加存储装置的卷根启动多个计算装置的情形中,包含在独立卷上的数据(包含但不限于操作系统、驱动程序、临时文件、应用程序和/或虚拟存储器交换空间)可以几乎相同。因此,造成存储空间的浪费。此外,每个服务器均设有一个或多个操作系统、驱动程序、临时文件、应用程序和/或虚拟存储器交换空间的独立副本,同样的数据可以分别从各个服务器的独立卷读取。因此,为了提取独立卷上的重复数据,可能经历不必要的I/O(输入/输出)。另外,由于数据在各独立卷上是重复的,独立卷可能竞争附加存储装置(和/或控制器,其通信连接多个计算装置中的每一个到所述的附加存储装置)内部有限的缓存空间。结果是,每个计算装置可能经历更多的缓存失败,导致更多的I/O不得不与独立卷相互作用,存储在一个或多个存储驱动器上,且更慢的性能。
图3描述了本发明实施例所述的根启动系统300。所述系统300包括多个通信连接到附加存储装置302的计算装置301。所述多个计算装置301可包括各种数字计算装置,包含但不限于:个人台式计算机、个人膝上型计算机,服务器计算机和/或虚拟终端。每个计算装置301可从附加存储装置302的只读基卷305启动,其作为那个计算装置301的虚拟卷307呈现给每一计算装置301。所述只读基卷305可包括多个计算装置301公有的数据,包含但不限于一个或多个操作系统、驱动程序、临时文件、应用程序和/或虚拟存储器交换空间。所述只读基卷上被频繁访问的数据可存储在附加存储装置302的缓存303内的部分区域。缓存303内的部分区域可存储只读基卷上被任何一个计算装置101频繁访问的数据(通过各自的虚拟卷307),与使用独立卷(这样需要独立的缓存区域)相比,缓存303内的部分区域可占总缓存更多的比例,并且每个计算装置303的更多数据可以在给定的时间内存入缓存,致使更少的缓存失误。附加存储装置302还包括多个卷306,每个卷专用于一个计算装置301,卷306为只读基卷305写重定向快照。每个计算装置301各自的卷306可包括该计算装置301的唯一项,例如唯一注册码、虚拟存储器交换空间、和/或临时文件。如果任何一个计算装置301改变只读基卷305的数据(通过各自虚拟卷307),该改变可被指引并存储在计算装置301各自的卷306上。每个卷306上被频繁访问的数据可以存储在用于该相应卷306的附加存储装置的缓存304的部分区域内。当来自只读基卷305的数据没有为各自的计算装置301改变时,存储系统302可将数据从只读基卷305映射到每个计算装置301各自的虚拟卷307上,而当来自各自卷306的数据为各自的计算装置301改变时,存储系统302可将数据从各自的卷306映射到每个计算装置301各自的虚拟卷307上。
所述多个计算装置301还包括无盘服务器。只读基卷305可以存储在一个或多个固态驱动器(使用固态存储器存储持久数据的数据存储装置)。只读基卷305可以存储于一个或多个配置成RAID(独立磁盘冗余阵列)的存储驱动器中。所述一个或多个存储驱动器可以配置成不执行冗余的RAID,例如数据跨多个存储驱动器条带分布。只读基卷305可以存储在为冗余目的与一个或多个其它存储驱动器镜像的一个或多个存储驱动器上。如果只读基卷305存储在与一个或多个其它存储驱动器镜像的一个或多个存储驱动器中,所述多个计算装置301可以通过一个或多个存储驱动器而不是一个或多个其它存储驱动器来访问只读基卷305(通过各自的虚拟卷307)。例如,只读基卷305可以存储在与一个或多个硬盘驱动器(在具有磁性表面的旋转盘上存储数字编码数据的非易失性存储装置)镜像的一个或多个固态驱动器上,多个计算装置301可以通过一个或多个固态驱动器而不是一个或多个硬盘驱动器来访问只读基卷305(通过各自的虚拟卷307)。多个卷306可被存储在一个或多个固态驱动器和/或硬盘驱动上。多个卷306可各存储在一个或多个配置成RAID的存储驱动器上。所述一个或多个存储驱动器可被配置成不执行冗余的RAID,例如数据跨多个存储驱动器条带分布。附加存储装置302可包括一个或多个网络附加存储(NAS)装置和/或一个多个存储区域网络(SAN)设备。附加存储装置302可包括一个或多个RAID存储装置。
图4说明了每个计算装置301是如何查看系统300的。每个计算装置301只能够访问只读基卷305,使用缓存303的部分区域存储来自只读基卷和它们各自的卷306的频繁访问的数据。尽管计算装置301事实上只知道附加存储装置302上它们各自的虚拟卷307,仍然使用缓存303的部分区域来存储各自的卷306上频繁访问的数据。
所述附加存储装置302可实现增加与多个计算装置301公用的数据到只读基卷305的操作。以这种方式,用来根启动所述多个计算装置的只读基卷305可通过提交新的公用数据到只读基卷305来实现更新.
尽管本发明描述并说明了多个计算装置从附加存储装置的公用只读基卷启动,以及各自的计算装置的存储数据将为所述专用于各自计算装置的公用只读基卷写重定向快照(两者均以作为各自计算装置的虚拟卷的方式呈现给每个计算装置),应当理解的是,更多包含多个计算装置的组,从各自的计算装置组公用的独立只读基卷启动每个组,没有偏离本发明的范围。举例说明,十台Linux服务器和十台微软Windows服务器均可以通信连接到同一个附加存储装置上。十台Linux服务器可以从它们公用的附加存储装置的Linux只读基卷启动,十台微软Windows服务器可以从它们公用的附加存储装置的WINDOWS只读基卷启动。
本发明可减少存储空间、I/O和关于从附加存储装置的卷根启动多个计算装置的低效缓存。本发明可以利用由存储只读基卷305的一个或多个固态驱动器提供的读功能。由于仅一个只读基卷305就可以用于多个计算装置301,与硬盘驱动相比,由固态驱动器提供的读功能可平衡固态驱动器通常的高成本。而且,本发明不需要在I/O路径重复数据删除代码,这使得系统300的执行更为简单。
图5描述了本发明实施例所述的根启动多个计算装置的方法。在步骤501中,从存储在至少一个存储驱动器中的附加存储装置的只读基卷来根启动多个计算装置,所述只读基卷包含至少一个操作系统或多个计算装置公用的至少一个应用程序中的至少一个。所述至少一个存储驱动器可包含至少一个固态驱动器。所述至少一个存储驱动器可包含多个配置成RAID的存储驱动器。所述多个计算装置可包括多个无盘计算装置。所述附加存储装置可包括一个附加RAID装置。在步骤502中,从所述的多个计算装置接收只读基卷的写入。在步骤503中,将每个计算装置的写入重定向到所述附加存储装置的多个卷中的一个,该卷为只读基卷写重定向快照,附加存储装置的每一个卷专用于多个计算装置中的一个并专为该个计算装置存储数据。每个卷可以存储在至少一个硬盘驱动中。每个卷可以存储在多个配置成RAID的硬盘驱动中。专用于所述多个计算装置的一个的数据可以包括以下中的至少一个:至少一个注册码、至少一个虚拟存储器交换空间、和/或至少一个临时文件。
图6描述了本发明选择性实施例所述的根启动多个计算装置的方法。在步骤601中,从存储在至少一个存储驱动器中的附加存储装置的只读基卷来根启动多个计算装置,所述只读基卷包含至少一个操作系统或至少一个多个计算装置公用的应用程序中的至少一个。至少一个存储驱动器可包含至少一个固态驱动器。至少一个存储驱动器可包含多个配置成RAID的存储驱动器。多个计算装置可包括多个无盘计算装置。所述附加存储装置可包括一个附加RAID设备。在步骤602中,镜像所述的至少一个存储驱动器与至少一个附加的存储驱动器。在步骤603中,从所述的多个计算装置接收只读基卷的写入。在步骤604中,将所述多个计算装置中的每一个的写入重定向到所述附加存储装置的多个卷中的一个,该卷为所述只读基卷的写重定向快照,附加存储装置的每一个卷专用于一个计算装置并为这个计算装置存储数据。每个卷可以存储在至少一个硬盘驱动中。每个卷可以存储在多个配置成RAID的硬盘驱动中。专用于所述多个计算装置中的一个的数据可以包括以下至少一个:至少一个注册码、至少一个虚拟存储器交换空间、和/或至少一个临时文件。
图7描述了本发明另一选择性实施例所述的根启动多个计算装置的方法。在步骤701中,从存储在至少一个存储驱动器中的附加存储装置的只读基卷来根启动多个计算装置,所述只读基卷包含至少一个操作系统或至少一个多个计算装置公用的应用程序中的至少一个。至少一个存储驱动器可包含至少一个固态驱动器。至少一个存储驱动器可包含多个配置成RAID的存储驱动器。多个计算装置可包括多个无盘计算装置。所述附加存储装置可包括一个附加RAID设备。在步骤702中,从所述的多个计算装置接收只读基卷的写入。在步骤703中,将每个计算装置的写入重定向到所述附加存储装置的一个卷,附加存储装置的卷用来重定向只读基卷的写快照,附加存储装置的每一个卷专用于一个计算装置并为这个计算装置存储数据。每个卷可以存储在至少一个硬盘驱动中。每个卷可以存储在多个配置成RAID的硬盘驱动中。专用于所述多个计算装置中的一个的数据可以包括以下至少一个:至少一个注册码、至少一个虚拟存储器交换空间、和/或至少一个临时文件。在步骤704中,增加公用数据到只读基卷。
本发明中所公开的方法可作为设备可读指令集或软件执行。而且,可以理解的是,在公开的方法中,特定的顺序或层次步骤均是示范性方法的实施例。基于优选设计,可以理解的是,在属于公开主题的范围内,方法中特定的顺序或层次步骤可以重新安排。如实施例中所示的顺序,所附方法权利要求呈现出各种步骤的组成,但不仅限于方法中所示的特定的顺序或层次。
可以认为,本发明和许多其呈现出的优势能够通过上述所述的说明书得以理解,在不偏离公开的主题或没有失去其所有物质优势的前提下,实现组件在形式上、结构上和排列上的各种变化是显而易见的。本发明的说明形式仅仅是示例性,所附权利要求的目的包括保护这些变化。