Как настроить bcache?
Я попытался настроить bcache в Ubuntu 14.04 с новой установкой и пустой /home
раздел (/dev/sdb2
) в качестве поддерживающего устройства. У меня есть работающая система на моем SSD, и я хотел бы использовать ее /dev/sda2
раздел кешировать /home
, Мне всегда удавалось разобраться со своими проблемами с Ubuntu на форумах, но я изо всех сил пытаюсь понять основы здесь и нуждаюсь в помощи:
- В какую учетную запись мне нужно войти, когда я сначала настроил bcache? Очевидно, что пользователь создан во время установки на
/dev/sdb2
должен быть отключен для/home
чтобы быть размонтированным, поэтому я сделал временную учетную запись пользователя на отдельном разделе, чтобы сделать это. Это кажется слишком неуклюжим. make-bcache -B
а также-C
оба говорят мне, что на устройстве есть суперблоки без bcache, так что я сделалsudo wipefs -a
на обоих устройствах. Затем разделы отображаются как неотформатированные без UUID в GParted. Это нормально?Если так, что происходит с fstab и
/home
при загрузке? Нужно ли использовать UCID bcache в fstab? Я сделал, но система не нашла/home
раздел при следующей загрузке.И то и другое
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.