Tenho um novo SSD, não quero usá-lo, mas ainda quero usá-lo para armazenar arquivos de dados junto com o antigo HDD

9

Comprei um novo SSD Samsung 850 EVO de 250 GB para o meu laptop que quero usar como dispositivo de armazenamento principal, junto com o antigo, mas ainda em funcionamento HDD de 250 GB a 7500 RPM que coloquei no antigo compartimento de DVD com um adaptador de caddy.

No momento, o HDD tem apenas uma grande partição ext4 contendo o sistema operacional, os aplicativos e os arquivos de dados. Quero usar o HDD para armazenar dados, mas não quero perder a oportunidade de obter a melhoria de velocidade do SSD ao fazê-lo.

Quero combinar, digamos, uma partição de 50 GB ou até menor no SSD e mesclá-la com a partição no HDD para que os arquivos menos modificados e os mais acessados ​​sejam automaticamente movidos para o SSD.

Eu olhei para caches como EnancheIO e Bcache , mas eles não parecem o que eu quero, porque (me corrija se estiver errado):

  • O espaço ocupado pela partição de cache é subtraído da quantidade de espaço disponível.
  • O cache acelera o acesso aos arquivos mais acessados, independentemente de serem também os menos modificados, o que contraria o objetivo de não querer desgastar o SSD.

O que foi dito acima está correto ou um cache (qual desses dois?) Pode me ajudar a alcançar minha meta? Se o exposto acima estiver correto, você conhece alguma outra solução viável?

Um sistema de arquivos da união , como o OverlayFS , seria útil aqui? Se você monitora o HDD para os arquivos mais acessados ​​(mantendo o controle atimediário deles ) e identifica os menos modificados entre eles (mantendo o controle deles mtime), em teoria você pode mover esses arquivos para o SSD, liberando espaço no HDD, enquanto o sistema de arquivos da união poderia tornar tudo isso transparente para o usuário.

Isso funcionaria?

Fabio A.
fonte
Em teoria, seus requisitos são factíveis. A solução mais viável é postar uma solicitação de recurso no rastreador de erros do bcache, solicitando outra estratégia de armazenamento de arquivos no bcache.
Adam Ryczkowski
... E sim, o tamanho da partição bcache será "consumido" longe do total de armazenamento disponível. É por design, porque o bcache é independente do sistema de arquivos. Esse design oferece a você o bônus de armazenar apenas a parte alterada com mais frequência de um arquivo , o que deve ser vantajoso, por exemplo, com dados do banco de dados.
Adam Ryczkowski
Verifique também o projeto, que pode ser facilmente modificado para atender às suas necessidades (ou até mesmo suportá-lo imediatamente
Adam Ryczkowski
@ Fabio: sem comentários, sem aceitação, mas você já esteve on-line. Algum problema com a resposta abaixo?
Fabby
1
@ Fabby, agora tenho tempo para revisar as respostas e os comentários, mesmo estando on-line, não podia gastar tempo fazendo isso. Eu vou chegar agora.
Fabio A.

Respostas:

3

Você tem algumas opções, dependendo do que você está tentando realizar:

  • Uso bcache: Você poderá comer seu bolo, mas não o manterá.

    Sim, a quantidade de espaço que você reserva para armazenamento em cache será exatamente o oposto de um arquivo de troca: a quantidade que você especificar será "tirada" da quantidade total de espaço em disco e fornecida ao subsistema de memória para ser usado como buffers para o outro disco rígido.
    Para controlar quais arquivos são armazenados em cache, use algo como vmtouchpara ajustar o bcachecache.

  • Use LVM: Você ficará com o seu bolo, mas não o comerá.

    Você pode usar o Logical Volume Manager para criar um volume que contenha SSD e HDD, criando um grande /homevolume que contenha o espaço de ambos, mas:

    1. Você não terá controle sobre qual arquivo está no SSD e qual arquivo está no HDD
    2. Se você perder uma das duas unidades, perderá todos os dados e precisará restaurar a partir do backup !!!
  • Use um sistema manual: você será capaz de manter seu bolo e comê-lo.

    Particione a unidade em sistemas de arquivos separados: coloque /o SSD e /homeo HDD. Além disso, você deve colocar todos os arquivos nos quais deseja ir rapidamente /media/FastDatae vincular os originais aos originais /media/FastData se e somente se esses arquivos residirem no seu/home (caso contrário, eles já residem no SSD)

Nota 1: Eu tenho um SSD pequeno e um HDD grande, então uso outro sistema: /no SSD e /homeno HDD e não me preocupo em otimizar ainda mais ...
Nota 2: Um sistema de arquivos de união não ajudará você mais do que o sistema manual ...
Nota 3: Aqui estão mais algumas dicas para não desgastar seu SSD a partir do ponto 4 da bala

Fabby
fonte
3
Como você nunca aceitou uma resposta neste site antes: Se essa resposta o ajudou, não se esqueça de clicar no cinza à esquerda deste texto, o que significa Sim, esta resposta é válida ! ;-)
Fabby
Dicas adicionais fornecidas em uma nota adicional! ;-)
Fabby
Obrigado pela resposta e pelo ponteiro para vmtouch, mas - para não ser rude - além disso, não vejo informações adicionais sobre o que eu me declarei na própria pergunta, está aí? A idéia de usar um FS de união era que seria então transparente para o usuário onde os arquivos foram colocados - no SSD ou no HDD - com base no processo de mover arquivos de uma mídia para a outro seria totalmente automático. Pensando nisso, também poderia ser implementado com links simbólicos, o que poderia ser mais fácil de implementar.
Fabio A.
Em suma, parece que não há solução adequada para minha pergunta, mas aceitarei sua resposta como válida, pois você ajudou a deixar claro que ainda não há solução adequada. Obrigado.
Fabio A.
@FabioA. Bem, isso depende da sua definição de "adequado". A ligação simbólica faz o truque "de forma transparente" para o usuário final (depois que o administrador o configura) ... mhddfstem as mesmas desvantagens da minha lvmsolução. Grazie mille pela aceitação e favor retornou: Q votado! ;-)
Fabby