对象存储器管理单元的制作方法

文档序号:14958928发布日期:2018-07-18 00:07阅读:202来源:国知局

本申请要求于2015年4月22日提交的题为“objectmemorymanagementunit”的美国临时专利申请no.62/151,045和于2016年4月20日提交的题为“objectmemorymanagementunit”的美国专利申请no.15/134,053的权益和优先权,这些美国专利申请的全部内容通过引用方式被整体纳入本文。

本公开文本的各方面涉及计算硬件和软件技术,并且具体地涉及计算机架构、云计算和虚拟化技术。



背景技术:

如今,计算日益被提供为因特网上的实用服务。通过部署云计算和虚拟化技术,计算、存储和应用服务可用于因特网上的按需消费。在这种提供模式中,用户不需要了解计算和存储资源的物理位置和配置来使用利用该服务。

云计算的最终用户经常将可用资源组织成包括“私有云”和“公共云”的“混合云”,“私有云”包括在私有数据中心处的服务器和存储系统,“公共云”包括位于多租户公共数据中心处的服务器和存储系统,诸如amazonwebservices、googlecomputeengine或microsoftazure。这些云使用虚拟化技术——诸如由vmwareesx或kvm提供的那些虚拟化技术——将计算资源分成组以便于管理。最终用户还可以基于各种最终用户组的工作负荷要求来创建云组。

现有的用于创建这些组的方法需要通常由云服务提供商进行的对必要的计算、存储、网络和因特网资源的人工分配。事实上,为了使计算节点容易使用服务和资源,部署和配置网络拓扑以及可用的计算、存储和网络资源的复杂性通常由云服务提供商来处理。网络设备和工具的绝对数目使得服务提供商处的系统管理员部署能够提供通过合同约定保证的性能水平的云资源非常麻烦且效率低下。

这个问题的根本原因是由于构建云所需要的基本单片构建块是“母板(motherboard,主板)”。在最基本的实现中,这个“母板”通常由一起连接在电路板上的cpu、存储器和网络接口控制器(nic)组成。网络上的每个“母板”可以由嵌入在nic设备中的物理或虚拟互联网协议(ip)地址或者物理介质访问控制(mac)地址来标识。该“母板”可以以多种方式实现,包括但不限于个人电脑(pc)母板和刀片服务器插件板,其中多数是构建大型服务器所必需的,如云中常见的那样。这些“母板”随后用于部署操作系统,操作系统又允许以虚拟机(vm)和虚拟网络的形式来部署虚拟化技术以创建支持访客操作系统的终端云产品,从而使得消费计算资源能够作为服务。为了实现这种虚拟化,创建云资源的用户通常需要知道需要连接在一起的所有计算、存储和因特网资源的ip地址。因此很可能难以创建提供必要的资源来提供高效地处理用户工作负荷所需要的服务级别的云组。



技术实现要素:

本文中提供了用于计算系统的对本地和网络资源的增强编址(addressing,寻址或定址)的系统、方法和软件。在至少一个实现方式中,计算装置包括一个或多个计算机可读介质以及与一个或多个计算机可读存储介质操作性地联接的处理系统。计算装置还包括存储在一个或多个计算机可读存储介质上用于实现基于对象的存储器管理单元的程序指令,在由处理系统读取和执行时,所述程序指令指示所述处理系统至少保持计算系统中的虚拟地址到本地地址和网络地址的映射,所述本地地址编址所述计算系统的本地资源,所述网络地址编址在至少一网络上的位于所述计算系统外部的网络资源。所述程序指令还指示处理系统接收使用虚拟地址标识资源的资源请求,并且对于资源请求中的涉及网络资源的至少一请求,基于在网络地址与资源请求中标识的虚拟地址之间的映射来标识所述网络资源的网络地址。所述程序指令还指示处理系统使用网络地址访问在至少所述网络上的所述网络资源。

本“发明内容”被提供用于以简化的形式介绍将在以下具体实施方式中进一步描述的一些选择的构思。应当理解,这个“发明内容”并不旨在标出所要求保护的主题的关键特征或基本特征,也并非旨在用于限制所要求保护的主题的范围。

附图说明

参考以下附图可以更好地理解本公开文本的许多方面。尽管结合这些附图描述了多种实现方式,但是公开内容不限于本文中公开的实现方式。相反,其目的是涵盖所有的替代方案、修改和等同物。

图1是示出在一个示例性实现方式中的使用物理编址的系统的框图。

图2是示出在一个示例性实现方式中的使用虚拟编址的系统的框图。

图3是示出了在一个示例性实现方式中的从虚拟地址空间到物理地址空间的地址转换的操作的框图。

图4是示出在一个示例性实现方式中的使用片上转换后备缓冲器高速缓存从虚拟地址空间到物理地址空间的地址转换的操作的框图。

图5是示出在一个示例性实现方式中的被映射到物理存储器的虚拟存储器的框图。

图6是示出在一个示例性实现方式中的使用具有扩展的虚拟存储器空间的对象存储器管理单元的操作的框图。

图7是示出在一个示例性实现方式中的具有被映射到物理存储器或虚拟存储器的条目的对象表的框图。

图8是示出在一个示例性实现方式中的预引导执行环境(pxe)引导步骤(bootprocedure,自举步骤)的操作的流程图。

图9是示出在一个示例性实现方式中的引导过程(bootstrapprocess,引导启动过程或自举过程)的操作的框图。

图10是示出在一个示例性实现方式中的对象存储器管理单元(ommu)系统的框图。

具体实施方式

