Cache SSD para minimizar o tempo de aceleração do HDD?

8

versão curta primeiro : Estou à procura de um software compatível com o Linux que seja capaz de fazer cache de forma segura das gravações do HDD usando um SSD. No entanto, quero apenas girar o HDD uma ou duas vezes por dia (para gravar os dados em cache no HDD). O resto do tempo, o HDD não deve estar girando devido a preocupações com ruído.

Agora a versão mais longa : Eu construí um computador completamente silencioso rodando o Xubuntu. Ele tem uma APU A10-6700T, um cooler sem ventilador, PSU sem ventilador, SSD. O problema é: ele também tem (e precisa) um HDD barulhento e eu quero proibi-lo de girar 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, esse computador baixará automaticamente cerca de 5 GB de dados que serão retidos por cerca de um ano, fornecendo uma capacidade de disco total necessária de pouco menos de 2 TB. Esses dados estão atualmente armazenados em uma unidade de disco rígido com ruído de 3 TB que gira dia e noite. Às vezes, preciso acessar alguns dados de vários meses atrás. No entanto, na maioria das vezes, só precisarei de dados dos últimos 14 dias, que caberiam no SSD. Idealmente, gostaria de uma solução transparente (todos os dados em um sistema de arquivos) que armazena todas as gravações no SSD, gravando no HDD apenas uma vez por dia. As leituras seriam atendidas pelo cache se ainda estivessem no SDD, caso contrário o HDD teria que girar.

Eu tentei 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 ZFS ZIL / L2ARC , mas não tenho certeza se posso alcançar meu objetivo com o ZFS. Quaisquer ponteiros?

Se tudo mais falhar, vou simplesmente usar alguns scripts para copiar automaticamente os arquivos para a unidade grande, enquanto apago os arquivos mais antigos do SSD.

Editar : Cache é o termo errado para o que eu queria. Parece que a solução pretendida original não é possível para mim neste momento. Obrigado a todos que contribuíram!

    
por sirprize 23.10.2013 / 20:58

5 respostas

3

Isso não é realmente como ou porque funciona o armazenamento em cache - o cache serve para aproveitar a velocidade mais rápida e o melhor acesso aleatório do SSD ou de outra memória, em vez de minimizar as gravações no disco rígido. O cache é projetado para maximizar a velocidade, não reduzir a gravação, por ter um buffer menor e mais rápido suportando um grande dispositivo de armazenamento lento.

Na verdade, o bcache, que faz parte do kernel linux da linha principal, simplesmente transmitirá gravações seqüenciais para o disco rígido, em vez de passar pelo SSD, já que não há vantagem no 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 as gravações síncronas armazenando-as até que estejam prontas para serem escritas. O L2Arc armazena arquivos comumente acessados em um armazenamento mais rápido. Nenhum desses permitirá que você faça o que precisa.

O Fusion drive também usa um SSD e um HDD de forma transparente, colocando arquivos comumente usados no SSD para leituras mais rápidas e HDDs para armazenamento em massa de arquivos menos usados. Ele também não permite que você use o SSD como espaço de rascunho, e fazer backup de arquivos para a unidade principal de vez em quando

O que você está vendo não é o cache, mas sim backups periódicos do sistema para o HDD. Eu estou supondo que você pode ser capaz de falsificar algo em conjunto com Aufs - o primeiro ramo no disco rígido com arquivos maiores (por isso é preciso precidência ), e uma ramificação no SSD, em seguida, execute um script que mova os arquivos do SSD para o HDD periodicamente, enquanto ele estiver acessível a partir do mesmo local. Eu não testei isso ainda, mas ao contrário do cache, mover periodicamente arquivos e usar aufs provavelmente será exatamente o que você quer.

A maneira mais simples de classificar arquivos por idade é ls -tr -t classifica por hora (da mais recente para a mais antiga) e r inverte a ordem. (Se você tem um intervalo específico em mente find . -mtime n funciona muito bem como um número específico fornece arquivos modificados n dias atrás, -n fornece arquivos modificados nos últimos n dias e + n fornece arquivos modificados n dias atrás). Você pode encontrar algumas ideias sobre como usá-lo aqui

Como a quietude é o seu objetivo real, você pode verificar se a sua unidade suporta o modo silencioso com hdparm -M /dev/sda - isso deve gerar algo como acoustic = 254 (128=quiet ... 254=fast) . Nesse caso, você pode tornar seu disco rígido mais silencioso com o comando hdparm -M 128 /dev/sda . Execute o comando oposto hdparm -M 1254 /dev/sda quando precisar de mais velocidade.

    
por 31.10.2013 / 10:17
3

Como as outras respostas trataram o problema do ponto de vista do software, Eu 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:

  • Desfragmentar seu disco rígido
  • Enrole o disco rígido em elásticos para amortecer as vibrações
  • Procure um novo disco rígido: a maioria dos discos rígidos atuais é equipada com mancais dinâmicos de fluido, que permitem que os discos permaneçam quase silenciosos, mesmo quando girando a uma taxa muito alta.

