Как настроить bcache?

Я попытался настроить bcache в Ubuntu 14.04 с новой установкой и пустой /home раздел (/dev/sdb2) в качестве поддерживающего устройства. У меня есть работающая система на моем SSD, и я хотел бы использовать ее /dev/sda2 раздел кешировать /home, Мне всегда удавалось разобраться со своими проблемами с Ubuntu на форумах, но я изо всех сил пытаюсь понять основы здесь и нуждаюсь в помощи:

  1. В какую учетную запись мне нужно войти, когда я сначала настроил bcache? Очевидно, что пользователь создан во время установки на /dev/sdb2 должен быть отключен для /home чтобы быть размонтированным, поэтому я сделал временную учетную запись пользователя на отдельном разделе, чтобы сделать это. Это кажется слишком неуклюжим.
  2. make-bcache -B а также -C оба говорят мне, что на устройстве есть суперблоки без bcache, так что я сделал sudo wipefs -a на обоих устройствах. Затем разделы отображаются как неотформатированные без UUID в GParted. Это нормально?
  3. Если так, что происходит с fstab и /home при загрузке? Нужно ли использовать UCID bcache в fstab? Я сделал, но система не нашла /home раздел при следующей загрузке.

  4. И то и другое echo /dev/sdb2 > /sys/fs/bcache/register а также echo /dev/sda2 > /sys/fs/bcache/register возвращать сообщения "Отказано в доступе"; насколько я понимаю /sys не может быть написано

    Так echo /dev/sdb2 | sudo tee /sys/fs/bcache/register кажется, сработало.

Может кто-нибудь проверить, что это правильный способ сделать это в Ubuntu?

Кажется, мне удалось создать, зарегистрировать и подключить резервный диск, но в соответствии с tail /sys/block/bcache0/bcache/stats_total/* Я только обошел данные. Вся моя установка сейчас в полном беспорядке, поэтому любые разъяснения будут с благодарностью.

3 ответа

С Ubuntu 15.10 ответ Алекса больше не является правильным. initramfs Образ заблокирован в программе установки и не будет автоматически воссоздан при установке системы. Таким образом, один будет иметь bcache установка, но она не сможет загрузиться. Я написал более подробное описание следующего процесса в другом месте; Тем не менее, вот основы:

1. Разделение

Загрузите Ubuntu live-cd и создайте следующую схему разделов с fdisk или же gparted, Если предположить, /dev/sda ваш SSD и /dev/sdb Ваш жесткий диск:

/dev/sda1 - 1024 MB, EXT4, used for /boot (grub/grub2 doesn't support bcache)
/dev/sda2 - any format, for cache
/dev/sdb1 - EFI partition (if your machine needs it)
/dev/sdb2 - swap
/dev/sdb3 - any format, backing partition

2. Создайте устройство bcache

Откройте терминал, сотрите файловые системы на устройстве резервного копирования и кэширования:

sudo wipefs -a /dev/sda2
sudo wifefs -a /dev/sdb3

устанавливать bcache-tools и создать bcache устройство:

sudo apt-get update
sudo apt-get install bcache-tools
sudo make-bcache -B /dev/sdb3 -C /dev/sda2
sudo mkfs.ext4 /dev/bcache0

3. Установите Ubuntu

Установите операционную систему с помощью пользовательского разделителя следующим образом:

/dev/bcache0 - format EXT4, use as /
/dev/sda1    - format EXT4, use as /boot
/dev/sdb1    - EFI partition (if your machine needs it)
/dev/sdb2    - swap

НЕ ПЕРЕЗАГРУЗИТЬ после завершения установки!

4. Установите bcache на новую установку

Используя chroot мы устанавливаем bcache-tools на новой установке. Настройте среду и включите разрешение DNS

sudo mount /dev/bcache0 /mnt
sudo mount /dev/sda1 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

Войдите в chroot и сделать установку

sudo chroot /mnt
sudo apt-get update
sudo apt-get install bcache-tools

Во время установки вы должны заметить initramfs воссоздан и установлен в (chroot-ed) /boot раздел.

5. Очистка

Чисто размонтируйте файловую систему и перезагрузите компьютер.

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt
sudo reboot

После некоторых проб и ошибок я получил следующее решение для чистой установки:

  • Разбейте HDD так, как вам нравится (при условии /dev/sdb2 это место, которое вы хотите для вашего /home).
  • # apt-get install bcache-tools
  • # make-bcache -B /dev/sdb2 -C /dev/sda2 (Это создает /dev/bcache0, но установщик пользовательского интерфейса еще не может его использовать.)
  • # mkfs.ext4 /dev/bcache0 (Это заставляет установщик видеть "partition /dev/bcache0" в "device /dev/bcache0" и позволяет использовать его как "/home" во время установки.)
  • Запустите программу установки, как обычно, не забудьте выбрать дополнительные параметры раздела диска.
  • Установщик создает initrd изображение с bcache Модуль ядра включен и загружен благодаря тому, что мы установили bcache-tools раньше, поэтому после перезагрузки просто работает.
  • После загрузки установленной системы установите bcache-tools еще раз, чтобы дальнейшие обновления не наносили вред процессу загрузки, исключив необходимый модуль ядра bcache из образа initrd.

Я тоже пытался и терпел неудачу много раз, пока не нашел эти инструкции: http://www.wdong.org/wordpress/blog/2014/05/28/installing-ubuntu-14-04-to-bcache/

Они звучат несколько странно, но это, вероятно, единственный реальный способ запустить bcache, по крайней мере, пока bcache не станет частью установщика Ubuntu.

Единственное любопытное упущение в инструкциях - самый последний этап.

После того, как вы все сделали, найдите UUID кэша, установленного в / sys / fs / bcache, и сделайте следующее:

echo <UUID> > /sys/block/bcache0/bcache/attach

Если вы хотите включить режим обратной записи (который я настоятельно рекомендую):

echo writeback > /sys/block/bcache0/bcache/cache_mode

загружать различные файлы в /sys/block/bcache0/bcache/ расскажет вам все о том, как работает кеш. Я настроил свою систему с помощью этих инструкций 26 июля этого года, и с тех пор все работает отлично. cat /sys/block/bcache0/bcache/stats_total/cache_hit_ratio показывает весьма удовлетворительное 88 процентов и субъективно, машина чувствует себя как установка полностью SSD.

Другие вопросы по тегам