qual sistema de arquivos do tipo ZFS pode otimizar a seleção de volume com base nos padrões de acesso a arquivos?

2

Existe um sistema de arquivos redundante tipo RAID / ZFS que pode otimizar o posicionamento de arquivos com base em seus padrões de acesso? Meu objetivo é criar um sistema desktop que mova automaticamente arquivos entre um disco rígido, uma unidade de estado sólido e um disco RAM com base em como e com que frequência eles são acessados, a fim de controlar o desgaste por meio da seleção oportunista de volume. Por exemplo, arquivos que são lidos freqüentemente (e abertos para acesso somente leitura) seriam colocados em um SSD; arquivos que são lidos com freqüência, mas são abertos para acesso de leitura / gravação, seriam colocados em um disco RAM; arquivos acessados com pouca frequência passariam para o HD.

Estou imaginando um sistema de arquivos virtual inteligente que pode reconhecer automaticamente os padrões de acesso e otimizar o posicionamento do volume físico. No entanto, tenho a sensação de que um efeito semelhante poderia ser obtido criando um sistema de arquivos primário no disco rígido, uma partição swap no SSD e reservando uma grande quantidade de RAM para um cache do sistema de arquivos.

A desvantagem da solução acima (fácil) é que ela é insensível às fraquezas do hardware subjacente. Por exemplo, as gravações fazem com que os SSDs falhem mais rapidamente - e os HDs são ainda mais suscetíveis. RAM, no entanto, pode ser escrita quase indefinidamente sem falhar. O sistema de arquivos deve capitalizar essas propriedades para maximizar a vida útil do equipamento.

    
por RubyTuesdayDONO 29.04.2011 / 06:27

3 respostas

3

Você deve dar uma olhada em Btrfs , especialmente as porções de balanceamento. Pode incluir código exatamente ou próximo ao que você precisa e sobre o qual você pode construir.

O sistema como você descreve é quase como um cache, e certamente pode ser aplicado como um complemento aos sistemas de arquivos existentes até certo ponto. Algumas coisas de nota, em geral:

  • Controladores de disco não propagam gravações imediatamente, o que significa que gravar o mesmo arquivo rapidamente em um curto período de tempo não fará com que o hardware subjacente seja atualizado tantas vezes.
  • Os SSDs não são tão frágeis como antes, e podem sobreviver tanto quanto um disco rígido, se não mais. A falta de partes móveis é ótima!
  • O design proposto é útil apenas se os padrões de acesso não forem alterados com muita frequência, como qualquer outro cache. AE / S assíncrona acelerou os tempos de interação do disco nos últimos anos, mas depende do suporte em nível de aplicativo, às vezes. Por outro lado, corrigir o sistema operacional para servir a cópia em RAM do arquivo para os aplicativos, ao mesmo tempo em que faz a AIO para o disco rígido, pode oferecer o tipo de durabilidade de dados que um sistema puramente na memória não oferece. : memcached, e por isso recomenda strongmente contra ser usado como um mecanismo de persistência)

Eu entendo que o objetivo final é ser o mais transparente possível para o OS / usuário / aplicações, para apresentar apenas um volume / drive / partição e cuidar de tudo internamente. Não tenho certeza se o desktop é o melhor destino para esse sistema, porque duvido que seja tão útil quanto se ele fosse criado para servidores.

P.S. Isso já existe em hardware como unidades híbridas há algum tempo. A parte de RAM não é usada, mas, novamente, os usuários de desktop realmente não notariam isso de qualquer maneira. Outra proposta é o Combo Drive e Google Scholar tem ainda outros.

    
por 29.04.2011 / 07:21
3

O ZFS já está fazendo esse tipo de otimização automaticamente. Basta adicionar um SSD como um dispositivo de cache em seu pool e seus arquivos (na verdade, blocos de dados) serão localizados, dos menos aos mais ativos:

  • nos discos regulares
  • nos SSDs (L2ARC)
  • na RAM (ARC)

O algoritmo usado pelo ZFS ARC (Cache de substituição adaptável) é baseado nos blocos utilizados com mais freqüência e nos mais usados recentemente.

link

    
por 04.05.2011 / 08:05
1

Você pode querer analisar o bcache: link

Parece promissor, mas ainda não tentei.

    
por 12.10.2011 / 23:22