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

0

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

Eu pretendo entregar dois volumes LVM como root e trocar para a VM como discos virtuais.
Eles são detectados corretamente como vda e vdb ; no entanto, o instalador parece forçar-me a particioná-los como discos, o que poderia impedir a flexibilidade do LVM.

Como posso instalar o Ubuntu com a formatação dos discos virtuais diretamente em vez de usar partições, ou isso é uma má idéia?

Motivação:

O objetivo é 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. paritioning: host:/dev/sd{a,b}1
  3. sw-raid: host:/dev/md1
  4. lvm: host:/dev/vg0/mylv_root
  5. Disco do VirtIO guest:/dev/vda
  6. particionamento: guest:/dev/vda1
  7. sistema de arquivos: guest:/

Neste layout, quando alocar espaço adicional para uma única vm, tenho que seguir estas etapas:

  1. lvresize
  2. parted , 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 de kpartex , conforme explicado por psusi.

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

Solução Hacky:

Usando kpartx , consegui mover o sistema de arquivos raiz de uma "partição de inicialização" (dentro de outro volume lógico temporário) para o volume lógico de destino e, em seguida, inicializar por meio da 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 idéia de inicialização direta do kernel, pois eu teria que atualizar manualmente a versão do kernel do guest no host toda vez que o kernel fosse atualizado.
por Zulan 29.07.2014 / 18:06

2 respostas

1

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. Leva o mesmo espaço e você sempre pode usar o LVM no disco virtual e / ou redimensionar o disco virtual.

    
por Panther 29.07.2014 / 19:21
0

Na verdade, descobri que existe uma resposta trivalente: se os volumes lógicos forem formatados (por exemplo, host# mkfs.ext4 /dev/vg0/mylv_root ), o instalador detectará e permitirá usá-los como "parition 1 do disco virtual". Pode até mesmo reformatar as partições.

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

    
por Zulan 29.07.2014 / 23:49