由前端端口和前端控制器组成。前端
前端端口算法
使得主机能链接到智能存储系统,每一个前端端口拥有相应传输协议的处理逻辑(SCSI、光纤通道、iSCSI等)。后端
前端控制器缓存
经过数据总线在主机和缓存间传输数据。经过命令队列算法来优化IO处理。服务器
前端命令队列网络
经过队列存储IO命令,调整执行顺序,减小没必要要的驱动器磁头移动,改善磁盘性能。性能
常见算法:优化
先进先出算法FIFO:按顺序执行,性能最差blog
寻道时间优化算法:根据寻道时间优化队列
访问时间优化:综合考虑寻道时间和旋转延迟进行优化
注:命令缓存也能够在磁盘控制器上实现。
基本单位是页。
物理磁盘访问最慢。由于寻道时间与旋转延迟,一般要几毫秒。过慢致使请求被排队,带来响应延迟。
缓存访问数据只需不到1ms,数据先被存入缓存随后再写入磁盘。数据存入缓存后,主机会当即获得响应。
缓存由数据存储和标签RAM组成。
标签RAM
每一个条目记录数据保存在缓存哪一个位置以及数据属于磁盘中的哪一个位置。
脏标志位:记录是否已保存到磁盘
时间信息:如最后访问时间,淘汰好久没访问的数据
带有缓存的读操做
主机发送读请求,前端控制器经过标签RAM查询数据是否在缓存中。
若是找到了(读命中),数据直接送入主机,不发生磁盘操做。
不然(缓存未命中),后端控制器访问磁盘,读取数据,数据被存入缓存,在经过前端控制器传入主机。
预读(预取)
若是请求是顺序的,未命中时,将一些还没被请求到的后续磁盘块提早读取到缓存。以使后续数据读命中。
智能存储系统提供了固定和可变的预读长度。
固定长度预读:适合IO大小统一的操做
可变长度预读:预读数倍于主机请求数据的长度。设置最大上限防止大量磁盘操做影响其余IO操做。
带有缓存的写操做
回写缓存
数据存入缓存,主机获得当即响应。一段时间后,多个写操做的数据被一块儿提交到磁盘。
将写操做和磁盘的机械延迟分开,写响应时间加快;但若是故障,未写入磁盘的数据可能丢失。
直接写操做
存入缓存后当即写入磁盘,而后主机获得响应。
注:有时要跳过缓存,如:要写入极大量数据时,防止这些数据占用大量缓存空间,所以选择直接写入磁盘。而将缓存用于优化小的、随机的IO访问。
缓存实现
专用缓存
读操做的缓存和写操做的缓存分别使用单独的内存空间。
全局缓存
读写操做可使用任意空闲的内存。
只需管理一组全局的地址,所以更有效率。
可容许用户指定读缓存和写缓存的比例。
缓存管理
最近最少访问算法LRU(Least Recently Used)
长时间未访问的缓存将释放或标记为可重用。
最近访问算法MRU(Most Recently Used)
与LRU相反,最近被使用的缓存会被释放或标记为可重用。
刷清操做
缓存写入数据时,系统必须将脏页面(已写入页面,未写入磁盘)刷清。
缓存数据保护
防止因电源故障或缓存故障使未写入磁盘的缓存数据丢失。
缓存镜像
写入缓存的数据被保存在相互独立的内存条的不一样位置。读操做不须要(原本就是从磁盘传入缓存),只有写操做会被镜像。
缓存跳跃(缓存保险存储)
停电时,提供一组物理磁盘在停电时转储缓存中的数据。用来转储的磁盘称做跳跃驱动器(保险存储驱动器)。供电恢复后再从新读入缓存,再写回磁盘。
服务器闪存缓存技术
使用主机上的智能缓存软件和 PCIe 闪
存卡
• 显著提升应用程序性能
为读取密集型工做负载提供性能加速
避免与对存储阵列的 I/O 访问关联的网络
延迟
• 经过将数据放在服务器上的 PCIe 闪存
中,以智能方式肯定将受益的数据
• 使用最少的 CPU 和内存资源
闪存管理减负到 PCIe 卡上
由后端端口和后端控制器组成。