SSD作缓存方案之LVM cache

SSD作缓存方案之LVM cache

1. 前言

最近因为工作的需要,接触了一些SSD作缓存相关的知识。所谓SSD作缓存就是使用fast device(例如SSD),给slow device(例如机械硬盘)做缓存,以提高计算机整体的I/O存储性能。
目前在个人计算机中,使用的比较多的是机械硬盘和固态硬盘(SSD)。机械硬盘具有容量大,价格便宜,容错性好,寿命较长等优点;缺点是读写性能相对机械硬盘有比较大的差距。固态硬盘的优点是读写性能较好,特别是随机读写性能;缺点是价格比较昂贵,容量小,写入寿命有限,一旦损坏数据难以恢复等。
因此,有些情况下我们希望结合两者优点,于是SSD缓存技术方案应运而生。

2. 需求

假设:

  • 有一个容量比较小的fast device(例如SSD);
  • 有一个以及以上的大容量机械硬盘;
  • 有比较大的数据需要存储;
  • 对数据读写性能有一定的要求。

那么这个时候,我们就可以考虑把SSD作缓存来使用。

3. 常见方案

就从缓存方案来说,常见的有DM-cache、bcache、LVM cache、flashCache、EnhanceIO等,本文主要介绍LVM cache。

4. LVM cache

在RHEL6.7之后,LVM提供对LVM缓存逻辑卷的支持,它是基于dm-cache,LVM缓存逻辑卷使用快速设备(例如SSD驱动器)组成的小型逻辑卷,来提高容量更大但更慢逻辑卷的性能。下面在虚拟机上演示如何创建及使用。

注意:因为是在个人主机安装的虚拟机上演示,无法体现性能,仅仅演示创建过程,若需要测试其性能,请在实体机上使用真实的存储设备测试

4.1 创建

1469241-20180827160608287-311105951.png
如图所示,因为是测试,所以用虚拟机上的/dev/sdb和/dev/sdd分别作为fast device和slow device来演示创建过程。

4.1.1 分区

(以创建sdb分区为例)

fdisk /dev/sdb

回车进入分区操作, 输入n表示创建分区,然后回车选择默认选项,选项选择完毕后,输入w表示保存退出。
fdisk之后选项常用参数有:

  • m:帮助信息
  • p:显示分区表
  • d:删除一个分区表
  • l:列出已知的分区类型
  • n:新建一个分区表
  • q:退出不保存
  • w:保存并退出
  • t:修改分区表系统id

分区结果如下图所示:
1469241-20180827170536132-1235442158.png

4.1.2 创建物理卷
pvcreate /dev/sdb1 /dev/sdd1

1469241-20180827174346972-1207104709.png

4.1.3 创建卷组vg
vgcreate vg /dev/sdb1 /dev/sdd1

1469241-20180827174427258-1125451352.png

4.1.4 创建逻辑卷
  • 创建data逻辑卷
lvcreate -n data -L 6G vg /dev/sdd1

创建存储数据的逻辑卷data,划分/dev/sdd1物理卷的空间。

  • 创建cache逻辑卷
lvcreate -n cache -L 6G vg /dev/sdb1

创建缓存数据的逻辑卷cache,划分/dev/sdb1物理卷的空间。

  • 创建meta逻辑卷
lvcreate -n meta -L 64M vg /dev/sdb1

创建缓存数据的逻辑卷meta,划分/dev/sdb1物理卷的空间。

结果如下:
1469241-20180827174525934-1731174693.png

1469241-20180827174541439-1270903264.png

lvm cache总共包括三部分:data、cache、meta,其中meta的size需要大于千分之一的cache;data是存储数据,cache和meta共同构成缓存

4.1.5 创建缓存池

(注意cache和meta的顺序不能颠倒)

lvconvert --type cache-pool --poolmetadata vg/meta vg/cache

1469241-20180827174609657-1775766412.png

4.1.6 将存储卷加入缓存池
lvconvert --type cache --cachepool vg/cache --cachemode writeback vg/data

1469241-20180827174630021-1839639109.png

1469241-20180827174640484-1887792978.png

注意:cachemode有writeback和writethrough两种模式,默认为writethrough,此处测试设置为writeback。writeback的读写性能会好一些,但是在某些极端情况下会丢失数据

4.1.7 格式化与挂载
mkfs.ext3 /dev/vg/data
mkdir data
mount /dev/vg/data ./data/

1469241-20180827174650383-211403658.png

最后,就可以在./data/目录下存储数据了。在该目录读写数据时,实际上有fast device的缓存作用,加速了磁盘的读写性能。

转载于:https://www.cnblogs.com/jfLin/p/9542812.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值