IaaS资源集成管理解决方案深度剖析
立即解锁
发布时间: 2025-10-21 00:26:52 阅读量: 20 订阅数: 56 AIGC 

面向未来的并行计算研究
### IaaS资源集成管理解决方案深度剖析
#### 1. 引言
基础设施即服务(IaaS)的概念由亚马逊网络服务(AWS)旗下的弹性计算云(EC2)率先提出,随后这一概念被众多拥有大量计算资源的知名科技企业迅速采用,他们纷纷推出了自己的IaaS平台。然而,由于云计算是一个新兴概念,缺乏预先定义的标准和统一的定义,这些平台在功能、架构和接口库方面呈现出高度的异构性。这种多样性不仅给IaaS平台的选择带来了困难,更成为了云服务提供商之间实现互操作性的障碍。
为了解决这一问题,本文提出了一种开源解决方案,旨在促进异构IaaS平台之间的互操作性和标准化。该方案基于对现有开源和专有IaaS平台以及开源IaaS抽象解决方案的研究,最终选择复用Apache Deltacloud框架。Deltacloud依赖于软件驱动模块的开发,以与不同的IaaS平台进行交互,它官方提供并支持16个IaaS平台的驱动程序,包括OpenNebula和OpenStack,并且允许开发新的驱动程序。本文利用这一功能为PACI开发了一个新的Deltacloud驱动程序。此外,Deltacloud还提供了一个Web仪表板和REST API接口。
#### 2. IaaS平台分析
本次调研的IaaS平台包括OpenNebula、OpenStack和CloudStack等开源框架,以及PACI专有解决方案。以下是这些平台的特点对比:
| 特性 | OpenNebula | OpenStack | CloudStack | PACI |
| --- | --- | --- | --- | --- |
| 认证方式 | 密码、SSH RSA密钥对、X509、LDAP | 内存中的键值存储、PAM、LDAP、X509 | 密码、LDAP、SSH RSA密钥对 | 密码、LDAP |
| 虚拟机管理程序 | XEN、KVM、VMware vSphere | KVM、LXC、UML、VMWare vSphere、Xen、PowerVM、Hyper - V | VMware vSphere、KVM、Citrix Xen | Parallels hypervisor、KVM |
| 管理方式 | 集中式 | 分散式 | 集中式 | 集中式 |
| 接口 | XML - RPC API;AWS EC2、OCCI、OCA | RESTful API;AWS EC2、S3、EBS和OCCI | 查询API;AWS EC2、OCCI、插件API | RESTful API |
| 网络 | 虚拟路由器、上下文配置 | Nova - network、Newtron | 虚拟路由器 | POA |
| 存储 | 卷存储 | 卷和对象存储(Glance、Swift、Cinder) | 卷存储 | 系统数据库 |
| 治理模型 | 仁慈独裁者 | 基金会 | 技术精英制 | 专有 |
开源IaaS平台之间的主要差异体现在架构、接口库和治理模型上。这种多样性源于IaaS系统缺乏明确的架构标准,每个平台都试图提供独特的功能,并与特定的第三方服务兼容,以垄断市场并将其技术确立为标准。例如,OpenStack试图在市场上占据主导地位,而专有IaaS平台PACI功能有限,且缺乏与其他平台交互的互操作机制,可能会导致供应商锁定问题。此外,这些平台在接口类型和数量、定制级别、操作组的组织以及请求和响应消息的结构方面也存在显著差异。OpenStack和PACI依赖于RESTful接口,而OpenNebula和CloudStack分别使用原生的XML - RPC和查询(类似REST)接口。
#### 3. 抽象解决方案研究
接口抽象库为中间件系统的开发提供了一系列实现,这些中间件系统可以抽象底层IaaS平台的特性,并为多个IaaS云的管理提供标准和统一的API。Deltacloud、jClouds和Libcloud是现有的云抽象解决方案的代表。
- **Deltacloud**:是Apache软件基金会的开源框架,用Ruby编写,旨在抽象IaaS云平台接口库之间的差异。它包含一个Web仪表板、一组IaaS提供商驱动程序(包括OpenNebula和OpenStack)以及多个API,如Deltacloud RESTful API、分布式管理任务组(DMTF)的开放标准云基础设施管理接口(CIMI)REST API和AWS(EC2和S3)API。每个驱动程序都会公开所实现的Ruby集合列表,这些集合描述了Deltacloud API提供的抽象,每个集合代表后端提供商节点中的一个实体。
- **jClouds**:是Apache软件基金会用Java开发的开源库,提供可移植的抽象和特定于云的功能,可用于管理存储桶(BlobStore)和计算操作(ComputeService),支持包括OpenStack和CloudStack在内的多个云提供商和IaaS平台。
- **Libcloud**:是Apache软件基金会用Python开发的开源库,支持包括OpenNebula、CloudStack和OpenStack在内的大量IaaS平台,允许用户管理计算、存储和网络云资源。
这些抽象解决方案的对比如下:
| 特性 | Deltacloud | jClouds | Libcloud |
| --- | --- | --- | --- |
| 类型 | 框架 | 库 | 库 |
| 编程语言 | Ruby | Java | Python |
| 支持的提供商 | 17个云提供商 | 30个云提供商 | 38个云提供商 |
| 支持的操作 | 计算、存储、网络 | 计算、存储 | 计算、存储、网络 |
| 平台集成 | 驱动程序 | Maven依赖项 | 驱动程序 |
| API | REST、CIMI、AWS | - | - |
| 其他接口 | Web仪表板、Ruby客户端 | - | - |
尽管Libcloud为分析的开源IaaS平台提供了官方支持,但也有第三方驱动程序将CloudStack与Deltacloud集成。最终选择Deltacloud抽象框架是因为它提供了额外的开发工具和Web服务(如Ruby命令行界面和Web仪表板),公开了广泛使用的接口库(CIMI和AWS EC2),并提供了开发Deltacloud驱动程序的文档,可用于开发PACI驱动程
0
0
复制全文


