LVM em imagens muito lentas

2

Depois de criar um lvm

dd if=/dev/zero of=1.img bs=1M count=16384
dd if=/dev/zero of=2.img bs=1M count=16384
losetup /dev/loop1 1.img
losetup /dev/loop2 2.img
pvcreate /dev/loop1
pvcreate /dev/loop2
vgcreate LVM1 /dev/loop1 /dev/loop2
vgchange -an LVM1

Eu aloco o volume 10G e o formato

lvcreate -L10240 -n lv_34179984_0 LVM1
mkfs.xfs /dev/LVM1/lv_34179984_0
mount -t xfs /dev/LVM1/lv_34179984_0 /home/test/image

Quando eu tento copiar um arquivo 8G para / home / test / image ele bloqueia depois de 215M copiado, iostat me dá

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00   29.82    0.00   70.18

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda3              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     1.00    0.00   0.00 100.20

Como resolver isso?

    
por adolgarev 14.09.2011 / 19:03

1 resposta

3

Você resolve isso não criando um sistema de arquivos sobre o grupo de volumes sobre os arquivos que já estão em um sistema de arquivos (possivelmente em um grupo de volumes) em um disco. Para usar uma referência Inception, você foi muito fundo meu amigo.

Sempre que você tenta fazer algo em /home/test/image , seu sistema precisa seguir as etapas a seguir:

  • Operação do sistema de arquivos em /home/test/image
    • Operação do grupo de volume
    • Operação de disco virtual (dispositivo de loop) em loop1
      • Operação do sistema de arquivos em 1.img
        • Operação de disco em qualquer lugar 1.img lives
    • Operação de disco virtual (dispositivo de loop) em loop2
      • Operação do sistema de arquivos em 2.img
        • Operação de disco em qualquer lugar 2.img lives

Isso ainda deixa de fora um monte de etapas intermediárias que acontecem no kernel sempre que você inicia a E / S de disco (disco físico ou dispositivo de loop). Simplificando, você está pedindo ao seu sistema para fazer tanto trabalho que o desempenho será péssimo.

Você pode melhorar marginalmente o desempenho colocando 1.img e 2.img em discos físicos separados, mas é improvável que isso traga um benefício substancial. Sua única opção real para um desempenho decente é criar o grupo de volumes em discos físicos .

    
por 14.09.2011 / 19:13

Tags