15、开源云计算解决方案就绪性测试指南

开源云计算解决方案就绪性测试指南

在当今数字化时代,开源云计算解决方案因其灵活性和成本效益,受到了广泛关注。本文将详细介绍如何测试和比较三款开源云计算解决方案(Eucalyptus、CloudStack 和 OpenNebula)的就绪性。

1. 解决方案选择与概述

在选择开源云计算解决方案时,需要考虑多个因素,包括解决方案的成熟度、开源版本的可用性、企业版成本、用户社区规模以及公开的质量指标(如市场份额、客户反馈等)。以下是三款解决方案的部分信息:
| 解决方案 | 部分客户 | 成熟度(运营年数) | 社区反馈 | 安装复杂度 |
| — | — | — | — | — |
| Eucalyptus | Cloudera、DoD、NASA 等 | 2008 年 5 月发布首个版本 | 软件安装容易,但云用户报告网络配置有挑战 | 首次安装相对简单,网络配置困难 |
| OpenNebula | IBM、Hexagrid、CERN 等 | 2008 年首次公开发布 | 有新的稳定版本贡献到项目 | 首次安装者学习曲线较陡 |
| CloudStack | Zynga、Edmunds.com、诺基亚研究中心等 | 2010 年 5 月发布 | 文档完善,使用 Xen 创建实例可能有问题 | 安装容易,有安装包指导 |

同时,它们的一般特性如下:
| 解决方案 | 开源版本 | 企业版成本 | 支持云的操作系统 | 支持的操作系统镜像 |
| — | — | — | — | — |
| Eucalyptus | 是 | 基于物理主机数量授权 | Red Hat Enterprise、CentOS 等 | Windows、主要 Linux 发行版 |
| OpenNebula | 是 | 免费 | Ubuntu 和 CentOS | Windows、主要 Linux 发行版 |
| CloudStack | 是 | 免费 | Red Hat Enterprise、CentOS 5 等 | Windows、主要 Linux 发行版 |

2. 测试环境搭建

测试环境由智能空间计算中心(CISC)构建和托管。使用 26 个计算节点,通过 1Gbps 的局域网连接。每个节点具有 16GB 内存和 2.33GHz 的双四核 CPU。

三款解决方案安装在相同的硬件基础设施上,操作系统层采用 CentOS 5.7、5.8 和 6.0,虚拟化层使用 Xen 或 KVM。每个解决方案安装在 5 个计算节点上,1 个为主节点,4 个为计算节点。应用层包含两个地球科学应用程序用于评估性能。

测试使用了五种不同的虚拟机(VM)配置,每种配置具有不同的随机访问内存(RAM)大小和虚拟 CPU 核心数:
| 实例类型 | 架构 | 操作系统 | RAM(GB) | 虚拟核心 | 磁盘(GB) |
| — | — | — | — | — | — |
| 小型 | 64 位 | CentOS 6.0 | 1.7 | 1 | 10 |
| 中型 | 64 位 | CentOS 6.0 | 1.7 | 2 | 10 |
| 大型 | 64 位 | CentOS 6.0 | 7.5 | 2 | 10 |
| XLarge | 64 位 | CentOS 6.0 | 12 | 4 | 10 |
| XXLarge | 64 位 | CentOS 6.0 | 12 | 8 | 10 |

3. 云操作测试

对单个计算资源的分配和释放性能进行测试,包括虚拟机和存储卷的启动和释放。每个 VM 配置的测试重复五次,记录并比较不同虚拟计算资源下启动、暂停、重启和删除 VM 的时间成本。

4. 虚拟计算资源测试
4.1 测试工具
基准测试工具 测试项目 虚拟计算资源
UBench CPU CPU
Bonnie++ 硬盘 硬盘
CacheBench 内存层次结构性能 内存
Iperf 网络 网络
4.2 测试设计
  • CPU 性能 :使用基于 C++ 的 UBench 工具,每次测试执行 3 分钟的浮点和整数计算。
  • I/O 性能 :使用 Bonnie++ 测试文件系统操作,以每秒完成的工作量和操作占用的 CPU 时间百分比作为指标。
  • 内存层次结构性能 :使用 LLCbench 中的 CacheBench 测试内存访问时间和带宽。
  • 网络性能 :使用 Iperf 测量 TCP 和 UDP 带宽性能。
