Cache Tiering的基本思想是冷热数据分离,用相对快速/昂贵的存储设备如SSD盘,组成一个Pool来作为Cache层,后端用相对慢速/廉价的设备来组建冷数据存储池。
Ceph Cache Tiering Agent处理缓存层和存储层的数据的自动迁移,对客户端透明操作透明。Cahe层有两种典型使用模式:
1)Writeback模式
Ceph客户端直接往Cache层写数据,写完立即返回,Agent再及时把数据迁移到冷数据池。当客户端取不在Cache层的冷数据时,Agent负责把冷数据迁移到Cache层。也就是说,Ceph客户端直接在Cache层上进行IO读写操作,不会与相对慢速的冷数据池进行数据交换。
这种模式适用于可变数据的操作,如照片/视频编辑、电商交易数据等等。
2)只读模式
Ceph客户端在写操作时往后端冷数据池直接写,读数据时,Ceph把数据从后端读取到Cache层。
这种模式适用于不可变数据,如微博/微信上的照片/视频、DNA数据、X射线影像等。
CRUSH算法是Ceph集群的核心,在深刻理解CRUSH算法的基础上,利用SSD的高性能,可利用较少的成本增加,满足企业关键应用对存储性能的高要求。
附. 名词解释:
I. Ceph: 开源分布式统一存储(块、对象、文件)项目。
II. Ceph OSD:Ceph Object Store Device的缩写,可以指Ceph里的一个存储单元,也可以指Ceph里的OSD管理进程。每台服务器上可运行多个OSD进程,典型的Ceph集群由奇数个Monitor节点和多个OSD节点组成。
III. CRUSH:CRUSH算法是Ceph的核心模块,它通过计算数据存储位置来决定如何存取数据,同时也让Ceph客户端可以直接和各OSD节点通信而不是一个中心节点,这样,避免了Ceph集群的单点故障、性能瓶颈,极大增强了线性扩展能力。
IV. SSD:Solid State Drive,固态盘,不解释。
V. SATA/SAS/PCIe:不同数据总线接口。高端存储里大部分存储节点采用PCIe技术进行互联;PCIe接口SSD也是大势所趋。SATA和SAS,一个指令集是ATA,一个是SCSI,两者都可用来作为机械盘或固态盘的接口。
VI. 几种写缓存模式:
Write-through:向高速Cache写入数据时同时也往后端慢速设备写一份,两者都写完才返回。
Write-back:向高速Cache写完数据后立即返回,数据不保证立即写入后端设备。给调用者的感觉是速度快,但需要额外的机制来防止掉电带来的数据不一致。
none:禁用写缓存,直接往Cache后端慢速设备写数据。
计算机内各级存储设备都存在Cache机制(CPU寄存器->L1缓存->L2缓存->内存->设备控制器缓存->物理设备)