【ceph相关】opencas缓存加速配置说明

一、前言

源码地址:open-cas-linux
用户指南:guide_introduction

本文主要介绍OpenCas相关配置说明

1、概述

OpenCas,即Open Cache Acceleration Software(开放缓存加速软件),是Intel搭配自家硬件推出的一个开源缓存加速软件,可运行在Linux和Windows操作系统上。
OpenCas作为内核模块安装到Linux操作系统内,将高性能缓存盘(cache device)和大容量存储盘(core device)绑定生成新的设备分区,当对新的设备分区读写时,可利用高性能缓存盘提高读写性能,降低读写时延。

2、配置要求

OpenCas配置要求如下:

组件 要求
内存 OpenCas所需内存大小 = 1GiB + (2% x 4KiB/(cache line size) + 0.05%) x (cache device capacity)如,使用默认的cache line size大小(4K),所需内存大小 = 1GiB + 2.05% x 缓存盘容量大小
CPU OpenCas占用较少的CPU资源(大多数情况下少于10%)请确保OpenCas有足够的CPU资源以达到最佳运行状态
软件 安装OpenCas之前需安装以下软件:- sed- make- gcc- kernel-devel- kernel-headers- python3- lsblk- argparse (python module)- elfutils-libelf-devel
cache device 通常为SSD类型的高性能缓存盘,用于前端数据缓存使用cache device逻辑块大小(logical block size)必须小于或等于core device逻辑块大小
core device 通常为HDD类型的大容量存储盘,用于后端数据存储使用core device逻辑块大小(logical block size)必须大于或等于512 bytes

3、软件架构

3.1、缓存模式

OpenCas支持以下几种缓存模式,可根据实际使用场景需求选择性配置

3.1.1、write-through(直写)
  • 相关说明
    OpenCas默认缓存模式,在直写(wt)模式下,缓存引擎将数据写入到前端缓存盘,并同时将相同的数据写入到后端数据盘,确保前端缓存盘和后端数据盘数据始终同步,两者均写入成功之后,才向应用确认写入已完成,因此不能加速写操作

  • 应用场景
    此模式下只加速读操作,适合读密集型应用场景

3.1.2、write-back(回写)
  • 相关说明
    在回写(wb)模式下,缓存引擎先将数据写入到前端缓存盘,并向应用确认写入已完成,之后周期性地将缓存数据下刷到后端数据盘
    注:如果前端缓存盘在数据下刷到后端数据盘出现故障,则存在数据丢失风险

  • 应用场景
    此模式下会加速读和写操作,适合读写密集型应用场景

3.1.3、write-only(只写)
  • 相关说明
    在只写(wo)模式下,缓存引擎首先将数据写入到前端缓存盘,并向应用确认写入已完成,之后周期性地将缓存数据下刷到后端数据盘,新的读操作将绕过缓存,直接从后端数据盘读取,只有当数据写入到前端缓存盘尚未下刷时,会从前端缓存盘读取数据
    注:如果前端缓存盘在数据下刷到后端数据盘出现故障,则存在数据丢失风险

  • 应用场景
    此模式下只加速写操作,适合写密集型应用场景

3.1.4、write-around(绕写)
  • 相关说明
    在绕写(wa)模式下,当前端缓存盘存在对应数据块(即数据块已经被读缓存过,从后端数据盘复制到前端缓存盘),写操作会同时更新到前端缓存盘和后端数据盘,类似直写模式,保证前端缓存盘的数据和后端数据盘保持一致,其他情况下写操作直接写入到后端数据盘
    注:与write-through模式相比,write-around进一步优化了cache,避免”cache污染”,当确认要写入的数据不会被经常读取时(即前端缓存盘不存在对应数据块),数据不会写入到前端缓存盘,而是直接写入到后端数据盘

  • 应用场景
    此模式只会加速读操作,适合读密集型应用场景

3.1.5、pass-through(直通模式)
  • 相关说明
    在直通(pt)模式下,所有读写操作都不会缓存,缓存引擎直接对后端数据盘进行读写操作
    注:如果用户不想缓存任何工作负载,可以使用直通模式

  • 应用场景
    此模式下不会加速读和写操作,适合一些维护操作场景

4、配置建议

二、安装部署

1、软件安装

1.1、源码编译安装

安装前置依赖包

下载OpenCas稳定版本源码,执行编译安装操作

安装完成后,自动加载和内核模块到操作系统内,同时安装casadm命令行工具

1.2、离线包制作

  • 制作rpm包

安装构建rpm包相关依赖

下载OpenCas稳定版本源码,执行编译rpm包,生成rpm包存放于目录下

  • 制作deb包

安装构建deb包相关依赖

下载OpenCas稳定版本源码,执行编译deb包,生成deb包存放于目录下

2、软件部署

OpenCas配置缓存加速流程示意如下:
1、使用高性能缓存盘(cache device)创建缓存实例
2、将大容量存储盘(core device)绑定到对应缓存实例上,生成新的设备路径(如/dev/cas{cache-id}-{core-id}),之后对新的设备路径读写操作即可

2.1、部署方式一

适用场景:尚未配置ceph集群,使用OpenCas将SSD和HDD绑定成一个新的cas设备,使用cas设备部署osd

示例节点存在一个ssd和两个hdd,将ssd分两个分区,分别绑定到两个hdd上,生成两个新设备,之后使用新设备对外提供读写访问

num cache device core device cas device
1 /dev/sdb1 /dev/sdc1 /dev/cas1-1
2 /dev/sdb2 /dev/sdd1 /dev/cas2-1
  • 使用高性能缓存盘创建缓存实例
    使用两个ssd分区分别创建两个缓存实例(id分别为1和2),使用回写模式
  • 将大容量存储盘绑定到缓存实例上
    将两个hdd分别绑定到两个缓存实例上,生成两个cas设备,使用cas设备部署osd

3、常用操作

可通过或获得casadm相关操作说明

术语说明:
cache instance:缓存实例(通常为高性能、小容量的SSD盘,用于读写性能加速)
core device:核心设备(通常为低性能、大容量的HDD盘,用于数据持久化存储)

  • 启动缓存实例

    注:cache-mode可选模式为wt、wb、wa、wo、pt

  • 将核心设备绑定到缓存实例

  • 列出所有缓存实例和核心设备信息

  • 查看指定缓存实例状态信息

  • 停止缓存实例

  • 切换缓存模式

    注:OpenCas可以随时在不同缓存模式之间切换,无需重启系统或者OpenCas
    如果需要从wb模式切换到其他模式,需要先从缓存实例下刷脏数据至核心设备,下刷完成后才可切换到其他缓存模式

  • 从缓存实例下刷脏数据至核心设备

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8582 人正在系统学习中

来源:Luxf0

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月1日
下一篇 2022年5月1日

相关推荐