
Parece que consigo fazer um pvcreate com êxito em cima de um dispositivo de bloco bruto, sem nunca criar uma tabela de partição. Posso então criar um grupo de volumes, um volume lógico e, finalmente, um sistema de arquivos, montá-lo e testar via dd.
Parece funcionar, mas preciso de uma verificação de sanidade. Isso é uma má ideia?
Como faço para criar uma tabela de partição GPT ou MBR sobre um dispositivo de bloco bruto?
Como uso o parted para mostrar que tipo de tabela de partição está em uso? Eu tentei fazer:
parted, selecione /dev/sdb, imprima e recebo:
Erro: /dev/sdb: rótulo de disco não reconhecido
No entanto, a unidade está em uso e posso ler e gravar nela. Essa é a saída esperada ao executar o LVM em cima de um dispositivo de bloco bruto sem uma tabela de partição? Alguma ideia?
Obrigado!
Responder1
Mesmo que o próprio LVM não se importe em ter uma partição real, uma razão para criá-la de qualquer maneira é informar aos programas de particionamento que há “algo lá”. Um cenário de pesadelo é um novo administrador de sistema diagnosticando um problema de inicialização em um servidor, iniciando um programa de particionamento, vendo discos não particionados e concluindo que a unidade está corrompida.
Não vejo nenhuma desvantagem em criar uma partição LVM. Você?
Responder2
Embora você possa simplesmente criar um pv a partir do dispositivo de bloco bruto, normalmente tento evitá-lo, pois pode causar confusão sobre para que o dispositivo de bloco está sendo usado. Também pode quebrar algumas das rotinas de descoberta automática que o LVM pode usar se estiver faltando seus arquivos de configuração.
Aqui está um exemplo de uso do parted para criar um GPT com 1 partição que é a unidade inteira e definir o sinalizador de partição como lvm. O mkpart requer que você especifique um sistema de arquivos, mas não cria o sistema de arquivos. Parece ser um bug de longa data no parted. Além disso, o deslocamento inicial de 1M é para garantir que você obtenha o alinhamento adequado.
parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on
Responder3
Mesmo que no passado eu usasse o disklabel do MS-DOS ou o disklabel do GPT para PV, prefiro agora usar o LVM diretamente no dispositivo de bloco principal. Não há razão para usar 2 disklabels, a menos que você tenha um caso de uso muito específico (como disco com setor de inicialização e partição de inicialização).
As vantagens de ter LVM diretamente são:
- simplicidade – você não precisa usar 2 conjuntos de ferramentas
- flexibilidade - você pode usar o pvmove para mover os dados de um volume de disco para outro sem tempo de inatividade, você pode usar snapshot e provisionamento dinâmico
- você não precisa executar partprobe ou kpartx para informar ao kernel que você criou/redimensionou/excluiu um volume. Epartprobe/kpartx pode falharse partições estiverem em uso e talvez seja necessário reinicializar
- talvez melhor desempenho, comparado ao uso de LVM em cima de disklables MS-DOS ou GPT
- evita possível desalinhamento se a partição criada com fdisk não estiver alinhada com as extensões do volume subjacente (por exemplo, matriz RAID)
Responder4
De acordo com o guia LVM da RedHat, seção 4.2.1 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/physvol_admin
Disseram que não há necessidade de ter a tabela de partições, até sugerem que a destruamos se usarmos o disco inteiro para VG (Grupo de Volumes) a menos que pretendamos incluir apenas partes dele (partição).