亚马逊AWS官方博客

使用 iData 在 AWS 云上实现高性能的 Oracle RAC 集群

在企业上云的过程中, 我们经常不免碰到很多传统 Oracle RAC 的企业用户,他们使用Oracle RAC 来运行其关键任务应用程序,包括大多数金融机构、电信运营商、甚至一些大型零售商,其中高可用性和数据完整性至关重要。如何帮助他们将本地数据中心的 Oracle RAC 迁移到 AWS 云上,客户通常存在很多顾虑和疑问,比如:

  • 企业应用软件采用的是第三方的商业应用软件,在上云过程中无法对软件做适应性改造
  • 单节点的 AWS 托管 Oracle RDS 如何解决高 IOPS 吞吐率要求, 5万+ 、 10万+ 、甚至30万+的 IOPS 要求。
  • AWS EC2 上自建 Oracle RAC 如何解决 Share disk 的问题,如何在线弹性增加容量,增加 IOPS 容量。
  • 如何最小化 Oracle RAC 应用迁移的风险。

 

带着上述客户的疑问和顾虑,我们特别测试了浙江慧优科技有限公司的 iData 在 AWS 云上的解决方案。浙江慧优科技有限公司是一家是智慧数据解决方案提供商,他们自主研发的 iData 产品基于 Oracle RAC 能够将分析计算、存储整合及运维管理融入为一体,为各种 OLTP (联机事务处理)和 OLAP (联机分析处理)业务场景提供强大的处理能力与灵活的扩展能力。为企业级用户提供了数百万级 IOPS 与微秒级别延迟的数据库处理平台,极速提升数据库处理能力,消除数据库热点数据与 I/O 瓶颈,  iData 对应用透明,企业用户基于 Oracle RAC 的应用软件无需进行代码改造即可运行 iData 上,从而实现 Oracle RAC 应用无缝迁移到 AWS 云上的目标。

 

慧优iData on AWS 方案

在 AWS 云中使用 Amazon Elastic Compute Cloud(Amazon EC2) 为 IT 组织提供了传统数据中心所不具备的灵活性和弹性。 iData 借助 AWS 云端的 EC2 Node 上部署 iLink Storage Management 节点存储互连软件,然后在其之上部署 Oracle ASM Cluster 管理系统实现多副本数据的管理,最后部署多节点的 Oracle RAC ,确保数据库系统的高可用和高可靠性。 iData 是专为 Oracle RAC 数据库高可用性而设计的, 具备:

  • 全冗余架构,无单点故障,关键组件在线升级
  • 数据多副本,容忍最大 N-1 节点故障,数据在线同步
  • 远程多活,最大 80KM 跨可用区 RAC ,本地读特性保证网络性能
  • ADG 容灾,跨站点/可用区容灾,高稳定、提供闪回能力
  • 备份,多可用区站点保护,通过多容灾节点 EC2 实现多库保护、备份、集群切换

 

慧优 iData for AWS 的主要组件包括:

  • Amazon EC2 instances
  • Amazon EBS and/or local SSD storage
  • iLink Storage Management software
  • iLink Cloud Network software
  • Oracle Grid Infrastructure software
  • Oracle RAC database engine

 

慧优 iData for AWS 部署架构图:

关键技术介绍

iLink storage management :  iData 是采用慧优科技自主研发的 iLink storage management  存储管理系统软件,采用开放融合架构及可扩展分布式存储机制,将独立的存储资源整合成共享存储池,为数据库计算层提供数据存储资源,保证大规模并发存储访问。同时采用基于优先读机制的本地读取技术实现数据库性能的最大化,更是针对 OS 和驱动的内核进行了优化。

iLink Storage Management  示意图

 

iLink Storage Management 软件在实现组件之间协议互通的基础上,可以充分发挥EC2 Instance计算能力,实现 I/O 性能的无损输出,并实现存储层节点的在线扩容、存储链路的冗余及在线切换。利用远程直接数据存取协议( RDMA )、套接字直接协议( SDP )和零复制( Zero Copy )等技术,减少了内核空间和用户空间上下文切换,利用 AWS VPC 内部网络提高带宽和传输速率,同时也能降低服务器 CPU 的开销,从而高效、快速地实现了高速、低延时的数据传输和同步工作。

iLink Storage Management 并且协同 Oracle ASM 管理的功能实现了数据复制和提供跨节点的多副本容错,在正常冗余模式下,每个数据块都有两个镜像副本。 在高冗余模式下,每个数据块都有三个镜像副本。 每个 ASM 磁盘组分为故障组 – 每个节点一个故障组。 每个磁盘都配置为与磁盘所在节点对应的故障组的一部分。  ASM 将每个块的镜像副本存储在不同的故障组中。这样有效的消除单点故障,保障业务连续性的同时提高数据并发访问性能。

iLink Cloud Network 灵活搭建和管理 Oracle RAC 所需高性能、高可靠组播功能网络,配合 Oracle 12C 更可实现快捷的多租户多网络配置。

 

测试环境概述

