11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2019-10-09
  • 本文字数:3526 字

    阅读完需:约 12 分钟

使用 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 实例配置:


主机名称aws1aws2aws3
EC2 实例类型c4.8xlargec4.8xlargec4.8xlarge
CPU 数目363636
内存 ( G )606060
系统根卷EBS GP2 100GBEBS GP2 100GBEBS GP2 100GB
数据库卷EBS io1 650GBEBS io1 650GBEBS io1 650GB
操作系统版本CentOS 7.4 3.10.0-862.el7.x86_64CentOS 7.4 3.10.0-862.el7.x86_64CentOS 7.4 3.10.0-862.el7.x86_64


Oracle RAC 数据库配置


数据库名aws
Oracle 数据库实例名aws1
Oracle 数据库实例名aws2
Oracle 数据库实例名aws3
是否 RAC 集群
RDBMS 版本11.2.0.4.0
数据文件所占磁盘空间( G )74G
DB_BLOCK Size (K)8192
字符集AMERICAN_AMERICA.WE8MSWIN1252
Oracle 数据库实例名单元格
Oracle 数据库实例名单元格
数据库名aws
表空间个数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 之前曾长期从事互联网应用开发,先后在新浪、唯品会等公司担任架构师、技术总监等职位。对跨平台多终端的互联网应用架构和方案有深入的研究。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/idata-aws-oracle-rac-group/


2019-10-09 11:03500
用户头像

发布了 1530 篇内容, 共 61.6 次阅读, 收获喜欢 66 次。

关注

评论

发布
暂无评论
发现更多内容

在线蚂蚁文,菊花文生成工具

入门小站

工具

flask框架【入门学习笔记一】

黎燃

5月月更

如何透过 Serverless 与 API 的方式异步搜寻数据湖中的数据

亚马逊云科技 (Amazon Web Services)

Serverless 数据 API

在线HTML转JSON工具

入门小站

工具

Amazon CodePipeline 与 GitHub 集成

亚马逊云科技 (Amazon Web Services)

GitHub Code

M_5: 设计微博系统中”微博评论“的高性能高可用计算架构。

Jadedev

架构训练营

WordPress 编辑用户

海拥(haiyong.site)

WordPress 5月月更

Artery —— 单页面应用接口描述语言简介

全象云低代码

前端 低代码 流程 页面 artery

Flutter 使用 Provider 实现嵌套状态管理

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

linux之crontab使用技巧

入门小站

Linux

LinkedList 源码分析-迭代器

zarmnosaj

5月月更

SAP OData V4 模型支持的一些数据绑定模式

Jerry Wang

JavaScript 前端开发 SAP ui5 5月月更

跨平台应用开发进阶(十二) :uni-app 实现应用桌面图标角标提示及应用跳转

No Silver Bullet

uni-app 5月月更 桌面角标

1.1 历史长河中的顶层设计

凌晞

电商系统微服务拆分

Trent

架构 微服务拆分 电商 训练营

[ CloudWeGo 社区动态 ] Kitex 电商项目案例

baiyutang

Go 微服务 5月月更

SpringMVC源码分析:POST请求中的文件处理

程序员欣宸

Java spring 5月月更

Kubernetes 节点弹性扩展实践组件 Amazon Karpenter:部署 GPU 推理应用

亚马逊云科技 (Amazon Web Services)

Kubernetes 部署

规模化软件开发的必由之路—大规模自动化测试

刘冉

自动化测试

小公司里面的 Python 后端,数据库(MySQL)到底要学习到什么程度?

梦想橡皮擦

5月月更

PostgreSQL出现死锁怎么办?

慕枫技术笔记

数据库 5月月更

【刷题第16天】数组中出现次数超过一半的数字

白日梦

5月月更

C++最佳实践 | 1. 工具

俞凡

c++ 最佳实践

数据结构-复杂度计算经典案例

芒果酱

数据结构 算法 5月月更

Linux 入门及常见Shell命令

宇宙之一粟

Linux Shell 5月月更

数学建模学习资料

乌龟哥哥

5月月更

【C 语言】指针 Five 之 ["​⚔ 空指针 - NULL、💣 指针使用之前检查有效性、🗡 指针运算 💣 指针+- 整数、💣 指针 - 指针、指针关系运算、💣 标准规定、⚔ 指针和数组、⚔ 二级指针、⚔ 指针数组"]

謓泽

5月月更

react-router原理分析

正经工程师

React React-Router

架构学习(一)

爱晒太阳的大白

5月月更

从“数据”到“大数据”,激发数据潜力,深耕智能应用!

亚马逊云科技 (Amazon Web Services)

大数据 数据 智能开发

跨平台应用开发进阶(十一) :uni-app 实现IOS原生APP-云打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app ios 5月月更 云打包 原生APP

使用 iData 在 AWS 云上实现高性能的 Oracle RAC 集群_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章