Я хочу знать, есть ли кто-нибудь, кто пытался установить и запустить свое ядро, созданное с помощью flashcache или bcache для SSD-кэширования?
Как тебе удалось это сделать?
Я хочу знать, есть ли кто-нибудь, кто пытался установить и запустить свое ядро, созданное с помощью flashcache или bcache для SSD-кэширования?
Как тебе удалось это сделать?
Ответы:
Ну, мы получили ответ bcache, но не ответ на flashcache. Я выбрал flashcache, потому что у меня уже была существующая установка, поэтому о bcache не могло быть и речи. Мне это казалось проще в настройке. Я выбрал метод DKMS, чтобы не зацикливаться на перестройке модуля / инструментов при каждом обновлении ядра.
Эти шаги описаны в README-DKMS на Github.
Сборка модуля
Первое, что вы делаете, это устанавливаете необходимые условия для здания:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Тогда поймайте источник:
git clone git://github.com/facebook/flashcache; cd flashcache
Сборка и установка модулей:
make -f Makefile.dkms
Создание устройства flashcache
(В этом примере я использую кэширование с обратной записью - по умолчанию - но flashcache может также выполнять запись и перезапись)
Кэширование некорневого (не смонтированного на /) устройства
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
Где fcache - это созданное устройство (/ dev / mapper / fcache), / dev / sdaX - это раздел SSD (или весь диск), а / dev / sdbX - это раздел жесткого диска.
Кеширование вашего корневого устройства
Есть еще несколько шагов, если вы кэшируете свое корневое устройство. Вам понадобится Ubuntu LiveCD / USB для этого раздела.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
Отредактируйте /boot/grub/grub.cnf и / etc / fstab для загрузки из / dev / mapper / fcache (я не верю, что этот шаг действительно необходим, но он говорит об этом). Обязательно запишите UUID вашего исходного корневого устройства.
Перезагрузитесь с LiveCD / LiveUSB.
Смонтируйте ваше корневое устройство: mount /dev/sda4 /mnt
(/ dev / sda4 - мой корневой раздел Linux)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
Нет необходимости выполнять полную настройку DKMS в реальной среде
Размонтировать корневое устройство sudo umount /mnt
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 вашего корневого раздела.
Перезагрузка!
Предостережения при использовании корневого устройства
Одна небольшая неприятность, когда flashcache используется для корневого устройства, заключается в том, что grub-probe не может обнаружить корневое устройство и может испортить ваше загрузочное меню, чтобы у вас было два входа в Ubuntu. Но это не должно иметь значения, какой вы используете во всей реальности, так как make -f Makefile.dkms boot_conf
шаг выше устанавливает некоторые скрипты в вашем initrd, которые будут обнаруживать и использовать устройство flashcache.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
to linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(то есть измените параметр root =)
Существует инструмент преобразования для включения bcache на существующем устройстве (раскрытие: я написал его). Это также способ перейти к новым установкам, поскольку современные установщики дистрибутивов не знают, как создавать устройства bcache (в этом случае: начните с установки на жесткий диск).
Смотрите инструкции по преобразованию вашей корневой файловой системы в bcache в blocks
README.
bcache требует Linux 3.10 или более поздней версии , которая является дерзкой и может быть установлена вручную с
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (ищите новейшую версию с тегами , в настоящее время v3.11.5-saucy
и установить дэбы, которые соответствуют вашей архитектуре).
bcache-tools
и blocks
может быть установлен из моего хранилища ppa .
/
, /home
, /usr/
...) в то время как система работает (как maintboot сломана). В качестве альтернативы вы можете использовать живую USB-флешку, установить ее blocks
и использовать для конвертации ваших дисков. Однако помните, что этот инструмент работает только с первичными таблицами разделов MBR и GPT и требует 1 МБ дополнительного пространства перед каждым разделом.
Предварительное предупреждение: bcache нельзя использовать для существующей установки Ubuntu. Если вам требуется SSD-кэширование для вашей операционной системы, вам следует дождаться будущей или специальной версии установщика Ubuntu, которая могла бы настроить ваш SSD-кеш. Смотрите этот ответ Оли здесь: bcache требует новой установки?
Для всех, кто хочет использовать диск bcache для данных не из ОС:
Первое, что нужно сделать, это обновить ваше ядро, если вы используете 13.04 или более раннюю версию, использующую ядро PPA ядра. Инструкции по использованию этого можно найти здесь:
https://wiki.ubuntu.com/Kernel/MainlineBuilds
Убедитесь, что вы выбрали ядро 3.9 или выше при загрузке, иначе оно не будет работать, и ваш диск исчезнет.
Установите bcache-tools, на данный момент вам придется установить из репозитория git:
git clone http://evilpiepirate.org/git/bcache-tools.git
Если вам удастся сделать пакет bcache-tools
для Debian, сообщите нам, и этот вопрос будет обновлен для вас. ( bcache-tools
В зависимости от сборки есть uuid-dev
и libblkid-dev
. Они должны быть установлены, чтобы построить bcache-tools
.)
Когда у вас есть все инструменты на месте, вы готовы попробовать и следовать руководству здесь:
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
В этом руководстве показано, как отформатировать диски (твердотельный накопитель и жесткий диск), а затем соединить их вместе, чтобы создать новый блок устройства с помощью bcache. Оставьте комментарий, если вы сочтете инструкции непонятными, и я дополню этот ответ упрощениями.
Я думал, что приду сюда и прокомментирую, что произошло со мной, когда я установил новое ядро. Я использовал flashcache только для моего раздела / home / folder. Я установил новое ядро, загрузился в него, и он остановился во время загрузки и сказал, что не может найти / dev / mapper / home_cached, у вас есть 3 варианта, когда вы получаете это сообщение, и я выбираю опцию входа в систему как root и попытаться это исправить. Сначала я попытался загрузить модуль flashcache, и он сказал, что не может его найти. Поэтому я подумал, что мне придется скомпилировать и установить его для этого нового ядра, которое я только что установил. у меня все еще была папка / flashcache /, расположенная в / root /, поэтому я перешел в нее и запустил
make -f Makefile.dkms boot_conf
потом я побежал
make install
Затем я загрузил модуль flashcache
modprobe flashcache
тогда я просто должен был загрузить мое существующее устройство flashcache, которое было
flashcache_load /dev/sdb1
затем просто смонтируйте мой домашний раздел с помощью
mount /home
затем выйдите из системы как root с выходом в командной строке, и загрузка продолжится как обычно. все сделано!