通过网络的存储器共享的制作方法

文档序号:9438907阅读:808来源:国知局
通过网络的存储器共享的制作方法
【专利说明】
【背景技术】
[0001]随着计算设备之间的通信的吞吐量持续增加,将数据从一个计算设备转移到另一个日益变得较不昂贵。因此,位于远程的服务器计算设备日益被用来执行大规模处理,其中得自这样的处理的数据通过经由计算机网络耦合到这样的服务器计算设备的本地、个人计算设备传递回用户。
[0002]传统服务器计算设备通常被优化以允许大量这样的服务器计算设备物理上位于一处。例如,传统服务器计算设备通常利用“刀片”体系结构来构建,其中服务器计算设备的硬件位于物理上是紧凑的且被设计成使得多个这样的刀片可垂直安排在“机架”架构中的物理外壳内。机架内的每一服务器计算设备可以联网在一起,且多个这样的机架可物理上位于一处,如在数据中心内。计算任务随后可被分发在单个数据中心内的多个这样的服务器计算设备之间,从而允许更高效地完成任务。
[0003]在将计算任务分发在多个服务器计算设备之间时,这些多个服务器计算设备中的每一者可访问可被存储在按盘阵列形式组织的计算机可读存储介质上或可被多个服务器计算设备中的任一者同等访问(如通过存储区域网络(SAN)或其他类似机制)的计算机可读存储介质的其他类似集合上的单个数据集。计算任务随后可由多个服务器计算设备并行执行,而无需一定做出在其上执行这样的计算任务的所存储数据的多个副本。
[0004]不幸的是,每一服务器计算设备的处理单元受它们可用来执行计算任务的存储器的量的限制。更具体而言,每一服务器计算设备的处理单元可能只能直接访问物理上位于与该处理单元相同的服务器计算设备内的存储器。虚拟存储器技术通常被用来启用如下计算任务的处理:该计算任务需要访问比物理上安装在给定服务器计算设备上的存储器更大量的存储器。这样的虚拟存储器技术可将数据从存储器对换到盘,从而生成更大量的存储器的表面现象。不幸的是,从存储器到盘的数据来回对换通常引入不可接受的延迟。这样的延迟可同样存在于盘物理上位于同一服务器计算设备还是位于远程,如在另一计算设备上或作为SAN的一部分。更具体而言,改进用来支持这样的对换的存储介质的速度没有解决通过使用虚拟存储器技术引入的延迟。

【发明内容】