4.3 测试工作流程
graph LR
    A[构建镜像] --> B[启动 VMs]
    B --> C[运行测试]
    C --> D[收集和分析结果]

具体步骤如下:
1. 构建镜像
- CPU 基准测试

PROMPT>> wget ftp://ftp.uwsg.indiana.edu/pub/FreeBSD/ports/distfiles/ubench-0.32.tar.gz
PROMPT>> tar xvfz ubench-0.32.tar.gz
PROMPT>> cd ubench-0.32
PROMPT>>./configure
PROMPT>> patch -p0 < ubench-patch.txt
PROMPT>> make
- **I/O 基准测试**:
PROMPT>> wget http://pkgs.repoforge.org/bonnie++/bonnie++-1.03e-1.el5.rf.x86_64.rpm
PROMPT>> yum install gcc-c++ ## If g++ is not install
PROMPT>> rpm –i bonnie++-1.03e-1.el5.rf.x86_64.rpm
PROMPT>> /usr/sbin/bonnie++ ## Run Bonnie++ without options to check the usage
- **内存基准测试**:
PROMPT>> wget http://icl.cs.utk.edu/projects/llcbench/llcbench.tar.gz
PROMPT>> tar xvfz llcbench.tar.gz
PROMPT>> cd llcbench
PROMPT>> make linux-lam
PROMPT>> cd cachebench
PROMPT>> make
- **网络基准测试**:
PROMPT>> http://superb-dca2.dl.sourceforge.net/project/iperf/iperf/2.0.4%20source/iperf-2.0.4.tar.gz
PROMPT>> yum install gcc-c++
PROMPT>> tar xvfz iperf-2.0.4.tar.gz
PROMPT>> cd iperf-2.0.4
PROMPT>>./configure
PROMPT>> make && make install
  1. 启动不同类型的 VMs :从步骤 1 构建的镜像中启动五种不同类型的 VMs。
  2. 运行测试
    • CPU 基准测试
testNum=3
i=0
while [ $i -lt $testNum ];
do
    /Directory_for_ubench/ubench >> ubench.log ## run the test
    sleep 60 ## wait for 60 seconds
    let i=i+1
done
- **I/O 基准测试**:
/usr/sbin/bonnie++ -d /mnt -s 8g -m centos_server -f -b -u root >> bonnie.log 
- **内存基准测试**:
/Directory_for_cachebench/cachebench -b -x1 -m9 -e1 >> cachebench.log ## run the test 
- **网络基准测试**:
iperf -s -f m >& iperf.server.log.out &
echo "Begin iperf test"
iperf -c 199.26.254.162 -P 4 -f m -w 256K -t 60 >> iperf.client.log.out
sleep 60 ## wait for 60 seconds
iperf -c 199.26.254.162 -P 4 -f m -w 256K -t 60 >> iperf.client.log.out
sleep 60
iperf -c 199.26.254.162 -P 4 -f m -w 256K -t 60 >> iperf.client.log.out
echo "Three iperf tests finished"
  1. 收集和分析结果 :完成基准测试后,检查日志文件(如 ubench.log)获取 CPU 基准测试结果。
4.4 测试结果分析
  • CPU 基准测试结果 :最终结果为反映 CPU 性能的分数。
  • I/O 基准测试结果 :默认输出为 CSV 格式,包含数据读写速度、每秒寻道次数和文件元数据操作次数等信息。
  • 内存基准测试结果 :CacheBench 测量内存访问时间(纳秒)和带宽(MB/秒)。
  • 网络基准测试结果 :Iperf 记录带宽(Mbits/秒)。
5. 通用应用程序测试
5.1 测试方面简介

通用应用程序测试包括 Java 和数据库操作性能测试。使用 SPECjvm2008 测试 Java 运行时环境(JRE)性能,使用 MySQL-Bench 测试 MySQL 数据库操作性能。

