缓存数据库底座哪家强?高级黑科技带你翱翔,


随着技术的发展,缓存技术的大规模使用是现代互联网架构区别于传统IT技术最大的地方。通过合理利用缓存技术与缓存数据库,可以帮助企业有效提升系统的性能、可用性与扩展性,助力企业提供更加敏捷创新与稳定安全的服务。

事实上,缓存技术与缓存数据库的应用无所不在,与我们的生活息息相关。从金融、医疗到互联网业务,小到我们日常生活中经常使用的各种购物网站、订餐系统、购票系统、视频/直播类app、行程码/健康码系统等等,可以说都与缓存技术密切相关。然而,企业在应用缓存技术与缓存数据库的过程中,通常会以传统x86服务器集群为底座,却常会面临以下三大挑战:

1. 随着缓存技术与缓存数据库的广泛应用,集群中x86服务器的内存和其他硬件故障概率也在增加

2. 服务器内存损坏故障发生时,恢复流程复杂,恢复时间冗长

3. 随着x86 服务器数量不断增长,架构越来越复杂,管理难度不断增加

那么,在传统的 x86 服务器集群架构之外,是否有其他更好的平台架构可以解决上述的三大挑战呢?答案是肯定的。实际上,越来越多的客户已经开始通过具备更高整合效率、更高主频、更大缓存、以及更佳内存可靠性的底层架构来支撑缓存数据库,打造高性能、高可用、易管理的缓存数据库底座,让业务插上黑科技的翅膀,腾飞翱翔。

主流的缓存数据库有哪些?

缓存是一种通用的设计模式:这种模式一般利用增加存储空间的方式,实现低速部件与高速部件之间的解耦。也就是说,实现了解耦的地方就有存在缓存的可能,既然解耦是计算机系统架构设计中最常用的手段,那么缓存就必将在IT系统和架构中无处不在,如CPU内部缓存,客户端浏览器缓存,Web服务器缓存,应用程序缓存,数据库缓存等。

在各种普遍使用的缓存技术中,基于内存数据库的NoSQL分布式缓存技术在目前的缓存数据库领域得到了广泛的应用。其中最为典型的就是Memcached和Redis这两种高性能分布式内存缓存数据库,一般用来缓存访问的热点数据,减轻物理数据库压力和负载。

Memcached是一个开源、高性能、将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数,可以提高动态、数据库驱动之类网站的运行速度。

Memcached基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

和Memcached不同的是,Redis支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的使用RDB快照的方式,把更新的数据写入磁盘或者使用类似MySQL的AOF日志方式把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis支持将数据同步到多台从数据库上,这种特性对提高读取性能非常有益。

实际案例:缓存数据库底层架构深度分析

通常情况下,客户大部分的分布式缓存系统都基于x86服务器打造,也取得了性能等方面的明显改进,但同时也存在一些问题,比如x86节点的稳定性问题,网络传输时延导致的数据一致性问题,x86节点过多导致的管理问题等。

不管是Memcached还是Redis,都需要一个性能更高,更稳定的硬件平台来支撑。通过对LinuxONE平台的特性研究可以发现,在特定场景下,LinuxONE平台特有的高主频,高密度和高可靠性可以解决很多在x86架构上构建分布式缓存集群过程中遇到的这些问题。

以某客户的Memcached集群方案为例,客户在x86平台上的某应用解决方案如下图所示:

其中,4套Memcached,每套10台机器 10T内存,定期做Dump(大约8T),用于恢复。

客户遇到的问题如下:

1. 约10T的缓存数据库,x86服务器集群平均每月会出现内存故障一次

2. 恢复流程麻烦:如果单台服务器内存损坏故障,同中心3.5小时恢复,他中心5小时恢复

3. 整个硬件环境复杂,管理复杂度高

对应地,IBM LinuxONE部署方案如下图所示:

每台LinuxONE的部署方式如下:

通过对比测试发现,在实现同样性能的前提下,LinuxONE平台具备如下优势:

1. 整合效率:一台LinuxONE整合一个数据中心的关键x86服务器和高端Unix服务器,使用两台即可实现原先需要几十台x86+ 高端Unix服务器的集群搭建,极大地降低了系统复杂度及维护难度;

2. 高性能:LinuxONE的高主频(5.2GHz)大缓存(超过11GB)可确保单个节点的高处理能力和性能;

3. LinuxONE平台内存特有的RAIM高可用技术可以避免内存故障导致的内存库恢复,极大地提升系统可用性;

4. LinuxONE独有的内存通讯技术可以大幅度提升网络带宽,降低通讯时延,提升集群数据一致性;

