SmartCache 有效提升数据库应用性能
华赛 发表于:11年06月27日 15:00 [来稿] 存储在线
数据库危机
在企业和政府的数据库应用中,数据库本身容量非常大,动辄几百G乃至上T。随着各种业务的开展,数据库容量还会持续增大。随着数据库容量的增大,其对应的索引速度会相应变慢。在数据库应用中,用户要求延迟应该尽量小。查找索引的速度很大程度上决定了用户感受。此外,在数据库中经常访问的数据只占总容量的一小部分。
破解危机:SmartCache技术
随着SSD技术的发展,SSD在存储领域使用的范围越来越广。又由于对于SSD而言,单位GB的成本要比传统机械硬盘高很多,因此目前业界的存储阵列使用SSD主要有两种方式,作为分级存储介质和SSD Cache。
华为赛门铁克SSD Cache方案叫做SmartCache。把阵列中的一个或多个SSD硬盘组成SmartCache缓存池,通过将阵列中其他传统机械硬盘中的热点数据周期性的拷贝到SmartCache中,使主机在访问热点数据时,直接从SmartCache中读取,利用SSD硬盘的读性能优势,极大的提升阵列系统的整体读性能。
图1 SmartCache实现原理
智能SmartCache实现原理
——按照块的方式对SSD硬盘进行划分,为每一个块进行编号,块的大小默认为1MB。
——主机从机械硬盘中读取数据时,系统会实时对开启SmartCache功能LUN中的数据块访问频率进行统计。
——每隔半小时系统会对开启SmartCache功能的LUN中的数据块按照访问频率进行排序。
——系统根据该排序结果将访问频率最高的数据拷贝至SmartCache池中,若SmartCache池中没有空闲缓存块,则将SmartCache池中变冷的数据块淘汰以获取缓存块资源。
——主机读IO时,若全命中SmartCache池中的缓存块,则从SmartCache池中读取。
——读IO没有全命中SmartCache中的缓存块时,则从机械硬盘中读取。
——机械硬盘中的数据更新时,SmartCache池中对缓存块同步进行更新。
SmartCache五大技术优势
——高性能:针对Web Server应用随机读性能提升接近5倍,针对File Server应用随机读性能提升接近2倍。
——高可靠性:所有数据都保存在传统磁盘中,由RAID保证数据的安全可靠,SSD中的数据仅仅是一个副本。
——高可用性:多盘组成SmartCache池时,除非所有成员盘全部失效,否则不影响功能的实现。
——高可扩展性:支持SSD盘片在线添加。
——低功耗:SmartCache池利用SSD和传统磁盘组成混合阵列降低系统整体功耗。
数据库IO特性
根据SSD本身的性能特性,SmartCache适用于读多写少有热点的随机小IO场景。因此,在使用SmartCache之前,了解IO特性和负载情况非常重要。对关系数据库而言,索引数据是访问最为频繁的,因此当数据库很大时,索引速度的快慢决定了访问数据库的延迟。
为了更直观的体现数据库IO特性,在实验环境中,将数据库关系表存放在400G的LUN中,使用测试工具模拟数据库应用,以每G为单位统计主机访问数据库时的访问数据。如下图所示,经常访问的数据量只占到整个数据库空间的一小部分,大部分数据库空间的访问量很小或者几乎没有访问。在客户真实环境中,数据库中只有10%的数据被经常访问。相比在实验室模拟的数据库IO特性,客户真实环境中的数据具备更加明显的热点。
图2 Oracle访问400G LUN的IO分布
1SmartCache技术提升数据库应用性能