原理

写操作先缓存到ssd硬盘上,然后通过一定策略写到普通硬盘上;

读操作热点数据可以缓存到ssd硬盘上,提高读取数据的速度。

软件 ssd 缓存开源软件主要有bcache ,flashcache

bcache 需要编译最新的内核,要求比较高,配置比较复杂,目前主要用于测试环境;

flashcache 是facebook内部使用的ssd cache软件,开源出来供大家使用,目前有人编译出rhel6的rpm包,在centos6上可以直接安装使用。

本次初步测试了flashcache

测试环境

sdc为 ssd 硬盘     160G*4 raid 10     用fio测试 4k 写iops为 5433

sdb为 普通sas硬盘 146G*2 raid  1    用fio测试 4k 写iops为 447

初步简单测试结果:

4k 随机写可以达到 5014

4k随机读可以达到45874

flashcache安装配置方法

安装

yum install flashcache-utils kmod-flashcache

配置:

用sdc 做sdb的缓存

flashcache_create -p back  cachedev /dev/sdc /dev/sdb

cachedev cachedev, ssd_devname /dev/sdc, disk_devname /dev/sdb cache mode WRITE_BACK

block_size 8, md_block_size 8, cache_size 0

Flashcache metadata will use 1192MB of your 24016MB main memory

可以用3种方式:

Writethrough - safest, all writes are cached to ssd but also written to disk

immediately.  If your ssd has slower write performance than your disk (likely

for early generation SSDs purchased in 2008-2010), this may limit your system

write performance.  All disk reads are cached (tunable).

数据同时写到ssd和普通硬盘

Writearound - again, very safe, writes are not written to ssd but directly to

disk.  Disk blocks will only be cached after they are read.  All disk reads

are cached (tunable).

数据同时绕过ssd,直接写到普通硬盘

Writeback - fastest but less safe.  Writes only go to the ssd initially, and

based on various policies are written to disk later.  All disk reads are

cached (tunable).

数据先写到ssd,随后写到普通硬盘

查看

flashstat

======================================================================================================

Flashstat: a tool for flashcache status per second

Version  : 0.3

======================================================================================================

SSD Device:   /dev/sdc         Disk Device:   /dev/sdb          Cache Mode: WRITE_BACK

Capacity:    303998M          Block Size:         4K     Meta Block Size:      4096b

Total Blocks:   77823488       Cached Blocks:          9      Cached Percent:          0

Set Numbers:        512        Dirty Blocks:          0       Dirty Percent:          0

cache_all:          1      reclaim_policy:       FIFO    dirty_thresh_pct:         20

max_clean_ios_set:          2 max_clean_ios_total:          4     skip_seq_thresh:         0K

======================================================================================================

time  read/s write/s diskr/s diskw/s  ssdr/s  ssdw/s uread/s uwrit/s metaw/s clean/s  repl/s wrepl/s   hit%  whit% dwhit%

03-13 14:51:20       0       0       0       0       0       0       0       0       0       0       0       0   0|10    0|0    0|0

fdisk -l /dev/mapper/cachedev  可以看到一个设备

Disk /dev/mapper/cachedev: 146.8 GB, 146778685440 bytes

255 heads, 63 sectors/track, 17844 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0002da0a

Device Boot      Start         End      Blocks   Id  System

使用:

可以当一个块设备来使用,划分vg lv

pvcreate /dev/mapper/cachedev

Physical volume "/dev/mapper/cachedev" successfully created

vgcreate ssdcachetest /dev/mapper/cachedev

Volume group "ssdcachetest" successfully created

lvcreate -L 100G -n ssdcache_test_lv1 ssdcachetest

Logical volume "ssdcache_test_lv1" created

删除

dmsetup  remove cachedev

flashcache_destroy /dev/sdc

