2KB项目,专业的源码交易网站 帮助 收藏 每日签到

使用 LVM 新的缓存特性

  • 时间:2019-01-23 18:36 编辑:2KB 来源:2KB.COM 阅读:294
  • 扫一扫,手机访问
  • 分享
摘要:
LVM 英文原文:Using LVM’s new cache feature

如果你有一台带有慢速硬盘和快速SSD的电脑,你想使用SSD作为快速持久缓存用来提升访问硬盘的速度。然而直到最近,你有三个选择:bcachedm-cache都upstream,或者Flashcache/EnhanceIO。Flashcache不是upstream。dm-cache要求你首先坐下来,使用计算器计算块的偏移。bcache是三个选择中最全面的。

但是最近LVM已经增减了缓存的支持(构建在dm-cache之上),因此在理论上,你能让已存在的逻辑卷转换到已缓存的设备。

安装

为了在实践中了解是怎样工作的,我在以前的无盘虚拟群集中添加了3块硬盘。

在镜像配置中有两个2TB的WD硬盘。通过蓝色(冷)线连接。在左侧是三星EVO 250GB SSD,作为缓存的红色(热)盘。

另一个新闻:哦,现在品牌制造商的SSD是真的便宜!

lsblk输出如下,sda和sdb是WD硬盘,sdc是三星SSD:

# lsblkNAME                                     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                                        8:0    0   1.8T  0 disk  
└─sda1                                     8:1    0   1.8T  0 part  
  └─md127                                  9:127  0   1.8T  0 raid1 
sdb                                        8:16   0   1.8T  0 disk  
└─sdb1                                     8:17   0   1.8T  0 part  
  └─md127                                  9:127  0   1.8T  0 raid1 
sdc                                        8:32   0 232.9G  0 disk  
└─sdc1                                     8:33   0 232.9G  0 part

性能

在创建 缓存之前,先看看硬盘的速率如何.  以下数据包含了 ext4 和 LVM overhead (ie. 体现在文件系统里,并非块存储). 我还用了 O_DIRECT.

HDD writes: 114 MBytes/sec
HDD reads: 138 MBytes/sec
SSD writes: 157 MBytes/sec
SSD reads: 197 MBytes/sec

这些数字并没有体现出SSDs的好处 — 就是随机访问硬盘时,性能没有什么区别.

Terminology

lvmcache(7) [没有什么能拷贝的地方] 文档指出了一些用到的术语:

origin LV           OriginLV      large slow LV
cache data LV       CacheDataLV   small fast LV for cache pool data
cache metadata LV   CacheMetaLV   small fast LV for cache pool metadata
cache pool LV       CachePoolLV   CacheDataLV + CacheMetaLV
cache LV            CacheLV       OriginLV + CachePoolLV

创建 LVs

文档中很夸张的提到,移除错误的 LV 将会完全颠覆之前的 OriginLV, 为了测试这一特性我 在有几个镜像文件的慢速HDDs上创建了一个 OriginLV:

# lvcreate -L 100G -n testoriginlv vg_guests
  Logical volume "testoriginlv" created
# mkfs -t ext4 /dev/vg_guests/testoriginlv

需要注意的是resizing cached LVs功能目前并未提供 (可能以后出来 — 现在只能先移除缓存,从新分配大小再重新创建缓存).

创建缓存层

从文件的角度来说,这并不明确,但是一切都必须在一个简单的卷组中. 也就是说,你必须创建一个既包括慢速和快速的磁盘卷组 - 它并不是简单工作。

因此,我的第一个步骤是扩大我现有的VG ,包括快盘:

# vgextend vg_guests /dev/sdc1
  Volume group "vg_guests" successfully extended

我创建了快速的SSD两个LVs 。一个是CacheDataLV ,这就是缓存发生。另一个是用于存储被高速缓存在CacheDataLV的数据块的索引的CacheMetaLV 。该文件说, CacheMetaLV应该是千分之一的CacheDataLV的大小,但最少为8MB 。由于我的总可用空间快是232GB ,而我希望有一个1000:1的分裂,我大方的选择一个1GB的CacheMetaLV , 229G的CacheDataLV ,而且会留下一些遗留下来的空间(我最终的分割结果是229:1 ) 。

# lvcreate -L 1G -n lv_cache_meta vg_guests /dev/sdc1
  Logical volume "lv_cache_meta" created
# lvcreate -L 229G -n lv_cache vg_guests /dev/sdc1
  Logical volume "lv_cache" created
# lvs
  LV                     VG        Attr       LSize
  lv_cache               vg_guests -wi-a----- 229.00g
  lv_cache_meta          vg_guests -wi-a-----   1.00g
  testoriginlv           vg_guests -wi-a----- 100.00g
# pvs
  PV         VG        Fmt  Attr PSize   PFree  
  /dev/md127 vg_guests lvm2 a--    1.82t 932.89g
  /dev/sdc1  vg_guests lvm2 a--  232.88g   2.88g

(你会发现,我的缓存大于我的测试OriginLV ,但是这很好,因为一旦我已经制定了所有的陷阱,我真正的OriginLV将超过1 TB).

为什么要在PV上留下2.88GB的空间?我也不太清楚,只是第一次使用时,我并没有预留空间,结果执行 lvconvert命令后 [如下] 提示需要1GB的扩展空间。

把 CacheDataLV和CacheMetaLV 放到“缓存池”里 :

# lvconvert --type cache-pool --poolmetadata vg_guests/lv_cache_meta vg_guests/lv_cache
  Logical volume "lvol0" created
  Converted vg_guests/lv_cache to cache pool.

接着把缓存池连到OriginLV来创建最终的缓存工程:

# lvconvert --type cache --cachepool vg_guests/lv_cache vg_guests/testoriginlv
  vg_guests/testoriginlv is now cached.

结果

看起来还不错? 在使用缓存 LV后,得到的数据如下:

LV-cache writes: 114 MBytes/sec
LV-cache reads: 138 MBytes/sec

和原来硬盘的结果一致.

还好没出什么岔子. MikeSnitzer说明了我的dd测试在dm-cache中无效的原因 Mike Snitzer gave me an explanation of why my test usingddisn’t a useful test of dm-cache.

接下来我会创建一些请求,然后看看他们的性能如何 (就是刚才我提到的问题).

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部