ScaleIO与XtremSW Cache如何集成呢?

在ScaleIO上, XtremSW Cache主要有两种部署方式:

  • 把XtremSW Cache在每台server的内部用作cache - 在ScaleIO Data Server(SDS)下做cache. 这个和传统的SAN世界中的VNX Fast cache或VMAX cache的概念差不多.
  • 把XtremSW Cache用在应用程序端作cache - 在ScaleIO Data Client(SDC)下做cache. 这个在概念上与数据中心里的server side caching差不多.

 

Caching inside each server (caching below the SDS)

===============

这么配置的优势如下:

  • 数据一致性更佳: 对于数据共享要求较高的应用程序来说, 数据一致性至关重要. 如果有一片数据被一台Applicaiton Host改掉了, 与此同时这环境中的另一台host正在修改共享存储上的相同的这一片数据. 这种情形会导致数据毁坏和各种各样的不一致. 把XtremCache放在SDS下面, 我们就可以在不冒这种风险的前提下进行加速了, 如此就获得了一致性.
  • 不存在冷缓存(cold cache): 由于缓存是在存储端而不是应用程序端进行的,缓存是不会被应用程序主机的failover所影响. 所以, 也就不会有冷缓存需要"预热"(warm up)的时间了, 所以性能也就更加稳定. 有很多环境中failover是的确会发生的, 不光是由于出错(failure),(可以被认为是较少发生的情况), 还有主要是为了负载均衡做的failover. 在ScaleIO控制的节点集群中, 这就很有关系了, 因为scaleIO中的计算资源被赋予计算任务是很有弹性的.
  • 缓存会有更好的利用率: 通过把缓存部署在每个节点的SDS之下, 我们生成了一个很大的共享的缓存层, 从而cluster中的所有的应用程序都可以使用cache了. 比如说你有20个节点, 有20个不同的应用程序, 有20块350GB的XtremCache卡. 你一共有7 TB的flash 缓存. 有些应用程序缓存会用的多一些, 有些由于需求少,所以比较少的缓存就可以满足它了 - 这都跟应用程序的数据集的大小有关. 通过在每台server中设置缓存, 你得到了一个7 TB的flash cache可以被动态的分派给需要的用户. 所以, 对于活跃的需要消耗上TB的缓存的应用程序, 这可以极大地提高缓存的命中率和整体性能.

 

Application side caching (caching above the SDC)

=================

缓存仅被部署在某台applicaiton server下, 如此配置的优势如下:

  • 性能: 如果环境对于磁盘延迟非常敏感(零点几毫秒的提高就能明显的体现出来), 那么这种部署方式就比较合适了, 因为数据比较靠近应用, 缓存并不会消耗网络带宽.
  • 部署考虑: 这种部署的颗粒度更细. 如果仅有某几个应用需要加速, 那么部署XtremCache专门加速某几台虚机就可以了. 而且这里也没有前面提到的一致性问题.
  • 数据一致: 缓存卡的软件必须支持对data corruption的保护, XtremCache是有原生支持的(支持Oracle RAC, 和active / passive clusters 诸如MSCS, VCS 或 native Linux clustering).

 

总之, 要么Xtrem卡部署在SDS之下, 要么部署在SDC之上. 部署在SDS之下, ScaleIO是知晓Xtrem卡的存在的; 部署在SDC之上, 那么这就跟ScaleIO没啥关系了, 没有ScaleIO的时候怎么样, 还是怎么样.

 

资料来源

=================

The Whole is Greater than the Sum

http://www.scaleio.com/blog/entry/the-whole-is-greater-than-the-sum

ScaleIO与XtremSW Cache如何集成呢?

时间: 2024-10-30 05:31:05

ScaleIO与XtremSW Cache如何集成呢?的相关文章

spring boot redis 缓存(cache)集成

Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 spring boot 连接Mysql spring boot配置druid连接池连接mysql spring boot集成mybatis(1) spring boot集成mybatis(2) – 使用pagehelper实现分页 spring boot集成mybatis(3) – mybatis ge

关于Linux下的buffer和cache的区别