Eu posso testemunhar por experiência própria 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 o disco rígido, como o Gabinete SilentDrive HD & Materiais acústicos ou o NoiseMagic NoVibes III Sistema silencioso de montagem de disco rígido . Eu não sei onde estes são vendidos, e os elásticos acima me parecem quase tão eficientes.

Pode-se também fazer a prova sonora de todo o computador. Alguns sites de exemplo que vendem insonorização os materiais são Quiet PC EUA , AcousticPC ou Dynamat , mas existem muitos desses.

Alguns gabinetes de computador já foram projetados para operação silenciosa. Veja, por exemplo, Seis casos de baixo ruído, orientados para o desempenho, Testado .

Como último comentário, um disco rígido barulhento que tropeça, clica ou assina pode ser um sinal de que seu disco rígido está começando a falhar, portanto, tome cuidado.

    
por 01.11.2013 / 16:08
2

Várias variações do Puppy Linux são baseadas no Ubuntu, mas usando Aufs .

O Puppy é executado inteiramente a partir da RAM, não há acessos ao HDD em operação normal.

Se você disser ao Puppy que o seu HDD é uma unidade flash, ele despejará o sistema de arquivos RAM no disco periodicamente, em vez de continuamente. Isso foi projetado para reduzir o desgaste de gravações frequentes em flashdrives, mas funciona bem em HDs também.

Assim como praticamente tudo no Puppy, você pode usar uma GUI para definir com que frequência deseja salvar o sistema de arquivos da RAM. Normalmente, isso será a cada 10mins ou mais, mas não há nada para impedir que ele seja despejado a cada 720min (12 horas), por exemplo.

Estetrechodomeuarquivomenu.lstdocarregadordeinicializaçãodoGrub4DOSmostraaconfiguraçãodaopçãopmediadokernelquedizqueestáusandoflashdriveemvezdeumHDD...

#menu.lstproducedbygrub4dosconfig-v1.7.1##'kernel...pmedia=ideflash'#TreattheHDDasaflashdrive:infrequentwritesoffilesystemtosavefiletitlePuppyLupu5.2.8(sda3/puppy528lu)Cached\nUseSWAP;changestoRAM;flushtodiskevery10min(fastest)find--set-root--ignore-floppies--ignore-cd/puppy528lu/initrd.gzkernel/puppy528lu/vmlinuzpsubdir=puppy528lupmedia=ideflashpfix=copy,fsckinitrd/puppy528lu/initrd.gz

Umanotasobre"variações" do Puppy Linux ...
Estou usando o Puppy Linux 5.2.8 "Lupu" que é baseado no Ubuntu 10.04 Lucid Lynx. Esta versão também é frequentemente chamada de "Lucid" em vez de "Lupu" devido às suas origens. Existem também versões baseadas no Slackware e 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.

Existe também uma versão muito mais recente baseada no "Ubuntu Precise Pangolin" chamado "Puppy Linux Precise". Há grandes mudanças no kernel usado na versão mais recente que pode não funcionar bem com hardware mais antigo. Se a sua máquina tiver menos de 5 anos, você pode 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 seja possível testá-la.

    
por 31.10.2013 / 16:56
0

solução curta e rapidamente implementável (mas não responde exatamente ao que você quer) é: transferir o disco de armazenamento em outro lugar. pode ser um chassi de servidor de arquivos netowrk (como o WD world edition) ou um disco USB3 e você pode tê-lo na mesma sala que o pc silencioso, ou em uma sala diferente, para evitar ouvi-lo completamente.

Isto é melhor, na minha opinião, pois você certamente só estará usando o drive quando quiser transferir dados através da rede - o sistema operacional pode estar fazendo algum outro tipo de reequilíbrio que você não pode evitar e o incomodaria. Sala tão diferente é uma grande vantagem.

O armazenamento em cache deve ser fácil - basta fazer o backup dos dados do dia no disco externo, o que você pode realizar usando soluções como rsync ou unison .

A solução mais longa é novamente não ideal (ou seja, nenhuma aplicação única), mas você obterá a unidade na mesma caixa com o ssd e atingirá velocidades mais altas (mas você realmente precisa de velocidade maior que a da rede por apenas 5 GB / dia? ):

você pode usar smartctl para definir o tempo de desaceleração da sua unidade e manter essa unidade em um estado desmontado - para evitar que o SO faça coisas na unidade. Em seguida, basta escrever um script para mount e fazer backup (como acima) dos dados de que você precisa.

    
por 31.10.2013 / 09:55
0

Você não vai gostar da minha resposta, mas na verdade está abusando do termo cache; na verdade, você está descrevendo uma solução de backup. Dê uma olhada no rsync ou procure outras soluções de backup se quiser algo mais completo.

    
por 31.10.2013 / 14:56