Страницы

Сохранить статью у себя в соцсети:

четверг, 27 сентября 2012 г.

§ FlashCache: Installation.

установка FlashCache из исходных кодов под ядро 3.3.8.

Вторая статья из цикла серий о FlashCache о том как устанавливается и настраивается FlashCache.
Исходные коды FlashCache распространяются через репозиторий на GitHub'е. Поэтому следует скачать коды и выполнить сборку. Также понадобятся GCC, установленные исходные коды ядра и заголовочные файлы. В моем случае ОС Gentoo Linux, поэтому изначально проблем с этим нет. Разработчики заявляют что их модуль собран и работает для ядер 2.6.18, 2.6.20, 2.6.27, 2.6.32. Мы используем FlashCache на ядрах 3.2.21. Пока всем довольны. Здесь выполняю сборку для 3.3.8 (сборка для 3.6.0-rc3 провалилась). Итак вперед.
# git clone https://github.com/facebook/flashcache.git
# cd flashcache/
# make KERNEL_TREE=/usr/src/linux
# make install

В нашем распоряжении 4 исполняемых файла и модуль ядра
# ls -l /sbin/flashcache_*
-rwxr-xr-x 1 root root 24704 Sep 19 16:55 /sbin/flashcache_create
-rwxr-xr-x 1 root root 17726 Sep 19 16:55 /sbin/flashcache_destroy
-rwxr-xr-x 1 root root 18499 Sep 19 16:55 /sbin/flashcache_load
-rwxr-xr-x 1 root root 16938 Sep 19 16:55 /sbin/flashcache_setioctl
# ls -l /lib/modules/3.3.8-gentoo-a-64/extra/flashcache/flashcache.ko 
-rwxr-xr-x 1 root root 104951 Sep 19 16:55 /lib/modules/3.3.8-gentoo-a-64/extra/flashcache/flashcache.ko

Подгружаем модуль
# modprobe flashcache
# lsmod
Module                  Size  Used by
flashcache             62879  0

Итак, есть 2 тома, vg00/ssd это диск SSD добавленный в LVM группу и LVM том vg00/database. Том vg00/database смонтирован и содержит на себе PostgreSQL базу. Наша цель, собрать из этих двух устройств новое гибридное устройство. База данных при этом никуда не денется.
Сначала следует остановить PostgreSQL и отмонтировать диск. После чего соберем flashcache-устройство с writearound (самый безопасный) режимом. Размер блока оставим стандартный (4Kb), размер кэша оставим по умолчанию (займем весь размер SSD-диска).

# umount /data/postgresql/
# flashcache_create -v -p around fc-database /dev/vg00/ssd /dev/vg00/database 
cachedev fc-database, ssd_devname /dev/vg00/ssd, disk_devname /dev/vg00/database cache mode WRITE_AROUND
block_size 8, cache_size 0
Flashcache metadata will use 4MB of your 3918MB main memory
Flashcache Module already loaded
version string "git commit: 1.0-159-g3ada76bd7802"
Creating FlashCache Volume : "echo 0 2097152 flashcache /dev/vg00/database /dev/vg00/ssd fc-database 3 2 8 0 140114718097920 8 | dmsetup create fc-database"

Монтируем новое устройство... как видно данные никуда не делись.
# mount /dev/mapper/fc-database /data/postgresql/
# ls -l /data/postgresql/data/
total 80
drwx------ 5 postgres postgres  4096 Sep 19 17:12 base
drwx------ 2 postgres postgres  4096 Sep 19 17:12 global
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_clog
-rw------- 1 postgres postgres  4476 Sep 19 17:12 pg_hba.conf
-rw------- 1 postgres postgres  1636 Sep 19 17:12 pg_ident.conf
drwx------ 4 postgres postgres  4096 Sep 19 17:12 pg_multixact
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_notify
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_serial
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_stat_tmp
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_subtrans
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_tblspc
drwx------ 2 postgres postgres  4096 Sep 19 17:12 pg_twophase
-rw------- 1 postgres postgres     4 Sep 19 17:12 PG_VERSION
drwx------ 3 postgres postgres  4096 Sep 19 17:12 pg_xlog
-rw------- 1 postgres postgres 19169 Sep 19 17:12 postgresql.conf

В процессе работы базы данных накопилась некоторая статистика, в дальнейшем эту статистику можно собирать для последующего анализа.
# dmsetup status fc-database
0 2097152 flashcache stats:
        reads(2263), writes(1440925)
        read hits(103), read hit percent(4)
        replacement(0), write replacement(0)
        invalidates(1)
        pending enqueues(0), pending inval(0), no room(0)
        disk reads(2160), disk writes(1440925) ssd reads(103) ssd writes(2159)
        uncached reads(1), uncached writes(1440925), uncached IO requeue(0)
        uncached sequential reads(0), uncached sequential writes(0)
        pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)

Таким образом мы собрали и проверили работоспособность flashcache-устройства.
В соответствии с лучшими практиками администрирования следует написать пакет для интеграции с пакетным менеджером и добавить сборку flashcache-устройства на этапе загрузки ОС, после иницализации device-mapper и до стадии монтирования файловых систем.

На главную "Virtualizing Linux"

Комментариев нет:

Отправить комментарий

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика