Como configurar o bcache?

11

Tentei configurar o bcache no Ubuntu 14.04 com uma nova instalação e uma /homepartição vazia ( /dev/sdb2) como dispositivo de apoio. Eu tenho um sistema em execução no meu SSD e gostaria de usar sua /dev/sda2partição para armazenar em cache o meu /home . Eu sempre consegui resolver meus problemas do ubuntu nos fóruns, mas estou lutando para entender o básico aqui e preciso de ajuda:

  1. De que conta eu preciso estar logado quando configuro o bcache? Obviamente, o usuário criado durante a instalação /dev/sdb2deve ser desconectado para /homeser desmontado, por isso configurei uma conta de usuário temporária em uma partição separada para fazer isso. Isso já parece muito desajeitado.
  2. make-bcache -Be -Cambos me dizem que existem superblocos não-bcache no dispositivo, como fiz sudo wipefs -anos dois dispositivos. As partições aparecem como não formatadas sem um UUID no GParted. Isso é normal?
  3. Se sim, o que acontece com o fstab e /homena inicialização? Preciso usar o UUID do bcache no fstab? Eu encontrei, mas o sistema não encontrou a /homepartição na próxima inicialização.

  4. Ambos echo /dev/sdb2 > /sys/fs/bcache/registere echo /dev/sda2 > /sys/fs/bcache/registerretornam mensagens 'Permissão negada'; pelo que entendi /sysnão pode ser escrito para.

    Então echo /dev/sdb2 | sudo tee /sys/fs/bcache/registerparece ter funcionado.

Alguém pode verificar se essa é a maneira correta de fazer isso no Ubuntu?

Eu pareço ter conseguido criar, registrar e anexar a unidade de backup, mas de acordo com o tail /sys/block/bcache0/bcache/stats_total/*eu apenas ignorei os dados. Toda a minha configuração está uma bagunça agora, então qualquer esclarecimento seria muito apreciado.

Laszlo Almasi
fonte
Você já testou? Parece que você sabe o "como fazer", o que você precisa saber?
Braiam 14/09/14
Eu testei como acima e estou recebendo hits, erros e desvios de cache. O problema é que o meu dispositivo de suporte, que deveria ser minha partição inicial, não é montado como inicial na inicialização, mas como uma unidade separada. Portanto, meu / home é uma pasta em / no momento e estou testando o bcache copiando arquivos no dispositivo de suporte e acessando-os. Eu estava mexendo com o fstab, o que provavelmente foi um erro e não tenho um UUID válido para a minha partição / home agora, se isso fizer algum sentido. O que eu preciso é de um guia à prova de idiotas especificamente para o ubuntu.
Laszlo Almasi 14/09
OK, eu errei no fstab e / home tinha o UUID errado. Parece que funciona agora. Eu ainda estaria interessado em como exatamente o bcache deve ser configurado: a partir de uma conta de usuário temporária, CD / USB ativo ou outro?
Laszlo Almasi

Respostas:

7

Com o Ubuntu 15.10, a resposta de alex não está mais correta. A initramfsimagem está bloqueada no instalador e não será gerada automaticamente novamente quando o sistema estiver instalado. Assim, um terá uma bcacheinstalação, mas não poderá inicializar. Eu escrevi uma descrição mais detalhada do seguinte processo em outro lugar ; no entanto, aqui estão os princípios básicos:

1. Particionamento

Inicialize no live-cd do Ubuntu e crie o seguinte esquema de partição com fdiskou gparted. Assumindo que /dev/sdaé seu SSD e /dev/sdbé seu 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. Crie o dispositivo bcache

Abra o terminal, limpe os sistemas de arquivos no dispositivo de backup e armazenamento em cache:

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

Instale bcache-toolse crie o bcachedispositivo:

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. Instale o Ubuntu

Instale o sistema operacional usando o particionador personalizado da seguinte maneira:

/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

NÃO reinicie após a instalação do instalador!

4. Instale o bcache na nova instalação

Usando um chrootnós instalamos bcache-toolsna nova instalação. Configure o ambiente e ative a resolução 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

Entre no chroote faça a instalação

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

Durante a instalação, você deve observar que o initramfsé gerado novamente e instalado na partição ( chroot-ed) /boot.

5. Limpeza

Desmonte o sistema de arquivos e reinicie-o.

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt
sudo reboot
bkloppenborg
fonte
2

Após algumas tentativas e erros, cheguei à seguinte solução para uma instalação limpa:

  • Particione o disco rígido da maneira que desejar (assumindo que /dev/sdb2é o espaço que você deseja para o seu /home).
  • # apt-get install bcache-tools
  • # make-bcache -B /dev/sdb2 -C /dev/sda2 (Isso cria /dev/bcache0, mas o instalador da interface do usuário ainda não pode usá-lo.)
  • # mkfs.ext4 /dev/bcache0 (Isso faz com que o instalador veja uma "partição / dev / bcache0" em "device / dev / bcache0" e permite que você o use como "/ home" durante a instalação.)
  • Execute o instalador como de costume, certifique-se de selecionar opções avançadas de partição de disco.
  • O instalador cria uma initrdimagem com o bcachemódulo do kernel incluído e carregado devido ao que instalamos bcache-toolsanteriormente, portanto, após a reinicialização, ele simplesmente funciona.
  • Após a inicialização do sistema instalado, instale bcache-toolsnovamente, para que atualizações adicionais não prejudiquem o processo de inicialização, omitindo o módulo do kernel bcache necessário da imagem initrd.
alex
fonte
Fiquei sem o bcache no final porque precisava de cache para o Ubuntu e o Windows em uma configuração de inicialização dupla, além de acessar minhas unidades de outro sistema também. Então eu decidi que o cache não é adequado para este PC. Obrigado pela sua ajuda de qualquer maneira.
Laszlo Almasi
0

Eu também tentei e falhei várias vezes até encontrar estas instruções: http://www.wdong.org/wordpress/blog/2014/05/28/installing-ubuntu-14-04-to-bcache/

Eles soam um pouco peludos, mas esta é provavelmente a única maneira viável de obter o bcache, pelo menos até que o bcache se torne parte do instalador do ubuntu.

A única omissão curiosa nas instruções é a última etapa.

Depois de fazer tudo, procure o UUID do cache definido em / sys / fs / bcache e faça o seguinte:

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

Se você deseja ativar o modo writeback (o que eu recomendo fortemente):

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

a criação de vários arquivos /sys/block/bcache0/bcache/informa sobre como o cache está em execução. Configurei meu sistema usando essas instruções em 26 de julho deste ano e tudo está funcionando perfeitamente desde então. cat /sys/block/bcache0/bcache/stats_total/cache_hit_ratiomostra 88% altamente satisfatórios e, subjetivamente, a máquina parece uma configuração totalmente SSD.

Vivek
fonte