Fila de E / S no dispositivo LVM v.s. Fila de E / S no (s) dispositivo (s) subjacente (s)

0

dm-1 / alan_dell_2016-swap é um Volume Lógico LVM, que é fisicamente armazenado na partição sda7 do dispositivo sda .

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 465.8G  0 disk 
├─sda1                      8:1    0   500M  0 part /boot/efi
├─sda2                      8:2    0   128M  0 part 
├─sda3                      8:3    0  50.5G  0 part 
├─sda4                      8:4    0   450M  0 part 
├─sda5                      8:5    0   7.6G  0 part 
├─sda6                      8:6    0     1G  0 part /boot
└─sda7                      8:7    0 371.4G  0 part 
  ├─alan_dell_2016-fedora 253:0    0    40G  0 lvm  /
  ├─alan_dell_2016-swap   253:1    0     2G  0 lvm  [SWAP]
  └─alan_dell_2016-home   253:2    0   318G  0 lvm  /home

O que significa para a E / S ser colocada na fila em dm-1 , em oposição a sda ?

A fila em dm-1 é alimentada na fila em sda ? Ou são duas filas separadas, que o sistema tem algum meio de arbitrar entre (como?)? Ou existe apenas uma fila, mas o sistema reporta estatísticas separadas para mostrar em qual LV (ou não) a E / S foi gerada?

Estou curioso porque vi que a fila do LVM pode ser maior que a do dispositivo subjacente.

Observação nr_requests (duração máxima da fila ? ) do dispositivo LVM é o mesmo que o dispositivo subjacente. nr_requests no dispositivo LVM não pode ser alterado . Além disso, o atributo sysfs queue/scheduler mostra apenas none . Em um dispositivo físico, parece noop deadline [cfq] .

EDIT : Encontrei uma resposta parcial sobre a existência de queue/scheduler no LVM aqui . Aparentemente, há um tipo de mapeador de dispositivo para vários caminhos, em que o agendador de E / S é anexado ao dispositivo dm (e o agendador nos dispositivos subjacentes não tem efeito). Mas em um volume lógico do LVM, o agendador será anexado apenas ao dispositivo subjacente. Parece nos dizer que o agendador de I / O não está ciente dos dispositivos empilhados ... mas isso não explica realmente o que os comprimentos de fila relatados significam. É até um pouco mais misterioso. Isso mostra que alguns dispositivos dm são "baseados em solicitação", o que significa que eles não têm uma fila. Os volumes lógicos do LVM não são baseados em solicitações, portanto, eles realmente têm uma fila, mas parece que a fila não está agendada e, por algum motivo, você não tem permissão para alterar o tamanho da fila?

Minha versão do kernel é 4.19.2-200.fc28.x86_64 . sda (e dm-1 ) são dispositivos de fila única; eles não usam a nova camada de bloqueio de várias filas.

Exemplo extremo ( atop output):

LVM | ll_2016-swap | busy 59% | read 24328 | write 175735 | KiB/r 4 | KiB/w 4 | MBr/s 0.2 | MBw/s 1.1 | avq 684.13 | avio 1.76 ms

DSK | sda | busy 93% | read 88967 | write 45808 | KiB/r 81 | KiB/w 152 | MBr/s 11.8 | MBw/s 11.4 | avq 96.50 | avio 4.12 ms

Exemplo ligeiramente menos extremo, resultado de iostat -d -x -y durante cp de um arquivo grande:

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
sda            123.00   55.00  26932.00  17812.00    16.00   307.00  11.51  84.81   16.23  106.96   7.31   218.96   323.85   5.62 100.00
dm-0            23.00   40.00    200.00    212.00     0.00     0.00   0.00   0.00   36.09   45.98   2.63     8.70     5.30  13.44  84.70
dm-1            12.00  304.00     48.00   1216.00     0.00     0.00   0.00   0.00   35.42  146.51  44.96     4.00     4.00   1.26  39.90
dm-2           102.00   10.00  26112.00  18432.00     0.00     0.00   0.00   0.00   16.25  324.40   4.59   256.00  1843.20   8.93 100.00
    
por sourcejedi 25.11.2018 / 16:31

0 respostas