未解决
此帖子已超过 5 年
4K 消息
1
2769
【与EMC新一代VNX中端存储极速致胜】新一代VNX软件架构 - MCx多核优化
新一代VNX软件架构 - MCx多核优化
转载请在文首保留原文出处:EMC中文支持论坛 - https://community.emc.com/go/chinese
介绍
为了充分利用现代CPU多核的设计和NAND闪存存储带来的优势,EMC历时7年时间,研发了MCx平台。本文将介绍MCx的几项重要的特性和变化。更多关于新一代VNX的其他改进,请继续关注论坛文章!
最新!EMC新一代VNX中端存储介绍汇总贴
更多信息
MCx概述:
新一代VNX引入的多核心优化(MCx)是未来EMC中端存储的关键技术。这一技术可以让内存管理和后端RAID管理进程充分利用多核CPU的优势。
观察Block OE R32之前的核心利用率,系统的RAID校验计算、I/O处理、缓存等任务只会分配给一个CPU核心,其余的都在空闲状态。而现在R33的存储任务是平均分给全部的CPU核心,而且通常情况下每个核心都有剩余资源以应付突发的处理需求。如果未来有频率更快、核心更多的CPU,那新一代VNX的能力还能进一步提升。
MCx包含三部分:MCC(Multi-Core Cache)、MCR(Multi-Core RAID)和MCF(Multi-Core FAST Cache)。这一改进除了性能上的巨大提升以外,还让新的VNX在底层上支持同步“双活”(Symmetrical Active-Active)和自适应缓存管理。
自适应缓存:
MCC的自适应缓存直观上的变化是取消了读、写缓存和高/低水线(High/Low Watermark)的设置:
这当然不是说新的VNX不再需要读、写缓存,事实上现在大多数的NDU操作下,读、写缓存都始终启用。MCC缓存将干净和“脏“缓存页面放在单个缓存中,它会自动决定如何使用内存空间以最大化读操作和写操作的性能。用户无需纠结读、写缓存的分配比例,MCC会根据应用的需要来动态分配空间。当“脏“缓存页面被清空(即写入硬盘),数据仍然保留在缓存中以供读缓存使用。不管写操作是否会刷新进硬盘,写操作的数据始终会更新进缓存以供读操作命中。
在FLARE R32之前,读、写缓存会被分割在不同的区域并且仅能被读或者写缓存使用。当主机发起读I/O后,数据就被载入缓存供后续访问。由于读缓存通常很小,如果数据没有立刻被重新读取的话,缓存页面会很快被丢弃。写缓存会被镜像地一分为二以提供冗余,而读缓存没有镜像。由于主动-被动架构的限制,当主机发起写I/O时,它只能由一侧的SP进入,不过好在写缓存通过CMI(Communication Manager Interface)内部通道做了镜像。这份写I/O的数据会保留在写缓存中,直到被写入硬盘。
从R5.33开始,MCC缓存使用同一个内容页面供读、写请求使用。如下图所示,读、写操作同时进入镜像的缓存中。最终当“脏“缓存页面被写入硬盘,数据仍然保留在缓存中以供读缓存使用。那么什么时候缓存才会将数据写入硬盘(flush)呢?MCC改变了缓存清除模型,除了“脏”缓存页面,它还会监视相应的硬盘LBA(Logical Block Address,逻辑区块地址)以及主机对MCC和RAID group的访问需求。MCC在预测工作负载时不仅仅衡量进站I/O的数量,还会监视下层的RAID group。如果某个工作负载在向RAID group写入I/O时有大量的“脏”页面正等待写入硬盘,那很有可能这个负载需要更多的缓存资源。系统会评估进站写入I/O和RAID group页面刷新成功率之间的差异。
这一革新允许MCC针对不同的工作负载动态调整自己的策略。
FAST Cache的改进:
MCF的改进如下:
· 新的驱动栈顺序将MCC层至于FAST Cache层之上。这样所有在内存缓存(DRAM cache)中命中的I/O无需再检查一遍FAST Cache,从而节省了CPU开销。
· 改进了提升队列,从而可以同时支持更多的提升。
· 引入了一个主动的清除进程,以降低为了释放FAST Cache中的空间而强制刷新(force flush)“脏”缓存页面(dirty page)的可能。这一机制通过清除进程动态管理非活动的和脏缓存页面来实现。
· 更积极的初始数据预热(warm-up)策略。不同于之前的“三次命中”策略,现在如果FAST Cache空间未满,则一次命中就会加载数据到缓存中。而缓存空间达到80%时,则重新采用先前的“三次命中”策略。
FAST VP也有改进,现在它的颗粒度(或可迁移的数据片大小)从之前的1GB细化到256MB。
永久热备份:
MCR的一项特性是永久热备份。在第一代VNX或更早的CLARiiON,用户必须手动创建热备份盘;当出现故障盘时,某块热备份盘会顶上坏盘直到故障盘被替换,然后再将所有数据拷贝回新替换的硬盘。从R5.33的MCR开始,任何未被使用的硬盘不管在盘柜的哪个位置,只要满足条件,都可以被用作热备份盘。事实上现在用户都无需再手动创建热备份盘。
热备份盘和故障盘的对调是永久性的,因此也就不再需要想到耗费时间的数据回拷(Equalization)的步骤。
注意Vault Drive上的热备份处理会有一些不同:如果Vault硬盘大于300GB,则只有除去系统占用以外的空间可以作为用户RAID group的一部分,并同样受新的热备份机制保护。
硬盘漫游:
MCR另一项改进是支持硬盘漫游,这也是为了配合永久热备份机制。从Block OE R5.33开始,每一块物理硬盘会被视作一个物理的虚拟驱动器(Physical Virtual Drive,PVD)。每一个PVD会被分配一个序列号,这些序号保存在阵列系统内,这样在重新排序DAE时可以不影响RAID group。另一种使用场景是可以将硬盘在线地从一个DAE移至同阵列的另一个DAE。不过硬盘离开阵列不能超过5分钟,否则系统会激活热备份开始重建数据,这5分钟的I/O由重建日志(Rebuilding Logging)功能负责写入在RAID group内,以供硬盘插回阵列后写回。关于重建日志功能的介绍可以参考文档:https://community.emc.com/docs/DOC-17678
双活(Active-Active)架构:
从这一代开始,VNX实现了同步的“双活”架构。CLARiiON之前的系列(CX、CX3)只支持“主动-被动”架构,这意味着同时只有一个SP(Storage Processor,即存储控制器)在处理某个LUN的I/O。当路径出现故障时,故障侧的LUN必须切换(trespass)至另一侧的SP,由另一侧的SP来处理后续I/O,这一切换的过程会造成显著的性能延迟。CLARiiON CX4和第一代VNX支持异步双活(Asymmetrical Active-Active),主机上可以通过任意到两台SP的路径“看到”LUN,但同一时间只有一个SP处理到该LUN的I/O。当活动路径出现故障时,不会立即触发LUN trespass,而是(在一定时间内)I/O通过另一侧路径,仍然交由LUN的所有者SP处理。这一机制可以显著减少LUN trespass的可能性,提高了系统性能。
新一代的VNX在此基础上更进一步,实现了“双活”架构。LUN可以同时被两个SP看到和访问,从而提升了两倍的性能。如果单侧的路径或SP发生故障或者在NDU(Non-disruptive Upgrade,无中断升级)操作时,不会出现LUN trespass,对LUN的I/O访问没有任何延时。尽管目前版本的“双活”功能仅支持传统的RAID Group LUN,但这让VNX离真正的同步“双活”阵列更近了一步。
为了让主机可以通过两侧的SP同时写入I/O,新一代VNX添加了一个新的服务LUN并行访问锁服务(LUN Parallel Access Locking Service)。它可以允许每个SP在准备写入信息时保留相应的LBA地址。SP通过之间的CMI内部通道沟通LUN的信息和写入位置。沟通所需传输的信息非常短小,沟通频率也比实际写入操作高,所以不会影响写入进程。SP就用这些锁来并行地写入LUN的不同位置。
读操作也是一样,会有一个共享的读取锁。一方面是SP需要知道是从硬盘中还是从SP的缓存中读取数据,因为“脏”缓存页面的数据可能还没有被刷新至硬盘;另一方面也防止另一个SP同时对其进行写操作。I/O完成后,锁即被释放。
参考
EMC技术白皮书
《VNX MCxMulticore Everything》
应用于
VNX系列(VNX5400、VNX5600、VNX5800、VNX7600、VNX8000)
daiwliang
46 消息
0
2013年9月7日 20:00
真正的同步“双活”阵列 应该是什么样的呢?
liulei_it
3.2K 消息
0
2013年9月8日 03:00
真正的双活是没有SPA SPB的世界,那么symmetrix系列是您唯一的选择。
请看
在这种结构中通过global memory就不需要SPA,SPB啦,简略点的就是,
那么作为数据存储的元数据在symmetrix里面的传输也是无阻碍的。
如果您真的对于业务有苛刻的要求,那么选择symmetrix应该是您最好的选择,
born_chen
1.8K 消息
0
2013年9月8日 06:00
非常及时的新材料。
Yuan_Han
40 消息
0
2013年12月18日 18:00
是否可以这么理解:
1、在VNX时,盘阵的锁是在lun这一层,所以lun只能被一个sp抓住
2、到VNX2了,盘阵的锁到了比lun颗粒度,所以从表面看起来。lun可以同时被两个sp抓住
在VNX时,如果一个raid的不同lun属于不同的sp,会怎么操作?
谢谢
Roger_Wu
4K 消息
0
2013年12月18日 20:00
Locking Service是新一代VNX(VNX2)才引入的技术吧,上一代VNX时的"盘阵锁"指的是?
什么样的情况下VNX的LUN会“属于"不同的SP?或者你指的是ALUA?
要不再看看白皮书?
http://www.emc.com/collateral/analyst-reports/h12090-emc-vnx-mcx.pdf
http://www.emc.com/collateral/hardware/white-papers/h2890-emc-clariion-asymm-active-wp.pdf
zhaos2
643 消息
0
2013年12月23日 17:00
‘双活’对中端存储是一个质的变化。