云端赋能的 Climate@Home 系统:助力气候建模与分析
1. 项目背景与系统架构
气候建模通过量化大气、陆地、海洋和海冰之间的相互作用,以数值描述的方式重建过去并预测未来的气候状况。这一过程既需要大量的计算资源,也会产生海量的数据。为了应对这些挑战,Climate@Home 项目应运而生,旨在构建一个虚拟超级计算机,以支持气候建模。
该项目的核心是开发一个计算和数据管理系统,具备以下功能:
1. 协作计算环境:将模型模拟任务分配到各个计算设备。
2. 数据仓库:存储来自多个来源的数据集,包括模型输出、分析结果和资源状态。
3. 在线可视化分析组件:便于进行早期科学探索和系统状态分析。
4. 安全的在线访问接口:确保对上述三个功能的安全访问。
系统主要由两个组件构成:
-
空间 Web 门户
:整合了多个前端组件和后端功能,使用 Drupal 作为内容管理系统。同时,集成了基于在线 Web 地图应用(如 Bing Maps 和 Google Earth)的地理可视化分析端口和资源管理端口,支持对气候数据的地理可视化分析和对贡献计算资源的可视化管理。
-
BOINC 服务器
:作为网格引擎,负责分配 ModelE 模拟任务、收集模型输出,并与 BOINC 客户端进行协调。每个公民贡献的计算设备都被视为一个 BOINC 客户端。由于 ModelE 是基于 Linux 的气候模型,因此使用 Oracle 的 VirtualBox 创建 Linux 虚拟机。
2. 面临的挑战
在开发该系统时,需要解决以下几个关键挑战:
-
构建可扩展和弹性的数据仓库
:数据仓库需要能够存储大量的气候数据集,并根据数据操作模式(如上传、删除和下载)动态调整配置。
-
处理分布式数据通信和并发访问
:现有的地理可视化分析工具在网络环境中处理大规模时空气候数据集的交互式分析功能不足,因此需要开发一种能够处理分布式数据通信和并发访问的机制。
-
提供可靠和强大的集中管理网络基础设施
:项目包含多种类型的资源,资源的异质性增加了集中管理的难度,同时也对支持集中管理的网络基础设施的可靠性和健壮性提出了挑战。
3. 部署与优化
为了解决上述挑战,将空间 Web 门户和 BOINC 服务器部署到云服务上,以提高系统性能和可靠性。以下是部署到 Amazon EC2 的一般工作流程:
3.1 部署空间 Web 门户
- 授权网络访问 :打开端口 22、80 和 8080。端口 22 用于通过 SSH 访问实例,端口 80 是 Apache2 Web 服务器所需的端口,端口 8080 由 Tomcat 服务器使用。
- 启动实例 :选择具有 Ubuntu 12.04 操作系统的公共 Amazon Machine Image (AMI) 作为基础镜像,创建一个实例进行进一步定制。
- 配置 Elastic Block Storage (EBS) :可选步骤,详细配置可参考相关文档。
- 安装软件包 :安装并配置所需的软件包,包括 Apache2 Web 服务器、MySQL 和 Tomcat 服务器。
- 传输源代码和数据库 :将 Drupal 源代码移动到 Apache2 Web 服务器的 Web 文件夹中,将地理可视化分析端口移动到 Tomcat 服务器的 Web 文件夹中。数据库文件应移动到实例中的安全文件夹中,以备后续恢复。
root@ip-10-189-149-104:/mnt$ mysqldump –u username –p climatehome > climatehome.sql # 使用 root 账户转储 "climatehome" 数据库
- 恢复数据库 :在导入数据库文件之前,需要创建一个数据库用户。
root@ip-10-189-149-104:/mnt$ mysql –u username –p # 使用 root 登录 mysql 数据库
mysql>create user 'climateuser'@localhost identified by 'password' # 为门户创建一个用户账户(例如 climateuser)
mysql>create database climatehome # climate@home drupal 数据库的名称
mysql> grant all privileges on climatehome.* to 'climateuser'@localhost identified by 'password' # 授予数据库权限
mysql>flush privileges
mysql>exit # 退出 mysql
root@ip-10-189-149-104:/mnt$ mysql -u username -p climatehome< climatehome.sql # 在云服务器上导入 climatehome 数据库 climatehome.sql
- 启动服务器并配置 Web 门户 :启动 Apache2 和 Tomcat 服务器,并配置 Web 门户。
root@ip-10-189-149-104:/$ sudo service apache2 start
root@ip-10-189-149-104:/Tomcat/bin/$ ./startup.sh
- 配置负载均衡或可扩展性 :可选步骤,以提高系统的灵活性和可扩展性。
- 从运行实例创建 AMI :最后一步是基于运行中的 Climate@Home 门户实例创建一个新的 AMI,以便重复使用。
3.2 部署 BOINC 服务器
- 授权网络访问 :打开端口 22 和 80。端口 22 用于通过 SSH 访问实例,端口 80 用于 HTTP。
- 启动实例 :选择具有 Ubuntu 12.04 操作系统的公共 AMI 作为基础镜像,创建一个实例进行进一步定制。由于 BOINC 服务器需要处理客户端和服务器之间的大量并发数据传输,因此实例的硬件配置至关重要。
- 配置 EBS :由于 Climate@Home BOINC 服务器使用分布式 FTPS 服务器存储上传的结果,因此 EBS 对于 BOINC 服务器是可选的。
- 安装软件包 :安装 MySQL、Apache2 Web 服务器、Python、php5 等软件包。
- 安装 BOINC 服务器软件 :具体安装说明可参考在线内容。
- 创建 BOINC 项目并配置服务器 :安装完成后,创建一个 BOINC 测试项目,将 ModelE 应用程序分发给公民贡献的计算设备。
- 上传 ModelE 虚拟盒镜像和配置文件 :将 ModelE 虚拟盒镜像放入 BOINC 服务器的应用程序文件夹中,将 ModelE 配置文件放入“climateathome”项目的下载文件夹中。
- 配置负载均衡或可扩展性 :可选步骤,以提高 BOINC 服务器的灵活性和可扩展性。
- 创建工作单元并启动项目 :使用输入和输出模板创建工作单元并启动项目。
boincadm@ip-10-189-149-104:~/projects/climateathome $ bin/create_work -appname modelE -wu_name E4M20a_00040e -wu_template templates/E4M20a_000040_wu.xml -result_template templates/climateathome_re.xml E4M20a_000040.R
boincadm@ip-10-189-149-104:~/projects/climateathome $ bin/start
- 从运行实例创建 AMI :基于运行中的 BOINC 服务器实例创建一个新的 AMI,以便重复使用。
4. 特殊考虑事项
在部署空间 Web 门户和 BOINC 服务器时,需要考虑以下特殊事项:
-
门户配置
:使用相对路径而不是绝对路径,并使用“localhost”作为数据库用户账户,以减少切换托管服务器的影响。
-
备份数据和虚拟机
:将 MySQL 数据文件保存在单独的 EBS 卷上,以提供持久存储。在实例发生故障时,可以克隆 EBS 卷并恢复数据库。
-
负载均衡和自动扩展
:利用云的按需计算能力,考虑负载均衡和自动扩展,以处理大量请求。
-
BOINC 服务器的 AMI 选择
:选择具有 8GB RAM 和 2 核 CPU 的实例,同时确保数据存储足够大,以存储从客户端上传的 TB 到 PB 级别的气候数据集。此外,应选择具有高 Internet I/O 性能和高存储 I/O 性能的实例。
5. 系统演示
系统的三个主要组件具有以下功能:
-
空间 Web 门户
:提供项目入口点,支持用户注册、下载 BOINC 可执行文件和交流论坛。同时,集成了社交媒体工具,用于信息共享和推广。
-
地理可视化分析端口
:提供一系列可视化分析功能,集成了多维可视化工具(如 NASA World Wind、Microsoft Bing Maps、Google Maps 和 Google Earth),并使用 netCDF 运算符支持统计分析功能。
-
资源管理端口
:以可视化方式监控、管理和呈现与模型运行相关的实时信息,包括 ModelE 输入配置、用户信息、模型运行状态和模型实验总结。
6. 云服务的优势
通过将系统部署到云服务上,获得了以下优势:
| 云服务类型 | 配置 | 网络 | AWS 成本 | 用途 |
| — | — | — | — | — |
| 云数据存储 | 10 TB | N/A | $0.080/GB - 月(Amazon S3);$0.095/GB - 月(Amazon EBS) | 存档模型输出和可视化结果 |
| 云 Web 服务器 | 8 核 2.33GHz;16G RAM | 1G | $0.299/小时(租 1 年);$0.236(租 3 年);$0.5/小时(按小时计费) | 托管空间 Web 门户 |
| BOINC 服务器 | 8 核 2.33GHz;16G RAM | 1G | $0.299/小时(租 1 年);$0.236(租 3 年);$0.5/小时(按小时计费) | 作为网格引擎机器 |
- 数据存储 :使用云存储服务可以解决管理“大数据”的可扩展性问题,并且根据数据大小、使用时长和存储类型的不同,成本也有所不同。
- 并发访问处理 :将空间 Web 门户部署到云服务上,可以高效地响应大量请求,通过负载均衡和可扩展性,甚至可以实现多站点部署,提供全球范围内的高速网络连接。
- 服务器可靠性 :将 BOINC 服务器部署到云环境中,可以确保模型模拟管理的健壮性、高性能、安全性和可靠性。大多数云服务都保证了较高的可用性,例如 Amazon EC2 服务级别协议(SLA)保证了所有 Amazon 云数据中心 99.95% 的可用性。
7. 未来研究方向
尽管该项目取得了一定的成果,但仍有一些问题值得进一步研究:
-
用户评估组件
:开发一个用户评估组件,让公民贡献者和科学家能够测试系统的功能和性能,以便更好地改进系统。
-
高效计算框架
:开发一种高效的计算框架,根据公民贡献的计算设备的可靠性、历史性能和网络连接性分配任务。
-
云分布式数据管理策略
:设计并实施一种基于云的分布式数据管理策略,充分利用云存储服务的可扩展性和弹性。
-
空间 Web 门户的优化部署
:基于时空原则探索空间 Web 门户的最佳部署解决方案,考虑用户访问模式等因素对系统性能的影响。
通过云端赋能的 Climate@Home 系统,我们在气候建模和分析方面取得了重要进展。未来,随着技术的不断发展和研究的深入,该系统有望为全球气候研究做出更大的贡献。
云端赋能的 Climate@Home 系统:助力气候建模与分析
8. 部署流程对比
与一般的部署步骤相比,Climate@Home 系统的部署具有以下特点:
-
多组件部署
:系统包含网格引擎服务器(BOINC 服务器)和空间 Web 门户,门户又集成了地理可视化分析端口、数据库管理接口和基于 Drupal 的内容管理系统等多个复杂组件,部署云服务器需要配置多种软件包。
-
多服务器部署与配置
:空间 Web 门户中使用了 Apache2 Web 服务器和 Tomcat 服务器两个不同的 Servlet 容器来托管不同组件,这可能会导致端口安排等冲突问题。
-
处理计算和网络密集型任务
:处理大规模数据的交互式地理可视化分析既需要大量通信,也需要大量计算。部署时需要考虑系统的可扩展性和负载均衡,以应对大量并发访问,同时在选择 AMI 时要考虑请求处理效率。
9. 问题探讨
以下是一些关于 Climate@Home 系统的常见问题及解答:
1.
支持分布式环境下气候建模和分析的主要系统组件有哪些?
- 主要包括空间 Web 门户、BOINC 服务器、地理可视化分析端口和资源管理端口等。空间 Web 门户提供项目入口和用户交互功能;BOINC 服务器作为网格引擎,负责任务分配和数据收集;地理可视化分析端口用于数据的可视化和统计分析;资源管理端口用于监控和管理模型运行相关信息。
2.
为什么云计算技术对分布式环境下的气候建模和分析至关重要?
- 云计算技术可以提供可靠、可扩展且具有成本效益的网络基础设施。云存储服务可以解决“大数据”管理的可扩展性问题,根据数据量动态调整存储容量;云服务器可以通过负载均衡和可扩展性高效处理大量并发请求;部署在云环境中的服务器可以保证系统的健壮性、高性能、安全性和可靠性。
3.
将空间 Web 门户部署到云服务的主要步骤有哪些?网络配置方面有哪些特殊考虑?
-
主要步骤
:
1. 授权网络访问,打开端口 22、80 和 8080。
2. 启动具有 Ubuntu 12.04 操作系统的公共 AMI 实例。
3. 可选配置 EBS。
4. 安装 Apache2 Web 服务器、MySQL 和 Tomcat 服务器等软件包。
5. 传输源代码和数据库。
6. 恢复数据库。
7. 启动服务器并配置 Web 门户。
8. 可选配置负载均衡或可扩展性。
9. 从运行实例创建 AMI。
-
网络配置特殊考虑
:打开特定端口以满足不同服务器和服务的需求,如 SSH 访问、Web 服务和 Tomcat 服务。
4.
将 BOINC 服务器部署到云服务的主要步骤有哪些?与一般应用部署相比有哪些特殊考虑?
-
主要步骤
:
1. 授权网络访问,打开端口 22 和 80。
2. 启动具有 Ubuntu 12.04 操作系统的公共 AMI 实例。
3. 可选配置 EBS。
4. 安装 MySQL、Apache2 Web 服务器、Python、php5 等软件包。
5. 安装 BOINC 服务器软件。
6. 创建 BOINC 项目并配置服务器。
7. 上传 ModelE 虚拟盒镜像和配置文件。
8. 可选配置负载均衡或可扩展性。
9. 创建工作单元并启动项目。
10. 从运行实例创建 AMI。
-
特殊考虑
:BOINC 服务器需要处理大量并发数据传输,因此实例的硬件配置至关重要,需要选择具有足够内存、CPU 和高 I/O 性能的实例。
5.
作为 BOINC 服务器的虚拟机的硬件配置要求是什么?
- 建议选择具有 8GB RAM 和 2 核 CPU 的实例,同时数据存储要足够大,以存储从客户端上传的 TB 到 PB 级别的气候数据集。此外,应选择具有高 Internet I/O 性能和高存储 I/O 性能的实例。
6.
在云端启用的 Climate@Home 系统中,弹性块存储(EBS)有什么用途?
- EBS 可以提供持久存储,将 MySQL 数据文件保存在单独的 EBS 卷上,在实例发生故障时,可以克隆 EBS 卷并恢复数据库,保证数据的安全性和可恢复性。
7.
Climate@Home 系统部署中使用了哪些云服务?
| 云服务类型 | 用途 |
| — | — |
| 云数据存储(如 Amazon S3、Amazon EBS) | 存档模型输出和可视化结果 |
| 云 Web 服务器 | 托管空间 Web 门户 |
| BOINC 服务器 | 作为网格引擎机器 |
8.
将 Climate@Home 组件部署到云端还存在哪些问题?
- 目前还需要开发用户评估组件,以测试系统功能和性能;开发高效计算框架,合理利用公民贡献的异构计算资源;设计并实施云分布式数据管理策略,充分发挥云存储的优势;探索基于时空原则的空间 Web 门户优化部署方案。
10. 总结
Climate@Home 系统为大规模、长期的气候建模和分析提供了全面的计算和数据管理解决方案。通过将空间 Web 门户和 BOINC 服务器部署到云服务上,系统的性能和可靠性得到了显著提升。云计算技术为系统提供了可靠、可扩展且具有成本效益的网络基础设施,解决了大数据管理、并发访问处理和服务器可靠性等问题。
然而,系统仍有一些方面需要进一步研究和改进,如用户评估、高效计算框架、云分布式数据管理和门户优化部署等。未来,随着技术的不断进步,Climate@Home 系统有望在全球气候研究中发挥更大的作用。
以下是空间 Web 门户部署流程的 mermaid 流程图:
graph LR
A[授权网络访问] --> B[启动实例]
B --> C{配置 EBS?}
C -- 是 --> D[配置 EBS]
C -- 否 --> E[安装软件包]
D --> E
E --> F[传输源代码和数据库]
F --> G[恢复数据库]
G --> H[启动服务器并配置 Web 门户]
H --> I{配置负载均衡或可扩展性?}
I -- 是 --> J[配置负载均衡或可扩展性]
I -- 否 --> K[从运行实例创建 AMI]
J --> K
通过以上内容,我们对 Climate@Home 系统的架构、部署、优势和未来发展方向有了更深入的了解。希望这些信息能为相关领域的研究和实践提供有益的参考。