versão curta primeiro : estou procurando um software compatível com Linux, capaz de armazenar em cache de forma transparente gravações em HDD usando um SSD. No entanto, eu só quero girar o disco rígido uma ou duas vezes por dia (para gravar os dados em cache no disco rígido). O resto do tempo, o disco rígido não deve girar devido a problemas de ruído.
Agora a versão mais longa : eu construí um computador completamente silencioso executando o Xubuntu. Ele possui uma APU A10-6700T, enorme cooler sem ventilador, PSU sem ventilador, SSD. O problema é: ele também tem (e precisa) um disco rígido barulhento e eu quero proibi-lo de girá-lo durante a noite. Todas as gravações devem ser armazenadas em cache no SSD; as leituras não são necessárias à noite.
Durante todo o dia, este computador baixa automaticamente cerca de 5 GB de dados que serão retidos por cerca de um ano, fornecendo uma capacidade total de disco necessária de pouco menos de 2 TB. Atualmente, esses dados são armazenados em uma unidade de disco rígido barulhenta de 3 TB que gira dia e noite. Às vezes, precisarei acessar alguns dados de vários meses atrás. No entanto, na maioria das vezes, precisarei apenas de dados dos últimos 14 dias, que cabem no SSD. Idealmente, eu gostaria de uma solução transparente (todos os dados em um sistema de arquivos) que armazene em cache todas as gravações no SSD, gravando no HDD apenas uma vez por dia. As leituras seriam atendidas pelo cache se ainda estivessem no SSD; caso contrário, o HDD teria que girar.
Eu tentei o bcache sem muito sucesso (usando cache_mode = writeback, writeback_running = 0, writeback_delay = 86400, sequential_cutoff = 0, congested_write_threshold_us = 0 - falta alguma coisa?) E eu li sobre o ZFS ZIL / L2ARC, mas não tenho certeza se posso conseguir meu objetivo com o ZFS. Alguma dica?
Se tudo mais falhar, simplesmente usarei alguns scripts para copiar automaticamente os arquivos para a unidade grande e excluir os arquivos mais antigos do SSD.
Edit : Cache realmente é o termo errado para o que eu queria. Parece que a solução original pretendida não é possível para mim no momento. Obrigado a todos que contribuíram!
Respostas:
Não é exatamente assim ou por que o cache funciona - o cache deve aproveitar a velocidade mais rápida e o melhor acesso aleatório do SSD ou outra memória, em vez de minimizar as gravações no disco rígido. O armazenamento em cache foi projetado para maximizar a velocidade, não reduzir a gravação, tendo um buffer menor e mais rápido fazendo backup de um dispositivo de armazenamento grande e lento.
De fato, o bcache, que faz parte do núcleo principal do linux, simplesmente transmitirá gravações seqüenciais para o disco rígido, em vez de transmiti-lo pelo SSD, pois não há vantagem de desempenho.
O ZIL / L2Arc usa o SSD para armazenar logs (no caso do ZIL) e clusters de arquivos comumente usados (com L2Arc). O ZIL acelera gravações síncronas, armazenando-as até que estejam todas prontas para serem gravadas. O L2Arc armazena arquivos comumente acessados em um armazenamento mais rápido. Nenhuma dessas opções permitirá que você faça o que precisa.
A unidade Fusion também usa um SSD e um HDD, colocando de maneira transparente arquivos comumente usados no SSD para leituras mais rápidas e HDDs para armazenamento em massa de arquivos usados com menos frequência. Também não permite usar o SSD como espaço temporário e fazer backup de arquivos na unidade principal de vez em quando
O que você está vendo não é o cache, mas os backups periódicos do sistema para o disco rígido. Suponho que talvez seja possível falsificar algo junto com o Aufs - a primeira ramificação do HDD com arquivos maiores (por isso é preciso ter precedência) e uma ramificação no SSD; em seguida, execute um script que move os arquivos do SSD para o HDD periodicamente, enquanto o acessa a partir do mesmo local. Ainda não testei isso, mas, diferentemente do cache, mover arquivos periodicamente e usar aufs provavelmente será exatamente o que você deseja.
A maneira mais simples de classificar arquivos por idade é ls -tr - t classifica por tempo (do mais recente para o mais antigo) e r reverte a ordem. (Se você tem um intervalo específico em mente,
find . -mtime n
funciona muito bem n, pois um número específico fornece arquivos modificados há n dias atrás, -n fornece arquivos modificados nos últimos n dias e + n fornece arquivos modificados há dias). Você pode encontrar algumas idéias sobre como usá-lo aquiDesde tranquilidade é o seu objetivo real, você pode verificar se o seu drive suporta modo silencioso com
hdparm -M /dev/sda
- este deve saída algo comoacoustic = 254 (128=quiet ... 254=fast)
, nesse caso, você pode fazer o seu mais silencioso disco rígido com o comandohdparm -M 128 /dev/sda
. Execute o comando opostohdparm -M 1254 /dev/sda
quando precisar de mais velocidade.fonte
Como as outras respostas trataram o problema do ponto de vista do software, pensei em incluir algumas informações sobre soluções de hardware.
O artigo Prova de som do seu disco rígido lista as seguintes opções:
Posso testemunhar por minha própria experiência que nunca consigo ouvir meu novo disco rígido de 4 TB, mesmo ao copiar arquivos muito grandes.
Com algumas pesquisas, também é possível encontrar materiais de amortecimento acústico para disco rígido, como o gabinete SilentDrive HD e materiais acústicos ou o sistema de montagem em disco rígido silencioso NoiseMagic NoVibes III . Não sei onde são vendidos, e os elásticos acima me parecem quase tão eficientes.
Pode-se também à prova de som em todo o computador. Alguns exemplos de sites que vendem materiais à prova de som são o Quiet PC USA , AcousticPC ou Dynamat , mas existem muitos.
Alguns gabinetes de computador já foram projetados para operação silenciosa. Veja, por exemplo,
Seis casos com baixo nível de ruído e desempenho, testados .
Como última observação, um disco rígido barulhento que clunks, cliques ou guinchos pode ser um sinal de que seu disco rígido está começando a falhar, portanto, tome cuidado.
fonte
Várias variações do Puppy Linux são baseadas no Ubuntu, mas usando o Aufs .
Puppy é executado inteiramente a partir da RAM, não há acessos ao HDD em operação normal.
Se você disser ao Puppy que seu HDD é uma unidade flash, ele despejará o sistema de arquivos RAM em disco periodicamente, em vez de continuamente. Ele foi projetado para reduzir o desgaste de gravações frequentes em drives flash, mas também funciona bem em HDDs.
Como em quase tudo no Puppy, você pode usar uma GUI para definir com que frequência deseja salvar o sistema de arquivos RAM. Normalmente, isso acontece a cada 10 minutos ou mais, mas não há nada que impeça a configuração para despejar a cada 720 minutos (12 horas), por exemplo.
Este trecho do meu
menu.lst
arquivo do carregador de inicialização Grub4DOS mostra a configuração dapmedia
opção do kernel que diz que está usando o flashdrive em vez de um disco rígido ...Uma observação sobre as "variações" do Puppy Linux ...
Eu estou usando o Puppy Linux 5.2.8 "Lupu", que é baseado no Ubuntu 10.04 Lucid Lynx do Ubuntu 10.04. Esta versão também é chamada de "Lucid" em vez de "Lupu" devido às suas origens. Existem também versões baseadas no Slackware e em algumas outras distribuições. Como você já está usando o Xubuntu, o Puppy Linux Lupu seria o mais familiar. Também seria muito mais rápido. Eu usei o Xubuntu por cerca de um ano antes de encontrar o Puppy.
Há também uma versão muito mais nova baseada no "Ubuntu Precise Pangolin" chamada "Puppy Linux Precise". Existem grandes mudanças no kernel usado na versão mais recente que podem não funcionar bem com o hardware mais antigo. Se sua máquina tiver menos de 5 anos, você poderá estar mais feliz com o Precise. Acredito que a técnica descrita acima ainda funcionará no Precise, embora as opções exatas etc. possam ser diferentes, mas não posso testá-la.
fonte
A solução curta e rapidamente implementável (mas não responde exatamente ao que você deseja) é: transfira o disco de armazenamento para outro local. pode ser um chassi de servidor de arquivos netowrk (como a WD world edition) ou um disco USB3 e você pode instalá-lo na mesma sala do computador silencioso ou em uma sala diferente para evitar ouvi-lo completamente.
Isso é melhor na minha opinião, pois você certamente só usará a unidade quando quiser transferir dados pela rede - o sistema operacional pode estar fazendo algum outro reequilíbrio ou organização do sistema de arquivos que você não pode evitar e o atrapalharia. . Quarto tão diferente é uma grande vantagem.
O armazenamento em cache deve ser fácil - basta fazer backup dos dados do dia no disco externo, o que você pode obter usando soluções como
rsync
ouunison
.A solução mais longa não é mais ideal (ou seja, nenhum aplicativo), mas você terá a unidade na mesma caixa com o ssd e obterá velocidades mais altas (mas você realmente precisa de uma velocidade maior que a da rede por apenas 5 GB / dia?):
você pode usar
smartctl
para definir o tempo de desativação da unidade e mantê-la em um estado desmontado - para evitar que o SO faça coisas na unidade. Em seguida, basta escrever um scriptmount
e fazer backup (como acima) dos dados necessários.fonte
Você não vai gostar da minha resposta, mas na verdade está abusando do termo cache, na verdade está descrevendo uma solução de backup. Dê uma olhada no rsync ou pesquise outras soluções de backup, se desejar algo mais completo.
fonte