Quando você tem o LVM, você tem uma entrada para um planejador em /sys/block
para seus volumes físicos, mas também para cada volume lógico individual e o dispositivo bruto.
Nós temos um sistema kernel 6 LTS x64, kernel 2.6.32 rodando o Xen hypervisor 4.0 (RAID1 de hardware 3Ware 9650 SE). Ao executar máquinas virtuais em cada volume lógico, em qual você precisa definir o agendador se você quiser influenciar como eles são agendados pelo sistema operacional? Se você definir o volume lógico como deadline
, isso fará alguma coisa quando o volume físico estiver definido como cfq
? E se você definir o prazo no volume lógico, esses prazos serão respeitados mesmo quando o disco estiver desacelerando devido a IO em outros LVs que estão definidos como cfq
?
A pergunta refere-se ao IO em VMs que diminuem muito a velocidade de outras VMs. Todos os hóspedes usam noop como agendador internamente.
Editar: de acordo com this , em um ambiente multipath, somente o agendador do DM entrará em vigor. Então, se eu quiser lidar com IO entre máquinas virtuais em deadline
, eu tenho que definir o caminho DM do volume físico (dm-1 no meu caso) para deadline
. Isso esta certo? Existe também um agendador para o sdc, que é o dispositivo de bloco original do meu dm-1. Por que não não deve ser feito sobre isso?
edit2: mas então alguém diz nos comentários que o dm-0/1 não tem um agendador nos kernels mais novos:
famzah@VBox:~$ cat /sys/block/dm-0/queue/scheduler
none
No meu sistema (Debian 6, kernel 2.6.32), eu tenho:
cat /sys/block/dm-1/queue/scheduler
noop anticipatory [deadline] cfq
A questão é também, eu tenho uma configuração multipath? pvs
mostra:
# pvs
PV VG Fmt Attr PSize PFree
/dev/dm-0 universe lvm2 a- 5,41t 3,98t
/dev/dm-1 alternate-universe lvm2 a- 1,82t 1,18t
Mas eles foram criados com / dev / sd [bc]. Isso significa que eu tenho multipath, mesmo sendo uma configuração padrão do LVM?
A questão principal, eu acho, é que eu tenho que definir o agendador em sdc ou dm-1? Se eu faço iostat, vejo muito acesso em ambos:
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdc 0,00 0,00 13,02 25,36 902,71 735,56 42,68 0,08 2,17 0,73 2,79
dm-1 82,25 57,26 12,97 25,36 902,31 735,56 42,72 0,18 4,73 0,84 3,23
Então, o que é o que e quem é o chefe? Se for sdc, posso dizer que configurá-lo para prazo não faz nada para o desempenho das minhas VMs. Olhando para a diferença nas colunas "pedidos mesclados" (os dois primeiros), eu diria que é o dm-1 que controla o agendamento.