亚马逊AWS官方博客

油气服务行业软件落地“亚马逊云科技中国区域”的技术实践与总结

1.背景:

作为传统能源消耗的旺季,北半球2022年的春天似乎来的格外不平静。

目前,全球范围内正在进行新旧能源的转换。在中国,“如何助力实现碳达峰、碳中和目标”也成了当下油气产业最重要的课题。充足的清洁能源供应,既能帮助全球解决当前的能源危机,也能为可再生能源的推广构建一个坚实且稳定的基础。而在清洁能源供应中,勘测与勘探扮演了重要的角色。

长期以来,地球物理以及油气勘探都是高性能计算的主要应用领域,生成地质统计学反演的不同实现同样也是一个计算密集型的过程。

为满足各大油气服务企业将软件快速落地中国的需求,亚马逊云科技和行业内知名公司在软件部署、易用性、成本优化等方面进行了一系列的探索。接下来,我会详细介绍在油气行业数字化创新实践中使用到的解决方案及部署过程中的技术问题。

2.解决方案概述:

为帮助油气服务企业在“亚马逊云科技中国区域”(光环新网运营北京区域,西云数据运营宁夏区域)快速部署其软件,我们使用 Scale-Out Computing on AWS中国区解决方案。

Scale-Out Computing on AWS,简称SOCA,可帮助用户轻松地部署和运营一个多用户环境,以执行计算密集型工作,满足油服软件在高性能计算场景下的大型负载需求。


SOCA解决方案架构图

场景技术说明:

3.部署 SOCA 解决方案:

步骤1:使用 SOCA启动并配置基础设施

