我有三个磁盘:
> / dev / sda slow hdd
> / dev / sdb slow hdd
> / dev / sdc fast ssd
> / dev / vg0卷组/ dev / sd {a,b,c}
每个逻辑卷(lv)应该是raid1镜像和ssd缓存.
使用以下命令,我可以在vg0上创建一个名为test的镜像raid1 lv.
lvcreate --type raid1 -m 1 -L 1G -n test vg0
>我需要在上一个命令中更改什么,以便它只使用raid1镜像的慢速hdds?我可以使用LVM标签系统(@hdd,@ sdd)吗?
>我找到了一些教程,介绍了如何使用LVM缓存功能.但看起来我需要为每个lv创建一个自己的缓存池.是否可以为整个vg0创建一个大缓存池,以便缓存vg0中的所有lv?或者我可以安全地重用其他lvs的现有缓存池吗?
解决方法
基于
lvmcache man page,看起来缓存完全是一个逻辑卷,而不是你可以在卷组级别实现的东西.不能缓存整个VG似乎很烦人,但这似乎是一个架构限制.
关于强制仅使用特定PV创建LV,可以在lvcreate命令的末尾指定PV.
lvcreate <...> [VolumeGroup{Name|Path} [/ExternalOrigin | Origin | Pool}LogicalVolumeName] [PhysicalVolumePath[:PE[-PE]]...]
我想很多人都会错过这个,因为这个概要非常“涉及”.但是,在创建缓存时,此功能实际上是必需的,因为您需要能够强制缓存LV位于SSD PV上.
旁注:quick search 显示LVM镜像通常被认为比Linux软件RAID慢得多.但我认为你可以通过一些调整来回收一些失去的性能.