Block size em máquinas virtuais

O início do processo de criação de uma máquina virtual minificada foi relatado neste artigo. Como podem ver pela demora, tem sido um desafio difícil. E agora que me aproximava do final, descobri um ponto que me obrigou a recomeçar o processo…

O “block size” é como o nome diz a dimensão de um bloco utilizada nos vários meios de armazenamento utilizados em computadores. Essa dimensão tem vindo a subir e está actualmente em 4KB na maioria dos sistemas de armazenamento.

Uma dimensão de 4KB tem todavia uma implicação muito significativa quando tentamos obter uma máquina virtual de dimensão reduzida: como é a dimensão mínima do que se pode guardar no disco, um ficheiro com um número reduzido de bytes acaba por ocupar esses mesmos 4KB! E um sistema Linux tem uma grande quantidade de ficheiros pequenos, não só durante o período da instalação, como também na sua utilização…

Utilizar um block size mais reduzido tem também outras implicações, uma das quais é o desempenho. Um block size de 4KB favorece a leitura de ficheiros de dimensão elevada. Nos discos recentes, a dimensão mínima dos sectores também já é de 4KB, mas o VirtualBox que utilizo tipicamente continua a utilizar uma dimensão de 512 bytes. Testes posteriores com o hdparm não revelaram todavia uma penalização significativa de desempenho…

Conseguir instalar o Linux Mint com um block size mais reduzido, neste caso de 1KB, não é todavia imediato. Note-se que estas experiências se coadunam com a criação de máquinas virtuais, mas que a sua utilização, em quaisquer circunstâncias, pressupõe que se sabe o que se está a fazer. O que está referenciado abaixo pode variar em função de múltiplos aspectos. Se formatar alguma coisa por engano, não se venha queixar!

Quando se arranca o Live CD de instalação do Linux Mint, antes de começar a instalação propriamente dita, deve-se criar uma partição, seguida de um filesystem. Tipicamente, utilizo o gparted e utilizo sempre o ext4 em Linux. De volta à linha de comandos, reescrevo a partição, executando:

  • sudo mkfs.ext4 -b 1024 /dev/sda1

Para confirmar que o block size é mesmo de 1024 bytes, pode utilizar o comando

  • blockdev –getbsz /dev/sda1

embora possa ter que montar/desmontar o filesystem para reflectir alterações efectuadas.

Depois, pode iniciar a instalação do Linux Mint, escolhendo a opção “Something else” na definição das características do disco. Terá ainda que definir o “mount point” “/” no filesystem criado. Vários alertas vão surgir subsequentemente, mas depois de os ler com atenção, deverá bastar carregar em “Continue” e concluir normalmente a instalação do Linux Mint. No final, terá bastante menos espaço de disco desperdiçado… No meu caso, a máquina virtual final ficou mais de 600 MB mais pequena!

Tags:

{ 2 comments to read ... please submit one more! }

  1. Refere-se certamente ao block size de escrita e leitura em disco.
    Havendo cada vez maior utilização de armazenamento em SSD ou núvem, qual a razão de um block size?

  2. Sim, é o block size do filesystem.
    Na nuvem, o conceito é realmente relativo… Em qualquer caso, o block size continua a ser uma abstracção utilizada nos filesystems.

{ 0 Pingbacks/Trackbacks }