本次测试我们采用了3台 C4.8xlarge EC2  实例分别运行在 VPC 的不同 AZ 中,操作系统为 CentOS Linux 7.4 , 每台 EC2 分别挂载了2块 EBS 卷,1块为100GB 通用型 SSD 盘作为系统的 root 根卷,另一块为650GB 的 provisioned IOPS SSD  盘作为 Oracle RAC 的数据卷。

为简单本次测试的软件环境配置,我们把 iLink Storage Management 等软件都部署在Oracle RAC 相同的3台 EC2 节点上,没有采用分开部署的方式。

  • 以下是我们本次测试的详细 AWS EC2 实例配置:
主机名称 aws1 aws2 aws3
EC2 实例类型 c4.8xlarge c4.8xlarge c4.8xlarge
CPU 数目 36 36 36
内存 ( G ) 60 60 60
系统根卷 EBS GP2 100GB EBS GP2 100GB EBS GP2 100GB
数据库卷 EBS io1 650GB EBS io1 650GB EBS io1 650GB
操作系统版本

CentOS 7.4

3.10.0-862.el7.x86_64

CentOS 7.4

3.10.0-862.el7.x86_64

CentOS 7.4

3.10.0-862.el7.x86_64

  • Oracle RAC 数据库配置
数据库名  aws
Oracle 数据库实例名 aws1
aws2
aws3
是否 RAC 集群
RDBMS 版本 11.2.0.4.0
数据文件所占磁盘空间( G ) 74G
DB_BLOCK Size (K) 8192
字符集 AMERICAN_AMERICA.WE8MSWIN1252
表空间个数 10
数据文件个数 9
控制文件个数 2
日志文件大小 2048
日志组数目 12
每组日志文件成员数量 2
归档模式 No Archive
  • EBS 配置

每台 EC2 实例配置一块 Provisioned IOPS EBS 存储,

容量:650G
类型:io1
IOPS:32000

测试目标和内容

本次测试目标主要是以下2个:

  • 数据库 I/O 的性能情况
  • 数据库 TPCC 交易处理的性能情况

测试场景和结果

  • 场景1: 数据库 I/O 吞吐率测试

每个节点上配置一块 Provisioned IOPS 卷 (32000 IOPS ),使用 Oracle IO 性能测试工具,测试 8k 读性能, IO 慢慢加大,一直到最高峰。

【测试结果】: 整个数据库 IOPS 为94266,延迟为 3ms ,带宽 1510MB 。非常接近3块 EBS 卷 Total 96000 IOPS 的峰值。

 

  • 场景2: 数据库 I/O 吞吐率扩展能力测试

分别为每节点增加一块 EBS provisioned IOPS 卷 ( 650GB ), 测试 I/O 吞吐率扩展能力

【测试结果】:整个数据库 IOPS 为191642, 延迟为 1ms ,带宽 2825MB ,完全100%的线性增长

 

  • 场景3:  TPCC Benchmark  压力测试(全读)

使用 swingbench oe 数据模型做TPCC压力测试,数据量 10GB , 2000 用户全读 TPCC 测试:

【测试结果】:交易吞叶率可达 15868 笔/秒,平均交易响应时间为 81 ms , 交易吞吐率和响应时间变化非常平稳。

 

  • 场景4: TPCC Benchmark 压力测试(80%读 + 20%写)

使用 swingbench oe 数据模型做 TPCC 压力测试, 数据量10GB , 2000用户80%读+20%写的 TPCC 测试:

【测试结果】:交易吞叶率可达 15791笔/秒,平均交易响应时间为169ms ,交易吞吐率和响应时间变化非常平稳。

 

  • 场景5: 无 iLink, EBS io1 , GP2 对比测试

我们也对没有使用部署 iLink 的 Oracle RAC on EC2 ,及分别对 io1 和 GP2 不同EBS 卷进行了对比测试,从实际测试的数据中可以看到,在没有部署 iLink 专利技术的情况下, IOPS 的性能只能发挥标定值的 50%,而采用了 iLink 专利技术能够发挥到99.19%,随着 IOPS 标定值配置的越大,基本上也是线性增长,而使用 gp2 普通盘可发挥到标定值 88.93% 的性能,如下图

 

结论

通过上述测试,我们可以清楚的看到采用慧优 iData solution 将传统本地部署的 Oracle RAC迁移到 AWS 云上,可以获得与本地数据中心完全一致的性能,完全可以消除传统企业客户对 Oracle RAC 迁移到AWS云上的顾虑。 iLink Storage Management 可以解决云上的 Share Storage 的问题,结合 EBS 容量弹性增长的特性,当业务高峰期时或业务增长时,用户可以在线无缝的增加数据库存储容量,进而实现数据库 IOPS 的弹性增长。 iData 对应用透明,企业用户基于 Oracle RAC 的应用软件无需进行代码改造即可运行 iData 上,从而实现 Oracle RAC 应用无缝迁移到 AWS 云上的目标。

本篇作者

袁春华

亚马逊AWS解决方案架构师,AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内和全球的应用和推广,在大规模并发应用架构、移动应用以及无服务器架构等方面有丰富的实践经验。在加入AWS之前曾长期从事互联网应用开发,先后在新浪、唯品会等公司担任架构师、技术总监等职位。对跨平台多终端的互联网应用架构和方案有深入的研究。