发布时间: 2024-07-23 00:33:31 来源:产品中心
随着多核 CPU 技术的迅猛发展,其解决能力已经大大超过了硬盘的解决能力,前端应用系统与后端存储系统的性能差距慢慢的变大,应用系统的大部分时间都花费在等待存储系统响应上,因此无论服务器的 CPU解决能力多强大,应用系统的整体性能仍然偏低。解决 CPU 与后端存储速率不匹配的传统做法是增加昂贵的 DRAM,但是随着后端存储容量的持续不断的增加,这样的解决方法已不再有效。而固态硬盘的出现,不仅满足了存储系统对性能的需求(尤其是随机读性能),而且固态硬盘的容量远大于 DRAM,因此存储系统或服务器支持 SSD 做 Cache 或分级存储慢慢的变成了趋势。
SmartCache 是华为公司自主研发的一项性能提升技术,该技术主要使用在于 OceanStor S5500T/S5600T/S5800T/S6800T 系列新产品,其设计思想是使用一块或多块 SSD 硬盘组成 SmartCache 池,系统通过对数据块访问频率的实时统计,将主机当前访问较为频繁的数据(热点数据)由传统机械硬盘动态的缓存至 SmartCache 池中,利用 SSD 硬盘存取速度快的特点,提升主机的读性能及主机的访问效率。
和虚拟快照拥有资源池类似,SmartCache 也有资源池,叫做 SmartCache 池;客户能根据业务的需要,动态的向 SmartCache 池中添加或移除 SSD 盘。有必要注意一下的是,只有被添加到 SmartCache 池的 SSD 盘,才能被用作热点数据的缓存。
SmartCache 对热点数据性能的提升是以 LUN 为单位的。在建立 SmartCache 池并对 LUN 开启 SmartCache功能后,系统将建立 LUN 与 SmartCache 池之间的映射关系,具体做法是将该 LUN 上的所有数据按照一个数据单位做分块,目前规格为 1MB,然后对这些划分好的数据块按照一定的时间周期进行访问量统计,每 30 分钟统计一次。当一个统计周期结束后,会对该 LUN 上的所有 1MB 的数据块按照访问频率的高低进行排序,访问频率高的即确认为热点数据。在确认了热点数据后,系统开始做后台拷贝,将访问频率高的数据块复制到 SmartCache 池中(即 SSD 硬盘中) ,使得应用程序下一次访问这一些数据块时,可以直接从 SSD 盘中读取。在下一个统计周期中,系统会再次对这一些数据块的访问频率进行统计并排序,以更新排名表中的名次,这样始终保证 SmartCache 池中存放的是最热点的数据,这便是 SmartCache 提升读性能的基本原理。
(2)高可用性: SmartCache 池由多块 SSD 组成的,并按照条带划分,热点数据可均匀分布,提高 SmartCache池的并发访问效率;因为 SmartCache 池中仅为热点数据的备份,并无 Raid 功能,因此当单个 SSD 盘片失效时,不影响 SmartCache 的功能。
(3)高扩展性:SmartCache 支持在线添加 SSD 盘片,不仅如此,SmartCache 的添加及删除操作均不影响业务的正常运行。
SmartCache 适合于任何具有热点访问区域、随机读 IO 密集型业务,例如:电子商务等 NSP 应用、彩铃彩信点播下载类以及数据库应用等等。
目前 SmartCache 技术针对 WebServer 这种数据块普遍偏小、完全随机读的应用,其随机读性能可提升 5倍左右;针对 FlieServer 这种数据块偏小、读多写少且完全随机类应用,其随机读性能可提升 2 倍左右。