Quero saber se alguém tentou instalar e executar o kernel construído com flashcache ou bcache para cache de SSD?
Como você conseguiu fazer isso?
Quero saber se alguém tentou instalar e executar o kernel construído com flashcache ou bcache para cache de SSD?
Como você conseguiu fazer isso?
Respostas:
Bem, nós temos uma resposta bcache, mas nenhuma resposta flashcache. Eu escolhi o flashcache porque já tinha uma instalação existente, portanto o bcache estava fora de questão. Para mim, parecia mais fácil configurar também. Eu escolhi o método DKMS para não ficar preso na reconstrução do módulo / ferramentas toda vez que recebi uma atualização do kernel.
Essas etapas estão descritas em README-DKMS no Github.
Construindo o módulo
A primeira coisa a fazer é instalar os pré-requisitos de construção:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Em seguida, pegue a fonte:
git clone git://github.com/facebook/flashcache; cd flashcache
Crie e instale os módulos:
make -f Makefile.dkms
Criando um dispositivo flashcache
(Neste exemplo, eu uso o cache de write-back - o padrão -, mas o flashcache também pode gravar e gravar)
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.
Armazenando em cache seu dispositivo raiz
Existem mais algumas etapas se você estiver armazenando em cache o seu dispositivo raiz. Você precisará de um Ubuntu LiveCD / USB para esta seção.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
Edite /boot/grub/grub.cnf e / etc / fstab para inicializar a partir de / dev / mapper / fcache (não acredito que essa etapa seja realmente necessária, mas é o que diz). Certifique-se de anotar o UUID do seu dispositivo raiz original.
Reinicie com o LiveCD / LiveUSB.
Monte seu dispositivo raiz: mount /dev/sda4 /mnt
(/ dev / sda4 é minha partição raiz do Linux)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
Não é necessário fazer toda a configuração do DKMS no ambiente ao vivo
Desmonte o dispositivo raiz sudo umount /mnt
sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID]
Onde fcache é o dispositivo criado (deve ser o mesmo que você colocou em / etc / fstab e /boot/grub/grub.cnf, no meu caso, era fcache), / dev / sdbX é a partição SSD (ou todo o disco ) e [UUID] é o UUID da sua partição raiz.
Reinicie!
Advertências ao usar o dispositivo raiz
Um pequeno aborrecimento quando o flashcache é usado para o dispositivo raiz é que o grub-probe falha ao detectar o dispositivo raiz e pode atrapalhar o menu de inicialização para que você tenha duas entradas do Ubuntu. Porém, não importa qual você usará em toda a realidade, pois a make -f Makefile.dkms boot_conf
etapa acima instala alguns scripts no initrd que detectarão e usarão o dispositivo flashcache.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
para linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(ou seja, alterar o parâmetro root =) #
Existe uma ferramenta de conversão para ativar o bcache em um dispositivo existente (divulgação: eu 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).
Consulte a conversão de seu sistema de arquivos raiz para bcache no blocks
README para obter instruções.
O bcache requer Linux 3.10 ou mais recente, que é atrevido e pode ser instalado manualmente a partir de
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (procure a versão mais recente marcada) , atualmente v3.11.5-saucy
, e instale as debs que correspondem à sua arquitetura).
bcache-tools
e blocks
pode ser instalado no meu ppa de armazenamento .
/
, /home
, /usr/
, ...) enquanto o sistema está em execução (como maintboot está quebrado). Como alternativa, você pode usar um USB Stick ativo, instalá blocks
-lo e usá-lo para converter seus discos. Cuidado, porém, que esta ferramenta funciona apenas nas tabelas de partição MBR e GPT primária e requer 1MiB de espaço extra antes de cada partição.
Aviso prévio: o bcache não pode ser usado para a instalação existente do Ubuntu. Se você precisar do armazenamento em cache do SSD para o seu sistema operacional, aguarde uma versão futura ou especial do instalador do Ubuntu, que possa configurar o cache do SSD. Veja esta resposta de Oli aqui: O bcache requer uma nova instalação?
Para todos os outros que desejam uma unidade bcache para dados que não sejam do sistema operacional:
A primeira coisa a fazer é atualizar o kernel se você estiver usando o 13.04 ou mais antigo usando o PPA da linha principal do kernel. Instruções para usar isso podem ser encontradas aqui:
https://wiki.ubuntu.com/Kernel/MainlineBuilds
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 você terá que instalar a partir do repositório git:
git clone http://evilpiepirate.org/git/bcache-tools.git
Se você conseguir empacotar o bcache-tools
debian, informe-nos e esta pergunta será atualizada para você. ( bcache-tools
as dependências de compilação de são uuid-dev
e libblkid-dev
. Elas devem ser instaladas para serem construídas bcache-tools
.)
Depois de ter todas as ferramentas no lugar, você está pronto para tentar seguir o guia aqui:
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
Este guia mostra como formatar as unidades (SSD E disco rígido) e, em seguida, conectá-las para criar um novo bloco de dispositivo usando o bcache. Poste um comentário se achar as instruções confusas e atualizarei esta resposta com simplificações.
Eu pensei em vir aqui e comentar sobre o que me ocorreu quando instalei um novo kernel. Eu estava usando o flashcache apenas para minha partição / home / folder. Eu instalei um novo kernel, inicializei nele e ele parou durante a inicialização e disse que não podia encontrar / dev / mapper / home_cached, existem 3 opções que você tem quando recebe essa mensagem e eu escolho a opção de fazer login como root e tente consertá-lo. Primeiro tentei carregar o módulo flashcache e ele disse que não o encontrava. Então imaginei que teria que compilar e instalar o novo kernel que acabei de instalar. eu ainda tinha a pasta / flashcache / localizada em / root /, então eu coloquei nele e executei
make -f Makefile.dkms boot_conf
então eu corri
make install
carreguei o módulo flashcache com
modprobe flashcache
então eu só tinha que carregar meu dispositivo flashcache existente que era
flashcache_load /dev/sdb1
então apenas monte minha partição inicial com
mount /home
saia do logon como root com exit na linha de comando e deve continuar inicializando normalmente. tudo feito!