Flashcache – эксперименты

Ось спробував 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-a358ae1288b4
и при этом flashcache_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):
FlashCache Hits percent

FlashCacheHitspercent-month

P.p.s. теперь нужно прикрутить smartctl для отслеживания “здоровья” SSD. Но это уже другая тема.
Update 24.03.2015 – на RAID10 SAS 15K – бессмысленная штука.


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *