Intel OpenCAS缓存加速方案
发布时间 - 2025-07-12 00:00:00 点击率:次open cas 架构概览:数据从hdd盘读取后被复制到open cas的缓存中,后续的读取操作从内存中进行,从而提高读写效率。在write-through模式下,所有数据同步刷新到open cas的ssd和后端的hdd中。在write-back模式下,数据同步写入到open cas的ssd中,然后异步刷新到hdd中。当open cas缓存满时,采用其淘汰算法,用新写入的数据替换旧数据,以确保open cas始终能够缓存数据。
系统组件依赖于sed、make、gcc、kernel-devel、kernel-headers、python3、lsblk和argparse(Python模块)。安装Linux Open Cas的步骤如下:
Open Cas由内核模块和CLI工具组成。
为了获得最佳性能,强烈推荐在SSD设备上采用noop的IO调度策略。
-
具体安装步骤:
-
下载Open Cas Linux源码:
git clone https://github.com/Open-CAS/open-cas-linux
-
获取子模块:
cd open-cas-linux git submodule update --init
-
配置和安装:
./configure make make install
-
检查和验证:
cas_disk.ko // Open Cas磁盘内核模块 cas_cache.ko // Open Cas缓存内核模块 casadm // Open Cas管理员工具 casadm -V // 安装验证
-
Open Cas配置文件位于utils/opencas.conf中,包括缓存和核心设备的配置。
-
缓存配置说明:
1. cache id: 执行设备的启动实例ID,整型取值范围在1~16384 2. path: 指向SSD的磁盘路径 3. desired mode: 预期模式,有五种模式: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
-
核心设备配置说明,配置样例:
## Caches configuration section [caches] ## Cache ID Cache device Cache mode Extra fields (optional) 1 /dev/disk/by-id/nvme-INTEL_SSD WT ioclass_fi
le=/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模式下,缓存系统首先将数据写入缓存,然后通知应用端写操作完成。后续周期性地同步写入核心设备。当有新的读请求时,如果之前写入的数据仍在缓存设备中,读请求将绕过缓存软件,直接从缓存设备中读取数据。该模式仅提高写性能,但存在数据丢失的风险。
-
手动配置pass-through模式:
casadm -S -i 1 -d /dev/sdc -c pt
-
手动配置write-back模式:
casadm -S -i 1 -d /dev/sdc -c wb casadm -A -i 1 -d /dev/sdb // 匹配/dev/sdb到缓存
在write-through模式下,缓存软件将数据写入闪存设备,然后顺序地写入核心设备。这种模式100%保证核心设备中的数据与缓存中的数据一致,同时可以共享给其他服务读取,加速读取操作。
-
手动配置write-through模式:
casadm -S -i 1 -d /dev/sdc // 创建ID为1的缓存 casadm -A -i 1 -d /dev/sdb // 匹配/dev/sdb到缓存
-
手动配置Write-around模式:
casadm -S -i 1 -d /dev/sdc -c wa
-
手动配置只写模式:
casadm -S -i 1 -d /dev/sdc -c wo
# linux
# python
# git
# 工具
# 数据丢失
# red
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速生成凡客建站的专业级图册?
如何利用DOS批处理实现定时关机操作详解
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
用yum安装MySQLdb模块的步骤方法
在线制作视频的网站有哪些,电脑如何制作视频短片?
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
html如何与html链接_实现多个HTML页面互相链接【互相】
JavaScript实现Fly Bird小游戏
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel如何创建自定义Facades?(详细步骤)
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Laravel用户密码怎么加密_Laravel Hash门面使用教程
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
JS实现鼠标移上去显示图片或微信二维码
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Laravel如何使用Blade模板引擎?(完整语法和示例)
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
java获取注册ip实例
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
高端智能建站公司优选:品牌定制与SEO优化一站式服务
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
如何快速生成橙子建站落地页链接?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel如何使用withoutEvents方法临时禁用模型事件
长沙企业网站制作哪家好,长沙水业集团官方网站?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Python并发异常传播_错误处理解析【教程】
如何在阿里云虚拟服务器快速搭建网站?
EditPlus中的正则表达式实战(5)
如何快速搭建高效香港服务器网站?
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
如何撰写建站申请书?关键要点有哪些?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
网站建设保证美观性,需要考虑的几点问题!
高端网站建设与定制开发一站式解决方案 中企动力
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
如何快速上传自定义模板至建站之星?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】


le=/etc/opencas/ioclass-config.csv