Por que meu grupo de volumes lvm2 funciona apenas com o mapeador de dispositivos multipath e não com o powerpath?

3

Meu servidor é um Oracle Enterprise Linux 5.4 (RHEL5) em um blade HP (x64) com HBAs qlogic conectados a uma SAN de clareza EMC.

Estamos migrando do multipath para o powerpath, porque o emc e a equipe de armazenamento da empresa não suportam multipath.

Atualmente, meus grupos de volumes de 3 lvm estão usando os dispositivos / dev / dm-X criados pelo dispositivo mapper / multipath:

  • vg01 é uma partição de disco inteira em um lun de 25GB
  • vg02 é 3 lb de 16 gb, sem partições
  • vg03 é um lun de 1tb, sem partições.

(experimento 1) Eu desative multipathd e desative-o na configuração de verificação e adicione o seguinte filtro ao lvm.conf .

filter = [ "a|/dev/emc.*|", "a|/dev/cciss.*|", "r/.*/" ]

e quando eu reiniciar:

  • vg01 é indetectável
  • vg02 detectado com sucesso
  • vg03 detectado com sucesso

O vg01 não é detectado em seu disco emcpower, mesmo que eu possa ver o conteúdo do cabeçalho do lvm com o dd. Os outros dois VGs são detectados bem. também todos os dispositivos dm-X ainda estão em / dev /.

(2) Então eu excluo o filtro e habilito a lista negra de tudo em multipath.conf :

blacklist {
    devnode "*"
}

agora, na reinicialização, não há mais dispositivos dm-X em / dev / e vg02 e vg03 são encontrados em seus dispositivos emcpower, mas a vg01 ainda não é detectável.

(3) Eu reinicio com o filtro e a lista negra e os resultados são que vg01 é indetectável, mas vg02 e vg03 estão bem.

Alguém pode me ajudar a descobrir por que esse grupo de volume parece ser indetectável sem device-mapper / multipath?

E alguém pode explicar qual é a relação entre o lvm, o mapeador de dispositivos e o multipath?

    
por jwinders 08.05.2012 / 18:47

1 resposta

1

Atualmente, não tenho acesso a equipamentos da EMC para verificar isso, mas precisei configurá-lo em vários trabalhos anteriores. Se bem me lembro, você tinha que usar essa linha de filtro:   filter = ["r / sd. /", "a /. /"] Isso remove todos os dispositivos sd (sda, sdb, etc) e permite tudo mais. Claro, se você está inicializando um disco interno que aparece como / dev / sda, então você terá que especificar:   filter = ["r / sd [b-z]. /", "a /. /"] ou algo similar.

Edit: Eu encontrei uma linha de configuração em minhas anotações antigas (acho que isso foi para o RHEL 4, mas ainda deve funcionar); este filtro é para um servidor HP que inicializa de um controlador raid interno (cciss) e possui o Powerpath para as unidades de dados:

filter = [ "a|^/dev/cciss/.*|", "a|^/dev/emcpower.*|", "a|^/dev/loop.*|", "r /.*/" ]

Portanto, isso aceita os dispositivos cciss, emcpower, qualquer dispositivo de loopback e rejeita tudo o mais (as regras de regex se aplicam aqui).

Para responder a última parte da sua pergunta, quando o LVM faz uma varredura, ele procura em / proc / partitions por qualquer dispositivo que corresponda a seus filtros de aceitação / rejeição, e varre esses dispositivos de bloco para cabeçalhos do LVM. O primeiro dispositivo de bloco que ele encontra para um determinado cabeçalho de volume LVM é aquele usado. Agora, com o SAN, tanto / dev / sda, e / dev / sdg (por exemplo) mapeiam os mesmos dados, assim como / dev / emcpowera (o comando "powermt display all" deve fornecer os mapeamentos apropriados). Espero que isso ajude.

    
por 19.05.2012 / 04:18