Ceph Cache Tier

简介:

CacheTierceph服务端缓存的一种方案,简单来说就是加一层Cache层,客户端直接跟Cache层打交道,提高访问速度,后端有一个存储层,实际存储大批量的数据。

分层存储的原理,就是存储的数据的访问是有热点的,数据并非均匀访问。有个通用法则叫做二八原则,也就是80%的应用只访问20%的数据,这20%的数据成为热点数据,如果把这些热点数据保存性能比较高的SSD磁盘上,就可以提高响应时间。

性能较高的存储,一般由SSD 磁盘组成,称之为Cache 层,hot层,Cache pool 或者 hot pool访问性能比较低的存储层就称为 base pool 或者 data poolcold pool 等。

 

一、ceph cache mode

1、WriteBack模式:

客户端写入cache层,cache层应答,并且及时的写入back层,并删除掉cache层数据。客户端读取时,如果cache层不存在该数据,则从back层迁移数据过来,服务读取请求,一直可以服务到有效期内,适合于大量修改的数据应用场景(例如图片视频编辑联机事务处理类应用),适合数据。

 

2、Read-only模式:

读请求直接发送给cache pool,写请求并不经过cache pool,而是直接发送给back_pool.客户端写数据时,直接写入到back层,客户端读取时,cache层从back层拷贝数据,并在有效期内服务,过期的数据会被删除,这种方式的优点就是,cache pool 设置为单副本就可以了,即使cache pool 层失效,也不会有数据的丢失。这种模式比较适合数据一次写入,多次读取的应用场景。例如图片,视频音频等。适合数据。

 

3、Read-forward模式:

写的时候,和WriteBack模式一样;读的时候,如果cache层不存在该对象,则会转发读请求到back层。

 

4、Read-proxy模式:

Read-forward模式相似,读取的时候不是转发客户端的请求,而是代表客户端去读取back层的数据。

 

二、使用Cache Tier步骤

1、创建2pool

1
2
ceph osd poolcreate cachepool 150 150
ceph osd poolcreate backpool 150 150

2、关联2pool

1
  cephosd tier add backpool cachepool

3、设置cache模式

1
2
ceph osd tiercache-mode cachepool writeback
#writeback|forward|readonly|readforward四种模式根据需求选择


4、设置over-lay

所谓overlay,即所有发送到后端存储层的请求会被转发到cache层。

1
ceph osd tierset-overlay backpool cachepool

 

三、配置cache tier

1
2
3
4
5
6
7
cephosd pool  set  foo-hot hit_set_type bloom
cephosd pool  set  foo-hot hit_set_count 1
cephosd pool  set  foo-hot hit_set_period 3600   # 1 hour
ceph osd pool  set  foo-hot target_max_bytes1000000000000   # 1 TB
ceph osd pool  set  foo-hottarget_max_objects 1000000        # 1million objects
ceph osd pool  set  foo-hotcache_min_flush_age 600    # 10 minutes
ceph osd pool  set  foo-hotcache_min_evict_age 1800    # 30 minutes

Cache层的阈值

1
2
3
4
5
6
ceph osd pool  set  cachepooltarget_max_bytes 1099511627776
ceph osd pool  set  cachepooltarget_max_objects 1000000
ceph osd pool  set  cachepoolcache_target_dirty_ratio 0.4
ceph osd pool  set  cachepoolcache_target_full_ratio 0.8
ceph osd pool  set  cachepool  cache_min_flush_age 600
ceph osd pool  set  cachepoolcache_min_evict_age 1800

删除cache tier(Read-only)

1
2
ceph osd tier cache-mode cachepool none
ceph osd tier remove backpool cachepool

删除cache tier(Write-back)

1
2
3
4
5
ceph osd tier cache-mode cachepool forward
rados -p cachepool  ls
rados -p cachepool cache-flush-evict-all
ceph osd tier remove-overlay backpool
ceph osd tier remove backpool cachepool


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1791160,如需转载请自行联系原作者
相关文章
|
存储 关系型数据库 文件存储
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
这篇文章是关于如何在Ubuntu 22.04LTS上使用cephadm工具快速部署Ceph Reef(18.2.X)存储集群的详细教程,包括ceph的基本概念、集群的搭建步骤、集群管理以及测试集群可用性等内容。
3632 8
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
|
12月前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
410 6
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
672 4
|
数据采集 人工智能 数据挖掘
Python编程入门:从基础到实战的快速指南
【9月更文挑战第25天】本文旨在为初学者提供一个简明扼要的Python编程入门指南。通过介绍Python的基本概念、语法规则以及实际案例分析,帮助读者迅速掌握Python编程的核心技能。文章将避免使用复杂的专业术语,而是采用通俗易懂的语言和直观的例子来阐述概念,确保内容的可读性和实用性。
|
存储 算法 固态存储
CRUSH映射图及自定义规则实战篇
Ceph存储系统中CRUSH映射图及自定义规则的实战教程,涵盖了PG与OSD映射调整、CRUSH运行图修改案例以及CRUSH数据分类管理等内容。
318 1
|
网络协议 应用服务中间件 nginx
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
526 0
|
监控 Kubernetes Java
查看pod资源使用情况
使用`kubectl top pod -n $namespace|grep online`检查Kubernetes pod资源使用,例如CPU和内存。同样,通过`kubectl top nodes`查看节点资源。关注NMC的堆内存使用,防止溢出。监控实例请求和线程状态以确保正常运行。当遇到问题时,收集日志如jstack、jmap输出、操作系统日志和NMC线程监控数据。对于效率问题,依赖NMC线程监控和客户端SPR记录。错误日志可通过控制台获取。
|
机器学习/深度学习 Rust JavaScript
Rust 笔记:Rust 语言中应用正则表达式
Rust 笔记:Rust 语言中应用正则表达式
802 1
|
关系型数据库 Linux Shell
Centos系统上安装PostgreSQL和常用PostgreSQL功能
Centos系统上安装PostgreSQL和常用PostgreSQL功能
|
Shell Docker 容器
mac终端命令补全设置(docker 命令补全)
mac终端命令补全设置(docker 命令补全)
414 0