5.2 测试设计
  • JRE 性能 :SPECjvm2008 包含多个真实世界应用程序和基准测试,提供每分钟操作数(ops/m)作为指标,包括基础 ops/m 和峰值 ops/m。
  • MySQL 性能 :MySQL-Bench 测试数据库的各种操作,记录执行所有操作的总时间成本(秒)。
5.3 测试工作流程

与虚拟计算资源测试类似,具体步骤如下:
1. 构建镜像
- JRE 基准测试

PROMPT>> wget http://spec.it.miami.edu/downloads/osg/java/SPECjvm2008_1_01_setup.jar
PROMPT>> java -jar SPECjvm2008_1_01_setup.jar -i console
- **MySQL 基准测试**:
PROMPT>> which mysql
PROMPT>> yum remove mysql-server
PROMPT>> yum remove mysql
PROMPT>> yum install mysql-server
PROMPT>> yum install mysql
PROMPT>> yum install mysql-devel
PROMPT>> yum install mysql-bench
PROMPT>> cd /usr/share/sql-bench
  1. 启动不同类型的 VMs :从步骤 1 构建的镜像中启动五种不同类型的 VMs。
  2. 运行测试
    • JRE 性能测试
/Directory_for_SPECjvm2008/run-specjvm.sh startup.helloworld -ikv >> SPECjvm2008.log
- **MySQL 性能测试**:
/usr/share/sql-bench/perl run-all-tests --user=ACCOUNT -password=MYROOTPASSWORD >> sql-bench.log
  1. 收集和分析结果 :检查日志文件(SPECjvm2008.log 和 sql-bench.log)获取测试结果。
5.4 测试结果分析
  • JRE 性能 :测试脚本生成的日志文件记录每秒操作次数和详细性能信息。
  • MySQL 性能 :日志文件记录执行所有操作的时间成本。

通过以上测试,可以全面评估开源云计算解决方案在不同方面的性能,为选择合适的解决方案提供有力依据。后续还将介绍地球科学应用程序(GEOSS Clearinghouse 和沙尘暴预测)的测试方法。

开源云计算解决方案就绪性测试指南

6. GEOSS Clearinghouse 云就绪性测试
6.1 数据交换中心计算要求

GEOSS Clearinghouse(CLH)是一个具有大量并发访问的地理空间门户,可用于测试云平台的并发性能。

6.2 测试设计、工作流程和分析

对商业云测试进行修订后,其矩阵测试也可用于开源云平台测试。测试设计如下:
1. 将 CLH 和 JMeter 安装到三个带有开源云的虚拟机和一个传统本地服务器上。
2. 通过互联网连接这四个解决方案(三个云平台和一个传统计算平台)。
3. 使用 JMeter 从一个解决方案(客户端)向其他三个解决方案(服务器端)发送并发请求来测试 CLH。

三个解决方案的虚拟机可作为服务器,每个解决方案的虚拟机将依次作为测试客户端。最终可从测试中获得这三个解决方案之间的并发性能结果。

graph LR
    A[客户端] --> B[服务器 1]
    A --> C[服务器 2]
    A --> D[服务器 3]
7. 沙尘暴预测云就绪性测试
7.1 沙尘暴预测计算要求

沙尘暴预测既需要大量计算资源,也需要大量通信资源,因此可用于测试开源解决方案支持计算密集型地球科学应用的就绪性。

7.2 测试设计

设计了三组实验来对开源云解决方案进行基准测试:
1. HPC 与云对比 :将由虚拟机构建的虚拟集群与传统集群进行比较,以量化将物理基础设施转换为云的开销。此实验结果将表明解决方案对大规模科学计算的支持程度。在该实验中,比较不同数量的虚拟化(1 - 4 个虚拟机)和非虚拟化计算资源,以研究虚拟化计算能力、存储和网络的影响。
2. 开源解决方案比较 :该实验测试不同解决方案在物理机器上使用不同数量的虚拟机支持计算和通信密集型应用的能力。结果将表明这些云解决方案支持科学计算的性能。
3. 虚拟化技术比较 :该实验比较使用 KVM 和 Xen 虚拟化相同数量计算资源的性能。

