Instalação em discos LVM virtuais sem partições

Instalação em discos LVM virtuais sem partições

Estou instalando um servidor Ubuntu em um KVM/libvirt vm com o instalador de texto/console.

Pretendo entregar dois volumes LVM como root e trocar para a VM como discos virtuais.
Eles são detectados corretamente como vdae vdb, porém o instalador parece me forçar a particioná-los como discos, o que prejudicaria a flexibilidade do LVM.

Como posso instalar o Ubuntu formatando os discos virtuais diretamente em vez de usar partições, ou isso é uma má ideia?

Motivação:

O objetivo principal é reduzir a complexidade removendo um nível desnecessário de abstração da hierarquia de armazenamento.

  1. unidades físicas:host:/dev/sd{a,b}
  2. particionamento:host:/dev/sd{a,b}1
  3. sw-raid:host:/dev/md1
  4. lvm:host:/dev/vg0/mylv_root
  5. Disco VirtIOguest:/dev/vda
  6. particionamento:guest:/dev/vda1
  7. sistema de arquivo:guest:/

Neste layout, ao alocar espaço adicional para uma única VM, preciso seguir estas etapas:

  1. lvresize
  2. parted, o que é especialmente feio
  3. resize2fs

Para reduzir o espaço alocado ao contrário (o que é ainda mais feio).

Para backups (por exemplo, com lvcreate --snapshot), há uma etapa adicional kpartexexplicada por psusi.

Quero remover 6. da equação porque não vejo qual valor essa abstração fornece. Mas isso custa pela complexidade adicional, possível impacto no desempenho e pequeno desperdício de espaço.

Solução hackeada:

Usando kpartx, consegui mover o sistema de arquivos raiz de uma "partição bootstrap" (dentro de outro volume lógico temporário) para o volume lógico de destino e depois inicializar via inicialização direta do kernel.

kpartx -a /dev/vg0/mylv_bootstrapper
dd if=/dev/mapper/vg0-mylv_bootstrapper1 of=/dev/vg0/mylv_root bs=4M
e2fsck -f /dev/vg0/mylv_root
# Edit fstab inside /dev/vg0/mylv_root accordingly
resize2fs /dev/vg0/mylv_root
kpartx -d /dev/vg0/mylv_bootstrapper

No entanto:

  1. Isso parece estranhamente hacky.
  2. Eu realmente não gosto da ideia de inicialização direta do kernel, pois teria que atualizar manualmente a versão do kernel do convidado no host cada vez que o kernel fosse atualizado.

Responder1

Bem, você tem que particionar/formatar o espaço independentemente de ser LVM ou não.

Sim, o KVM verá os dispositivos como "vda" e "vdb".

Em geral, embora o KVM use partições brutas/LVM, IMO, é muito mais confiável usar apenas um disco virtual. Ocupa o mesmo espaço e você sempre pode usar o LVM no disco virtual e/ou redimensionar o disco virtual.

Responder2

Na verdade, descobri que existe uma resposta trivial: se os volumes lógicos estiverem formatados (por exemplo host# mkfs.ext4 /dev/vg0/mylv_root), o instalador irá detectá-los e permitir seu uso como "parição 1 do disco virtual". Ele pode até reformatar as partições.

No entanto, o Grub não será instalado; a inicialização direta do kernel pode ser usada.

informação relacionada