A maneira mais rápida de determinar o tamanho de um dispositivo de bloco?

3

Eu tenho um script remoto que verifica alguns parâmetros dos volumes lvm. Uma das coisas que preciso saber é o tamanho. Atualmente estou usando isso:

lvdisplay /dev/virtuals/volume_name -C -o lv_size

Mas o último comando pode levar cerca de um segundo para ser executado no meu servidor e eu tenho vários volumes que desejo verificar. Eu também tentei usar o lvs em vez do lvdisplay, mas não há muita melhora na velocidade.

time lvs -o lv_size /dev/virtuals/volume_name -C -o lv_size
real 0m0.809s
time lvdisplay /dev/virtuals/volume_name
real 0m0.982s

Alguém conhece uma maneira mais rápida de obter essa informação, apenas o tamanho do volume, eu não estou interessado na ocupação.

Atualização: Usando blockdev dá uma melhoria maciça. Eu realmente recomendo usá-lo em vez de lvdisplay (lembre-se de usar o getsize64)

time blockdev --getsize64 /dev/system/home

    
por Aseques 09.08.2010 / 12:51

4 respostas

9

Use o comando blockdev :

Bytes:

> time blockdev --getsize64 /dev/system/home
32212254720

real   0m0.004s
user   0m0.001s
sys    0m0.002s

Setores:

> time blockdev --getsize /dev/system/home
62914560

real   0m0.006s
user   0m0.001s
sys    0m0.003s
    
por 09.08.2010 / 16:57
2

Aqui estão algumas coisas que você pode tentar. Eu não conheço o interior do lvm, então não sei se vão fazer alguma diferença.

  • Teste lvs em vez de lvdisplay . Talvez seja mais rápido, pois procura menos informações.

  • Tente executar lvdisplay ou lvs apenas uma vez para todos os volumes em que você está interessado. Como algumas informações são armazenadas por grupo de volumes, haverá menos duplicação do esforço de leitura dessa maneira.

por 09.08.2010 / 13:04
0

há também lvs , mas todos dependem da mesma base de código que eu acho

    
por 09.08.2010 / 12:58
0

/proc/partitions também lista os volumes gerenciados pelo LVM e deve ser muito mais rápido. A maior desvantagem é que ele os relaciona como 'dm-0', 'dm-1', etc. você precisará do mapeamento de número de nome de algum outro lugar. (dica, verifique o menor número de dispositivo de arquivos do dispositivo)

    
por 09.08.2010 / 16:06