5. LinuxONE平台高达99.9999%的可用性可以确保系统可用性,同时降低维护复杂度。

注:

LinuxONE 内存高可用技术RAIM全称为Redundant Array of Independent Memory,与RAID冗余磁盘阵列设计原理相同,每个CPU芯片上的内存控制器(MCU)控制5根内存DIMM,其中1根作为校验数据,可避免单一内存条发生故障导致整个系统无法运作。

RAIM内存高可用技术示意图

不仅是Memcached,LinuxONE平台在Redis这样的缓存数据库的应用场景中同样具备这些优势。可以说LinuxONE和缓存数据库的结合,是缓存数据库追求最高可用性和一致性的黄金组合。其“以一敌百”的数据中心整合效率和众多黑科技带来的优势,让LinuxONE成为缓存数据库的最佳底座,帮助企业提供更加敏捷创新与稳定安全的高性能服务。

LinuxONE黑科技详解

LinuxONE是IBM推出的以传统“零宕机”硬件为基础的企业级开放Linux服务器。在硬件层面,提供了非常强大的底层支撑平台,从而在“相同的简单易用”基础之上,可以带给客户“与众不同的能力和体验”。

LinuxONE的强大能力,可以用”3高6黑”简单概括,3高是指LinuxONE超越任何其它平台的3种超高能力,即“高性能、高可靠和高密度”。

高性能是因为LinuxONE配置了所有商用服务器里最高的5.2GHz主频的处理器以及总量超过11GB的4级大缓存,再加上高达192个的IO插槽从而为客户提供最为强大的计算和IO处理的能力。

在高可靠方面,LinuxONE提供了N+1的全冗余体系架构,这里面涵盖了CPU,内存,IO、电源、风扇、控制台等等,从而使得LinuxONE单机就可达到6个9的可靠性。而内存数据库对于内存的可靠性要求尤为重要,LinuxONE作为业内唯一实现内存全冗余架构的硬件平台,通过RAIM技术实现了内存芯片及内存条间的双重高可用,从而保证无论是内存芯片故障或者内存条故障,均不会影响内存数据库的稳定运行。

在高密度方面,LinuxONE除了具备强大的纵向扩展能力,横向方面单机可支持85个逻辑分区,超过8000个的虚机,以及2百万个容器,从而可以用以一顶百的方式实现高密度的集约化部署。

而“3高6黑”里的6黑是指LinuxONE所配备的6种黑科技,这更多的是针对企业级计算里面涉及到的很多非常集中的需求,比如数据的压缩排序和加解密的需求,以及虚拟化环境各种应用负载或虚拟服务器之间的通讯,隔离,时钟同步的需求。

LinuxONE在硬件层面做了很多针对性的优化,从而使得这些高频需求的处理效率或者安全性可以得到大幅的提升。比如LinuxONE的芯片压缩支持高达260GB/s的超大规模吞吐能力,可以帮助客户节省大量存储空间,节省网络带宽,缩短数据传输时间等等。

时钟同步方面,我们可以确保同一设备内的所有分区和虚机的精准同步,以及在跨多台设备的集群同步方面达到微秒级的精度,这对于分布式内存数据库集群会有很大的作用,因为分布式内存数据库对于节点间的时间同步往往有着苛刻的要求。

LinuxONE的第六大黑科技是基于内存的通信技术SMC-D/SMC-R。在分布式架构中,节点和节点之间会有大量的数据交互,节点越多,负载越高,大量数据的交互带来的网络开销、CPU开销越明显,甚至有可能还会影响网络的可靠性和应用的效率。LinuxONE基于内存高速通信技术是基于(R)DMA标准协议,对应用透明,提供更快的通信,与使用普通网卡相比,流工作负载的吞吐量提高20倍,CPU消耗减少85%以上,响应时间缩短95%;交互式工作负载的吞吐量最多提高16倍,与网络相关的CPU消耗最多降低40%,响应时间最多缩短94%。

LinuxONE是业内唯一全冗余智能容错架构服务器,单机就能实现硬件层面的全冗余,LinuxONE平均硬件无宕机时间超过40年,是业内最稳定的服务器,足以承载数据库计算节点的可用性需求。LinuxONE具备商用服务器最高等级EAL5+的安全技术认证,确保LPAR的隔离性和安全性。节点间通过SMC-D高速内存虚拟网络进行数据交互,低延时,高吞吐,更稳定。

更多信息,敬请访问 IBM主机解决方案和主机服务器产品页面

立即前往了解 IBM 现代化 IT 基础架构:敏捷开放加速转型,稳定安全夯实未来

 

相关内容