O sistema de arquivos prefere escrever primeiro o LBA baixo?

1

Talvez o título seja confuso, mas deixe-me explicar um pouco ...

Nossos servidores mysql (na máquina virtual de xen) às vezes geram enormes arquivos tmp no disco. Então precisamos de um grande tmpdir para armazená-los. E decidimos montar o tmpdir no SSD para um melhor desempenho. Mas como você sabe, o SSD é de alguma forma caro e o mysql nem sempre gera grandes arquivos tmp. Então, se dermos a cada vm mysql um SSD grande, será um desperdício. Por isso, queremos apenas dar um pequeno SSD (na verdade, disco virtual suportado em xen SSD) para cada tmpdir (por exemplo, 10G).

Mas, como foi dito anteriormente, às vezes o mysql gera arquivos tmp maiores que 10G. Se isso acontecer, as consultas do mysql falharão. Então, queremos que seja assim:

combine um ssd e hdd em um drive (assim ele pode ser montado no mysql tmpdir). Quando o ssd é usado em todo o espaço, use o hdd.

Então eu pensei dmseupt ou LVM talvez possa fazer isso. Então fiz um teste simples:

1 SSD 0.5G | 1 HDD 10G | Uma extensão volumétrica lógica duas unidades acima | Um sistema de arquivos ext4 no volumn lógico acima

E use a ferramenta dd para gerar algum arquivo de tamanho 0,3 G. Então eu posso ver o uso de SSD cresceu 0,3G e HDD não mudou. Tudo é ótimo até agora! Mas quando eu deletar esse arquivo, então crie, depois delete ... faça o mesmo.

Acontece que o uso do espaço do disco rígido está aumentando continuamente!

Então eu convidado ext4 dose não tendem a substituir o arquivo excluído? Podemos desabilitar esse recurso ou existe outro sistema de arquivos que prefere escrever um LBA baixo primeiro?

Obrigado pela leitura!

    
por fubupc 19.10.2012 / 07:35

1 resposta

1

Você deseja combinar o baixo custo dos discos giratórios com o alto desempenho dos SSDs? Sim, isso pode ser feito: os pools de armazenamento híbrido são uma ótima ideia. No entanto, não acho que o seu plano para reinventar o armazenamento híbrido seja uma boa ideia.

O armazenamento híbrido é implementado lindamente em um sistema de arquivos chamado ZFS. Você pode usar o ZFS gratuitamente hoje:

  1. Tente girar uma máquina virtual separada como um servidor de armazenamento ZFS executando sua escolha de Nexenta, OpenIndiana ou FreeBSD.
  2. Crie um pool de armazenamento do ZFS com SSDs especificados adequadamente para ZIL (cache de gravação) e L2ARC (cache de leitura).
  3. Distribua os volumes de armazenamento híbrido de que você precisa, seja como alvos iSCSI ou como faz mais sentido em seu ambiente.
  4. Deixe o ZFS gerenciar automaticamente quais blocos estão armazenados na RAM ou no SSD, bem como em discos giratórios.
por 19.10.2012 / 07:50

Tags