LVM Raid 1 + SSDcaching

我有三个磁盘:

  • /dev/sda 慢速硬盘
  • /dev/sdb 慢速硬盘
  • /dev/sdc fast ssd
  • /dev/vg0 卷组/dev/sd{a,b,c}

每个逻辑卷(lv)应该被raid1镜像和ssdcaching

使用以下命令,我可以在vg0上创build一个名为test的镜像raid1 lv。

 lvcreate --type raid1 -m 1 -L 1G -n test vg0 
  • 在上一个命令中需要更改什么,才能使用raid1镜像的慢速硬盘? 我可以使用LVM标签系统( @hdd, @ssd )吗?
  • 我find了一些教程来解释如何使用LVMcachingfunction。 但看起来我需要为每个lv创build一个自己的caching池。 是否有可能为整个vg0创build一个大的caching池,以便vg0中的所有lvs都将被caching? 或者我可以安全地重用现有的caching池为其他lvs?

基于lvmcache手册页 ,看起来好像caching完全是一个逻辑卷的事情,而不是你可以在卷组级别上实现的东西。 看起来很烦人,不能caching整个VG,但这似乎是一个架构限制。

关于强制仅使用特定的PV创buildLV,可以在lvcreate命令的末尾指定PV。

以下是手册页中的摘要,删除了无关的选项:

 lvcreate <...> [VolumeGroup{Name|Path} [/ExternalOrigin | Origin | Pool}LogicalVolumeName] [PhysicalVolumePath[:PE[-PE]]...] 

我想很多人都很想念这个故事,因为这个故事大概是“涉及到的”。 但是,创buildcaching时,此function实际上是必需的,因为您需要能够将cachingLV强制置于SSD PV上。

旁注: 快速search显示,LVM镜像通常被认为比Linux软件RAID慢得多。 但我认为你可以通过一些调整来恢复一些失去的性能。

一个有趣的项目是bcache: https ://bcache.evilpiepirate.org/

使用bcache,您可以将ssd设置为缓慢(旋转)更大的磁盘的快速caching。 通过这种方式,访问最多的块将从较快的ssd读取(并且如果这样configuration则写入),同时在较慢的磁盘上保留较大的文件系统。