[0005]在一个实施例中,物理上作为一个计算设备的一部分的存储器可被映射到在通信耦合到第一计算设备的另一不同的计算设备上执行的进程的进程空间且可由这些进程直接访问。一个计算设备的本地可寻址存储器名字空间因而由物理上可在另一不同的计算设备上的存储器来支持。
[0006]在另一实施例中,远程存储器接口(RMI)可以向在本地执行的进程提供存储器管理功能,接受来自在本地执行的进程的、被定向到在本地可寻址的存储器名字空间的命令,并随后将这些命令转换成可通过通信连接传送到其物理存储器支持在本地可寻址的存储器名字空间的一部分的远程计算设备的形式。RMI还可接受定向到它的远程通信并将这些通信转换成定向到安装在本地的存储器的命令。
[0007]在另一实施例中,控制器可以确定有多少存储器存储容量要与在另一计算设备上执行的进程共享。这样的控制器可以是可协调存储器在多个计算设备之间的共享的集中式控制器,或者它可以按多个计算设备本身之间的对等通信的形式来实现。作为又一替换方案,这样的控制器可以按分层格式来实现,其中控制器的一层协调存储器在计算设备集之间的共享,且控制器的另一层协调每一单独的计算设备集中的各单独计算设备之间的共享。
[0008]在又一实施例中,在本地执行的进程尝试访问在本地可寻址的存储器名字空间的由远程计算设备上的物理存储器支持的一部分时,这样的访问可被检测到或标志出,且生成这样的请求的任务的执行可被挂起等待数据的远程访问的完成。这样的挂起可根据这样的远程存储器操作的效率来定制,这可以比当前虚拟存储器操作快几个数量级。
[0009]在又一实施例中,共享存储器的各单独计算设备的操作系统可包括调整所共享的这样的存储器的存储量的功能,以及将由与在其上执行进程的计算设备远离的存储器所支持的存储容量映射到在这样的计算设备上执行的这样的进程的进程空间的功能。
[0010]提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0011]当参考附图阅读以下详细描述时,将使得其它特征和优点是显而易见的。
[0012]附图简述
[0013]以下详细描述在结合附图参考时可得到最佳的理解,附图中:
[0014]图1是示例性存储器共享环境的框图;
[0015]图2是启用存储器共享的示例性体系结构的框图;
[0016]图3a和3b是示例性存储器共享机制的流程图;以及
[0017]图4是示出示例性通用计算设备的框图。
[0018]详细描述
[0019]以下描述涉及通过网络共享存储器。存储器可以在彼此(诸如经由网络)通信耦合的各计算设备之间共享。每一计算设备可包括可向在本地执行的进程提供存储器管理功能的远程存储器接口(RMI),接受来自在本地执行的进程的、定向到在本地可寻址的存储器名字空间的命令并随后将这些命令转换成可传送到远程计算设备的形式。RMI还可接受定向到它的远程通信并将这些通信转换成定向到本地存储器的命令。所共享的存储器的量可由集中式控制器(单个控制器或控制器的分层集合)来通知,或通过执行存储器共享的各单独计算设备之间的对等协商来通知。访问实际存储在远程存储器上的数据的请求可被检测或标志出且生成这样的请求的任务的执行可按以下方式被挂起:它可被高效地苏醒,适于远程存储器访问的效率。操作系统可以向在本地执行的应用提供包括实际上由一个或多个远程计算设备的物理存储器支持的容量的在本地可寻址的存储器名字空间。这样的操作系统机制还可调整可供用于在多个计算设备之间共享的存储器的量。
[0020]本文描述的技术引用了特定类型的计算资源的共享。具体而言,该机制描述涉及“存储器”的共享。如本文所使用的,术语“存储器”意味着支持能由在中央处理单元上执行的指令(通过在本地可寻址的存储器名字空间)直接访问的数据的存储的任何物理存储介质。在本文中定义的术语“存储器”的示例包括但不限于随机存取存储器(RAM)、动态RAM (DRAM)、静态RAM (SRAM)、可控硅RAM (T-RAM)、零电容RAM (Z-RAM)以及双晶体管RAM(TTRAM)。尽管这样的示例列表不是限制性的,它不旨在将术语“存储器”的定义扩展超出以上提供的定义之外。具体而言,本文所使用的术语“存储器”特别排除存储可通过存储名字空间或文件系统访问的数据的存储介质。
[0021]虽然未作要求,但以下描述的各方面将在诸如程序模块等正由计算设备执行的计算机可执行指令的一般上下文中提供。更具体而言,除非另外指明,否则描述的各方面将参考一个或多个计算设备或外围设备所执行的动作以及其所执行的操作的符号表示。由此,应当理解,有时被称作计算机可执行的这种动作和操作包括处理单元对以结构化形式表示数据的电信号的操纵。这种操纵转换了数据或将其维持在存储器的位置中,这就以本领域技术人员所熟知的方式来重新配置或更改计算设备或外设的操作。数据被维护在其中的数据结构是具有由数据形式所定义的特定属性的物理位置。
[0022]—般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将会认识到这些计算设备不必限于常规服务器计算机架或常规个人计算机,并且包括其他计算配置,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机等等。类似地,这些计算设备不必限于独立计算设备,因为各机制也可以在通过通信网络链接的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储设备两者中。
[0023]参考图1,示出了包括计算设备的网络190的示例性系统100。出于提供用于以下描述的示例性基础的目的,三个服务器计算设备(服务器计算设备110、120和130的形式)被示为经由网络190彼此通信耦合。服务器计算设备110、120和130中的每一者可包括可执行计算机可执行指令的处理单元。在这样的计算机可执行指令的执行中,数据可由处理单元存储到存储器中。取决于正在执行的计算机可执行指令,需要存储到存储器中的数据的量可能大于安装在服务器计算设备上的物理存储器的存储容量。在这种情况下,通常,虚拟存储器技术被利用,由此一些数据从存储器“对换”到较慢的非易失性存储介质,如硬盘驱动器。以此方式,使得更大的存储器容量可用。在正在执行的进程尝试从存储器读取从存储器对换到盘的数据时,可生成页错误,且处理可临时被挂起,同时这样的数据被从较慢的盘读回并再次存储在存储器中,随后它可从存储器中被提供给处理单元。如本领域技术人员将明白的,这样的过程可引入可能不合乎需要的延迟,尤其是在服务器计算上下文中。
[0024]图1的示例性系统100示出了其中服务器计算设备130已被指派可能需要服务器计算设备130执行处理功能的作业140的实施例。更具体而言,一个或多个处理单元(如服务器计算设备130的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1