Ось спробував flashcache на тестовом сервере. Основное требование было – добавление кеша с сохранением существующей файловой системы.
В целом – установка под дебиан свежий не составляет проблем: sudo aptitude install flashcache-dkms flashcache-utils
modprobe flashcache
Примеров конфигурации – в сети также более чем достаточно. Однако стояла не совсем тривиальная задача – 2 кешируемых устройства и 1 SSD (Маємо те, що маємо).
У меня в наличии был KINGSTON SS200S3 объемом 30Гб.
Попытка создать 2 кеша размером по 14Гб постоянно закончилась неудачей – вторая команда выдавала постоянно ошибку.
fashcache_create -p back -s 14g cache_data /dev/sdc /dev/disk/by-uuid/5f39748b-f051-429a-8150-f2c3056f3066
и при этом
flashcache_create -p back -s 14g cache_db /dev/sdc /dev/disk/by-uuid/7bd24aa2-52f4-4b88-b9ee-a358ae1288b4flashcache_destroy /dev/sdc
уже не мог удалить кеш. Вылечилось удалением устройства через dmsetup напрямую:
dmsetup remove /dev/mapper/cache_data
flashcache_destroy /dev/sdc
Перерыв на чашку чая принес решение – попытаться разбить ssd на разделы.
Попытка увенчалась успехом: flashcache_create -p back cache_data /dev/sdc1 /dev/disk/by-uuid/5f39748b-f051-429a-8150-f2c3056f3066
flashcache_create -p back cache_db /dev/sdc2 /dev/disk/by-uuid/7bd24aa2-52f4-4b88-b9ee-a358ae1288b4
Кеширующие устройства создались без ошибок. осталось их только прописать в /etc/fstab
/dev/mapper/cache_data on /data type ext4 (rw,noatime,data=ordered)
/dev/mapper/cache_db on /db type ext4 (rw,noatime,data=ordered)
Добавил flashcache в /etc/modules. Протестировал перезагрузку. Все поднимается и монтируется куда надо.
После некоторого периода работы посмотрел статистику кеша:#dmsetup status
cache_data: 0 251658240 flashcache stats:
reads(13537772), writes(37496662)
read hits(2389985), read hit percent(17)
write hits(5551193) write hit percent(14)
...
cache_db: 0 236734560 flashcache stats:
reads(42736367), writes(65906115)
read hits(8555873), read hit percent(20)
write hits(42536889) write hit percent(64)
...
Т.е кеш – кеширует. Собственно что и требовалось сообразить.
Проблема всплыла при следующем апдейте. Обновилось ядро (3.9->3.10) и мейтейнеры чего-то натворили, что dkms модуль flashcache не собирался – ошибка компиляции. [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714633]
Пришлось ждать следующего апдейта репозитория (буквально на следующие сутки) – все исправили и кеш завелся на новом ядре также безпроблемно.
P.s. для мониторинга кеша есть munin-plugin:
https://raw.github.com/pkhamre/flashcache-munin/master/flashcache_stats
P.p.s. Реализовал на одном из продакшнов. (SSD: Intel 80Gb)
Интересно наблюдать “насыщение кеша” (cache saturation):
P.p.s. теперь нужно прикрутить smartctl для отслеживания “здоровья” SSD. Но это уже другая тема.
Update 24.03.2015 – на RAID10 SAS 15K – бессмысленная штука.