Я хочу знать, есть ли кто-нибудь, кто попытался установить и запустить свое ядро, построенное с помощью 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 может писать и писать также)
Кэширование устройства без полномочий root (не установлено в /)
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 вашего корневого раздела.
Reboot!
Предостережения при использовании корневого устройства
Одно небольшое раздражение, когда flashcache используется для корневого устройства, заключается в том, что grub-probe не может обнаружить корневое устройство и может испортить ваше загрузочное меню, чтобы у вас было два Ubuntu. Но не имеет значения, что вы используете во всей реальности, так как шаг make -f Makefile.dkms boot_conf
выше устанавливает некоторые скрипты в initrd, которые будут обнаруживать и использовать устройство flashcache.
Существует инструмент преобразования для включения bcache на существующее устройство (раскрытие: я его написал). Это также способ пойти на свежие установки, поскольку текущие установщики дистрибутива не знают, как создавать устройства bcache (в этом случае: начните с установки на жесткий диск).
Смотрите преобразование корневой файловой системы в bcache в blocks
README для получения инструкций.
Для bcache требуется Linux 3.10 или новее, который находится в дерьмо и может быть установлен вручную из
Ссылка (найдите новейшую отмеченную версию, в настоящее время v3.11.5-saucy
, и установите параметры, соответствующие вашей архитектуре).
bcache-tools
и blocks
могут быть установлены из моего хранилища ppa .
Предыдущее предупреждение: 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. Опубликуйте комментарий, если вы обнаружите, что инструкции запутаны, и я обновлю этот ответ с упрощениями.
Я думал, что приду сюда и прокомментирую, что произошло со мной, когда я установил новое ядро. Я использовал 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 с выходом в командной строке, и он должен продолжить загрузку, как обычно. все сделано!