Estamos executando o Proxmox VE 8.3 em alguns ProLiant DL360p Gen8. Cada um deles está conectado a um storage array 1/2 MSA 2040 com duas conexões. O array é acessível como /dev/sdb para a primeira conexão e /dev/sdc para a conexão de fallback.
Gostaríamos de usar o array como lvm-thin. Para fazer isso, criei uma partição única no array, criei um volume físico e um grupo de volumes.
sgdisk -N 1 /dev/sdb
pvcreate /dev/sdb1
vgcreate vg-proxmox1-array /dev/sdb1
Até agora, tudo funcionou. Antes de criar o thin pool, executei pveupgrade
e reiniciei os servidores. Após a reinicialização, o grupo de volume vg-proxmoxN-array
não apareceu mais ao executar vgs
or vgscan
. Nem o volume físico ao executar pvs
or pvscan
. No entanto, ao nomear explicitamente o dispositivo, o PV e o VG são exibidos:
root@proxmox1:~# pvscan --devices /dev/sdb1
PV /dev/sdb1 VG vg-proxmox1-array lvm2 [<4.91 TiB / <4.91 TiB free]
Total: 1 [<4.91 TiB] / in use: 1 [<4.91 TiB] / in no VG: 0 [0 ]
De acordo com alguns recursos da Internet, um filtro na configuração lvm pode ser a causa - mas não vejo nenhum que corresponda/dev/sdb
grep -v "#" /etc/lvm/lvm.conf | grep filter
global_filter=["r|/dev/zd.*|","r|/dev/rbd.*|"]
Alguns recursos apontaram para 10.1.2. Adicionando dispositivos ao arquivo system.devices , mas a ferramenta mencionada lvmdevices --adddev <device_name>
não parece estar disponível no Proxmox VE 8.3.
- Eu ficaria muito grato por quaisquer dicas sobre como fazer com que o volume físico seja exibido de forma confiável durante a execução
pvs
,pvscan
bem como o grupo de volumes seja exibido de forma confiável durante avgs
execuçãovgscan
. - O que posso ter feito de errado para eles não aparecerem? Posso confiar no hardware na situação atual?
- Qual é a melhor maneira de prosseguir a partir daqui para usar 99% do vg-proxmox1-array para um pool lvm-thin e o 1% restante para os metadados?
Muito obrigado antecipadamente!
Você está dando um tiro no próprio pé. Não acesse isso
sdb
esdc
diretamente! Isso bagunça muito o sistema; em particular, quando você escreve em sdb, ele não sabe imediatamente que o conteúdo de sdc mudou, então ele usará dados antigos em cache. Você vê o problema?Há uma camada multipath no kernel Linux , que lida com redundância SAN. A camada multipath também tentará carregar todos os caminhos (por padrão em um modo round-robin), usando assim a redundância para aumentar o throughput, se possível. Ela corresponderá e combinará esses vários dispositivos que representam o mesmo volume SAN subjacente em um único dispositivo virtual para você, você não precisa se preocupar em dizer a ele quais dispositivos representam o mesmo volume. Este dispositivo é o que você deve acessar, particionar (ou não; dificilmente há algum valor em particioná-lo) e criar PV nele ou usar para o que quiser — sistema de arquivos, Oracle ASM e assim por diante.
Por exemplo, tenho servidores que têm 16 caminhos para a SAN, ou seja, cada volume é visto dezesseis vezes e os dispositivos vão até
/dev/sdfv
, mas vejo apenas onze dispositivos multicaminhos naquele/dev/mapper
sistema.Você tem que instalar
multipath-tools
e, provavelmente,multipath-tools-boot
para que ele inicialize corretamente no momento do boot, e configurá-lo. Então, os volumes exportados pela SAN aparecerão por padrão como/dev/mapper/mpathX
(X é uma letra) a menos que você tenha configurado outro nome para eles em/etc/multipath.conf
. Eu prefiro ter o mesmo nome na SAN e no Linux, então eu sempre os renomeio:e o dispositivo com WWN fornecido aparece como
/dev/mapper/oamdwhdg-01
.Você verifica seu status multipath e o controla com
multipathd
comando, por exemplo,multipathd show maps
emultipathd show topology
. Bem, se você tiver mais perguntas sobre como usá-lo, pergunte, tentarei cobrir, mas leia o manual primeiro, não vou reescrevê-lo aqui.Além disso, você interpreta sua configuração LVM incorretamente. As entradas de filtro que começam com
r
são removals , ele especifica dispositivos que o LVM não deve escanear para volumes . Há um implícitoa|/dev/.*|
no começo, para escanear todos os dispositivos. Em circunstâncias normais, mesmo com multipath em jogo, você não precisa tocar neste filtro. Leia mais sobre isso aqui .