linux ssd硬盘做缓存,linux系统中ssd当块设备缓存相关推荐

  1. linux ssd硬盘做缓存吗,搞定INTEL快速存储技术(用SSD硬盘做缓存加速),再次更新!...

    给朋友买了个联想 ideapad s400超级本,还真是锻炼我的idea啊,原机不带WIN7系统,所以只好自己动手装WIN7,并打开24G SSD硬盘做缓存. 一.用常规方法GHOST了一个WIN7系 ...

  2. raid配置ssd为缓存_搞定INTEL快速存储技术(用SSD硬盘做缓存加速),再次更新!...

    给朋友买了个联想 ideapad s400超级本,还真是锻炼我的idea啊,原机不带WIN7系统,所以只好自己动手装WIN7,并打开24G SSD硬盘做缓存. 一.用常规方法GHOST了一个WIN7系 ...

  3. nvme装系统不能自引导_WinPE无法识别NVMe SSD硬盘,如何重装系统

    (源自网络出处不详) 抽风,diy一台新机器,下载的win10系统安装时出现如题所示的问题,开始以为是主板的问题设置u盘启动也不行,后来在某个群里有人说是系统版本问题,无奈重新做了启动优盘(用的17年 ...

  4. 查看系统中支持CUDA的设备数量和属性---deviceQuery示例

    在你安装了CUDA显卡驱动之后,需要检测是否安装正确,或者需要查看系统中支持CUDA的设备数量和属性,可以通过SDK中的deviceQuery示例来查看,工程目录位置:C:\ProgramData\N ...

  5. WebRTC Native M96 SDK接口封装--enumerateVideoDevices获取系统中所有的视频设备列表

    不管怎样,活着便是盛宴!!! 设备管理是重要的一环,在用户的实际使用过程中,会遇到各种各种的设备问题. 这里,讲一下如何枚举系统中的所有的视频设备列表. 接口定义(Agora) 接口名:enumera ...

  6. linux 系统迁移到固态硬盘,在Linux系统中将SSD当块设备缓存的方法

    原理 写操作先缓存到ssd硬盘上,然后通过一定策略写到普通硬盘上: 读操作热点数据可以缓存到ssd硬盘上,提高读取数据的速度. 软件 ssd 缓存开源软件主要有bcache ,flashcache b ...

  7. linux系统4块硬盘做raid,linux部署raid阵列

    Llinux中磁盘阵列raid5的部署详细过程 1.首先给虚拟机添加4块硬盘. 添加过程我就不做介绍了.因为raid5是最少是需要有4块盘的.3个做数据写入,一块做热备. 假设现在已经添加好盘了,我们 ...

  8. 深度 linux固态硬盘速度,ubuntu linux deepin ssd优化

    硬件改造固态硬盘(64G,2.5寸,SATA3.0)装入原先的硬盘位置,购买一个光驱位硬盘托架,将机械硬盘(500G)装入原先的光驱位置.这几种材料都已经很常见,笔记本外观不会有什么瑕疵.系统安装1. ...

  9. Linux播放器MPlayer嵌入式开发系统中的应用

    摘要:本文论述了MPlayer在嵌入式开发系统中的应用,说明了如何在嵌入式开发板的平台上实现MPlayer的配置.编译.安装及调试过程. 关键词:嵌入式系统:MPlayer:MEncoder 引言 嵌 ...

最新文章

  1. asin java_Java asin() 方法
  2. 《漫画算法2》源码整理-2 图算法
  3. boost::contract模块实现ifdef宏功能测试程序
  4. 37 | 案例篇:DNS 解析时快时慢,我该怎么办?
  5. Intent的一些用法
  6. datatables 响应式
  7. HTML静态网页作业-篮球网页
  8. 解决在iOS8环境下,当用户关闭定位服务总开关时,无法将APP定位子选项加入定位权限列表的问题...
  9. Python工作笔记006---在centos命令行里进入和退出Python程序
  10. 基于知识图谱的古诗词推荐(python+爬虫+mysql+neo4j)(一)
  11. 19 枚举类型 Enumerated
  12. 计算机安全常用防护策略,新手必看
  13. android qq聊天动态表情的实现
  14. android读取带公章的pdf文件,APP中如何显示带电子签名的PDF文件
  15. (PMP)三、项目经理的角色
  16. Thinking in Java 中闪耀的星星(三)
  17. 触摸液晶屏技术原理及分类
  18. CentOS7系统管理-庄博-专题视频课程
  19. python模型预测控制_【模型工具】耦合python和 SWMM的城市排水系统模型预测算法...
  20. 微信新出置顶公众号功能,优质自媒体的春天!

热门文章

  1. python人脸识别门禁系统毕设_人脸识别门禁系统 毕业设计 可移植树莓派
  2. unity3d软阴影和硬阴影的原理_手术无影灯的原理
  3. python实现knn分类_knn分类算法底层实现(python)
  4. 不规则炫彩创意渐变海报设计模板素材|带来十足的时尚感
  5. 【UI设计师必备】可临摹精美的APP UI Kit模板
  6. python time 时间差,python如何计算时间差
  7. 获取byte的各个bit值_Java中获取一个Byte 的各个Bit的值
  8. (全网唯一)Python 10行代码 实现 PDF转WORD
  9. C++计算函数执行时间的两种方法
  10. C++判断进程id是否存在