当Windows超融合遇上Oracle RAC:S2D测试之四

简介: - SwingBench压力工具的I/O和CPU负载; - 计划内维护:虚拟机迁移测试; - 破坏性测试1:存储节点Reset; - 破坏性测试2:RAC+存储节点Reset; - Orion OLAP测试:单虚机10GB/s+带宽

本文内容要点:

1、  Windows+S2D超融合上搭建Oracle RAC

2、  SwingBench压力工具的I/OCPU负载

3、  计划内维护——虚拟机迁移测试

4、  破坏性测试1:存储节点Reset

5、  破坏性测试2RAC+存储节点Reset

6、  Orion OLAP测试:意料中的单虚机10GB/s+带宽

 

接前文:《4节点近160IOPSSDS/超融合测试不能只看数字

12万邮箱ESRP测试:Exchange超融合存储设计漫谈

揭秘VDI存储测试:4节点SDS模拟12000虚拟桌面

 

在上一篇评测发表之后,有朋友提到如果只用4个节点(超融合)VDI是无法支撑12千个虚拟桌面的。没错,所以我们写“SDS”就是设计的计算——存储节点分离式架构。

 

同时我也承认,像VMware VSAN、微软S2D这种操作系统/HyperVisor内置的SDS/Server SAN,当前大多数用户采用超融合部署方式,并且节点数普遍不是太多。

 

能否支持Oracle RAC集群,如今对几家主流大厂的超融合方案已经不是难题了。在开始介绍本文的验证测试之前,我们再次查阅了Oracle网站上的支持信息。

 

http://www.oracle.com/technetwork/database/virtualizationmatrix-172995.html

 

Supported Virtualization and Partitioning Technologiesfor Oracle Database and RAC Product Releases

 

Unix, Linux, & Windows Operating Systems

 

0?wx_fmt=png

截取的这个表格,只包含OS和虚拟化技术的认证,应该还不包括S2D存储功能。

 

与前面三篇评测相同,我们是在Windows Server 2016 DataCenter系统上搭建的微软S2DStorage SpacesDirect)存储和Hyper-V集群。至本文截稿之日,WS 2016虚拟机+Oracle 12c R212.2)已经出现在甲骨文的支持列表中,早些时候还只有WS 2012的信息。因此我们也先后尝试过在2种虚拟机OS版本上安装RAC,总体上都还比较顺利。

 

准备工作:Oracle 12cR2 RAC搭建

 

0?wx_fmt=png

虽然上图中写了VHD Set不支持Windows 10之前的(虚拟机)操作系统,但我们测试中分配给Windows Server 2012 R2ASM磁盘是正常使用的。

 

需要注意的是,在S2DCSV(集群共享卷)上创建Oracle ASM使用的磁盘镜像时,应该选择VHD Set而不是VHDX,因为这些磁盘需要同时挂载多个虚拟机到共享访问

 

0?wx_fmt=png

为不同节点上2RAC虚拟机分配的Oracle ASM数据磁盘,分别来自Owner在多个节点上的CSV。在网络不是瓶颈的情况下(测试环境为100Gb RDMA以太网),这样做有利于性能。

 

上面是单个数据库虚拟机的配置信息。由于我们使用的Dell PowerEdge R630服务器上是210核(20线程)CPU128GB内存,这次就为虚拟机分配了40个虚拟处理器和64GB内存。关于磁盘(SSD)的配置情况我还会陆续交待。

 

0?wx_fmt=png

注:物理Server后面的数字代表管理网口IP

 

为了帮助大家更好地理解,我们画了上面的示意图,其中简略了微软S2D的一些层次结构。

 

(1)      每个CSV上的VHD Set磁盘文件,其数据块打散分布在4台服务器上的28SSD

(2)      虚拟机访问数据时会经过CSV当前的Onwer节点,如果它们正好在同一节点,会享受到超融合的本地读优化。在最常用的2节点RAC方案中,为了使S2DCSV存储开销平均分布到4个节点,我们配置了“完全互连”的磁盘组,也就是2VM对应3-4CSV

(3)      Oracle RAC安装、SwingBench与可用性(破坏)测试部分,我们使用了来自3个节点CSVASM磁盘;后面的Orion测试则用上了全部4个节点OnwerCSV

 

0?wx_fmt=png

如上图,由于S2D本身已经是3副本保护,所以在创建ASM磁盘组时选择“外部冗余”就可以了。

 

SwingBench压力工具的I/OCPU负载

 

0?wx_fmt=png

由于本文主要目的在于可用性验证,装好Oracle RAC集群后我们几乎没有做任何调优,在SwingBench中选择了一个简单的事物开始压测。双节点的TPS(每秒交易数)有时能达到16000TPM(每分钟交易数)超过93万。

 