cache是高速缓存,是CPU和内存之间的缓冲.因为CPU的速度远远高于主存的速度,当CPU要从内存当中获取数据的时候,通常要等待一段时间.cache中保存着CPU刚刚使用或者是循环使用的一些数据,当CPU需要再次取用这些数据的时候,就会调用cache中的数据,这样就减少了CPU的等待时间,提高了系统的效率.cache可以分为一级cache和二级cache,一开始一级cache是集成在CPU中,二级cache是集成在主板上,现在的二级cache也是集成在CPU内部. buffer是优先级不同或者

DMA、TCM与Cache介绍

[转]https://blog.csdn.net/qq_20880415/article/details/89036066 DMA DMA=Direct Memory Access.这是一种通过硬件实现的数据传输机制.简单的说,就是不在CPU的参与下完成数据的传输. DMA是一种硬件设备.这种设备的工作原理是这样的: ——首先CPU告诉DMA设备,要有一堆数据需要传输,为了效率而请它出马.(DMA请求) ——DMA收到CPU的消息,开始准备.此时CPU把数据源地址.数据目标地址.传输数据量.传输

data 1 (05/18)计算机基础系列

一.编程语言的作用及与操作系统和硬件的关系 编程语言可以用来写操作系统,且编程语言开发的软件要通过操作系统进行运行:而操作系统是用来控制计算机硬件的,操作系统运行在硬件上面,当我们用编程语言进行研发时,只需要控制操作系统即可. 二.应用程序->操作系统->硬件 计算机=应用程序+操作系统+硬件:可将计算机分为三层,自而向上分别为:应用程序→操作系统→硬件. 硬件由运算器.控制器.存储器.输入设备和输出设备等五个逻辑部件组成.计算机运行时,运算器的操作和操作种类由控制器决定.运算器处理的数据来自

计算机硬件知识整理

计算机硬件知识整理 一.编程语言的作用 编程语言,就是让计算机为解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程.为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路通过计算机能够理解的形式告诉计算机,这种人和计算机之间交流的过程就是编程. 目前的主要编程语言有,Java, C, C++, Python, PHP, Pearl等. 二. 编程语言的作用及与操作系统和硬件的关系 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件的计

第一份代做毕设收入

Cache是位于CPU寄存器与内存之间的存储器,它的容量比内存小但交换速度快. Cache的工作原理 1.读取顺序 当数据从内存读入时,整行的数据(16~32字节)被装入Cache,如果程序具有良好的地址引用局部性(顺序浏览一个字符串),那么CPU以后对邻近数据的引用就可以从快速的Cache读取,而不用从缓慢的内存读取.典型情况下,主存的存取速度可能只有Cache的四分之一. CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理:如果没有找到,就用相对慢的速度从内存

zTree实现清空选中的第一个节点的子节点

Cache是位于CPU寄存器与内存之间的存储器,它的容量比内存小但交换速度快. Cache的工作原理 1.读取顺序 当数据从内存读入时,整行的数据(16~32字节)被装入Cache,如果程序具有良好的地址引用局部性(顺序浏览一个字符串),那么CPU以后对邻近数据的引用就可以从快速的Cache读取,而不用从缓慢的内存读取.典型情况下,主存的存取速度可能只有Cache的四分之一. CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理:如果没有找到,就用相对慢的速度从内存

看书小记7(《C专家编程》)

Cache是位于CPU寄存器与内存之间的存储器,它的容量比内存小但交换速度快. Cache的工作原理 1.读取顺序 当数据从内存读入时,整行的数据(16~32字节)被装入Cache,如果程序具有良好的地址引用局部性(顺序浏览一个字符串),那么CPU以后对邻近数据的引用就可以从快速的Cache读取,而不用从缓慢的内存读取.典型情况下,主存的存取速度可能只有Cache的四分之一. CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理:如果没有找到,就用相对慢的速度从内存

计算机硬件知识

计算机基础硬件知识 2017年3月10日 15:02 1.     编程语言的作用: 编程语言是一门语言,人类主要用编程语言来开发某种程序从而控制计算机的底层硬件.程序通过编程语言进行开发,最终得到一个软件,而人与计算机之间的沟通主要就通过开发而来的软件. 2.     操作系统: 1.  操作系统就是一个协调.管理和控制计算机硬件资源和软件资源的控制程序. 2.  操作系统是用户与计算机的接口,同时也是计算机硬件跟软件的接口.操作系统的功能包括管理计算机软件及数据资源.控制程序运行,提供各种形