Resposta curta:
Mapeador de dispositivos nas versões de kernel depois de 2.6.31 (lançado em 9 de setembro de 2009) inclui suporte a metas dm "baseadas em solicitações". Até agora, apenas o único destino de dm baseado em solicitação é dm-multipath
.
Para os alvos que permanecem BIO (isto é, tudo exceto multipath), a seleção do agendador ainda está presente, mas é irrelevante, já que o alvo DM retira a IOP antes desse ponto.
Para destinos baseados em solicitações, a seleção do agendador substitui o que está definido no dispositivo de bloco individual, pois multipathd
estará comunicando as solicitações diretamente ao dispositivo SCSI subjacente ( /dev/sg4
, /dev/sg5
, etc).
Informações adicionais:
O aplicativo de E / S do usuário é referido como BIO (block I / O). O BIO é enviado ao agendador / elevador para solicitação de mesclagem / pedido e, em seguida, é enviado como uma "solicitação" para os dispositivos de nível inferior.
Historicamente, dm-multipath
foi exclusivamente no nível BIO. Isso criou um problema em que o tráfego de BIOs separados seria mesclado pelo dispositivo de bloco ( sdb
, sdf
, etc) resultando em algumas filas de solicitação sendo mais curtas / menos usadas do que outros caminhos possíveis. BIO dm-multipath
também foi incapaz de ter visibilidade sobre coisas como repetir eventos ou algo parecido, pois estava oculto pelo dispositivo de bloco ( /dev/sda
, /dev/sdb
, etc).
O objeto sysfs para dispositivo de bloco multipath antes da alteração (RHEL 5):
[root@xxxsat01 dm-1]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.10 (Tikanga)
[root@xxxsat01 ~]# uname -r
2.6.18-371.8.1.el5
[root@xxxsat01 dm-1]# cat dev
253:1
[root@xxxsat01 dm-1]# ll
total 0
-r--r--r-- 1 root root 4096 Jan 29 13:54 dev
drwxr-xr-x 2 root root 0 Apr 29 2014 holders
-r--r--r-- 1 root root 4096 Jan 29 13:54 range
-r--r--r-- 1 root root 4096 Jan 29 13:54 removable
-r--r--r-- 1 root root 4096 Jan 29 13:54 size
drwxr-xr-x 2 root root 0 Jan 25 06:25 slaves
-r--r--r-- 1 root root 4096 Jan 29 13:54 stat
lrwxrwxrwx 1 root root 0 Jan 29 13:54 subsystem -> ../../block
--w------- 1 root root 4096 Jan 29 13:54 uevent
Pós-alteração (RHEL 6):
[root@xxxlin01 dm-1]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@xxxlin01 ~]# uname -r
2.6.32-431.3.1.el6.x86_64
[root@xxxlin01 dm-1]# cat dev
253:1
[root@xxxlin01 dm-1]# ll
total 0
-r--r--r-- 1 root root 4096 Jan 29 13:58 alignment_offset
lrwxrwxrwx 1 root root 0 Jan 29 13:58 bdi -> ../../bdi/253:1
-r--r--r-- 1 root root 4096 Jan 29 13:58 capability
-r--r--r-- 1 root root 4096 Jan 29 13:58 dev
-r--r--r-- 1 root root 4096 Jan 29 13:58 discard_alignment
drwxr-xr-x 2 root root 0 Jan 29 13:58 dm
-r--r--r-- 1 root root 4096 Jan 29 13:58 ext_range
drwxr-xr-x 2 root root 0 Jan 29 13:58 holders
-r--r--r-- 1 root root 4096 Jan 29 13:58 inflight
drwxr-xr-x 2 root root 0 Jan 29 13:58 power
drwxr-xr-x 2 root root 0 Jan 29 13:58 queue
-r--r--r-- 1 root root 4096 Jan 29 13:58 range
-r--r--r-- 1 root root 4096 Jan 29 13:58 removable
-r--r--r-- 1 root root 4096 Jan 29 13:58 ro
-r--r--r-- 1 root root 4096 Jan 29 13:58 size
drwxr-xr-x 2 root root 0 Jan 29 13:58 slaves
-r--r--r-- 1 root root 4096 Jan 29 13:58 stat
lrwxrwxrwx 1 root root 0 Jan 29 13:58 subsystem -> ../../../../class/block
drwxr-xr-x 2 root root 0 Jan 29 13:58 trace
-rw-r--r-- 1 root root 4096 Jan 29 13:58 uevent
Como o kernel não sabe quais alvos individuais ele apresenta os mesmos atributos sysfs, independentemente do tipo de dispositivo mapeador de dispositivos que ele é. Como o pedido é então retransmitido para os dispositivos em nível de bloco, o agendador do mapeador de dispositivos nunca é chamado e, portanto, essa configuração é essencialmente um noop com outros destinos de dm.
Leitura adicional: