以下部分内容来网络,部分自华为存储官方教材
具体教材内容请移步华为存储官网进行教材下载
网络引用内容无法找到原创,如有侵权请通知
------------------------------------重要说明------------------------------------
Cache即高速缓存,是存储系统中用于缓存主机数据,提高阵列性能及可靠性的部件。Cache主要用来缓存主机数据,使主机在进行数据读写时不用每次都对硬盘进行操作,从而提高系统的读写性能。同时存储阵列通常使用双主控,且采用双控双活技术,双控制器都存在相同大小相同规格的Cache,使得数据在本端控制器Cache和对端控制器Cache都有缓存,即两个控制器的写Cache数据通过相互镜像实现备份,确保数据的安全和完整,提高了系统的可靠性。
读Cache:作用为缓存读数据;
在有主机读请求下发时, Cache会先将磁盘中数据读到内存中,并启动预取,根据数据的连续性将磁盘中后续可能会被主机读到的数据预取到Cache中,增加后续主机请求的读命中概率。
写Cache:作用为缓存写数据;
在有主机写请求下发时, Cache会先将数据写到内存的固定区域中,并返回给主机写完成,后续Cache会将这部分数据整合后统一写到硬盘中,借此提高主机写的效率。
镜像Cache:作用为缓存写数据并在对端控制器Cache保存这部分数据的镜像,在有主机镜像写请求下发时, Cache会将这部分数据分别写到本端控制器的内存及对端控制器的内存,保证两端数据的一致性。
实际上,本端的镜像Cache就是对端写Cache的镜像,是对端写Cache的备份。这样的结构充分保证了系统的高可用性。
Cache镜像技术是通过镜像通道实现的。可采用SAS、 PCI-E或FC作为镜像通道。 由于在物理上采用了两条镜像通道,使系统在可靠性上得到了进一步的提升,即使其中一条通道出现故障也不会影响业务,保证业务的连续性。
Cache中高低水位是指Cache中存储脏数据的最高限制值和最低限制值;
默认高水位80,低水位20;
刷盘线程每隔1S启动一次;
高水位不宜设置太高,如果高水位的值太高,页面缓冲就小,如果前端IO流量突然增加,会产生IO波动和时延增大的现象,从而影响写性能;
低水位不宜设置太低,如果低水位设置的值太低,会导致后端将缓存数据频繁写入硬盘,降低写性能;
高低水位的间距不宜太小,如果取值间距太小,不能很好利用后端带宽;
l 写机制:回写、透写;
回写分为:回写镜像、回写不镜像
镜像与不镜像的差别在于:当一个写IO从A控制器下发, 当到达A控制器的Cache之后, 是否需要将该IO再写入到B控制器的Cache作备份;
如果采用了回写镜像的方式, 由于进行了额外的两个控制器之间的交互以及数据的传输, 因此总体的性能表现不会比回写不镜像的方式好。
应用服务器下发数据回写请求时,数据块写入本端存储系统Cache后,本端存储系统就将写IO结果返回给应用服务器,再将数据块写入异构存储系统中。
应用服务器下发数据透写请求时,数据块写入本端存储系统缓存,再从本端cache写入对端cache,当数据块写入磁盘成功后,写IO结果才返回给应用服务器。
读策略:cache的读数据策略,系统提供三种读策略:常驻、默认、回收;
写策略:cache的写数据策略,系统提供三种写策略:常驻、默认、回收;
读取数据或写入数据以最低优先级淘汰,尽量保证常驻在内存中;
应用场景:适合部分业务对性能要求很高并且数据量不大的情况。例如在数据库应用中的日志LUN。
读取数据或写入数据以默认优先级淘汰,按照正常算法进行;
应用场景:常规场景下适用。
读取数据或写入数据以最高优先级淘汰,尽快将内存数据刷盘释放;
使用场景:适合大块数据读写,并且一般情况下之读写一次的场景。例如归档业务场景。
l 预取机制:智能预取、固定预取、可变预取、不预取;
对主机读请求进行连续判断,如果是连续的请求,则将当前读请求后面的一段数据从硬盘读预取到Cache中,提高读Cache命中率。
应用场景:适合单个数据流的读应用,或无法判断读应用是否顺序的情况。例如文件读写。
在读取数据时,不考虑主机IO请求中读取长度,按照配置的预取长度将数据预取到Cache中;
应用场景:适合大小固定的顺序读应用。例如多用户流媒体点播,用户使用相同码流。
在读取数据时,按照主机IO请求中的读取长度的倍数将数据预取到Cache中。
应用场景:适合大小不固定的顺序读应用,或多用户并发读但无法判定预读量的应用。例如用户多媒体点播。
按照主机IO请求中的预取长度直接从硬盘读取数据,即不使用预取功能。
应用场景:不预取策略适合随即读取小数据块应用。例如数据库应用。
14【华为HCIE-Storage】Cache读\写\镜像&一高低水位&二写盘&三读写策略&四读机制
原文地址:http://blog.51cto.com/hostman/2094666