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

11

Я попытался настроить 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/*я только обошел данные. Вся моя установка сейчас в полном беспорядке, поэтому любые разъяснения будут с благодарностью.

Ласло Алмаси
источник
Вы проверяли это? Появляется, что вы знаете «как», что вам нужно знать?
Брайам
Я проверил это, как указано выше, и я получаю попадания в кэш, промахи и обходы. Проблема в том, что мое резервное устройство, которое должно быть моим домашним разделом, при запуске монтируется не как домашнее, а как отдельный диск. Итак, моя папка / home в данный момент находится в папке /, и я тестирую bcache, копируя файлы на резервное устройство и получая к ним доступ. Я возился с fstab, что, вероятно, было ошибкой, и сейчас у меня нет действительного UUID для моего / домашнего раздела, если в этом есть какой-то смысл. Что мне нужно, так это прохождение, защищенное от идиотов, специально для ubuntu.
Ласло Алмаси
Хорошо, я перепутал fstab и / home имел неправильный UUID. Кажется, сейчас работает. Мне все еще было бы интересно узнать, как именно должен быть установлен bcache: из временной учетной записи пользователя, с живого CD / USB или другого?
Ласло Алмаси

Ответы:

7

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

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

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

/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
bkloppenborg
источник
2

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

  • Разбейте 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.
Алекс
источник
В конце концов я пошел без bcache, потому что мне требовалось кэширование как для Ubuntu, так и для Windows в конфигурации с двойной загрузкой, а также доступ к накопителям из другой системы. Поэтому я решил, что кэширование просто не подходит для этого ПК. В любом случае, спасибо за вашу помощь.
Ласло Алмаси
0

Я тоже пытался и терпел неудачу много раз, пока не нашел эти инструкции: http://www.wdong.org/wordpress/blog/2014/05/28/install-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.

Вивек
источник