How does the RA setting get passed down the virtual block device chain?
Depende. Vamos supor que você esteja dentro do Xen domU e tenha RA = 256. Seu / dev / xvda1 é LV real no dom0 visível em / dev / dm1. Então você tem RA (domU (/ dev / xvda1)) = 256 e RA (dom0 (/ dev / dm1)) = 512. Ele terá tal efeito que o kernel dom0 acessará / dev / dm1 com outro RA que o kernel do domU. Simples assim.
Outra sittutation ocorrerá se assumirmos / dev / md0 (/ dev / sda1, / dev / sda2) sittuation.
blockdev --report | grep sda
rw **512** 512 4096 0 1500301910016 /dev/sda
rw **512** 512 4096 2048 1072693248 /dev/sda1
rw **512** 512 4096 2097152 1499227750400 /dev/sda2
blockdev --setra 256 /dev/sda1
blockdev --report | grep sda
rw **256** 512 4096 0 1500301910016 /dev/sda
rw **256** 512 4096 2048 1072693248 /dev/sda1
rw **256** 512 4096 2097152 1499227750400 /dev/sda2
A configuração / dev / md0 RA não afetará os dispositivos de bloco / dev / sdX.
rw **256** 512 4096 2048 1072693248 /dev/sda1
rw **256** 512 4096 2097152 1499227750400 /dev/sda2
rw **512** 512 4096 0 1072627712 /dev/md0
Então, geralmente, na minha opinião, o kernel acessa o blockdevice da maneira que está realmente definida. Um volume lógico pode ser acessado via dispositivo RAID (do qual faz parte) ou devicemapper e cada um com outro RA que será respeitado.
Então a resposta é - a configuração RA não é transmitida pela cadeia de dispositivos de bloco, mas qualquer que seja a configuração de RA de dispositivo de nível superior, será usada para acessar os dispositivos constituintes
Does dm-0 trump all because that is the top level block device you are actually accessing?
Se você quer dizer propagação profunda por "trunfo todos" - como no meu comentário anterior, acho que você pode ter RAs diferentes para diferentes dispositivos no sistema.
Would lvchange -r have an impact on the dm-0 device and not show up here?
Sim, mas este é um caso particular. Vamos supor que tenhamos / dev / dm0 que é / dev / vg0 / blockdevice do LVM. Se você fizer:
lvchange -r 512 /dev/vg0/blockdevice
o / dev / dm0 também irá mudar porque / dev / dm0 e / dev / vg0 / blockdevice é exatamente o mesmo dispositivo de bloco quando se trata de acesso ao kernel.
Mas vamos supor que / dev / vg0 / blockdevice é o mesmo que / dev / dm0 e / dev / xvda1 no Xen domU que o está utilizando. Definir o RA de / dev / xvda1 terá efeito, mas o dom0 verá ainda ter seu próprio RA.
What do you use, equivalent to the sector size above to determine the actual readahead value for a virtual device:
Eu normalmente descubro RA experimentando valores diferentes e testando-o com o hdparm.
The stripe size of the RAID (for md0)?
O mesmo que acima.
Does the FS play a part (I am primarily interested in ext4 and XFS)?
Claro - este é um tópico muito grande. Recomendo que você comece aqui link