以下描述和相关联的附图教导了本发明的最佳模式。为了教导发明原理,可以简化或省略最佳模式的一些常规方面。以下权利要求规定了本发明的范围。注意,最佳模式的一些方面可能不落入如权利要求所规定的本发明的范围内。因此,本领域技术人员将会明了落入本发明范围内的最佳模式的变化。本领域技术人员将理解,下面描述的特征可以以各种方式组合以形成本发明的多种变型。结果,本发明不限于下面描述的具体示例,而是仅由权利要求及其等同物限定。

以下讨论提出了联合或统一多个物理和虚拟计算、存储和因特网资源并且使其作为任何计算节点可用的本地资源的技术。这些技术提供按需部署和呈现计算资源,该计算资源将本地或在云中可用的离散的物理和虚拟计算、存储和因特网资源合并作为给用户的统一的本地计算资源。

在至少一个实现方式中,可以从多个可用的离散的物理和虚拟计算、存储和因特网资源部署动态地联合的多个计算基础架构,无论它们是本地的还是在云中可用的,作为单个统一的本地资源来执行多个工作负荷。这可以通过使用对象存储器管理单元(ommu)来完成。在一些实现方式中,无论资源是诸如中央处理单元(cpu)等在计算机母板上实现的物理资源还是诸如虚拟机(vm)等本地或云中的虚拟资源,ommu都可以向计算机提供将可用于执行其工作负荷的所有授权的计算、存储和因特网资源映射成可以执行多个工作负荷的单个统一的本地物理资源的能力。ommu可以被实现为在计算机或虚拟机上执行以对于物理机和虚拟机提供这种存储器映射功能的软件程序。此外,ommu还可以实现为一个或多个硅器件中的功能块,包括但不限于诸如来自intel、amd、arm等公司的商用cpu设备、离散存储器管理单元vlsi、母板vlsi硅芯片组、以及通常用于实现计算机母板的其他设备。

本公开文本描述了一种新颖的装置和方法,其使得能够实现计算、存储和因特网资源的部署和联合,而不管它们可能物理存在于何处,并且在程序代码控制下将联合资源呈现为单个统一的本地资源。在至少一个实现方式中,联合的云计算资源可以通过软件程序控制按需创建。该联合的云计算资源的创建涉及使用“引导”协议,诸如但不限于用于用户的“母板”的pxe(由英特尔公司实现的预执行环境),以及在“母板”的固件或cpu硅芯片中的被称为对象存储器管理单元(ommu)的资源和存储器映射装置的实现。这个ommu装置及其操作将稍后在下面详细描述。

常规地,引导协议诸如pxe允许“母板”在程序控制下以预定顺序引导。程序指令序列标识cpu可用的本地资源,诸如母板上可用的存储器、网络接口和其他部件,初始化它们的状态,并且最后加载和执行操作系统以及所有必要的服务,诸如tcp/tp网络互联以让“母板”准备好使用。

本公开文本提供了如下一种增强的引导技术,其利用ommu装置来创建虚拟存储器系统,该虚拟存储器系统提供虚拟地址到物理地址转换,该转换不仅映射如上所述的本地母板设备,而且还映射多个网络、因特网或云(计算、存储和其他因特网)资源,这些资源通常被本领域技术人员称为通用资源标识符(uri)。采用ommu的这种增强的引导技术导致了呈现为本地资源的uri资源的清单,这又允许“母板”通过将这些网络、因特网和云资源(称为通用资源标识符(uri))合并为单个统一的本地资源来以更加扩展的能力进行引导。

除了提供将本地“母板”虚拟地址空间转换或映射到本地物理地址空间的机制之外,该本地物理地址空间合并主存储器和磁盘存储装置作为定义虚拟存储装置的介质,所述虚拟存储装置将虚拟地址空间扩展以将通用资源地址空间(uras)包括到本地系统的虚拟存储器中。反过来,引导代码也将标识和部署期望和授权的各个因特网资源(称为通用资源标识符(uri)),并且将其映射到本地系统的物理地址空间中。例如,在一个实施方案中,预先授权的uri的清单可以被下载并且缓存在由ommu装置管理的系统主存储器中,并且可以在程序控制下动态更新。

ommu装置提供了一种机制,其以与在cpu硅芯片中实现的常规存储器管理单元(mmu)的方式类似的方式,将包含通用资源地址空间的扩展的虚拟地址空间映射或转换为本地物理地址空间。结合ommu装置的pxe或类似的引导协议使得能够将多个计算、存储、网络和因特网资源(uri)作为单个统一的本地物理资源联合和呈现给本地系统计算节点,作为引导过程的最终结果。ommu可以使用通用地址空间作为信任库,例如,使能加密和解密uri的私钥的高速缓存、ommu中的对象表条目、文件读/写操作等。

在至少一个示例性实施方案中,多个系统实现方式可以包括运行诸如microsoftwindows、linux、osx等操作系统的“母板”硬件和网络协议诸如使用表现性状态转化(representationalstatetransfer,rest,表述性状态转移)协议的超文本传输协议(http)等的组合。另一示例性实施方案可以包括在本地、或者在远程计算系统上、或者在云中的虚拟机上、或者在客户端和服务器两者处同时在物理计算机系统或虚拟机(vm)上执行的独立的计算机程序。在又一实施方案中,个人用户可以利用包括ommu的物理或虚拟的计算系统来将用户的所有资源和设备统一为计算系统的单个本地资源,除了通过因特网可提供给用户的计算、存储和网络资源(uri)之外,所述单个本地资源可以包括本地的预置资源,诸如私有的更低层云上的本地网络附加存储(nas)驱动器。

现在参考附图,图1示出了仅使用物理编址的系统,而图2示出了使用利用物理主存储器作为页表高速缓存的虚拟编址的系统。图3示出了提供从虚拟地址空间到物理地址空间的地址转换所需要的步骤。图4示出了cpu硬件使用片上转换后备缓冲器高速缓存存储器提供从虚拟地址空间到物理地址空间的地址转换的步骤。图5示出了被组织成被称为虚拟页面的n个连续的字节大小的单元的阵列的虚拟存储器系统,其中虚拟地址空间的部分被映射到本地存储磁盘,并且部分被映射到通用资源地址空间。图6示出了在一种示例性实现方式中的使用具有包括通用资源地址空间的扩展的虚拟存储器空间的对象存储器管理单元的系统。图7示出了在一种示例性实现方式中的对象表的基本组织。图8示出了标准的预执行环境(pxe)引导步骤。图9示出了增强的引导过程。图10是示出计算系统的框图。

大多数计算系统支持虚拟存储器的概念。虚拟存储器在硬件异常、汇编器、链接器、加载器、共享对象、文件和进程的设计中起着关键的作用。虚拟存储器使得能够通过读取或写入存储器位置来读取或修改磁盘文件的内容。它还允许加载或传输文件的内容到存储器中,而无需执行明确的复制操作。

为了理解虚拟存储器提供的影响,首先定义地址空间的概念。地址空间是非负整数地址的有序集合(即,0、1、2...n)。如果地址空间中的整数是连续的,则认为它是线性地址空间或las。基本的计算机系统具有与系统中的m个字节的物理存储器相对应的物理地址空间或pas(即,0、1、2...m-1)。

地址空间的概念清楚地区分数据对象(例如,字节)与其属性(例如,地址)。因此,我们可以概括并且允许每个对象具有多个独立的地址,每个地址选择来自不同的地址空间。因此,主存储器的每个字节具有从虚拟地址空间中选择的虚拟地址和从物理地址空间中选择的物理地址。

在具有虚拟存储器的系统中,cpu根据被称为虚拟地址空间或vas:{0、1、2...n-1}的具有n=2n个地址的地址空间生成虚拟地址。地址空间的大小的特征是需要表示最大地址的位数。例如,具有n=2n个地址的虚拟地址空间被称为n位地址空间。现代系统通常支持32位或64位虚拟地址空间。

虚拟存储器提供了三个重要的能力:

(1)通过以下方式来有效地使用主存储器:将主存储器视为用于存储在磁盘上的地址空间的高速缓存,仅保留主存储器中的活动区域,并且根据需要在本地存储磁盘与物理存储器之间来回传输数据。

(2)通过为每个进程提供统一的地址空间来简化存储器管理。

(3)它保护每个进程的地址空间免受其他进程的破坏。

虚拟地址空间根据系统的架构和操作系统而变化。虚拟地址空间取决于系统的架构,因为它是定义有多少位可用于编址目的的架构。虚拟地址空间也取决于操作系统,因为实现操作系统的方式可能会引入除了架构所强加的限制之外的附加的限制。

形式上,地址转换是n元素虚拟地址空间(vas)的元素与m元素物理地址空间(pas)的元素之间的映射,并且被定义为:

map:vaspasu0θ

其中

如果vas中的虚拟地址a处的数据存在于pas中的物理地址a'处(也称为页面命中(pagehit)),则map(a)=a'。

否则

如果vas中虚拟地址a处的数据不在物理存储器中(也称为页面未命中(pagemiss)),则map(a)=θ。

术语“页面命中”和“页面未命中”是本领域技术人员所熟悉的术语。本领域技术人员也知道,为了支持将虚拟地址直接转换为物理地址,在中央处理单元(cpu)中实现被称为mmu(存储器管理单元)的特殊存储器管理硬件。

现在参考图1,示出了仅使用物理编址的系统。图1包括中央处理单元(cpu)100和主存储器101,主存储器101被组织为字节大小的单元的阵列。第一字节的地址为0(即,00000000),下一字节的地址为1(即,0000001),依此类推直到m-1。在这个简单的设置中,cpu100通过生成物理地址102访问主存储器101。主存储器101使用包括四个字节的数据的数据字103进行响应,在这种情况下,从存储器地址4开始(即,00000004)。图1示出了,在没有mmu的情况下,当cpu访问动态随机存取存储器(dram)形式的物理存储器时,实际的dram位置永远不会改变(即,存储器地址128总是在dram内的相同物理位置)。

图2是示出使用虚拟编址的系统的框图。图2的系统包括cpu300和主存储器205。cpu300包括处理器201和存储器管理单元(mmu)203。处理器201经由虚拟地址总线202连接到mmu203。虚拟地址总线202连接到主存储器205,主存储器205经由物理地址总线204被组织为字节大小的单元的阵列。第一字节的地址为0(即,00000000),下一字节的地址为1(即,00000001),依此类推,直到m1。

图2示出了通过mmu203,虚拟存储器地址在每个物理存储器访问之前经过转换步骤。在图2的场景中,处理器201通过生成虚拟地址202来访问主存储器205,虚拟地址202然后通过cpu200内的mmu203转换成物理地址204。mmu203使用存储在主存储器205中的查找表来直接转换虚拟地址,主存储器205的内容由操作系统管理。主存储器205使用从存储器地址4(即,00000004)开始的数据字206进行响应。

一些系统利用被称为页表的数据结构来有效地执行虚拟地址空间到物理地址空间转换。图3示出了mmu302如何使用被称为页表304的数据结构来执行虚拟地址空间到物理地址空间转换。页表304常规上存储在物理主存储器303中,物理主存储器通常是动态随机存取存储器(dram)。

下面列举cpu300硬件执行将地址从虚拟地址空间转换到物理地址空间的步骤:

·步骤1:处理器301生成虚拟地址(va)305并且将其发送到mmu302。

·步骤2:mmu302生成页表条目地址(ptea)306,并且从在页表304中执行查找的主存储器303请求该页表条目地址。

·步骤3:主存储器303将页表条目(pte)307返回给mmu302。

·步骤4:mmu302构建物理地址(pa)308并且将其发送到高速缓存/主存储器303。

·步骤5:高速缓存/主存储器303将所请求的数据字309返回给处理器301。

因此,每当处理器301生成虚拟地址305时,mmu302必须参考页表304以便将虚拟地址转换成物理地址。为了说明,被称为页表基址寄存器(ptbr)的处理器301中的控制寄存器指向主存储器303中的当前页表。n位虚拟地址具有两个分量:p位虚拟页面偏移量(vpo)和(n-p)位虚拟页面号(vpn)。mmu302使用vpn来选择适当的pte307。例如,vpn0选择pte0,vpn1选择pte1,等等。相应的物理地址是来自页表条目的物理页面编号(ppn)和来自虚拟地址的vpo的联结。注意,由于物理和虚拟页面都是p字节,所以物理页面偏移量(ppo)与vpo相同。

图4示出了基于mmu的虚拟存储器系统的增强版本。为了提高虚拟地址空间到物理地址空间转换的性能,大多数cpu提供存储器高速缓存,所述存储器高速缓存将cpu芯片400自身上的页表404存储在被称为转换后备缓冲器(tlb)403的高速缓冲存储器中。通过tlb403,将虚拟地址转换为物理地址的过程与图3所示的过程相同,除了页表404驻留在cpu400中的片上缓存的tlb403中之外,这提供了性能改进。

图4示出了cpu400硬件使用片上转换后备缓冲器404高速缓冲存储器执行的用于从虚拟地址空间到物理地址空间的地址转换的步骤:

·步骤1:处理器401生成虚拟地址(va)406并且将其发送到mmu402。

·步骤2:mmu402生成页表条目地址(ptea)407,并且从存储页表404的tlb高速缓冲存储器403请求该页表条目地址。

·步骤3:页表404将页表条目(pte)408返回给mmu402。

·步骤4:mmu402构建物理地址(pa)409并且将其发送到主存储器405。

·步骤5:主存储器405将所请求的数据字410返回给处理器401。

