У меня три диска:
/dev/sda
медленный жесткий диск/dev/sdb
медленный жесткий диск/dev/sdc
быстрый ssd/dev/vg0
группа томов, состоящая /dev/sd{a,b,c}
Каждый логический том (lv) должен иметь зеркальное отображение raid1 и кэширование SSD.
С помощью следующей команды я могу создать зеркальный raid1 lv с именем test на vg0.
lvcreate --type raid1 -m 1 -L 1G -n test vg0
@hdd, @ssd
) для этого?Интересный проект - bcache: https://bcache.evilpiepirate.org/
С помощью bcache вы можете настроить SSD как быстрый кеш медленного (вращающегося) большого диска. Таким образом, наиболее часто используемые блоки будут считываться (и записываться, если так настроено) с (на) более быстрого ssd, при этом большая файловая система сохраняется на более медленных дисках.
На основе страница руководства lvmcache действительно кажется, что кеширование - это полностью логический том, а не то, что вы можете реализовать на уровне группы томов. То, что невозможно кэшировать всю группу VG, действительно раздражает, но, похоже, это архитектурное ограничение.
Что касается принудительного создания LV с использованием только определенных PV, вы можете указать PV в конце lvcreate
команда.
Вот синопсис с man-страницы с удаленными посторонними опциями:
lvcreate <...> [VolumeGroup{Name|Path} [/ExternalOrigin | Origin | Pool}LogicalVolumeName] [PhysicalVolumePath[:PE[-PE]]...]
Я думаю, что многие люди упускают это из виду, так как этот синопсис довольно «запутан». Но эта функция на самом деле необходима при создании вашего кеша, так как вам нужно иметь возможность принудительно размещать LV кеша на PV SSD.
Примечание: а быстрый поиск показывает, что зеркалирование LVM обычно считается намного медленнее, чем программный RAID Linux. Но я думаю, что вы можете восстановить часть этой потерянной производительности с помощью некоторой настройки.