Como instalo e uso o flashcache / bcache para armazenar em cache o HDD para o SSD?

51

Eu quero saber se existe alguém que tenha tentado instalar e rodar o kernel construído com flashcache ou bcache para armazenamento em cache SSD?

Como você conseguiu fazer isso?

    
por kapad 06.02.2013 / 21:56

4 respostas

10

Bem, recebemos uma resposta do bcache, mas sem resposta do flashcache. Eu escolhi flashcache porque eu já tinha uma instalação existente, então o bcache estava fora de questão. Para mim, parecia mais fácil de configurar também. Eu escolhi o método DKMS para não ficar preso reconstruindo o módulo / ferramentas toda vez que recebo uma atualização do kernel.

Essas etapas estão descritas em README-DKMS no Github.

Criando o módulo

  1. A primeira coisa que você faz é instalar os pré-requisitos de construção:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Então pegue a fonte:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Crie e instale os módulos:

    make -f Makefile.dkms
    

Criando um dispositivo flashcache

(Neste exemplo eu uso cache writeback - o padrão - mas flashcache pode fazer writearound e writethrough também)

Armazenando em cache um dispositivo não-raiz (não montado em /)

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Onde fcache é o dispositivo criado (/ dev / mapper / fcache), / dev / sdaX é a partição SSD (ou disco inteiro) e / dev / sdbX é a partição HDD.

Colocando em cache o seu dispositivo raiz

Há mais algumas etapas se você estiver armazenando em cache o seu dispositivo raiz. Você precisará de um Ubuntu LiveCD / USB para esta seção.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. Edite o /boot/grub/grub.cnf e o / etc / fstab para inicializar a partir do / dev / mapper / fcache (não acredito que este passo seja realmente necessário, mas diz). Certifique-se de anotar o UUID do seu dispositivo raiz original.

  4. Reinicie com o LiveCD / LiveUSB.

  5. Monte seu dispositivo root: mount /dev/sda4 /mnt (/ dev / sda4 é minha partição raiz do Linux)

  6. cd /mnt/path/to/flashcache/source

  7. sudo apt-get install dkms build-essential linux-headers-$(uname -r)

  8. make; sudo make install Não é necessário fazer toda a configuração do DKMS no ambiente ao vivo

  9. Desmonte o dispositivo root sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Onde fcache é o dispositivo criado (deve ser o mesmo que você coloca em / etc / fstab e /boot/grub/grub.cnf, no meu caso era fcache), / dev / sdbX é a partição SSD (ou disco inteiro) e [UUID] é o UUID da sua partição raiz.

  11. Reinicialize!

Advertências ao usar o dispositivo raiz

Um pequeno incômodo quando o flashcache é usado para o dispositivo raiz é que o grub-probe não consegue detectar o dispositivo raiz e pode atrapalhar o seu menu de inicialização para que você tenha dois recursos do Ubuntu. Mas, não importa qual você use em toda a realidade, pois a etapa make -f Makefile.dkms boot_conf acima instala alguns scripts em seu initrd que detectarão e usarão o dispositivo flashcache.

    
por Chuck R 29.06.2013 / 23:36
12

Existe uma ferramenta de conversão para ativar o bcache em um dispositivo existente (divulgação: eu o escrevi). É também o caminho a seguir para novas instalações, já que os instaladores de distro atuais não sabem como criar dispositivos bcache (nesse caso: comece instalando no HDD).

Veja convertendo seu sistema de arquivos raiz para bcache no blocks README para instruções.

O bcache requer o Linux 3.10 ou mais recente, o que é interessante, e pode ser instalado manualmente a partir de link (procure a versão mais recente marcada, atualmente v3.11.5-saucy , e instale os debs que correspondem à sua arquitetura).

bcache-tools e blocks podem ser instalados a partir do meu armazenamento ppa .

    
por Gabriel 01.09.2013 / 16:05
5

Aviso prévio: o bcache não pode ser usado para a sua instalação existente do Ubuntu. Se você precisar de armazenamento em cache SSD para o seu sistema operacional, você deve esperar por uma versão futura ou especial do instalador do Ubuntu que poderia configurar o seu cache SSD. Veja esta resposta por Oli aqui: O bcache requer uma nova instalação?

Para todos os outros que desejam uma unidade bcache para dados que não são do sistema operacional:

A primeira coisa a fazer é atualizar seu kernel se você estiver usando o 13.04 ou mais antigo usando o kernel PPA mainline. Instruções para usar isso podem ser encontradas aqui:

link

Certifique-se de selecionar o kernel 3.9 ou superior ao inicializar ou ele não funcionará e sua unidade desaparecerá.

Instale o bcache-tools, no momento em que você terá que instalar a partir do repositório git:

git clone http://evilpiepirate.org/git/bcache-tools.git

Se você conseguir empacotar bcache-tools para debian, informe-nos e esta questão será atualizada para você. ( bcache-tools 's dependências de compilação são uuid-dev e libblkid-dev . Elas devem ser instaladas, para criar bcache-tools .)

Depois de ter todas as ferramentas no lugar, você está pronto para tentar seguir o guia aqui:

link

Este guia mostra como formatar as unidades (disco rígido SSD AND ) e, em seguida, anexá-las para criar um novo bloco de dispositivo usando bcache. Poste um comentário se achar as instruções confusas e atualizarei esta resposta com simplificações.

    
por Martin Owens -doctormo- 07.05.2013 / 05:43
2

Eu pensei em vir aqui e comentar sobre o que me ocorreu quando eu instalei um novo kernel. Eu estava usando flashcache para minha partição / home / pasta apenas. Eu instalei um novo kernel, inicializei nele e ele parou durante a inicialização e disse que não conseguia encontrar / dev / mapper / home_cached, existem 3 opções que você tem quando recebe essa mensagem e eu escolho a opção para logar como root e tente consertá-lo. Eu primeiro tentei carregar o módulo flashcache e ele disse que não poderia encontrá-lo. Então eu imaginei que teria que compilá-lo e instalá-lo para esse novo kernel que acabei de instalar. Eu ainda tinha a pasta / flashcache / localizada dentro de / root / assim que eu cd'd para ele e correu

make -f Makefile.dkms boot_conf

então corri

make install

então eu carreguei o módulo flashcache com

modprobe flashcache

então eu tive que carregar meu dispositivo flashcache existente que era

flashcache_load /dev/sdb1

depois é só montar minha partição inicial com

mount /home

depois, saia de estar logado como root com exit na linha de comando e ele deve continuar inicializando normalmente. tudo feito!

    
por Ubu the Tech Guru 11.01.2014 / 06:30