在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如何集成呢?的更多相关文章

  1. spring boot redis 缓存(cache)集成

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  2. Linux Free命令各数字含义及Buffer和Cache的区别

    Linux Free命令各数字含义及Buffer和Cache的区别 Free 命令的各数字含义 命令演示 [root@vm1 ~]# free total used free shared buffe ...

  3. 002-spring cache 基于声明式注解的缓存-02-CachePut、CacheEvict、Caching、CacheConfig、EnableCaching、自定义

    1.2.CachePut annotation 在支持Spring Cache的环境下,对于使用@Cacheable标注的方法,Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素 ...

  4. SpringBoot | 第十一章:Redis的集成和简单使用

    前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的 ...

  5. 一个缓存使用案例:Spring Cache VS Caffeine 原生 API

    最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API.那么是否 Spring 官方提供的就是最合适的方案 ...

  6. ARM之cache

    一. 什么是cache 1.1. cache简介 a. Cache 即高速缓冲存储器,是位于 CPU 与内存之间的高速存储器,它的容量比内存小但交换速度快. b. ARM处理器的主频为上百M甚至几G, ...

  7. spring boot集成mybatis(1)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  8. spring boot rest 接口集成 spring security(2) - JWT配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  9. spring boot rest 接口集成 spring security(1) - 最简配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

随机推荐

  1. Tensorflow学习:(三)神经网络优化

    一.完善常用概念和细节 1.神经元模型: 之前的神经元结构都采用线上的权重w直接乘以输入数据x,用数学表达式即,但这样的结构不够完善. 完善的结构需要加上偏置,并加上激励函数.用数学公式表示为:.其中 ...

  2. 模型构建<2>:不平衡样本集的处理

    分类预测建模都有一个基本的假设,即样本集中不同类别的样本个数基本相同,但是在实际任务中,经常会出现各类样本个数差别较大的情况,这样的样本集就是不平衡样本集,它对学习建模的性能会带来很大的影响,因此必须 ...

  3. hdu 5248 贪心

    题意:

  4. dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath

    原文: dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath         在dubbo启动的过程中报错误:java.lang. ...

  5. 【POJ】1840:Eqs【哈希表】

    Eqs Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 18299   Accepted: 8933 Description ...

  6. python开发_webbrowser_浏览器控制模块

    ''' python的webbrowser模块支持对浏览器进行一些操作 主要有以下三个方法: webbrowser.open(url, new=0, autoraise=True) webbrowse ...

  7. Codeforces Beta Round #37 C. Old Berland Language 暴力 dfs

    C. Old Berland Language 题目连接: http://www.codeforces.com/contest/37/problem/C Description Berland sci ...

  8. Spring Batch 批处理框架介绍

    前言 在大型的企业应用中,或多或少都会存在大量的任务需要处理,如邮件批量通知所有将要过期的会员,日终更新订单信息等.而在批量处理任务的过程中,又需要注意很多细节,如任务异常.性能瓶颈等等.那么,使用一 ...

  9. 恢复二进制文件中的block符号表

    前篇博客中,使用 杨君的小黑屋 提供的工具恢复二进制文件的符号表,只恢复了函数的符号表,本篇讲述如何恢复block符号表,杨君的博客中使用IDA分析二进制文件,本篇则使用MacOS系统上体验也不错的H ...

  10. GIT(6)----fork和clone的区别,fetch与pull的区别

    参考资料: [1].Git学习笔记:fork和clone的区别,fetch与pull的区别 [2].在Github和Git上fork之简单指南