记得我们之前在《Optane P4800X评测(2)Oracle 170TPM意味着什么?》一文中调优后测出有实用意义的TPS为单机13000,不过那套DellPowerEdge R830服务器是410Xeon E5-4610 v4 1.8GHz CPU。另外跑的事物类型也不相同,没必要直接对比。

 

0?wx_fmt=png

 

除了TPS/TPM我们还要关注S2D集群上的存储负载。在上述测试中两个Oracle虚拟机的IOPS请求加在一起也没有超过2万,此时的压测显然是CPU成为了瓶颈

 

0?wx_fmt=png

2R630服务器上的CPU都跑满了,并且Xeon E5-2640v4Turboboost2.57GHz的频率。根据我们以前对S2D的了解,每节点的CPU至少能支撑40万以上4KBIOPS,所以当前的压力绝大部分来自于RAC数据库。

 

倒不是说Oracle就不能把压力加到存储上。我们换了一个压力模型,2个节点总IOPS达到了23(如下图)。不过此时TPS看上去并不养眼,应该是因为复杂长事物中的I/O操作较多吧。

 

0?wx_fmt=png

Oracle OLTP应用的典型I/O大小就是8KB。对于超融合用户来说,可以评估下这个IOPS是否能满足自己应用的需求。

 

计划内维护——虚拟机迁移测试

 

0?wx_fmt=png

Oracle RAC集群正常运行的情况下,我们首先对其中一个虚拟机手动“Live Migration”到另一个节点。

 

0?wx_fmt=png

Windows超融合集群上的Oracle RAC虚拟机节点,在18-19秒完成迁移。如果不是CPU满载,或者分配的内存容量较小还会更快。

 

0?wx_fmt=png

我们看到TPS最低点在8000左右,此时恰好是1Oracle数据库节点的性能。

 

如上图,在虚拟机迁移的瞬间TPS有个下降后很快恢复;而TPM数值统计的是过去一分钟,因而没有明显的波动。

 

破坏性测试1CSV存储节点Reset

 

0?wx_fmt=png

模拟破坏性测试,我们是通过Dell服务器iDRAC带外远程管理界面来操作的。

 

接下来就要做Windows+S2D集群的节点冷重启(Power Cycle测试了。这里面还要分为两种情况:

 

1)被重启/关机的服务器上没有Oracle RAC虚拟机,只提供S2D的存储资源,也就是其中一个CSVOnwer

2)模拟故障的服务器上同时还运行RAC虚拟机。

 

先来看第一种情况。

 

0?wx_fmt=png

由于分布式存储的冗余配置,无论多副本还是纠删码保护都应该能通过这个测试。

 

如上图,当组成ASM磁盘组的一个VHD Set对应CSV Onwer节点离线时,Oracle IOhang10多秒然后恢复,就像传统存储阵列的多路径故障切换Timeout那样,数据库连接会话不中断S2D集群应该也有一个默认的超时设置,因为如果我们手动切换/切回(Fail over/Fail backCSV Onwer基本上是即刻完成的。

 

0?wx_fmt=png

原来Onwer46节点的Cluster Virtual Disk,在故障后自动切换到了48节点。


0?wx_fmt=png

46节点重启恢复之后,我们想把CSV Onwer切回来也只是点两下鼠标的事,在这个实验中只涉及到少量数据的Rebuild,还没有触发Rebalance重平衡。

 

破坏性测试2RAC+存储节点Reset


0?wx_fmt=png

 

这部分的操作,会触发一个12c RAC虚拟机节点在Hyper-V故障转移集群中的另一台服务器上自动启动(HA接管)。我们记录了一下时间,WindowServer 2012 R2虚拟机OS启动只用时31,至故障发生后323Oracle ASM实例启动完成,525秒整个数据库恢复正常。

 

就此我咨询了一下数据库专家朋友,Oracle启动时间受版本影响比较大,我们测试的是12c12.2),如果换成10g或者11g应该会快很多。

 

Orion单虚机10GB/s+带宽:别忘了100GbE RDMA

 

下面使用Oracle Orion I/O压力工具来测试下OLAP(数据仓库/分析型负载)存储性能。

 

0?wx_fmt=png

由于带宽测试使用1MB大数据块,从S2D存储底层到虚拟机上层都不会有多大CPU的开销,这一点与IOPS测试不同。

 

最后我们又简单测试了一下带宽,发现只要1个虚拟机就能基本达到11GB/s顺序读的峰值。每个VHD Set磁盘建立在不同节点OnwerCSV上,相当于Orion模拟了ASM条带化的效果

 

具体来说,就是11,007 MB/s中有大约3/4来自跨节点访问,而本次测试环境的网络比较牛(见下图),这些都不是问题。


在实际生产环境,推荐使用性价比较高的25Gb网络,同时网卡支持RDMA,双端口NIC Teaming能提供50Gb带宽,可满足高负载业务需求。

 

0?wx_fmt=png

