前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Intel OpenCAS缓存加速方案

Intel OpenCAS缓存加速方案

作者头像
用户4700054
发布2022-08-17 11:16:34
2K0
发布2022-08-17 11:16:34
举报
文章被收录于专栏:存储内核技术交流

Open Cas 架构概览

  • 数据从HDD盘读取然后拷贝到open cas 的cache中,后续数据读取都是从内存读取,提高读写效率。
  • 在write-through模式,所有的数据都是同步刷新到open cas的ssd和后端hdd硬盘中。
  • 在write-back模式中,所有数据同步写入open cas的ssd中,然后异步刷新到HDD中。
  • open cas 缓存满后,采用open cas的淘汰算法,用最新写入的数据淘汰以前旧数据,已达到oepn cas始终可以缓存数据。

系统组件以来

  • sed
  • make
  • gcc
  • kernel-devel
  • kernel-headers
  • python3
  • lsblk
  • argparse (python module)

安装linux open cas

1.open cas 由kernel modules和cli工具组成
2.为了获取最佳性能,强烈推荐在SSD device采用noop的IO调度策略
3.具体安装步骤:

下载open cas linux source

代码语言:javascript
复制
git clone https://github.com/Open-CAS/open-cas-linux

获取子模块

代码语言:javascript
复制
cd open-cas-linux 
git submodule update –init

配置和安装

代码语言:javascript
复制
./configure
make
make install

检查和验证

代码语言:javascript
复制
cas_disk.ko  //open cas 磁盘内核模块
cas_cache.ko //open cas 缓存内核模块
casadm       //open cas 管理员工具
casadm -V    //install 检验

open cas配置

配置文件在utils/opencas.conf中,包括cache的配置和core devices的配置

1.cache id:everycore device的Cache id,视频,取值范围0~4095 2.core id:everycore devices的id 3.path:core device的路径 //everycache和core devices执行已经存储在hdd和ssd,核心设备应该引用wwn的标识,缓存设备必须顺序数据。

  • caches配置说明
代码语言:javascript
复制
1.cache id:执行设备的启动实例ID,整形取值范围在1~16384
2.path:指向ssd的磁盘路径
3.desired mode:预期模式,一共有5中模式,分别是write-through/write-back/write-only/pass-through
4.extra fields:用户自定义IO配置
	4.1 ioclass_file:允许用户加载自定义IO策略
  	4.2 cleaning_policy :允许用户缓存清理的策略,包括了acp/alru/nop
	4.3 promotion_policy :允许用户使用缓存的推进策略,包括了always/nhit
  • 核心设备配置说明

配置样例

代码语言:javascript
复制
## Caches configuration section

[caches]

## Cache ID Cache device Cache mode Extra fields (optional)

1 /dev/disk/by-id/nvme-INTEL_SSD WT ioclass_file=/etc/opencas/ioclass-config.csv

## Core devices configuration

[cores]

## Cache ID Core ID Core device

1 1 /dev/disk/by-id/wwn-0x50014ee0aed22393

1 2 /dev/disk/by-id/wwn-0x50014ee0042769ef

1 3 /dev/disk/by-id/wwn-0x50014ee00429bf94

1 4 /dev/disk/by-id/wwn-0x50014ee0aed45a6d

1 5 /dev/disk/by-id/wwn-0x50014ee6b11be556

1 6 /dev/disk/by-id/wwn-0x50014ee0aed229a4

1 7 /dev/disk/by-id/wwn-0x50014ee004276c68

cas管理工具

  • 在write-only模式下,缓存系统先把数据写入到cache中,然后通知应用端写完成。后续周期性的同步写到core device中,当有新的读请求。只有当之前写入数据在cache device中,读请求会绕开cache software,直接读取caching device的数据。该模式仅仅提高写性能,但是会有数据丢失风险。
  • 手动配置pass-through模式
  • 在该模式下, caching software首先把数据先写入到cache中,然后通知用户写完毕了,最后周期性的把数据写入到core device中,write-back模式提高了读写性能,但是会有数据丢失的风险
代码语言:javascript
复制
casadm -S -i 1 -d /dev/sdc -c wb
casadm -A -i 1 -d /dev/sdb  //匹配/dev/sdb到cache
  • 在该模式下,缓存软件将数据写入闪存设备,然后顺序的写入到核心设备中,这种模式 100% 保证核心设备中的数据和缓存中的数据一致,同时可以共享给其他的服务读取,类型可以加速阅读
  • 手动配置 write-through 模式
代码语言:javascript
复制
casadm -S -i 1 -d /dev/sdc  //创建id=1的cache
casadm -A -i 1 -d /dev/sdb  //匹配/dev/sdb到cache
  • 手动配置回写模式
  • 手动配置Write-around模式
代码语言:javascript
复制
   casadm -S -i 1 -d /dev/sdc -c wa
   casadm -S -i 1 -d /dev/sdc -c pt
  • 手动配置只写模式
代码语言:javascript
复制
 casadm -S -i 1 -d /dev/sdc -c wo
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Open Cas 架构概览
  • 系统组件以来
  • 安装linux open cas
    • 1.open cas 由kernel modules和cli工具组成
      • 2.为了获取最佳性能,强烈推荐在SSD device采用noop的IO调度策略
        • 3.具体安装步骤:
        • open cas配置
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档