Um VG (Grupo de Volume) pode conter diferentes tipos de PVs (Volumes Físicos)?

Um VG (Grupo de Volume) pode conter diferentes tipos de PVs (Volumes Físicos)?

O pano de fundo é que temos nosso diretório de dados de banco de dados em um LV localizado em um VG. Queremos usar a função snapshot do LVM para fazer backup dos dados do nosso banco de dados, mas este VG não tem mais PEs livres. Também não conseguimos reduzir o LV (usamos XFS). O VG possui dois PVs, sendo cada PV um RAID 10 (cada um com 8 discos rígidos). Temos dois discos rígidos extras sobressalentes (para hot failover, o tamanho é o mesmo que consiste nos PVs RAID10).

Estou pensando em pegar uma das unidades sobressalentes, criar um PV nela e adicioná-la ao VG que hospeda o diretório de dados do banco de dados. Isto funciona? Um VG poderia conter diferentes tipos de PVs, por exemplo, 2 PVs RAID 10 e 1 disco rígido sem RAID?

Responder1

Qualquer nó de dispositivo que seja um dispositivo de bloco pode ser transformado em PV e adicionado como membro de um VG. Por exemplo, tenho em um dos meus computadores um disco rígido e um disco de estado sólido membros de um único PV e funcionando como cache (https://man7.org/linux/man-pages/man7/lvmcache.7.html).

Ao criar o instantâneo LV, você pode querer usar os PVs RAID10 para hospedar os dados do banco de dados ativo e o disco sobressalente para armazenar o instantâneo de cópia na gravação (COW). Sugiro fazer isso porque, em caso de falha do disco sobressalente, o backup em andamento seria perdido e não o banco de dados ativo. O PV exato que hospeda um LV pode ser especificado na linha de comando que cria o instantâneo, conforme exemplificado abaixo.

# lvcreate -L 10G -n backup_snap_lv -s data_vg/data_lv /dev/sdb
# lvdisplay --maps data_vg/backup_snap_lv

Responder2

Não deve haver problema porque esta é a ideia do LVM. No nível inferior você tem dispositivos de armazenamento físico. Neles são criados PV, então quando você adiciona PV(s) ao VG, VG não se importa com o que está abaixo, então quando você adiciona espaço ao LV/cria LV, LV não se importa de onde o VG tem esse espaço.

É claro que existem casos especiais quando você cria espelhos (duas cópias de LV), você pode fazê-los residir em PVs diferentes (para um modo muito estrito, você também precisará de um terceiro PV)

Responder3

O LVM (principalmente) não se importa com as especificidades dos dispositivos de bloco nos quais os PVs de um VG estão. A única grande exceção é que ele pode tentar passar operações de descarte para dispositivos de bloco subjacentes se eles anunciarem que suportam tais operações.

Por exemplo, em meu sistema de servidor doméstico, tenho quatro discos rígidos SATA de 4 TB e dois SSDs NVMe de 1 TB, todos configurados como PVs para o único VG do sistema, o que fiz porque facilita a migração de dados quando preciso para substituir um disco (ele se transforma em um pvmovecomando simples em vez de precisar fazer algo como mesclar VGs).

No entanto, há uma grande ressalva nisso. Como o LVM não se preocupa com os dispositivos de bloco subjacentes, ele não é inteligente o suficiente para colocar novos LVs de forma 'inteligente' (ou, em alguns casos, estender os existentes), a menos que tudo o que importa seja minimizar a fragmentação do espaço livre. Como tal, você devesempreespecifique explicitamente quais PVs usar ao criar novos LVs em tal configuração para que você obtenha exatamente o comportamento esperado.


Como um aparte, supondo que essas unidades sobressalentes sejamverdadeiropeças sobressalentes (ou seja, o sistema irá usá-las automaticamente como substituições no caso de uma falha de unidade no restante do array), eu não recomendaria reaproveitar uma delas, a menos que você precise desesperadamente de mais espaço e realmente não se importe com a possibilidade de uma falha na unidade dupla (o que é relativamente provável com tantas unidades em cada matriz). Se você puder liberar espaço de outra forma, essa provavelmente deverá ser sua primeira abordagem para conseguir mais espaço para trabalhar.

informação relacionada