打开中国区CloudFormation控制台,使用Amazon S3 URL( https://nwcd-samples.s3.cn-northwest-1.amazonaws.com.cn/soca/v2.6.4.1/templates/scale-out-computing-on-aws-without-es.template )创建CloudFormation堆栈。

该堆栈模版为基础版本,可基于该模版进行定制开发,如页面功能调整、指定可启动自定义AMI、启动机型实例范围,以及存储的选型等。

创建CloudFormation堆栈时,需提供以下参数:主要涉及Scheduler instance机型、操作系统、允许访问的网络配置、以及登录SOCA Web UI控制台的初始用户名及密码。

整个创建过程需大约30-40分钟完成部署及配置。完成后,可通过CloudFormation Stack(CloudFormation 堆栈)-> Outputs(输出)-> WebUserInterface(Web 用户界面)下的 HTTPS 链接访问SOCA界面。

有关部署SOCA的详细说明,请访问:https://awslabs.github.io/scale-out-computing-on-aws/install-soca-cluster/

步骤2: 自定义 Amazon系统映像(AMI)

对于大型集群,建议从亚马逊云科技Marketplace提供的操作系统开始,然后根据软件应用程序要求对其进行自定义。然后通过安装SOCA解决方案所需的系统软件包对其进行自定义,以减少计算节点启动时间。

例如:系统管理员可在“EC2启动向导”中搜索“nice dcv”找到所需初始化镜像(见下图),根据软件所需操作系统选择启动后,进行软件的安装、系统配置、以及所需初始化数据的上传等等。

Tips

假如软件部署于Windows操作系统,则需完成以上步骤完成后,在Windows开始菜单中,执行以下操作:
对于Windows Server 2008至Windows Server 2012 R2,打开 EC2ConfigService Settings (EC2ConfigService 设置),然后选择 Image (映像) 选项卡。
对于 Windows Server 2016或更高版本,打开 EC2 Launch Settings (EC2 启动设置)。
并选择“Shutdown without Sysprep (不使用Sysprep关闭)”

当在该启动的实例中,完成所有的AMI自定义操作后,可进入Amazon EC2控制台,选择该自定义的实例,点击 Actions(操作)-> Image(映像)-> Create Image(创建映像)并记下 AMI ID。

完成AMI制作后,进入SOCA控制台“镜像管理”中使用创建好的AMI ID完成注册,便可在工作站工作站实例中使用自定义AMI。

有关自定义AMI的步骤的详细说明,请参见此处:https://awslabs.github.io/scale-out-computing-on-aws/tutorials/reduce-compute-node-launch-time-with-custom-ami/

步骤 3:设置License服务器

油气服务软件需要完成许可认证,所以在对于大规模测试、计算的集群节点与许可证服务器之间的延迟越小越好。

因此,在SOCA自动生成的Amazon VPC中的Scheduler Instance部署并启动软件的License服务,也可单独在该VPC中预置一台实例进行软件License服务的部署(如下图)。


Linux操作系统中油服软件License服务进程


Windows操作系统某油服软件License服务安装

然后在启动的工作站中,进行软件的License配置,设置指定License服务所部署实例的内网IP(如图),即可完成对应软件的授权服务。


Linux操作系统某油服软件配置License server IP地址


Windows操作系统某油服软件配置License server IP地址及端口

步骤 4:使用NICE DCV连接远程桌面会话

使用步骤1中的用户名/密码登录SOCA Web界面后,系统管理员可以在“用户管理”中完成SOCA终端用户的创建及管理,SOCA使用LDAP (Lightweight Directory Access Protocol) 完成统一用户认证管理和单点登录。

终端用户登录后,可根据软件所需不同的操作系统选择Windows或Linux远程桌面。在会话#1下,可以根据实际需求启动不同的实例类型、磁盘大小及是否使用步骤2中的自定义AMI,然后点击“创建会话#1”。

当会话准备好后,即可直接从浏览器访问会话,或者为Mac / Linux / Windows下载NICE DCV本地客户端,并通过本地客户端访问会话。

接下来,就可以启动软件并进行软件对应的地震资料处理,地质建模(地震反演模拟),油藏数值模拟等工作。

有关图形访问的更多详细信息,请访问 https://awslabs.github.io/scale-out-computing-on-aws/access-soca-cluster/#graphical-access-using-dcv

步骤5:启动作业脚本

SOCA通过PBS(Portable Batch System)实现对集群可用计算节点的资源管理和计算作业的调度,主要包含四个组件:命令组件、作业服务器、作业执行组件和作业调度器。当用户提交作业任务后,会进入队列中排队等待,系统会根据作业的优先级和可用的计算资源来调度和执行作业。

当终端用户有集群作业需求时,首先创建一个简单的文本文件并将其命名为“ job_submit.que ”。请参考简单模板(根据实际场景编辑 ** 之间的内容):

#!/bin/bash<br />## BEGIN PBS SETTINGS: Note PBS lines MUST start with #<br />#PBS -N **your_job_name**<br />#PBS -V -j oe -o **your_job_name**.qlog<br />#PBS -P **your_project**<br />#PBS -q **your_queue**<br />#PBS -l nodes=**number_of_nodes_for_this_job**<br />## END PBS SETTINGS<br />## BEGIN ACTU#!/bin/bash
## BEGIN PBS SETTINGS: Note PBS lines MUST start with #
#PBS -N **your_job_name**
#PBS -V -j oe -o **your_job_name**.qlog
#PBS -P **your_project**
#PBS -q **your_queue**
#PBS -l nodes=**number_of_nodes_for_this_job**
## END PBS SETTINGS
## BEGIN ACTUAL CODE
** your code goes here **
## END ACTUAL CODE
AL CODE<br />** your code goes here **<br />## END ACTUAL CODE

然后,可通过Web页面“作业管理”或Terminal方式(qsub job_submit.que)以脚本方式进行作业提交并通过“队列查看器”进行作业状态的查看。

当作业提交成功后,只需等待5分钟左右,作业就会根据配置的PBS节点,开始执行。

Tips
作业节点是根据任务执行情况按需生成且自动终止的,并与给定的作业ID相关联。如果实际场中需要,可启动用于全天运行的“AlwaysOn”实例。
如果模拟需要大量磁盘I/O,建议使用高性能SSD-NVMe实例存储磁盘(磁盘目录为/scratch)而不是默认的 $HOME 路径。

有关集群作业的更多详细信息,请访问https://awslabs.github.io/scale-out-computing-on-aws/tutorials/launch-your-first-job/

4.结论

借助SOCA,为油气服务行业的地球科学家和工程师们提供一个方便且易用的平台。以下是通过和油气服务行业不断合作探索中的一些总结:

  • 易用性通过SOCA提供的可视化UI和远程桌面会话,完成应用程序的调试及3D建模,简化在HPC平台的交互。
  • 高效灵活借助亚马逊云科技的产品服务能力能够按需增加或减少系统资源,以满足不断变化的数据模拟需求。
  • 成本优化运行HPC模拟作业利用亚马逊云科技按需付费定价模型,处理任务的成本远低于管理内部服务器和人员来处理资源的成本。
  • 本地化:依托由西云数据运营的亚马逊云科技中国(宁夏)区域,能够在更贴近客户的位置以更低的延迟、更本地化的体验为中国的油气勘探开发企业提供服务。

本篇作者

胡靖麟

西云数据 解决方案架构师,10年以上计算广告、微服务、大数据等领域的互联网研发、架构设计实践经验