Помогите нашему проекту

LVM Cache - прозрачное кеширование HDD используя SSD

LVM Cache LVM Cache

Недавно узнал об одной интересной технологии, позволяющей обеспечивать прозрачное кеширование HDD используя SSD. Но, к сожалению, никаких тестов и результатов толком не видел и сам не замерял. Подключение и отключение кеша можно производить на ходу, а также кешируемое устройство и кеширующее должно принадлежать одной группе томов. Кеш может работать в 2 режимах:

writethrough - любые данные будут записаны на кеш и диск, при потере кеша данные не теряются
writeback - данные пишутся сначала на кеш, после сбрасываются на диск, есть риск потерять данные

Ну и дальше само создание кеша

Создаем lv для метаданных и данных, где sdb - SSD

lvcreate -n metacache_lv1 -L20 vg1 /dev/sdb
lvcreate -n datacache_lv1 -L20G vg1 /dev/sdb

Создаем пул из томов данных и метаданных

lvconvert --type cache-pool --cachemode writeback --poolmetadata vg1/metacache_lv1 vg1/datacache_lv1

Cборка кеша из исходного тома данных и пула

lvconvert --type cache --cachepool vg1/datacache_lv1 vg1/lv1

Смотрим состояние, тут должен быть указан в скобках наш кеш

lvs -a

Есть еще более быстрый вариант

Создаем lv на 100гб в группе vg1 на SSD который /dev/sdb

lvcreate --type cache-pool -L100G vg1 /dev/sdb

И можно сразу его собирать, где vg1/lvol1 - пул кеша, а vg1/lv1 - раздел который кешируем

lvconvert --type cache --cachepool vg1/lvol1 vg1/lv1

Если необходимо разделить

lvconvert --splitcache vg1/lv1

В плане метрик есть dmsetup, который показывает в не совсем удобном виде

dmsetup -v status vg1/lv1
Name: vg1-lv1
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 108
Major, minor: 252, 4
Number of targets: 1
UUID: LVM-2f0CRd8MKObNN8GmSM3kZ5NErr9jNLNkugXhCTyyDLtG7gOdJn4QlOjh1b3U13T3
0 11221590016 cache 8 4550/35840 128 364661/2293760 79890 74509 839384 380627 0 364661 0 1 writethrough 2 migration_threshold 2048 mq 10 random_threshold 4 sequential_threshold 512 discard_promote_adjustment 1 read_promote_adjustment 4 write_promote_adjustment 8 rw -

Для преобразования его в кошерный вид существует скрипт, который приводит к читабельному виду
Из проблем с которыми столкнулся так это ошибка при попытке включить lv

/usr/sbin/cache_check: execvp failed: No such file or directory
Check of pool vg1/lv1_cache failed (status:2). Manual repair required!
Failed to active cache locally vg1/lv1.

Решается установкой thin-provisioning-tools

Авторизуйтесь, чтобы получить возможность оставлять комментарии
Back to top

Помогите нашему проекту