В основе проекта FlashCache лежит простая — как все гениальное — идея: если в компьютере установлен быстрый диск SSD и медленный HDD, то все часто используемые данные должны прозрачно для пользователя размещаться на SSD, а все остальное должно отправляться на HDD.
Какое именно ускорение дает FlashCache
Самой медленной операцией жесткого диска является произвольная запись. Из-за частых случайных перемещений головки, даже у современных дисков эта скорость может составлять около 2 Мб/с, что является узким местом, влияющим на общую производительность.
Экспериментатор с сайта LinuxJournal.com установил HDD, провел тестирование и привел его характеристики:
- последовательное чтение: 115 Мб/с
- последовательная запись: 72 Мб/с
- произвольное чтение: 2 Мб/с
- произвольная запись: 2 Мб/с
Может ли операционная система, записывающая данные со скоростью 2 Мб/с работать эффективно?
После этого измерения экспериментатор установил FlashCache и получил другие совсем другие данные, которые порадовали его больше:
- последовательное чтение: 284 Мб/с
- последовательная запись: 72 Мб/с
- произвольное чтение: 284 Мб/с
- произвольная запись: 71 Мб/с
Как видим, скорость произвольной записи возросла в 35,5 раз.
Установка FlashCache В Ubuntu
FlashCache распространяется в виде исходного кода модуля ядра. Репозиторием является GitHub, поэтому нам сначала потребуется установить инструментарий работы с git:
sudo apt-get install git-core
Теперь мы можем загрузить исходники:
git clone https://github.com/facebook/flashcache.git
В результате будет создана директория flashcache, в которую нужно перейти и дать команду на сборку программы:
sudo make
Учтите, что будет собран модуль для текущего ядра, исходники которого размещены (или должны быть размещены заранее) в директории /usr/src. Если требуется создать модуль к неработающему в данный момент ядру, то следует отдельно указать путь к исходникам:
sudo make KERNEL_TREE=/usr/src/custom-kernel
После компиляции нужно установить полученный модуль:
sudo make install
Запуск и настройка FlashCache
Сперва загрузим сам модуль:
sudo modprobe flashcache
Теперь убедимся, что всё собрали и установили правильно:
sudo dmesg | tail
Должно появиться сообщение, что «flashcache initialized». Теперь включим кэширование для произвольно выбранного раздела. Для примера возьмем /home, однако FlashCache умеет кэшировать любые разделы, даже загрузочные (через Dynamic Kernel Module Support).
sudo umount /home
Создадим новый виртуальный диск home_cached который будет сочетать сильные стороны SSD и HDD и игнорировать слабые:
sudo flashcache_create home_cached /dev/sdb /dev/sda2
Где /dev/sdb — это SSD-disk, а /dev/sda2 — прежний раздел /home на HDD-диске.
Теперь смонтируем /home обратно, однако вместо /dev/sda2 используем имя нового кэшируемого диска:
sudo mount /dev/mapper/home_cached /home
Внесите соответствующие изменения в /etc/fstab, чтобы после перезагрузки кэширование /home сохранилось.
Готово. Теперь, уважаемые пользователи, пристегните ремни, чтобы не упасть со стула от сверхвысоких скоростей работы в Ubuntu.
Как еще разогнать Ubuntu
Можно не только включить кэширование, но и разогнать сам SSD. Читайте подробную инструкцию о том, как разогнать SSD-накопитель в Ubuntu с помощью включения поддержки TRIM.
Просмотров: 2044