iEx.ec虚拟机管理

image035
作者:Oleg Lodygensky
iEx.ec团队技术总监。
法国巴黎第十一大学LAL/CNRS的国家科学研究中心高级研究工程师,XtremWeb-HEP的主要开发者。

 

 

我们继续系列文章来介绍基于区块链分布式云计算平台iEx.ec背后的技术。本文将主要介绍iEx.ec虚拟机管理方面的内容,系列文章请查看:www.iexec.cn

53

简介

如前文所述,iEx.ec属于实现三层架构的全球计算平台的知名范例,在该平台上集中服务通过网络连接经分布式服务实现具体化和可访问。

技术系列文章旨在尽可能简明扼要、逐步介绍范例。到目前为止,我们了解了涉及全球计算时已经被熟知的技术:分布式服务、Pull模式和P2P通信。

在本文中,iEx.ec的技术更进一步提出了“供应商共享”模式以及第一个实例:虚拟机管理。

架构

之前的文章主要介绍了iEx.ec相关服务,如调度程序、数据存储、client和worker等内容,不过在介绍架构方面的内容没有完全覆盖所有的要诀和技巧以便我们更了解iEx.ec平台。下图详细介绍了供应商共享服务和协议方面的信息。我们可以注意到在提供资源的“worker”方有“供应商共享”标识。这没有破坏任何全局计算规则,只是引入了一项新功能:提供的资源不仅仅限于CPU和RAM。通过供应商共享模式,任何资源均可列出自己专属的电子资产。

传统上,全球计算调度器使用“配对”算法,其中分布式资源特性(如CPU、RAM、OS等)用于确定要发送的内容和位置。例如,使用Linux二进制文件的应用程序任务只能发送到运行Linux操作系统的资源。

通过供应商共享范式,iEx.ec会做到更多的事情。分布式资源可以呈现任何数字资产(如应用程序、库、数据、GPU等),并且调度程序能够使用该信息来计算配对。本文主要介绍供应商应用程序共享范式,即允许在一组分布式资源上来管理虚拟机。

54

安全性

供应商共享的新范式只有满足以下条件才符合之前文章中提到的安全规则:

  • 供应商共享范式必须注册作为ec服务。
  • 授权和访问权限限于适用于供应商共享(具体内容参考“iEx.ec的安全性”一文)。

工作流

供应商共享模式提供了一个新工作流,与之前文章展示的有些许不同。差异点在下文中用粗体标示出来:

  • XWHEP服务器允许管理员管理注册的应用程序。
  • Client准备计算任务运行成功所需的数据。只要数据可以通过URI描述并可通过网络访问,该数据可能存储在iEx.ec基础设施中或者其他数据仓库中。数据大小没有限制,但是超过几百兆字节的数据可能需要较长时间才能下载或上传。通过供应商共享范式,元数据可以不定义任何内容,并且指定该数据必须由拥有数据内容的分布式资源提出。
  • 授权的client将应用程序注册到iEx.ec基础架构中。通过供应商共享范式,应用程序元数据可能既不定义二进制代码也不限定库,并且指定该应用程序必须由拥有应用程序的分布式资源提出。
  • Client准备包含已经注册应用程序参考的可选参数、附加文件的可选引用的任务(工作单元)。
  • 最后,client将准备好的任务提交给scheduler。
  • Worker独立联系scheduler获取适合自身架构的任务,以及他们的共享资源
  • 作为响应,scheduler向worker发送合适的任务描述。
  • 对于执行任务中出现的本地缓存不存在的引用文件,worker将从数据库或者外部数据存储库中获取文件。Worker无需下载或安装共享任何数据、库或者应用程序
  • 一旦worker完成任务,worker通过结果收集器发送任务结果。

实例

供应商共享范式是我们的第一个实例,即允许虚拟机管理。这需要将虚拟机注册为应用程序,部署资源共享管理程序,并最终提交任务来启动虚拟机。为此,用户必须:

  • 检索已经注册虚拟机。虚拟机必须在scheduler上注册为应用程序。
  • 提交任务启动虚拟机,最后提供SSH公钥并请求端口连接。
  • 该任务被安排在Hypervisor管理的资源调度队列中。
  • 如果端口收到请求,该任务将自动获取SSH守护进程监听的虚拟socket(请参见“iEx.ec网络虚拟化”一文)。
  • 如果端口收到请求,任务会自动连接到本地的SmartSocket代理服务器,负责在worker端将虚拟地址互连到本地IP。
  • 如果端口收到请求,将检索任务SmartSocket的虚拟地址。
  • 如果端口收到请求,请在安装了ec worker端的用户本地机器上启动任务对应的SmartSocket代理服务器,并提供本地端口。
  • 代理服务器连接到任务虚拟地址。
  • 代理服务器监听本地端口。
  • 代理服务器转发本地网络与任务虚拟地址间的所有讯息。
  • 用户可以如常使用SSH client连接到正在运行的虚拟机,使用与提交任务时的公钥对应的本地私钥。用户不得直接尝试连接到正在运行的虚拟机,必须通过本地SmartSocket代理服务器连接。

55

结论

本文主要介绍了iEx.ec供应商共享范式,允许通过分布式云计算平台管理虚拟机。下一篇文章,我们会讨论其他供应商共享的内容,如允许数据驱动调度的数据共享,允许GPU应用程序(如机器学习)的GPU共享。

【原文地址】https://medium.com/iex-ec/iex-ec-virtual-machine-management-2d9fb3d74d0c#.yrvets66q