未解决
此帖子已超过 5 年
2 Intern
•
2.1K 消息
1
2619
Symmetrix缓存技术解读(一)
Symmetrix缓存技术解读(一)
转载请在文首保留原文出处:EMC中文支持论坛 - https://community.emc.com/go/chinese
介绍
存储系统的缓存作用是加速数据读取与写入的速度,从而提升整体的存储性能。Symmetrix缓存机制,作为存储阵列的核心技术,对阵列的性能和高可用性起着至关重要的作用。本文作为系列的第一篇。对Symmetrix最新的两代产品缓存中的数据类型进行介绍。帮助存储管理员更好的了解Symmetrix的缓存工作机制。
更多信息
缓存中的数据:
缓存主要的目的是用来缓冲磁盘上的I/O。Symmetrix的缓存分为两个部分,用户数据区域(User Data Slots)和系统数据区域(Global System Data)。
-
- 用户数据区域(User Data Slots): 用户数据区域会被划分成很多的Slots用来缓冲前端的I/O。一旦前端的读写要求缓存存放数据,系统会分配相应的Slot用作存储数据。缓存会对于前端呈现相关的磁盘设备的的Track给前端主机,直到该Slot被释放或者被重用。并且对于DMX-3或者更高版本的阵列,User Data是以镜像的方式存储的(DMX是两块内存卡,VMAX的话则是两个Director)。
- 系统数据区域(Global System Data):缓存中除了存放用户数据以外,还会存放一些供Director使用的系统数据,例如磁盘设备列表(Device Table)列出了每个Slot对应的磁盘设备位置,可以让Director在缓存中找到对应的数据。Director Mailboxes存放了各个Director相互通讯的命令集。对于DMX阵列,Global System Data会以条带的方式存放在每个物理内存板中。
缓存区域大小:
扇区(Sector),磁道(Track),柱面(Cylinder)是Symmetrix阵列中磁盘存储的三个基础数据大小。
-
- Sector: Sector是一磁盘上上最小的单元,后端的硬件不会传输小于一个Secotr大小的数据到缓存中。Symmetrix会对所有在阵列中传输的数据进行CRC校验,一旦校验发现数据损坏,数据会被重新传输或者标注相应的物理磁盘区域为已损坏。DMX-3以后的Symmetrix中Sector的大小为8KB。DMX至DMX-2的版本中大小为4KB。
- Track: Track是由8个Sector所组成。当磁盘数据中一个Track在缓存中呈现,该缓存区域就会成为一个可用的Slot。DMX-3以后的Symmetrix中Track的大小为64KB。DMX至DMX-2的版本中大小为32KB 。这个改变也是为了增加缓存读取击中的比例。
- Cylinder:单个Cylinder由15个连续的Track组成,但是并非根据Symmetrix中所配置的物理磁盘所分布,是一个虚拟的概念,这连续的Track可能分布在不同的物理磁盘上。Cylinder的大小有时候也会用作计量磁盘设备Device和Meta Device的大小。DMX-3以后的Symmetrix中Cylinder的大小为960KB。DMX至DMX-2的版本中大小为480KB。
DMX和VMAX的缓存架构:
DMX存储阵列中包含了2-8个缓存卡,每个缓存卡最大容量是64GB,每个Director都会有直连的Fibre Channel连接到每个缓存卡上面。总的连接数量取决于卡的数量。
VMAX中,缓存存储在每个Director的缓存中。有Local Cache和Remote Cache之分。Director之间通过Virtual Matrix交换网络相互访问各自的缓存。
参考
Symmetrix 超级卷、物理卷、逻辑卷及Meta卷图解手册
应用于
Symmetrix DMX-3 & 4系列
Symmetrix VMAX系列
Epirate
23 消息
1
2015年5月18日 19:00
文中讲 user data是镜像存储的,那么在vmax中,是一个引擎中两个director中的缓存卡互为镜像的吗,若不止一个引擎,比如说双引擎4个director,那么这四个dir中的缓存卡也是互为镜像吗,还是只以同一引擎中的dir的互为镜像。
user data中,应该分写缓存和读缓存区吧,不管读写,都是镜像吗?
有没有文档讲解读写io到达阵列前端后,后面的操作是如何进行的,比如说读缓存命中、写缓存命中、不命中的时候读写磁盘,该磁盘在该控制器下和不在该控制器下的操作,谢谢。
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2015年5月18日 20:00
你好,
单引擎和多引擎的情况不一样,单引擎数据镜像是在两个director上的内存中,多引擎是跨引擎镜像。
读是先从FE对应的引擎本地缓存HIT,写是镜像写。
文档你到support.emc.com上搜索VMAX Architecture应该能找到些相关的。