专栏首页力哥聊运维与云计算linux系统中ssd当块设备缓存

linux系统中ssd当块设备缓存

原理

写操作先缓存到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 安装配置方法

安装

rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

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

Author   : NinGoo(seaman.ning@gmail.com)

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • lvm创建逻辑卷简单过程

    创建过程,假设有两块硬盘,/dev/sda /dev/sdb 组建名为vg1的vg,然后划分50M大小的lv,名为mydata,划分好后在增加50M,过程如下:

    力哥聊运维与云计算
  • LVM-HOWTO/学习笔记(三)

    A data centre machine has 6 disks attached as follows:

    力哥聊运维与云计算
  • LVM-HOWTO/学习笔记(一)

    # lvcreate -i2 -I4 -l100 -nanothertestlv testvg

    力哥聊运维与云计算
  • 4、Swing在JPanel中添加背景图片方法

    Jpanel面板中加载背景图片 在实际应用Java做界面的过程中,常常会涉及到加载背景图片以使页面美化。下面整理了一个小模块以便于调用。 1 package ...

    YGingko
  • 生物医学研究的技术影响:基础性和新颖性的作用(CS DL)

    对创新研究的持续关注是了解如何将科学研究产生的知识用于技术开发。 尽管先前的调查都致力于研究技术的科学能力和促进技术转让的体制因素,但对于获得直接技术影响的科学...

    小童
  • 「R」使用 tinyscholar 展示个人谷歌学术档案

    谷歌学术是目前感觉最好的学术搜索引擎,谷歌学术档案提供了学者的个人学术信息,不过通常情况我们无法查看和使用这个信息。Y 叔写的 scholar[1] 包虽然提供...

    王诗翔呀
  • Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由

    以前在做asp的时候,要把 /default.asp?id=123映射成/default/123,需要借助IISRewriter这个组件,到了asp.net以后...

    菩提树下的杨过
  • 分布式文件系统之FastDFS文件服务器原理及搭建

    针对分布式开发,一个分布式文件系统就显得至关重要。今天主要讲讲FastDFS的搭建与实现。那么,什么是FastDFS呢?

    攻城狮的那点事
  • Linux内核同步原理学习笔记

    在多年前,linux还没有支持对称多处理器SMP的时候,避免并发数据访问相对简单。

    morixinguan
  • 修复ssh 首次登录树莓派失败的问题

    技术小黑屋

扫码关注云+社区

领取腾讯云代金券