Estamos avaliando a virtualização do KVM para Linux em alguns projetos. Tudo está indo bem até agora. Mas um dos nossos requisitos é a capacidade de adicionar espaço em disco a um convidado em execução sem reinicializá-lo ou colocá-lo offline. Isso é possível com o KVM?
A única coisa que encontrei até agora (mas ainda não testei) é a capacidade de conectar discos à máquina. Se eu seguir essa rota, sempre poderá adicionar o novo disco a um grupo de volumes LVM no convidado e estender o volume lógico escolhido. A maior desvantagem dessa abordagem é que, com o tempo, podemos acabar com os convidados com números variáveis de discos virtuais. O espaço em disco "real" seria fornecido ao host por meio de uma SAN, para que possamos sempre adicionar mais espaço ao host sempre que necessário.
Respostas:
Acho que você está preso ao fazer o que mencionou se quiser fazê-lo sem desligar a máquina.
Por que não dar as LUNs das máquinas virtuais diretamente na SAN e gerenciar o espaço lá? Isso funciona melhor se você quiser usar recursos como a migração ao vivo de qualquer maneira.
O KVM é baseado no QEMU, portanto, todo o suporte ao formato de imagem vem desse projeto. Aqui está uma boa maneira de redimensionar os vários formatos suportados pelo Qemu / KVM. Mas o fórum do Qemu seria um bom lugar para fazer esta pergunta, se você não obtiver respostas sólidas aqui.
Outra opção que pode não ser ideal é usar qcow2 muito grande ou outro formato de imagem esparsa para as unidades. Assim, você pode fornecer a cada máquina uma pequena unidade para o sistema operacional e uma imagem grande e esparsa para dados no LVM. Isso manteria pelo menos o número de unidades / imagens virtuais que você está tendo que gerenciar. Porém, esse thin provisioning pode ser um problema, se você fizer isso com 1000 máquinas e todos ocuparem o espaço livre que eles veem.
XEN Eu acredito que tem as mesmas limitações atualmente.
fonte
Sei que é uma pergunta antiga, mas a encontrei enquanto pesquisava a solução e espero que ajude outra pessoa.
Hoje, é possível redimensionar o disco rígido da máquina. Eu encontrei uma maneira de trabalhar aqui:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
As etapas a seguir devem ser executadas:
Descubra o nome do arquivo e o nome do dispositivo KVM do disco rígido que você deseja redimensionar:
O interessante para nós é o disco. Você deve procurar
source
ealias
bloquear. Para mim, o nome do arquivo étest.img
e o nome do alias évirtio-disk0
. Para esse nome, você precisa prédrive-
- anexar para obter o nome da unidade qemu.Agora, na verdade, redimensionamos a unidade usando o monitor qemu:
Observe que o nome do arquivo foi usado sem a extensão .img e a unidade foi adicionada ao alias do disco. O 100G é o tamanho resultante da unidade que queremos ter
Entre na máquina e verifique se o tamanho real foi alterado:
É isso aí! Agora você pode criar novas partições ou redimensionar as existentes.
fonte
AFAIK, isso não é possível - você pode adicionar novas imagens de disco e, ao apontar, também pode adicionar novas imagens a um volume LVM, mas, para redimensionar uma imagem de disco inicializável ativa, você precisa fechá-la para baixo e edite as partições.
Aqui está uma boa explicação para expandir uma imagem. Embora exija o desligamento, você provavelmente poderá ficar com apenas alguns minutos de inatividade, especialmente se você evitar a opção --nonsparse image e colocar o disco do gparted em um arquivo iso e montar seu convidado KVM com antecedência. Espero que isto ajude.
fonte
É possível mover um sistema Linux entre discos enquanto estiver em execução. A limitação é que você não pode alterar partições em um disco que possui partições em uso.
Para fazer isso, seu sistema de arquivos raiz deve estar em um LVM, isso geralmente significa que você precisa ter um sistema de arquivos de inicialização separado (isso não é, no entanto, essencial, apenas facilita as coisas)
Depois de conectar o novo disco, adicione-o ao LVM com vgextend, use pvmove para mover os rootfs para o novo disco, use lvextend e resize2fs para expandir o volume lógico e o sistema de arquivos, respectivamente, e use vgreduce para remover o disco antigo do volume grupo. Uma vez removido, o volume antigo pode ser desconectado.
Para o caso simples, você possui um pequeno disco para o sistema de arquivos de inicialização que você nunca precisa tocar. Mas se estiver sozinho, é fácil desmontá-lo, desconectá-lo, conecte um novo e reconstrua o disco de inicialização sem parar o sistema. (apenas não falhe enquanto estiver fazendo isso)
Nota: resize2fs também pode reduzir os sistemas de arquivos.
fonte
Não é possível caixa eletrônico, mas depois é um recurso em desenvolvimento. O que você pode fazer é conectar-se a um destino iSCSI da VM e gerenciar o espaço nesse destino no lado da SAN.
fonte