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如何集成呢?的更多相关文章
- spring boot redis 缓存(cache)集成
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- Linux Free命令各数字含义及Buffer和Cache的区别
Linux Free命令各数字含义及Buffer和Cache的区别 Free 命令的各数字含义 命令演示 [root@vm1 ~]# free total used free shared buffe ...
- 002-spring cache 基于声明式注解的缓存-02-CachePut、CacheEvict、Caching、CacheConfig、EnableCaching、自定义
1.2.CachePut annotation 在支持Spring Cache的环境下,对于使用@Cacheable标注的方法,Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素 ...
- SpringBoot | 第十一章:Redis的集成和简单使用
前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的 ...
- 一个缓存使用案例:Spring Cache VS Caffeine 原生 API
最近在学习本地缓存发现,在 Spring 技术栈的开发中,既可以使用 Spring Cache 的注解形式操作缓存,也可用各种缓存方案的原生 API.那么是否 Spring 官方提供的就是最合适的方案 ...
- ARM之cache
一. 什么是cache 1.1. cache简介 a. Cache 即高速缓冲存储器,是位于 CPU 与内存之间的高速存储器,它的容量比内存小但交换速度快. b. ARM处理器的主频为上百M甚至几G, ...
- spring boot集成mybatis(1)
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- spring boot rest 接口集成 spring security(2) - JWT配置
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- spring boot rest 接口集成 spring security(1) - 最简配置
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
随机推荐
- Tensorflow学习:(三)神经网络优化
一.完善常用概念和细节 1.神经元模型: 之前的神经元结构都采用线上的权重w直接乘以输入数据x,用数学表达式即,但这样的结构不够完善. 完善的结构需要加上偏置,并加上激励函数.用数学公式表示为:.其中 ...
- 模型构建<2>:不平衡样本集的处理
分类预测建模都有一个基本的假设,即样本集中不同类别的样本个数基本相同,但是在实际任务中,经常会出现各类样本个数差别较大的情况,这样的样本集就是不平衡样本集,它对学习建模的性能会带来很大的影响,因此必须 ...
- hdu 5248 贪心
题意:
- dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath
原文: dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath 在dubbo启动的过程中报错误:java.lang. ...
- 【POJ】1840:Eqs【哈希表】
Eqs Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 18299 Accepted: 8933 Description ...
- python开发_webbrowser_浏览器控制模块
''' python的webbrowser模块支持对浏览器进行一些操作 主要有以下三个方法: webbrowser.open(url, new=0, autoraise=True) webbrowse ...
- Codeforces Beta Round #37 C. Old Berland Language 暴力 dfs
C. Old Berland Language 题目连接: http://www.codeforces.com/contest/37/problem/C Description Berland sci ...
- Spring Batch 批处理框架介绍
前言 在大型的企业应用中,或多或少都会存在大量的任务需要处理,如邮件批量通知所有将要过期的会员,日终更新订单信息等.而在批量处理任务的过程中,又需要注意很多细节,如任务异常.性能瓶颈等等.那么,使用一 ...
- 恢复二进制文件中的block符号表
前篇博客中,使用 杨君的小黑屋 提供的工具恢复二进制文件的符号表,只恢复了函数的符号表,本篇讲述如何恢复block符号表,杨君的博客中使用IDA分析二进制文件,本篇则使用MacOS系统上体验也不错的H ...
- GIT(6)----fork和clone的区别,fetch与pull的区别
参考资料: [1].Git学习笔记:fork和clone的区别,fetch与pull的区别 [2].在Github和Git上fork之简单指南