在云计算环境中,有必要提供从由全部所有因特网地址组成的新地址空间的地址转换。本公开文本提供了提取被定义为通用资源地址空间(uras)的新的虚拟地址空间。该通用资源地址空间使得能够将对系统的虚拟存储空间中的位置的访问转换为对与因特网或云上的物理或虚拟资源相对应的存储器映射地址的访问。本领域技术人员知道,这些资源地址被称为因特网上的通用资源定位符或uri。因此,通用资源地址空间(uras)可以被定义为通用资源标识符(url)的有序集合,例如{http://192.156.1.1,http://192.156.1.2,...,http://192.156.1.n},其中每个条目是非本地计算、存储或服务资源的url(即,因特网地址)。这种url形式是本领域技术人员熟悉的在因特网上使用的基本资源定位符形式。

本领域技术人员也将明了图4所示的常规mmu装置将不足以执行uras到物理地址空间的转换。

图5示出了被组织为称为虚拟页面(vp)504的n个连续字节大小的单元的阵列的虚拟存储器500。虚拟地址空间的部分被映射到本地存储磁盘501,并且部分被映射到通用资源地址空间502。每个字节具有用作到阵列中的索引的唯一虚拟地址。磁盘上的阵列的内容被缓存在主存储器中的称为pp505的物理页面中。与存储器层次结构中的任何其他高速缓存一样,磁盘上的数据被划分为用作在磁盘与主存储器之间或者在通用资源地址空间与主存储器之间的传输单元的块。虚拟存储器系统通过将虚拟存储器划分成被称为虚拟页面(vp)504的固定大小的块来处理这种情况。每个虚拟页面的大小为p=2p字节。类似地,物理存储器503被划分成物理页面(pp)505,其大小也是p字节(物理页面也被称为页面帧)。

在任何时间点,虚拟页面504组被分成三个不相交的子集:

·未分配:vm系统尚未分配(或创建)的页面。未分配的块没有与它们关联的任何数据,并且因此不占用磁盘501或uras502上的任何空间。

·已映射:当前高速缓存在物理存储器中的已分配页面。

·未映射:未高速缓存在物理存储器中的已分配页面。

图5中的示例示出了具有八个虚拟页面的小型虚拟存储器。虚拟页面0和3尚未被分配,并且因此还不存在于磁盘上。虚拟页面1、4和6被高速缓存在物理存储器中。虚拟页面2、5和7被分配,但是当前没有被高速缓存在主存储器中。

每个字节具有用作到阵列中的索引的唯一虚拟地址。磁盘501或uras502上的阵列的内容被高速缓存在主存储器503中的物理页面505中。与存储器层次结构中的任何其他高速缓存一样,磁盘上的数据被划分成用作在磁盘501与主存储器503之间、或者在通用资源地址空间502与主存储器503之间的传输单元的块。

图6公开了被称为对象存储器管理单元(ommu)602的新型装置,其克服了mmu的这种限制。本文中公开的ommu602装置被设计为执行从合并通用资源地址空间的扩展的虚拟地址空间中的地址到本地机器的物理存储器地址空间的唯一转换。这种映射或转换允许将任何计算、存储或因特网资源映射到本地系统的物理存储器空间中,并且从而呈现为本地资源。如上所述,例如,通用资源地址空间中的每个条目可以是现有的多个因特网资源的url,诸如amazonweb服务处的计算资源块。可以使用用于数据交换的现有的因特网协议来访问位于每个url处的资源。例如,可以通过使用https协议及其关联的get、put、post和delete命令集来促进数据交换。在本地节点与任何url处的存储器映射资源之间的更高级的数据交换可以通过使用高级编程技术诸如tcp/ip、unix套接字、以及利用本领域技术人员非常熟知的多种软件库诸如curlurl请求库(curl)来实现。在这个示例中,虚拟存储器以通用资源地址空间611和磁盘存储装置613的形式提供。

ommu602包含被称为对象表(ot)605的数据结构。对象表605数据结构与常规mmu使用的页表604数据结构类似。ot的多个副本存在于在ommu602上实现的对象转换缓冲器603高速缓冲存储器中。对象表605包含多个资源地址或uri,并且因此变得能够创建多个云资源簇,每个云资源簇通过唯一的资源地址被定义,这些云资源簇彼此正交,彼此隔离,并且从而提供数据安全性、处理安全性和隔离,而不需要诸如防火墙、虚拟局域网(lan)或虚拟交换机等任何附加装置。被映射到特定资源地址空间中的节点或进程只能意识到同一对象表605中的其他节点、进程或资源,并且所有其他资源地址空间对于它们来说是完全不可见的。这提供了在物理或虚拟机上的进程级别的细粒度的隐私。

ommu602跟踪当前被许可并且映射到客户端系统的物理地址空间中的那些url,类似于如何使用交换文件(即,存储在磁盘上的文件被mmu映射到系统的存储器空间中)。ommu602可以由固件、操作系统、物理或虚拟机的客户操作系统来编程,或者可以被硬连线以创建多个资源拓扑,这些资源拓扑为因特网上的任何单个系统组合本地和基于云的资源。这也允许通过仅使用对于在任何节点执行的特定用户或进程可用的授权和认证的资源的url填充ot605表来创建安全的私有云环境。

下面列举cpu600硬件执行将地址从虚拟地址空间转换到资源地址空间的步骤:

·步骤1:处理器601生成本地资源地址606(例如,10.10.1.1)并且将其发送到ommu602。

·步骤2:ommu602生成对象表条目地址(otea)607,并且从对象转换缓冲器603高速缓冲存储器请求该对象表条目地址。

·步骤3:otb603在对象表605中执行查找以检查匹配的条目。

·步骤4:如果存在匹配或“命中”,则otb603将对象表条目(ote)608返回给ommu602。

·步骤5:ommu602构造物理地址(即,存储器映射的url地址609,在本示例中示出为192.156.1.1)并且将该物理地址发送到主存储器606。

·步骤6:主存储器606返回位于192.156.1.1处的所请求的通用资源标识符(uri)对象用于处理器601使用诸如https的已知协议进行访问。

本公开文本提供了使用简单的表现性状态转化(rest)接口来促进激活、发现和连接任何节点到多个因特网资源的非常有效的技术。使用ommu602装置的主要益处在于,一旦ommu602如图6中概述的那样映射uri对象610,则与该uri对象610的数据交换可以通过使用rest接口以可信和安全的方式来实现。本领域技术人员已知,rest接口允许通过使用在https上的简单的get、put、post和delete命令来以最简单的方式创建和呈现复杂的因特网服务,所述https支持使用安全套接字层(ssl)和传输层安全(tls)加密用于资源地址空间中的任意两个端点之间的所有事务。因此,可以采用rest-ful接口作为用于“母板”及其在给定的资源地址空间中的一系列批准和认证的云资源的增强的引导方法,并且以安全的方式将其映射到“母板”的本地地址空间中。本公开文本中稍后更详细地描述使用httpsget/set请求协议来引导的实际过程。

在图7中,对象表(ot)700被示出为对象表条目(ote)701的阵列。虚拟地址空间中的每个页面具有在页表中的固定偏移量的ote701。每个ote701由有效位702和n位地址字段703组成。ot700中的每个条目是指向物理存储器705的指针或者指向为资源地址空间704或磁盘706形式的虚拟存储器的指针。由虚拟存储器系统使用的常规页表304、404和603是对象表700的样式(即,任何对象表条目701可以被指定为常规的页表条目703或者被指定为通用资源地址表条目703)。

大多数操作系统为在os下执行的每个进程提供单独的页表,并且因此提供单独的虚拟地址空间。对于在“母板”上执行的每个进程,ommu还允许基于每个进程将虚拟地址映射到通用资源地址(uri或url)。这很重要,因为在云基础架构中,越来越多地使用“容器(container)”作为在通用操作系统下并行执行多个应用的机制。实质上,“容器”只不过是在每个进程的基础上绑定到虚拟化的内核的独立的进程。在linux中,这些“容器”被称为linux容器或lxc,并且是本领域技术人员公知的。然而,“容器”不能保证每个进程的数据的安全性,因为作为“容器”执行的流氓进程接受根权限并且因此完全有权读取、写入和执行属于其他进程或“容器”的数据和代码并不困难。

在至少一个实现方式中,“母板”可以使用ommu装置和引导方法来确保进程(即,“容器”)仅从预定的虚拟地址空间引导(即,使用来自授权的服务器的rest协议被加载到对象表700中的仅授权的通用资源地址)。通过对网络和因特网资源的“容器”虚拟地址空间进行提取并且将其映射到受限制的通用资源地址空间,防止“容器”发起可能损害其他容器的数据的流氓进程。

现在参考图8,示出了标准的预引导执行环境(pxe)引导步骤。pxe规范描述了标准化的客户端服务器环境,其在启用了pxe的客户端上引导从网络获取的软件组件。在客户端侧,它只需要支持pxe的网络接口控制器(nic),并且使用一小组工业标准网络协议,诸如动态主机配置协议(dhcp)和普通文件传输协议(tftp)。

pxe的构思与另一些公知的协议(例如引导协议(bootp)、dhcp和tftp)一起产生,并且形成统一的可扩展的固件接口(uefi)标准的一部分。鉴于快速且可靠的局域网(lan),pxe是操作系统引导、安装和部署的最常见选择。

图8示出了pxe协议如何操作。客户端通过广播dhcpdiscover(dhcp发现)来发起协议,该dhcpdiscover包含将请求标识为来自实现pxe协议的客户端的扩展。假设实现这种扩展协议的dhcp服务器或代理dhcp服务器可用,在几个中间步骤之后,服务器向客户端发送适当的引导服务器的列表。然后,客户端发现所选择的类型的引导服务器,并且接收在所选择的引导服务器上的可执行文件的名称。客户端使用tftp从引导服务器下载可执行文件。最后,客户端发起下载的图像的执行。此时,客户的状态必须满足为该图像提供可预测的执行环境的某些要求。这种环境的重要方面包括客户端的主存储器的某些区域的可用性以及基本网络i/o服务的可用性。

如图8所示的事件序列如下:

步骤1.客户端向标准dhcp端口67广播dhcpdiscover消息。该数据包中的选项字段包含以下内容:

·客户端标识符的标签(即,通用唯一标识符或uuid)。

·客户端通用网络驱动接口(undi)版本的标签。

·客户端系统架构的标签。

·dhcp选项60,类id,其被设置为“pxeclient:arch:xxxxx:undi:yyyzzz”。

步骤2.dhcp或代理dhcp服务通过在标准dhcp答复端口68上向客户端发送dhcpoffer(dhcp提供)消息来进行响应。如果这是代理dhcp服务,则客户端ip地址字段为空(0.0.0.0)。如果这是dhcp服务,则返回的客户端ip地址字段是有效的。

此时,其他dhcp服务和bootp服务也通过向端口68发送dhcp提供或bootp应答消息来进行响应。每个消息包含标准dhcp参数,包括客户端的ip地址和管理员可能在dhcp或代理dhcp服务上配置的任何其他参数。

对于来自dhcp服务器的应答的超时是标准的。对于重新广播接收代理dhcpoffer或具有pxe扩展的dhcpoffer的超时基于标准的dhcp超时,但要短得多,以允许在不提供带有pxe扩展的dhcpoffer的标准bootp或dhcp环境中合理地操作客户端。

步骤3.从它接收到的dhcpoffer中,客户端记录以下内容:

·通过标准dhcp或bootp服务提供的客户端ip地址(和其他参数)。

·根据来自dhcpoffer的pxe标签中的引导服务器字段的引导服务器列表。

·发现控制选项(如果提供)。

·多播发现ip地址(如果提供)。

步骤4.如果客户端选择由dhcp服务提供的ip地址,则必须通过向该服务发送回地址请求并且然后等待来自该服务的确认来完成标准的dhcp协议。如果客户端从bootp应答中选择ip地址,则可以简单地使用该地址。

步骤5.客户端选择并且发现引导服务器。取决于在包含pxe服务扩展标签的先前的dhcpoffer中包括的发现控制选项,该数据包可以被发送广播(端口67)、多播(端口4011)或单播(端口4011)。该数据包与步骤1中的初始dhcpdiscover相同,除了它被编码为dhcprequest并且现在包含以下内容:

·从dhcp服务分配给客户端的ip地址。

·客户端标识符(uuid)的标签。

·客户端undi版本的标签。

·客户端系统架构的标签。

·dhcp选项60,类id,其被设置为“pxeclient:arch:xxxxx:undi:yyyzzz”。

·pxe选项字段中的引导服务器类型。

步骤6.引导服务器在客户端源端口上向客户端单播回dhcpack数据包。这个应答数据包包含:

·引导文件名。

·多播简单文件传输协议mtftp1配置参数。

·网络引导程序(nbp)在能够成功执行之前需要的任何其他选项。

步骤7.客户端使用标准tftp(端口69)或mtftp(在引导服务器ack数据包中分配的端口)下载可执行文件。下载的文件和下载的代码在存储器中的位置取决于客户端的cpu架构。

步骤8.pxe客户端确定是否需要对下载的文件的真实性测试。如果需要测试,则客户端向引导服务器发送请求用于先前下载的引导文件的证书文件的另一dhcprequest消息,经由tftp或mtftp下载证书,并且执行真实性测试。

步骤9.最后,如果真实性测试成功或不需要,则pxe客户端发起下载的代码的执行。

本领域技术人员将明白,pxe引导过程复杂并且具有很多潜在的安全缺陷。例如,基本假设是存在客户端可用的安全的dhcp服务器。这是不能保证的,因为恶意攻击者可以轻易地为dhcp服务器提供欺骗性ip地址,并且欺骗客户端连接恶意的dhcp服务器。一旦客户端连接到恶意服务器,攻击者就可以下载任何恶意软件并且进入计算机和网络环境。

uefi规范试图通过提出可以在母板(平台)、母板固件和操作系统之间建立可信关系来尝试弥补这个潜在的安全漏洞。这种信任机制使用两对非对称密钥和复杂的协议来验证任何数据交换。本领域技术人员会同意,这个协议是复杂的并且需要将密钥存储在不可擦除、防篡改、非易失性存储器中。这种复杂的协议使得能够将公钥从os传送到平台固件,以便这些密钥可以用来在os与平台固件之间安全地传递信息。

通常,由于恶意软件代理欺骗的可能性,os已经不能传送敏感信息或执行任何种类的策略。也就是说,平台固件已经无法信任os。通过登记由平台所有者授权的这些公钥,平台固件现在可以检查由操作系统传递的数据的签名。当然,如果恶意软件代理作为os的部分(诸如rootkit)运行,则固件与操作系统之间的任何通信仍然是欺骗的主题,因为恶意代码可以访问交换密钥。

现在将参考图9来讨论通过使用https上的rest-ful接口来提供与上面关于图8所描述的相同的功能但是具有更高的安全性的机制。图9的技术利用支持pxe的平台的网络接口控制器(即,能够在缺少os的环境中支持tcp/ip套接字)的低级功能。

图9示出了引导过程的示例性实现方式。为了便于解释,图9的描述参考图6中标识的项目,但是注意,图9中提供的引导过程不限于图6的具体实现方式。过程如下:

步骤1.当“母板”900加电时,被称为低层级客户端代理(llca)901的一个独立软件作为初始程序加载(ipl)过程被执行。这个llca901可以被编程到固件中,经由usb驱动器加载到母板中,从本地磁盘加载,或者以任何其他方式提供。

步骤2.llca901将利用内置于或附接至母板900的网络接口控制器(nic)902设备来向认证服务器905发出httpsget904请求,所述认证服务器905监听由系统管理员选择的特定url上的预定的端口地址。为了安全起见,该端口地址可以由系统管理员定期更改。这防止了在dhcp协议中可能出现的恶意窃听和篡改,通常知道端口67是指定的dhcp端口。另外,由于请求是使用httpsget请求进行的,所以数据交换是安全的,因为https使用ssl/tls。

通过所述请求的“母板”生成的所有数据被标记有所述请求的“母板”900的网络接口控制器(nic)902的mac地址903和时间戳。这提供了对网络的维护、调试和安全性有用的所有请求的可追踪性。

步骤3.认证服务器905将使用质询906来对生成httpsget请求的“母板”进行响应。

步骤4.在接收到有效的响应之后,认证服务器905将一组信任的uri对象的资源地址(url)下载到ommu602上的对象转换缓冲器604中的对象表605的数据结构中。对于不具有可用的物理ommu602的系统,对象表605数据结构可以被高速缓存在物理主存储器606中,并且软件地址转换可以由所述请求的“母板”使用。

步骤5.接下来,客户端代理可以生成httpsget/set请求907以开始与授权的uri对象的数据交换,并且下载根据基于策略的协议完全配置所述请求的“母板”所需要的任何特定操作系统或虚拟机软件图像。

步骤6.在该数据交换期间,基于适用的安全和隐私策略,本地llca901被与期望的操作系统相匹配的下载的系统级客户端代理(slca)908软件模块预占。然后,slca908执行在ommu中建立对象表909的代码,并且将因特网和云资源映射到所述请求的“母板”的物理存储器空间中。

步骤7.当slca908完成其任务时,包括所有授权的因特网和云资源的期望的操作环境可用作所述请求的“母板”的本地资源。

本领域技术人员应当清楚,ommu602装置在该过程中提供主要益处。一旦ommu602映射如图6所示的uri对象610,与该uri对象610的数据交换可以通过使用表现性状态转化(rest)接口以可信和安全的方式来实现。rest接口允许通过使用在https上的简单的get、put、post和delete命令以最简单的方式创建和呈现复杂的因特网服务,所述https支持对于在资源地址空间中的任何两个端点之间的所有事务使用ssl/tls加密。因此,rest-ful接口可以用作在给定资源地址空间中的“母板”及其一系列批准和认证的云资源的增强的引导方法,并且以安全的方式将它们映射到“母板”的本地地址空间中。

现在将介绍一些示例实现方式。

示例1:一种联合多个物理和虚拟计算、存储和互联网资源并且使其可用作任何计算节点的本地资源的装置和方法;

所述装置包括具有内置高速缓冲存储器的对象存储器管理单元,所述内置高速缓冲存储器用于将由cpu生成的虚拟地址转换成互联网上的最终用户节点上的物理地址;

所述对象存储器管理单元提供扩展虚拟地址空间以包含通用资源地址空间的能力,所述通用资源地址空间包括互联网上的所有通用资源定位符或url;

所述对象存储器管理单元提供将来自通用资源地址空间的虚拟地址转换成物理地址从而能够本地访问互联网上的url的能力;

所述对象存储器管理单元提供将多个互联网和基于云的计算、存储、服务资源映射到互联网上的最终用户节点的本地物理主存储器中的能力;

所述方法包括使rest接口经由https协议连接到互联网上的资源以实现任何母板平台的引导过程的新型引导方法;

所述方法对母板执行低层级客户端代理软件程序;

所述低层级客户端代理经由usb驱动器被加载到母板上,或者嵌入到母板固件中,或者经由母板的网络接口下载到母板上;

所述方法通过与专用认证服务器的网络连接使用询问/响应认证协议,所述专用认证服务器被设置为监听预定的端口地址;

所述认证服务器端口地址由授权的系统管理员选择;

认证服务器的所述端口地址能够被随机更改以保持访问安全性;

所述方法利用https协议来实现所述询问/响应协议;

所述方法利用https协议将系统级客户端代理程序代码从认证服务器下载到母板上;

所述系统级客户端代理利用https协议下载授权和可用的通用地址资源的列表,并且将所述列表加载到所述对象存储器管理单元的高速缓冲存储器中的对象表数据结构中;

所述系统级客户端代理使用https协议将操作系统下载到母板上,并且将控制转移到下载的操作系统;

所述操作系统的虚拟存储器管理系统使用对象存储器管理单元高速缓冲存储器中的对象表来将本地磁盘驱动器上的虚拟地址映射到主存储器中的物理地址以及使用对象表将通用资源地址(即,url)映射到本地物理存储器中以使得最终用户节点能够作为本地资源访问资源。

示例2:示例1中所述的装置和方法,其中在所述对象存储器管理单元中,硬件装置被集成到cpu硅芯片上。

示例3:示例1中所述的装置和方法,其中所述对象存储器管理单元装置被实现为独立的硅器件以连接到市售的cpu。

示例4:示例1中所述的装置和方法,其中所述对象存储器管理单元硬件不实现集成的高速缓冲存储器。

示例5:示例1中所述的装置和方法,其中所述对象存储器管理单元装置被实现为软件程序并且使用主存储器作为对象表数据存储装置的位置。

示例6:示例1中所述的装置,其中ommu支持加密的数据存储在对象表条目内;

所述对象表条目由多个已加密和未加密的字段组成;

所述已加密的字段封装在通过网络或互联网连接的任意两点之间交换以在任一端部署和访问服务的包含数据结构的“对象”;

所述“对象”包含被接收节点解释和按照其执行以部署和提供由网络或互联网连接的另一端请求的服务或数据的属性和方法;

所述“对象”将私钥封装以通过安全的方式加密和解密要在任何两个连接的节点之间交换的数据;

所述“对象”提供网络地址转换,并且对通过包括网络地址的已转换地址限定的资源执行加密/解密的i/o。

示例7:示例1中所述的装置,与现有pxe引导协议结合使用,以允许下载和部署互联网资源并且允许它们被映射到本地主存储器中并且允许作为本地资源访问这些资源。

示例8:示例1中所述的装置和方法,其中所述计算节点是虚拟机,并且ommu以主机cpu上的硬件实现。

示例9:示例1中所述的装置和方法,其中所述计算节点是虚拟机并且ommu功能被实现为软件程序模块。

示例10:示例1中所述的装置和方法,其中所述计算节点是在主机物理cpu或虚拟机上执行的单独进程或“容器”,并且具有映射到进程或“容器”的虚拟地址空间中的其他计算、存储、网络和互联网资源和服务;

其中所述进程或容器利用以主机cpu上的硬件实现的ommu或者以主机cpu上执行的虚拟机上的软件程序实现的ommu来执行对每个进程或容器唯一的虚拟地址到物理地址的转换,从而保护来自同一物理或虚拟机上的多个其他共同驻留进程或“容器”的每个进程或“容器”的隐私;

其中由ommu执行的所述虚拟地址到物理地址的转换允许任何进程或“容器”将包括云资源的多个计算、存储、网络和互联网服务映射为进程或“容器”的逻辑本地资源以在包括在所述映射中的任何文件或存储器映射的设备上提供文件i/o(即,读/写操作);

其中一组受限和授权的通用资源地址被映射到虚拟地址空间中,并且ommu装置在每个进程或每个“容器”的基础上提供网络和互联网地址的虚拟化,从而控制对在物理机或虚拟机上同时执行的多个其他进程或“容器”的访问。

图10是示出在一个示例性实现方式中的ommu系统的框图。ommu系统1000是ommu602的示例,但是如本文所述,可以存在其他示例。ommu系统1000包括处理系统1002和存储系统1004。存储系统1004还包括软件1006,软件1006被配置为如本文所述地操作ommu系统1000。

处理系统1002可以包括从存储系统1004获取和执行软件1006的微处理器和其他电路。软件1006包括映射模块1008和请求模块1010。处理系统1002可以在单个处理设备内实现,但是也可以分布在合作执行程序指令的多个处理设备或子系统之间。处理系统1002的示例包括通用中央处理单元、专用处理器和逻辑设备、以及任何其他类型的处理设备。在一些实现方式中,处理系统1002可以包括计算系统的主cpu或多个cpu,但是在其他示例中,处理系统1002可以包括计算系统内的单独的硬件。

存储系统1004可以包括由处理系统1002可读取并且能够存储软件1006的任何存储介质。存储系统1004可以包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质,以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息。存储系统1004可以被实现为单个存储设备,但是也可以在多个存储设备或子系统中实现。存储系统1004可以包括附加元件,诸如在一些示例中用于读取软件1006的控制器。

存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘和闪速存储器以及其任何组合或变型、或者任何其他类型的存储介质。在一些实现方式中,存储介质可以是非暂态存储介质。在一些情况下,存储介质的至少一部分可以是暂态的。应当理解,存储介质在任何情况下都不是传播信号。

在操作中,处理系统执行软件1006以提供本文中描述的期望的ommu操作。在至少一个示例中,映射模块1008在由处理系统1002执行时指示处理系统1002将虚拟地址映射到本地地址和网络地址,其中本地地址对应于计算系统的本地资源,诸如动态随机存取存储器(dram)或磁盘存储装置(闪存介质、硬盘驱动器等),并且其中所述网络地址对应于网络地址(uri等)。当经由映射模块1008保持映射时,请求模块1010在由处理系统1002执行时指示处理系统1002标识使用虚拟地址的数据请求,并且根据保持的映射来处理数据请求。例如,如果具有虚拟地址的请求被映射到本地资源的本地地址,则处理系统1002可以从计算系统的本地资源访问数据。相反,如果具有虚拟地址的请求被映射到网络资源的网络地址,则处理系统1002可以通过网络访问网络资源中的数据。数据请求可以由用于ommu系统1000的主机计算系统上的操作系统生成,可以由用于ommu系统1000的主机计算系统上执行的应用生成,或者可以由计算系统上的任何其他进程生成。

附图中提供的功能框图、操作序列和流程图是用于执行本公开文本的新颖方面的示例性架构、环境和方法的代表。尽管为了简化说明的目的,本文中包括的方法可以是功能图、操作序列或流程图的形式,并且可以被描述为一系列的动作,但是应当理解和明白,这些方法不受动作顺序的限制,因为一些动作可以根据这些动作与本文所示和描述的动作以不同的顺序发生和/或与本文所示和描述的其他动作同时发生。例如,本领域技术人员将会理解和明白,可以替代地将方法表示为一系列相互关联的状态或事件,诸如在状态图中。而且,新的实现方式可能并不需要在一种方法中示例的所有动作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1