Как установить и использовать flashcache / bcache для кэширования жесткого диска на SSD?

51

Я хочу знать, есть ли кто-нибудь, кто попытался установить и запустить свое ядро, построенное с помощью flashcache или bcache для кэширования SSD?

Как вам удалось это сделать?

    
задан kapad 06.02.2013 в 21:56
источник

4 ответа

10

Ну, у нас есть ответ bcache, но нет ответа flashcache. Я выбрал flashcache, потому что у меня уже была существующая установка, поэтому bcache не могло быть и речи. Для меня было проще настроить. Я выбрал метод DKMS, поэтому я бы не застрял в восстановлении модуля / инструментов каждый раз, когда я получил обновление ядра.

Эти шаги описаны в README-DKMS в Github.

Создание модуля

  1. Первое, что вы делаете, это установить предварительные условия для здания:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Затем зацепите источник:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Создайте и установите модули:

    make -f Makefile.dkms
    

Создание устройства flashcache

(В этом примере я использую кэширование обратной записи - значение по умолчанию - но flashcache может писать и писать также)

Кэширование устройства без полномочий root (не установлено в /)

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Если fcache - это созданное устройство (/ dev / mapper / fcache), / dev / sdaX является частью SSD (или всего диска) и / dev / sdbX является разделом жесткого диска.

Кэширование вашего корневого устройства

Если вы кешируете свое корневое устройство, еще несколько шагов. Для этого вам понадобится Ubuntu LiveCD / USB.

  1. <р> cd /path/to/flashcache/source
  2. <р> make -f Makefile.dkms boot_conf
  3. Измените /boot/grub/grub.cnf и / etc / fstab для загрузки из / dev / mapper / fcache (я не верю, что этот шаг действительно необходим, но он говорит). Обязательно запишите UUID исходного корневого устройства.

  4. Перезагрузитесь с LiveCD / LiveUSB.

  5. Установите ваше корневое устройство: mount /dev/sda4 /mnt (/ dev / sda4 - это мой Linux-раздел)

  6. <р> cd /mnt/path/to/flashcache/source
  7. <р> sudo apt-get install dkms build-essential linux-headers-$(uname -r)
  8. make; sudo make install Не нужно выполнять всю настройку DKMS в живой среде

  9. Отсоедините корневое устройство sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Где fcache - это созданное устройство (оно должно быть таким же, как вы вставляете в / etc / fstab и /boot/grub/grub.cnf, в моем случае это был fcache), / dev / sdbX - это SSD-раздел (или весь диск), а [UUID] - UUID вашего корневого раздела.

  11. Reboot!

Предостережения при использовании корневого устройства

Одно небольшое раздражение, когда flashcache используется для корневого устройства, заключается в том, что grub-probe не может обнаружить корневое устройство и может испортить ваше загрузочное меню, чтобы у вас было два Ubuntu. Но не имеет значения, что вы используете во всей реальности, так как шаг make -f Makefile.dkms boot_conf выше устанавливает некоторые скрипты в initrd, которые будут обнаруживать и использовать устройство flashcache.

    
ответ дан Chuck R 29.06.2013 в 23:36
источник
12

Существует инструмент преобразования для включения bcache на существующее устройство (раскрытие: я его написал). Это также способ пойти на свежие установки, поскольку текущие установщики дистрибутива не знают, как создавать устройства bcache (в этом случае: начните с установки на жесткий диск).

Смотрите преобразование корневой файловой системы в bcache в blocks README для получения инструкций.

Для bcache требуется Linux 3.10 или новее, который находится в дерьмо и может быть установлен вручную из Ссылка (найдите новейшую отмеченную версию, в настоящее время v3.11.5-saucy , и установите параметры, соответствующие вашей архитектуре).

bcache-tools и blocks могут быть установлены из моего хранилища ppa .

    
ответ дан Gabriel 01.09.2013 в 16:05
5

Предыдущее предупреждение: bcache не может использоваться для вашей существующей установки Ubuntu. Если вам требуется SSD-кэширование для вашей операционной системы, вы должны ждать будущую или специальную версию установщика Ubuntu, которая могла бы настроить ваш SSD-кеш. См. Этот ответ Оли здесь: Требуется ли bcache новая установка?

Для всех, кому нужен диск bcache для данных, отличных от ОС:

Первое, что нужно сделать, это обновить свое ядро, если вы используете 13.04 или более поздней версии, используя основной PPA ядра. Инструкции по его использованию можно найти здесь:

Ссылка

Убедитесь, что вы выбрали ядро ​​3,9 или выше при загрузке или оно не будет работать, и ваш диск исчезнет.

Установите инструменты bcache, на данный момент вам нужно будет установить из репозитория git:

git clone http://evilpiepirate.org/git/bcache-tools.git

Если вам удастся упаковать bcache-tools для debian, дайте нам знать, и этот вопрос будет обновлен для вас. ( bcache-tools и uuid-dev , libblkid-dev , должны быть установлены для сборки bcache-tools .)

После того, как у вас есть все инструменты, вы можете попробовать следовать руководству:

Ссылка

В этом руководстве показано, как отформатировать диски (жесткий диск SSD И ), а затем прикрепить их вместе, чтобы создать новый блок устройства с помощью bcache. Опубликуйте комментарий, если вы обнаружите, что инструкции запутаны, и я обновлю этот ответ с упрощениями.

    
ответ дан Martin Owens -doctormo- 07.05.2013 в 05:43
2

Я думал, что приду сюда и прокомментирую, что произошло со мной, когда я установил новое ядро. Я использовал flashcache только для моего раздела / home / folder. Я установил новое ядро, загрузился в него, и он остановился во время загрузки и сказал, что не может найти / dev / mapper / home_cached, есть 3 варианта, которые вы получили, когда получаете это сообщение, и я выбираю вариант входа в систему с правами администратора и попытайтесь исправить это. Сначала я попытался загрузить модуль flashcache, и он сказал, что он не может его найти. Поэтому я решил, что мне придется скомпилировать и установить его для этого нового ядра, которое я только что установил. у меня все еще была папка / flashcache /, расположенная внутри / root /, поэтому я в нее вложил и запустил

make -f Makefile.dkms boot_conf

, тогда я побежал

make install

, то я загрузил модуль flashcache с помощью

modprobe flashcache

, то мне просто пришлось загрузить мое существующее устройство flashcache, которое было

flashcache_load /dev/sdb1

затем просто установите мой домашний раздел с помощью

mount /home

, а затем выйти из регистрации в качестве пользователя root с выходом в командной строке, и он должен продолжить загрузку, как обычно. все сделано!

    
ответ дан Ubu the Tech Guru 11.01.2014 в 06:30