硬盘的预读和回写

磁盘CACHE的两大功能:预读和回写
 
对于磁盘I/O 来说,如果没有CACHE ,就直接从硬盘读写;如果有CACHE ,则首先从CACHE 读写。
 
CACHE 具有两大功能:
 
1 、预读
 
CACHE 预读提高了计算机系统中的硬盘读的功能,尤其是在读取含有大量文件碎片的文件时。具有良好预读功能的RAID 卡能在看起来很随机的读访问中,识别出读取磁盘的规律, 通过这个规律提前将系统要读取的数据放在CACHE 中。
 
预读的两种方式:
 
Read Ahead
 
由于硬盘数据经常是以一族连续的硬盘扇区组织起来的,所以有时侯如把系统所请求的扇区随后的一个扇区里的数据 同时读进来是有价值的。对于数据文件的读取有利, 特别是系统CPU 的性能低时。
 
Pre-Fetch
 
当RAID 卡发现系统要读的是先前已经读过的数据时,在这一次,便将这一个数据块的数据写到CACHE 里。对于程序文件的读取有利 。
 
2 、回写
 
回写是通过暂时将数据存在CACHE 里,从而推迟将数据写到慢设备(如硬盘、磁带机)的一种工作方式。数据将在随后的时间,硬盘闲置的时候写到硬盘中。写的时候也是统一将CACHE 内的尚未写出的数据按照数据块的在硬盘中的BLOCK 序号写入,这样可以提高写的效率。
 
回写需要加电池给CACHE 供电,以免数据在写到硬盘之前系统断电导致硬盘数据丢失。
 
增加CACHE 大小对于预读来说,为系统提供了更多的来自CACHE 的可供读取的记录。 对于回写来说,允许控制卡保存更多的记录留待后期写磁盘。特别是对于电梯式回写,使得连续的回写段之间有更近的间隔,降低硬盘写操作的平均访时间并提高了吞吐率。
 
写策略
 
通写模式下,所有数据在以命令完成状态返回到计算机之前,直接写到硬盘。两种写策略比较来说,写策略由通写改为回写时,可大幅度提高性能。但回写具有一定的数据危险性。在突然断电的情况下,会丢失存于Cache 尚未写入硬盘的数据。
 
RAID卡 工作在写策略为THROUGH 时,缓存大小对RAID卡 的性能影响很小,只有当写策略改为BACK 时,缓存的作用才会发挥出来。
 
影响RAID卡 性能的因素很多,其中可调因素主要有RAID卡 缓存(CACHE )大小、写策略(WRITE POLICY )、读策略(READ POLICY )、条带的大小(STRIPE SIZE )。不同的RAID卡 虽然说法略有不同,但意思是一样的。很多设置可以在RAID卡 的配置工具中调整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章