由于是2100G网口Active-Active连接,虚拟机中的网卡速度显示为200.0 Gbps

 

0?wx_fmt=png

 

在顺序写测试中,我们同样遇到了SSD性能随时间下滑的正常情况。也就是说S2D集群配置的盘“还不够快”,否则在第一篇测试中也不会顺序写只达到2626MB/s。如果只是看峰值写入带宽,超过3700MB/s的情况我也见到过。

 

至此,本次微软S2D系列测试告一段落,感谢朋友们的大力支持!

 

特别鸣谢

 

上海维赛特网络系统有限公司副总工程师 高翔(Sean

上海戴尔客户解决方案中心 Tony Wang

目录
相关文章
|
4天前
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
14 1
|
4天前
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
12 1
|
9天前
|
iOS开发 MacOS Windows
|
14天前
|
敏捷开发 测试技术 持续交付
探索自动化测试在敏捷开发中的应用移动应用的未来:跨平台开发与操作系统的融合
【4月更文挑战第30天】随着软件开发周期的不断缩短,传统的软件测试方法逐渐显得力不从心。本文将深入探讨自动化测试在敏捷开发环境中的关键作用,分析其如何提高测试效率、减少人力资源成本,并确保软件产品的质量与稳定性。通过案例分析,我们还将讨论实施自动化测试的最佳实践和面临的挑战,为追求高效敏捷开发的组织提供参考。
|
16天前
|
机器学习/深度学习 人工智能 测试技术
自动化测试中AI与机器学习的融合应用
【4月更文挑战第29天】 随着技术的不断进步,人工智能(AI)和机器学习(ML)在软件测试中的应用越来越广泛。本文将探讨AI和ML如何改变自动化测试领域,提高测试效率和质量。我们将讨论AI和ML的基本概念,以及它们如何应用于自动化测试,包括智能测试用例生成,缺陷预测,测试执行优化等方面。最后,我们还将讨论AI和ML在自动化测试中的挑战和未来发展趋势。
|
22天前
|
测试技术
深入白盒测试:静态分析与动态测试的融合策略
【4月更文挑战第23天】 在软件测试领域,白盒测试以其对内部结构的透明性著称。本文将探讨如何通过结合静态分析和动态测试的方法来强化白盒测试的效能。我们将详细讨论这种融合策略的优势、实施步骤以及可能面临的挑战,并通过案例分析展示其在实际中的应用效果。
10 1
|
25天前
|
存储 Oracle 关系型数据库
Oracle RAC:数据库集群的舞动乐章
【4月更文挑战第19天】Oracle RAC是Oracle提供的高可用性数据库解决方案,允许多个实例共享同一数据库,确保业务连续性和数据完整性。通过集群件和全局缓存服务实现服务器间的协调和通信。RAC提供高可用性,通过故障转移应对故障,同时提升性能,多个实例并行处理请求。作为数据管理员,理解RAC的架构和管理至关重要,以发挥其在数据管理中的最大价值。
|
28天前
|
测试技术 持续交付
深入理解白盒测试:静态分析与动态测试的融合
【4月更文挑战第16天】 本文旨在探讨软件测试领域中白盒测试技术的高级应用,特别是如何通过结合静态分析和动态测试的方法来提升测试效率和质量。文章首先回顾了白盒测试的基本概念,随后详细介绍了静态代码分析技术在白盒测试中的应用,以及如何设计有效的测试用例进行动态测试。文中还讨论了现代软件复杂性对白盒测试的挑战以及可能的解决方案。最后,通过案例研究展示了综合运用这些技术的优势。
13 1
|
1月前
|
算法 测试技术
深入白盒测试:静态分析与动态覆盖的融合
【4月更文挑战第13天】 软件测试作为确保产品质量的重要手段,在开发周期中占据着不可或缺的地位。其中,白盒测试以其深入代码逻辑、验证内部结构和算法实现的特性,为发现潜在缺陷提供了有力保障。本文将探讨白盒测试技术中的两个核心方法——静态分析和动态覆盖,以及它们如何相互补充,共同提高测试的全面性和有效性。通过对比这两种方法的优势和局限,我们将讨论如何在实践中结合使用它们,以期达到最佳的测试效果。
|
1月前
|
测试技术
深入白盒测试:静态分析与动态分析的融合之道
【4月更文挑战第9天】 在软件开发过程中,确保代码质量和功能正确性是至关重要的。白盒测试作为一种软件测试方法,能够深入到程序内部逻辑结构,对软件的内部运作进行透彻的检查。本文将探讨白盒测试中静态分析与动态分析的结合使用,揭示如何通过这两种技术手段提高测试覆盖率和发现潜在缺陷。文章首先介绍白盒测试的基本概念,然后详细阐述静态分析和动态分析的原理及应用,最后提出一个结合两者的测试策略,旨在帮助测试工程师更有效地开展工作。

推荐镜像

更多