7.3 测试工作流程

每组实验的测试工作流程与之前的类似,具体如下:
1. 构建镜像 :为每个云平台构建镜像。
2. 编写脚本 :编写测试脚本以运行模型并记录性能。
3. 启动虚拟机 :使用镜像在每个平台上启动相同数量的虚拟机。
4. 配置环境 :配置模型环境。
5. 运行测试并收集结果 :运行测试并收集结果。

针对三组测试的虚拟机具体配置如下:
1. HPC 与云对比 :在三个解决方案上使用不同数量的进程,在 1、2、3 和 4 个 XXLarge 虚拟机上运行相同的模型模拟。
2. 云中间件比较 :在不同解决方案上添加一组使用两个大型虚拟机的实验。结合之前的性能结果,可比较和测试不同解决方案管理虚拟机的能力。
3. 虚拟化技术比较 :在同一解决方案(如 OpenNebula 或 Eucalyptus)上使用两种不同的流行开源虚拟化技术 KVM 和 Xen 创建 1、2、3 和 4 个虚拟机,并运行模拟。目的是测试 KVM 和 Xen 技术的差异。

7.4 测试结果分析

可根据相关方法解读沙尘暴预测的测试结果输出。

8. 总结

本文详细介绍了如何测试开源云计算解决方案。首先介绍了三款开源解决方案(Eucalyptus、CloudStack 和 OpenNebula)的一般背景、社区和用户反馈。接着阐述了测试环境的搭建,包括硬件配置、操作系统和虚拟机配置等。然后介绍了云资源管理性能的基准测试程序,以及使用不同工具对虚拟计算资源进行基准测试的方法。还给出了通用应用程序(Java 和数据库操作)和地球科学应用程序(GEOSS Clearinghouse 和沙尘暴模拟)的测试策略。提供的测试方法、经验和脚本也可用于测试其他开源解决方案。

9. 常见问题解答
  1. 测试虚拟计算资源应考虑哪些方面?
    • 应考虑 CPU 性能、I/O 性能、内存层次结构性能和网络性能等方面。
  2. 列举可用于测试虚拟计算资源的工具。
    • 可使用 UBench 测试 CPU 性能,Bonnie++ 测试硬盘性能,CacheBench 测试内存层次结构性能,Iperf 测试网络性能。
  3. 测试虚拟云计算资源的一般工作流程是什么?
    • 一般工作流程为:构建镜像、启动虚拟机、运行测试、收集和分析结果。
  4. 如何使用通用应用程序测试开源解决方案?
    • 对于 Java 性能,使用 SPECjvm2008 进行测试;对于 MySQL 性能,使用 MySQL - Bench 进行测试。具体步骤包括构建镜像、启动虚拟机、运行测试和收集分析结果。
  5. 测试开源解决方案时应考虑哪些方面?
    • 应考虑解决方案的成熟度、开源版本的可用性、企业版成本、用户社区规模、公开的质量指标、对不同操作系统和虚拟机的支持、云操作性能、虚拟计算资源性能、通用应用程序性能以及对地球科学应用的支持等方面。
  6. 如何测试开源解决方案支持并发强度的能力?
    • 可使用 GEOSS Clearinghouse 作为测试对象,通过 JMeter 发送并发请求,比较不同解决方案的并发性能。
  7. 如何测试开源解决方案支持计算强度的能力?
    • 可使用沙尘暴预测作为测试对象,设计多组实验,比较不同解决方案在不同虚拟机配置下支持计算密集型应用的能力。
  8. 如何解读测试结果?
    • 不同测试的结果解读方式不同:
      • CPU 基准测试结果以分数反映 CPU 性能。
      • I/O 基准测试结果以 CSV 格式输出,包含数据读写速度、寻道次数等信息。
      • 内存基准测试结果测量内存访问时间和带宽。
      • 网络基准测试结果记录带宽。
      • JRE 性能测试记录每秒操作次数和详细性能信息。
      • MySQL 性能测试记录执行所有操作的时间成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值