Não sei ao certo como formular essa pergunta (daí o título ruim), então deixe-me fornecer um exemplo do que estou tentando fazer.
No meu (antigo) host Xen, posso apresentar sistemas de arquivos LVM diretamente a cada convidado. Esses sistemas de arquivos são realmente criados e formatados no host e transmitidos diretamente. Por exemplo, para um dos meus hosts usando uma partição tmp e swap separada, eu defino o armazenamento da seguinte forma:
disk = [
'phy: / dev / vg1 / guest1-swap, sda1, w',
'phy: / dev / vg1 / guest1-disco, sda2, w',
'phy: / dev / vg1 / guest1-tmp, sda3, w',
]
Assim, guest1-swap é formatado como uma partição swap, guest1-disk e guest1-tmp são formatados com ext4, e da perspectiva do convidado ele simplesmente os vê como três partições formatadas em / dev / sda.
(isso pode parecer muito trabalho, mas há scripts de provisionamento, como as incríveis xen-tools , que automatizou praticamente tudo).
Isso fornece alguns recursos realmente úteis, dois dos quais estou especialmente interessado em descobrir o KVM:
-
Monte os sistemas de arquivos convidados no sistema operacional host . Eu posso fazer uma montagem somente leitura de qualquer sistema de arquivos convidado a qualquer momento, mesmo enquanto o convidado estiver em execução. Isso tem o benefício de permitir que eu crie instantâneos de LVM de qualquer volume existente enquanto o convidado está em execução. Dessa forma, sou capaz de fazer o backup central de todos os meus convidados, durante a execução, do host.
-
Redimensionamento de volume on-line . Como os volumes contêm sistemas de arquivos padrão do Linux, posso usar uma combinação de lvextend e resize2fs para desenvolver meus sistemas de arquivos convidados, novamente enquanto estiverem on-line.
Atualmente, estou configurando um host KVM que substituirá o host Xen. Semelhante à configuração do Xen, estou aproveitando o LVM para fornecer acesso direto ao sistema de arquivos, mas o KVM / qemu se comporta de maneira diferente, pois sempre cria um arquivo de imagem para os convidados, mesmo no volume LVM. Do ponto de vista do convidado, ele vê isso como um disco não particionado, e cabe ao convidado aplicar um rótulo de partição e criar as partições e os sistemas de arquivos.
Do ponto de vista do convidado, tudo bem, mas do ponto de vista do servidor / gerenciamento, ele parece ser bem menos flexível do que a configuração do Xen que descrevi. Eu ainda sou novo no KVM, então posso estar (com alguma sorte) faltando alguma coisa.
Corri para esse problema ao tentar reimplementar minha antiga solução de backup no host KVM e o comando mount ficou chocado quando tentei montar um dos sistemas de arquivos do guest. Então, abordar isso é minha preocupação atual, mas também me preocupou com o redimensionamento, porque tenho certeza de que a questão surgirá em algum momento.
Então, aqui estão minhas perguntas:
-
Existe alguma maneira de fazer com que o kvm / qemu use sistemas de arquivos de volume LVM diretamente, como descrevi para minha configuração do Xen? Eu uso o libvirt para gerenciamento se isso faz diferença.
-
Se não, o que posso fazer para obter uma funcionalidade semelhante de montagem / backup no KVM? Eu vi discussões sobre o uso de libguestfs com FUSE para fazer isso, mas essa é realmente a melhor opção? Eu prefiro ficar com uma montagem de sistema de arquivos nativa, se possível.
-
Além disso, se não, é possível redimensionar o sistema de arquivos on-line sob o KVM? Eu encontrei várias discussões / howtos sobre isso, mas as respostas parecem estar em todo lugar, sem soluções claras e definitivamente sem respostas.
Desculpe pelo longo post, só queria ter certeza de que estava claro. Por favor, deixe-me saber se eu posso fornecer qualquer outra informação que seria útil. Ansioso para a discussão. : -)