Vamos parar de ter medo da virtualização usando KVM. Documentação em russo para instalação de virtualização Ubuntu Kvm

Lar / Tecnologias

Pessoalmente, é mais fácil para mim pensar em KVM (máquina virtual baseada em kernel) como um nível de abstração das tecnologias de virtualização de hardware Intel VT-x e AMD-V. Pegamos uma máquina com processador que suporta uma dessas tecnologias, instalamos Linux nesta máquina, instalamos KVM no Linux e, como resultado, temos a oportunidade de criar máquinas virtuais. É mais ou menos assim que funciona a hospedagem em nuvem, por exemplo, Amazon Web Services. Junto com o KVM, o Xen também é usado algumas vezes, mas uma discussão sobre essa tecnologia está além do escopo deste post. Ao contrário das tecnologias de virtualização de contêineres, por exemplo, Docker, o KVM permite executar qualquer sistema operacional como um sistema convidado, mas também possui Ó Maior sobrecarga para virtualização.

Observação: As etapas descritas abaixo foram testadas por mim em UbuntuLinux 14.04, mas em teoria eles serão amplamente válidos para outras versões do Ubuntu e outras distribuições Linux. Tudo deverá funcionar tanto no desktop quanto no servidor, acessado via SSH.

Instalando KVM

Verificamos se Intel VT-x ou AMD-V é compatível com nosso processador:

grep -E "(vmx|svm)" /proc/cpuinfo

Se algo esquentar, significa que há suporte e você pode seguir em frente.

Instalando KVM:

sudo apt-get atualização
sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils

O que geralmente é armazenado onde:

  • /var/lib/libvirt/boot/ - Imagens ISO para instalação de sistemas convidados;
  • /var/lib/libvirt/images/ — imagens de discos rígidos de sistemas convidados;
  • /var/log/libvirt/ - aqui você deve procurar todos os logs;
  • /etc/libvirt/ - diretório com arquivos de configuração;

Agora que o KVM está instalado, vamos criar nossa primeira máquina virtual.

Criando a primeira máquina virtual

Eu escolhi o FreeBSD como sistema convidado. Baixe a imagem ISO do sistema:

cd /var/lib/libvirt/boot/
sudo wget http://ftp.freebsd.org/ path/ to/ some-freebsd-disk.iso

As máquinas virtuais são gerenciadas na maioria dos casos usando o utilitário virsh:

sudo virsh --help

Antes de lançar a máquina virtual, precisaremos coletar algumas informações adicionais.

Vemos a lista de redes disponíveis:

sudo virsh net-list

Visualize informações sobre uma rede específica (denominada padrão):

sudo virsh net-info padrão

Vejamos a lista de otimizações disponíveis para sistemas operacionais convidados:

sudo virt-install --os-variant list

Então, agora criamos uma máquina virtual com 1 CPU, 1 GB de RAM e 32 GB de espaço em disco, conectada à rede padrão:

sudo virt-install\
--virt-type =kvm\
--nome freebsd10\
--ram 1024\
--vcpus=1\
--os-variant =freebsd8 \
--hvm\
--cdrom =/ var/ lib/ libvirt/ boot/ FreeBSD-10.2 -RELEASE-amd64-disc1.iso \
--network rede = padrão, modelo = virtio \
--gráficos vnc\
--disk path =/ var/ lib/ libvirt/ images/ freebsd10.img,size =32 ,bus =virtio

Você pode ver:

AVISO Não é possível conectar ao console gráfico: virt-viewer not
instalado. Por favor instale o pacote "virt-viewer".

Instalação do domínio ainda em andamento. Você pode se reconectar ao console
para concluir o processo de instalação.

Isso é normal, é assim que deveria ser.

Em seguida, observe as propriedades da máquina virtual no formato XML:

sudo virsh dumpxml freebsd10

Aqui estão os mais informação completa. Isso inclui, por exemplo, um endereço MAC, do qual precisaremos mais tarde. Por enquanto estamos encontrando informações sobre o VNC. No meu caso:

Usando seu cliente favorito (eu pessoalmente uso Rammina), fazemos login via VNC, usando encaminhamento de porta SSH se necessário. Vamos direto para o instalador do FreeBSD. Então tudo fica como sempre - Próximo, Próximo, Próximo, obtemos o sistema instalado.

Comandos Básicos

Vejamos agora os comandos básicos para trabalhar com KVM.

Obtendo uma lista de todas as máquinas virtuais:

lista sudo virsh --all

Obtendo informações sobre uma máquina virtual específica:

sudo virsh dominfo freebsd10

Inicie a máquina virtual:

sudo virsh iniciar freebsd10

Pare a máquina virtual:

sudo virsh desligamento freebsd10

Dificilmente acertará a máquina virtual (apesar do nome, esta Não eliminação):

sudo virsh destruir freebsd10

Reinicie a máquina virtual:

sudo virsh reiniciar freebsd10

Clonar máquina virtual:

sudo virt-clone -o freebsd10 -n freebsd10-clone \
--file /var/lib/libvirt/images/freebsd10-clone.img

Ativar/desativar execução automática:

sudo virsh inicialização automática freebsd10
sudo virsh autostart --disable freebsd10

Executando virsh em modo de diálogo (todos os comandos em modo de diálogo - conforme descrito acima):

sudovirsh

Editando as propriedades da máquina virtual em XML, inclusive aqui você pode alterar o limite de memória, etc.:

sudo virsh editar freebsd10

Importante! Infelizmente, os comentários do XML editado foram removidos.

Quando a máquina virtual é parada, o disco também pode ser redimensionado:

sudo qemu-img redimensionar /var/ lib/ libvirt/ images/ freebsd10.img -2G
sudo qemu-img info /var/lib/libvirt/images/freebsd10.img

Importante! Seu sistema operacional convidado provavelmente não gostará que o disco fique maior ou menor repentinamente. Na melhor das hipóteses, ele inicializará em modo de emergência com a proposta de reparticionar o disco. Você provavelmente não deveria querer fazer isso. Pode ser muito mais fácil criar uma nova máquina virtual e migrar todos os dados para ela.

Backup e restauração são bastante simples. Basta salvar a saída do dumpxml em algum lugar, bem como a imagem do disco, e depois restaurá-los. No YouTube consegui encontrar o vídeo Com uma demonstração desse processo, nem tudo fica difícil.

Configurações de rede

Uma questão interessante é como determinar qual endereço IP a máquina virtual recebeu após o carregamento? O KVM faz isso de maneira inteligente. Acabei escrevendo este script em Python:

#!/usr/bin/env python3

# script virt-ip.py
# (c) 2016 Aleksander Alekseev
# http://site/

sistema de importação
importar re
importar sistema operacional
subprocesso de importação
de xml .etree importar ElementTree

def eprint(str):
imprimir (str, arquivo = sys.stderr)

se len(sys.argv)< 2 :
eprint("USO: " + sys .argv [ 0 ] + " " )
eprint("Exemplo: " + sys .argv [ 0 ] + " freebsd10" )
sys.exit(1)

se os .geteuid() != 0 :
eprint("ERRO: você deveria ser root")
eprint("Dica: execute `sudo " + sys .argv [ 0 ] + " ...`" );
sys.exit(1)

se subprocesso .call ( "que arpe 2>&1 >/dev/null", shell = Verdadeiro ) != 0 :
eprint("ERRO: arping não encontrado" )
e-impressão( "Dica: execute `sudo apt-get install arping`")
sys.exit(1)

Domínio = sys.argv[1]

se não for .match ("^*$", domínio):
e-impressão( "ERRO: caracteres inválidos no nome de domínio")
sys.exit(1)

Domout = subprocesso .check_output ("virsh dumpxml " +domínio+" || verdadeiro" ,
concha = Verdadeiro)
domout = domout.decode("utf-8").strip()

se domout == "" :
# mensagem de erro já impressa pelo dumpxml
sys.exit(1)

Doc = ElementTree.fromstring(domout)

# 1. liste todas as interfaces de rede
# 2. execute `arping` em todas as interfaces em paralelo
#3.respostas grep
cmd = "(ifconfig | cut -d " " -f 1 | grep -E "." | " + \
"xargs -P0 -I IFACE arping -i IFACE -c 1 () 2>&1 | " + \
"grep "bytes de") || verdadeiro"

para filho em doc.iter() :
se filho.tag == "mac":
macaddr = filho.attrib["endereço"]
macout = subprocesso .check_output (cmd .format (macaddr) ,
concha = Verdadeiro)
imprimir(macout.decode("utf-8"))

O script funciona tanto com a rede padrão quanto com a rede em ponte, cuja configuração consideraremos mais tarde. Porém, na prática, é muito mais conveniente configurar o KVM para que ele sempre atribua os mesmos endereços IP aos sistemas convidados. Para fazer isso, edite as configurações de rede:

sudo virsh net-edit padrão

... algo assim:

>



>

Depois de fazer essas alterações


>

... e substitua-o por algo como:




>

Reinicializamos o sistema convidado e verificamos se ele recebeu um IP via DHCP do roteador. Se você deseja que o sistema convidado tenha um endereço IP estático, ele é configurado normalmente no próprio sistema convidado.

programa virt-manager

Você também pode estar interessado no programa virt-manager:

sudo apt-get install virt-manager
sudo usermod -a -G libvirtd NOME DE USUÁRIO

Esta é a aparência de sua janela principal:

Como você pode ver, o virt-manager não é apenas uma GUI para máquinas virtuais executadas localmente. Com sua ajuda, você pode gerenciar máquinas virtuais em execução em outros hosts, bem como visualizar belos gráficos em tempo real. Pessoalmente, acho especialmente conveniente no virt-manager que você não precise pesquisar nas configurações para descobrir qual porta o VNC está sendo executado em um sistema convidado específico. Basta encontrar a máquina virtual na lista, clicar duas vezes e ter acesso ao monitor.

Com a ajuda do virt-manager também é muito conveniente fazer coisas que de outra forma exigiriam uma edição trabalhosa de arquivos XML e, em alguns casos, a execução de comandos adicionais. Por exemplo, renomear máquinas virtuais, definindo a afinidade da CPU e coisas semelhantes. A propósito, o uso da afinidade da CPU reduz significativamente o efeito de vizinhos barulhentos e a influência das máquinas virtuais no sistema host. Sempre use-o sempre que possível.

Se você decidir usar o KVM como substituto do VirtualBox, lembre-se de que eles não poderão compartilhar a virtualização de hardware entre si. Para que o KVM funcione em seu desktop, você não só terá que parar todas as máquinas virtuais no VirtualBox e no Vagrant, mas também reiniciar o sistema. Pessoalmente, acho o KVM muito mais conveniente que o VirtualBox, pelo menos porque não exige que você execute um comando configuração sudo /sbin/rcvboxdrv após cada atualização do kernel, ele funciona adequadamente com o Unity e geralmente permite ocultar todas as janelas.

Estou escrevendo esta nota para demonstrar instalação passo a passo e configurar uma máquina virtual baseada em KVM no Linux. Já escrevi sobre virtualização, onde usei o maravilhoso .

Agora estou enfrentando um problema de aluguel. bom servidor com grande volume BATER e volumétrico disco rígido. Mas não quero executar projetos diretamente na máquina host, então irei separá-los em pequenos servidores virtuais separados executando contêineres Linux ou Docker (falarei sobre eles em outro artigo).

Todas as hospedagens em nuvem modernas funcionam com o mesmo princípio, ou seja, hoster ativado boa glândula levanta um monte de servidores virtuais, que costumávamos chamar de VPS/VDS, e os distribui aos usuários, ou automatiza esse processo (olá, DigitalOcean).

KVM (máquina virtual baseada em kernel) é um software para Linux que usa o hardware de processadores compatíveis com x86 para funcionar com a tecnologia de virtualização Intel VT/AMD SVM.

Instalando KVM

Realizarei todas as maquinações de criação de uma máquina virtual no Ubuntu 16.04.1 LTS OS. Para verificar se seus processos suportam virtualização de hardware em Baseado em Intel VT/AMD SVM, execute:

Grep -E "(vmx|svm)" /proc/cpuinfo

Se o terminal não estiver vazio, tudo está em ordem e o KVM pode ser instalado. O Ubuntu oficialmente suporta apenas o hipervisor KVM (incluído no Núcleos Linux) e aconselha a utilização da biblioteca libvirt como ferramenta de gerenciamento, que é o que faremos a seguir.

Você também pode verificar o suporte à virtualização de hardware no Ubuntu usando o comando:

Se tiver sucesso, você verá algo assim:

INFO: /dev/kvm existe Aceleração KVM pode ser usada

Instale pacotes para trabalhar com KVM:

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Se você tiver acesso ao shell gráfico do sistema, poderá instalar o gerenciador GUI libvirt:

Sudo apt-get install virt-manager

Usar o virt-manager é bastante simples (não mais difícil que o VirtualBox), então neste artigo falaremos sobre a opção de console para instalar e configurar um servidor virtual.

Instalando e configurando um servidor virtual

Na versão console de instalação, configuração e gerenciamento do sistema, uma ferramenta indispensável é o utilitário virsh (um complemento da biblioteca libvirt). Ela tem grande número opções e parâmetros, descrição detalhada pode ser obtido assim:

Homem virsh

ou ligue para a "ajuda" padrão:

Ajuda virsh

Sempre sigo as seguintes regras ao trabalhar com servidores virtuais:

  1. Eu armazeno imagens iso OS no diretório /var/lib/libvirt/boot
  2. Eu armazeno imagens de máquinas virtuais no diretório /var/lib/libvirt/images
  3. Eu atribuo explicitamente a cada nova máquina virtual seu próprio endereço IP estático via Servidor DHCP hipervisor.

Vamos começar a instalar a primeira máquina virtual (servidor Ubuntu 16.04 LTS de 64 bits):

Cd /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Após baixar a imagem, inicie a instalação:

Sudo virt-install \ --virt-type=kvm \ --name ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/ lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604. img,tamanho=20,ônibus=virtio

Traduzindo todos esses parâmetros para a “linguagem humana”, verifica-se que estamos criando uma máquina virtual com sistema operacional Ubuntu 16.04, 1024 MB de RAM, 1 processador, uma placa de rede padrão (a máquina virtual acessará a Internet como se fosse por NAT ), HD de 20 GB.

Vale a pena prestar atenção ao parâmetro --os-variante, ele informa ao hipervisor para qual sistema operacional as configurações devem ser adaptadas.
Uma lista de opções de sistema operacional disponíveis pode ser obtida executando o comando:

Osinfo-query os

Se tal utilitário não estiver em seu sistema, instale:

Sudo apt-get install libosinfo-bin

Após iniciar a instalação, a seguinte mensagem aparecerá no console:

Instalação do domínio ainda em andamento. Você pode reconectar-se ao console para concluir o processo de instalação.

Esta é uma situação normal, continuaremos a instalação via VNC.
Vejamos qual porta ele foi gerado em nossa máquina virtual (no próximo terminal, por exemplo):

Virsh dumpxml ubuntu1604... ...

Porta 5900, no endereço local 127.0.0.1. Para se conectar ao VNC, você precisa usar o encaminhamento de porta via ssh. Antes de fazer isso, certifique-se de que o encaminhamento tcp esteja habilitado no daemon ssh. Para fazer isso, acesse as configurações do sshd:

Gato /etc/ssh/sshd_config | grep AllowTcpForwarding

Se nada foi encontrado ou você vê:

PermitirTcpForwarding não

Então editamos a configuração para

PermitirTcpForwarding sim

e reinicie o sshd.

Configurando o encaminhamento de porta

Executamos o comando na máquina local:

Ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

Aqui configuramos o encaminhamento de porta ssh da porta local 5900 para a porta 5900 do servidor. Agora você pode se conectar ao VNC usando qualquer cliente VNC. Prefiro o UltraVNC por causa de sua simplicidade e conveniência.

Após a conexão bem-sucedida, a janela padrão de boas-vindas para iniciar a instalação do Ubuntu será exibida na tela:

Após a conclusão da instalação e a reinicialização normal, uma janela de login aparecerá. Após o login, determinamos o endereço IP da máquina virtual recém-criada para posteriormente torná-la estática:

Ifconfig

Lembramos e vamos para a máquina host. Retiramos o endereço MAC da placa de “rede” da máquina virtual:

Virsh dumpxml ubuntu1604 | grep "endereço mac"

Vamos lembrar nosso endereço MAC:

Edição configurações de rede hipervisor:

Sudo virsh net-edit padrão

Procuramos DHCP e adicionamos isto:

Deve ser algo assim:

Para que as configurações tenham efeito, você precisa reiniciar o servidor DHCP do hipervisor:

Sudo virsh net-destroy padrão sudo virsh net-start padrão sudo service libvirt-bin restart

Depois disso, reinicializamos a máquina virtual, agora ela sempre terá o endereço IP atribuído a ela - 192.168.122.131.

Existem outras maneiras de definir um IP estático para uma máquina virtual, por exemplo, editando diretamente as configurações de rede dentro do sistema convidado, mas aqui é o que você deseja. Acabei de mostrar a opção que prefiro usar.

Para se conectar ao terminal da máquina virtual, execute:

Ssh 192.168.122.131

O carro está pronto para a batalha.

Virsh: lista de comandos

Para ver correndo hosts virtuais(todos os disponíveis podem ser obtidos adicionando --all):

Lista sudo virsh

Você pode reiniciar o host:

Sudo virsh reinicializar $VM_NAME

Pare uma máquina virtual:

Sudo virsh parar $VM_NAME

Executar parada:

Sudo virsh destruir $VM_NAME

Sudo virsh iniciar $VM_NAME

Desativar:

Sudo virsh desligamento $VM_NAME

Adicionar à execução automática:

Sudo virsh inicialização automática $VM_NAME

Muitas vezes é necessário clonar um sistema para utilizá-lo no futuro como framework para outros sistemas operacionais virtuais, para isso é utilizado o utilitário virt-clone;

Virt-clone --help

Ele clona uma máquina virtual existente e altera dados confidenciais do host, por exemplo, endereço MAC. Senhas, arquivos e outras informações específicas do usuário no clone permanecem as mesmas. Se o endereço IP na máquina virtual clonada foi registrado manualmente, podem surgir problemas de acesso SSH ao clone devido a um conflito (2 hosts com o mesmo IP).

Além de instalar uma máquina virtual via VNC, também é possível utilizar o X11Forwarding através do utilitário virt-manager. No Windows, por exemplo, você pode usar Xming e PuTTY para isso.

KVM ou Kernel Virtual Module é um módulo de virtualização para o kernel Linux que permite transformar seu computador em um hipervisor para gerenciamento de máquinas virtuais. Este módulo opera no nível do kernel e suporta tecnologias de aceleração de hardware como Intel VT e AMD SVM.

Por si só programas KVM no espaço do usuário não virtualiza nada. Em vez disso, ele usa o arquivo /dev/kvm para configurar espaços de endereço virtual para o convidado no kernel. Cada máquina convidada terá sua própria placa de vídeo, rede e placa de som, disco rígido e outros equipamentos.

Além disso, o sistema convidado não terá acesso aos componentes do real sistema operacional. A máquina virtual funciona em um espaço completamente isolado. Você pode usar o kvm em um sistema GUI e em servidores. Neste artigo veremos como instalar o kvm Ubuntu 16.04

Antes de prosseguir com a instalação do KVM em si, você precisa verificar se o seu processador suporta aceleração de virtualização de hardware Intel-VT ou AMD-V. Para fazer isso, execute o seguinte comando:

egrep -c "(vmx|svm)" /proc/cpuinfo

Se o resultado retornar 0, então seu processador não suporta virtualização de hardware; se for 1 ou mais, então você pode usar KVM em sua máquina.

Agora podemos prosseguir com a instalação do KVM, um conjunto de programas pode ser obtido diretamente nos repositórios oficiais:

sudo apt instalar qemu-kvm libvirt-bin bridge-utils virt-manager cpu-checker

Instalamos não apenas o utilitário kvm, mas também a biblioteca libvirt, bem como o gerenciador de máquina virtual. Após a conclusão da instalação, você precisa adicionar seu usuário ao grupo libvirtd, pois somente root e usuários deste grupo podem usar máquinas virtuais KVM:

sudo gpasswd -a USUÁRIO libvirtd

Após executar este comando, efetue logout e login novamente. A seguir vamos verificar se tudo foi instalado corretamente. Para fazer isso, use o comando kvm-ok:

INFORMAÇÃO: /dev/kvm existe
A aceleração KVM pode ser usada

Se tudo foi feito corretamente, você verá a mesma mensagem.

Usando KVM no Ubuntu 16.04

Você concluiu a tarefa de instalação do kvm no Ubuntu, mas ainda não pode usar este ambiente de virtualização, mas ele ainda precisa ser configurado. A seguir, veremos como o kvm Ubuntu está configurado. Primeiro você precisa configurar sua rede. Precisamos criar uma ponte com a qual a máquina virtual se conectará à rede do computador.

Configurando uma ponte no NetworkManager

Isso pode ser feito de várias maneiras, por exemplo, você pode usar o programa de configuração de rede NetworkManager.

Clique no ícone NetworkManager no painel e selecione alterar conexões e clique no botão Adicionar:

Em seguida, selecione o tipo de conexão Ponte e pressione Criar:

Na janela que se abre, clique no botão Adicionar, para vincular nossa ponte à conexão com a internet:

Na lista, selecione Ethernet e pressione Criar:

Na próxima janela, selecione no campo dispositivo, interface de rede à qual nossa ponte deve estar associada:

Agora na lista conexões de rede você verá sua ponte. Resta reiniciar a rede para aplicar totalmente as alterações, para isso execute:

Configuração manual da ponte

Primeiro você precisa instalar o conjunto de utilitários bridge-utils, caso ainda não tenha feito isso:

sudo apt instalar bridge-utils

Então, usando o programa brctl, podemos criar a ponte que precisamos. Para fazer isso, use os seguintes comandos:

sudo brctl addbr bridge0
$ sudo exibição de endereço IP
$ sudo addif bridge0 eth0

O primeiro comando adiciona o dispositivo bridge br0, com o segundo você precisa determinar qual interface de rede é a principal conexão com a rede externa, no meu caso é eth0. E com o último comando conectamos a ponte br0 à eth0.

Agora você precisa adicionar algumas linhas às configurações de rede para que tudo seja iniciado automaticamente após a inicialização do sistema. Para fazer isso, abra o arquivo /etc/network/interfaces e adicione as seguintes linhas:

sudo gedit /etc/network/interfaces

loopback
auto lo bridge0
iface lo inet loopback
iface bridge0 inet dhcp
bridge_ports eth0

Quando as configurações forem adicionadas, reinicie a rede:

sudo systemctl reiniciar rede

Agora a instalação e configuração do KVM estão totalmente concluídas e você pode criar sua primeira máquina virtual. Depois disso, você pode visualizar as pontes disponíveis usando o comando:

Criando máquinas virtuais KVM

A configuração do Ubuntu KVM está concluída e agora podemos prosseguir para usá-lo. Primeiro, vejamos a lista de máquinas virtuais existentes:

virsh -c qemu:///lista de sistemas

Está vazio. Você pode criar uma máquina virtual através do terminal ou na interface gráfica. Para criar através do terminal, use o comando virt-install. Primeiro vamos para a pasta libvirt:

cd /var/lib/libvirt/boot/

Para Instalações CentOS o comando ficará assim:

sudo virt-install\
--virt-type=kvm \
--nome centos7\
--ram 2048\
--vcpus=2\
--os-variant=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--network=ponte=br0,modelo=virtio \
--gráficos vnc\
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Vamos dar uma olhada mais de perto no que significam os parâmetros deste comando:

  • tipo virt- tipo de virtualização, no nosso caso kvm;
  • nome- nome do carro novo;
  • bater- quantidade de memória em megabytes;
  • vcpus- número de núcleos do processador;
  • variante os- tipo de sistema operacional;
  • CD-ROM- imagem de instalação do sistema;
  • ponte de rede- a ponte de rede que configuramos anteriormente;
  • gráficos- uma forma de obter acesso à interface gráfica;
  • caminho do disco- endereço do novo disco rígido para esta máquina virtual;

Após a conclusão da instalação da máquina virtual, você pode descobrir os parâmetros de conexão VNC usando o comando:

sudo virsh vncdisplay centos7

Agora você pode inserir os dados recebidos em seu cliente VNC e conectar-se à máquina virtual mesmo remotamente. Para o Debian o comando será um pouco diferente, mas tudo parece semelhante:

Vá para a pasta de imagens:

cd /var/lib/libvirt/boot/

Você pode baixar a imagem de instalação da Internet, se necessário:

sudo wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso

Então vamos criar uma máquina virtual:

sudo virt-install\
--virt-type=kvm \
--nome=debina8 \
--ram=2048\
--vcpus=2\
--os-variant=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso\
--network=ponte=ponte0,modelo=virtio \
--gráficos vnc\
--disk path=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Agora vamos dar uma olhada na lista de máquinas disponíveis novamente:

virsh -c qemu:///lista de sistemas

Para iniciar a máquina virtual você pode usar o comando:

sudo virsh iniciar nome da máquina

Para parar:

sudo virsh shutdown nome da máquina

Para mudar para o modo de suspensão:

sudo virsh suspender nome da máquina

Para reiniciar:

sudo virsh reinicialização nome da máquina

sudo virsh redefinir nome da máquina

Para remoção completa máquina virtual:

sudo virsh destruir nome da máquina

Criando máquinas virtuais na GUI\

Se você tiver acesso a uma interface gráfica, não há necessidade de usar um terminal, você pode usar a interface gráfica completa do gerenciador de máquina virtual Virtual Manager. O programa pode ser iniciado no menu principal:

Para criar uma nova máquina, clique no ícone com o ícone do monitor. Em seguida, você precisará selecionar Imagem ISO seu sistema. Você também pode usar uma unidade de CD/DVD real:

Na próxima tela, selecione a quantidade de memória que estará disponível para a máquina virtual, bem como a quantidade de núcleos do processador:

Nesta tela, você precisa selecionar o tamanho do disco rígido que estará disponível em sua máquina:

Sobre última etapa Como assistente, você deverá verificar se as configurações da máquina estão corretas e também inserir seu nome. Você também precisa especificar a ponte de rede através da qual a máquina se conectará à rede:

Depois disso, a máquina estará pronta para uso e aparecerá na lista. Você pode iniciá-lo usando o triângulo verde na barra de ferramentas do gerenciador.

Conclusões

Neste artigo, vimos como instalar o KVM Ubuntu 16.04, como preparar totalmente este ambiente para o trabalho, bem como criar máquinas virtuais e utilizá-las. Se você tiver alguma dúvida, pergunte nos comentários!

Para finalizar, uma palestra do Yandex sobre o que é virtualização no Linux:

Kimchi é uma interface web baseada em HTML5 para KVM. Ele fornece uma interface fácil e flexível para criar e gerenciar máquinas virtuais convidadas. Kimchi é instalado e executado como um daemon no host KVM. Ele gerencia convidados KVM com a ajuda do libvirt. A interface Kimchi suporta todas as versões mais recentes dos navegadores com versão -1, mas também suporta navegadores móveis.

Kimchi pode ser instalado na versão mais recente do RHEL, Fedora, openSUSE e Ubuntu. Neste guia, usei o Ubuntu 14.10 como host KVM.

Antes de configurar o kimchi, você deve instalar os seguintes pacotes dependentes.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm libtool python-psutil python-ethtool sosreport python-ipaddr python-ldap python-lxml nfs-common open-iscsi lvm2 xsltproc python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc spice-html5 wget

O sistema solicitará os seguintes detalhes durante a instalação dos pacotes.

1. OK na configuração do Postfix.

2. Selecione Site da Internet no tipo geral de configuração de correio.

3. Digite seu FQDN e selecione OK.

Depois de instalado, baixe a versão mais recente do kimchi no github.

$ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Descompacte o arquivo baixado.

$ descompacte master.zip $ cd kimchi-master/

Construa o kimchi usando o seguinte comando.

$ ./autogen.sh --sistema

$ make $ sudo make install # Opcional se estiver executando a partir da árvore de origem

$ sudo kimchid --host=0.0.0.0

Acesse o kimchi usando o navegador da web, https://localhost:8001. Você será solicitado a fazer login, use sua credencial do sistema que você normalmente usa para fazer login no sistema.


Depois de fazer login, você receberá uma página como abaixo. Isso mostra a lista de máquinas virtuais convidadas em execução no host atual. Você tem botões para executar o desligamento, reiniciar e conectar-se ao console clicando na ação.


Para criar uma nova máquina convidada, clique no sinal + no canto direito. Se você utilizar esta opção para criar uma máquina, isso será feito através de templates.


Você pode gerenciar modelos visitando o menu de modelos. Para criar um novo modelo, clique no sinal + no canto direito. Você pode criar um modelo usando imagens ISO, pode colocar imagens iso em /var/lib/kimchi/isos ou usar uma remota.


Você pode gerenciar o pool de armazenamento acessando o menu de armazenamento, onde você pode adicionar um novo armazenamento clicando no sinal +. Ele suporta a adição de armazenamento de canal de fibra NFS, iSCSI e SCSI.


A rede pode ser gerenciada acessando o menu rede, você pode criar uma nova rede com rede isolada, NAT e em ponte.


Eu tentei muitas interfaces de gerenciamento web e nenhuma delas era boa o suficiente como o virt-manager.

Você sabe, eu sou um daqueles caras que tinha VMware, onde 90% do controle é clicável.

Minhas perguntas:

1) Existe algum utilitário CLI "interativo" como mc (comandante da meia-noite) ou algo como controlar o KVM? (LIGAR/DESLIGAR VM, aumentar a memória, reiniciar máquinas virtuais, adicionar hardware virtual, adicionar novos discos, etc.)

2) Você poderia me recomendar alguma interface de gerenciamento de interface web para KVM no debian squeeze? Você viu Servidor VMware 2? Existe controle da web. Eu sei que foi lento, mas isso é normal quando você está em algum lugar sem terminal. (por exemplo, no Android com um navegador da web) Eu tentei muitos deles, mas nada que tentei funcionou.

5) Como melhorar a segurança KVM? Alguma interface web poderia resolver esse problema? (por exemplo, contabilidade, gerenciamento de usuários?)

Eu sei que existe google, wiki, existe uma longa lista de UI para kvm, mas preciso de opiniões, experiências de especialistas ou usuários que usam KVM. Espero que isso não seja uma pergunta estúpida. Obrigado a todos por responderem minhas perguntas.

5 Soluções coletadas no formulário web para “KVM – Qual gerenciamento web devo usar?”

Para um gerenciador KVM baseado na web, você pode experimentar o Proxmox. As instruções para o Debian Squeeze estão aqui.

Ele tem ferramentas linha de comando, mas não o menu base de texto.

Você deve configurar um ambiente pequeno e experimentá-lo. Em seguida, estabeleça o objetivo e implemente-o.

Não há resposta/tutorial exato para isso. O quão configurável é o servidor/cliente KVM realmente depende de quantos recursos (cpu/ram/armazenamento) estão disponíveis.

Novamente, isso depende do seu ambiente e, por exemplo, são dispositivos/multicamadas. roteadores, firewall, tabelas de IP, política de senha, política de acesso, etc. Não conheço nenhuma GUI, base web ou não, que possa lidar com tudo isso, incluindo KVM. (OK, existe uma nuvem, mas não tenho nenhuma experiência com ela)

Você já tentou Kimchi? é o aberto mais fácil de usar código fonte no KVM e é patrocinado pela IBM.

Isenção de responsabilidade: não sou afiliado ao Kimchi. Eu simplesmente amo sua simpatia.

Os especialistas usam a CLI. Não GUI. Isso é verdade até mesmo para administradores experientes do Windows.

Não, interfaces gráficas ainda está melhorando, mas os scripts de auto-registro são mais rápidos e fazem o que você deseja.

Melhorar o desempenho no KVM? Jogue fora.

Esta é apenas uma dica do especialista em XEN-PV. Somente LXC (ou outros contêineres) ou soluções baseadas em chroot são mais rápidas.

O guia de instalação do KVM pode não ser muito detalhado, mas pelo menos dá ou fornece ideias sobre o processo de instalação e configuração.

Há um novo gerenciamento de sistema KVM e AV/IT de nível empresarial chamado Boxilla, que apresenta um centro de comando abrangente e centralizado que oferece máximo desempenho, facilidade de uso e segurança.

Ele fornece a capacidade de gerenciar KVM de alto desempenho, KVM sobre IP, endpoints virtualizados e vários dispositivos AV/IT em um centro de comando centralizado, permitindo que os administradores gerenciem implantações KVM multicamadas e AV/IT usando poderosa web e compartilhada interface do usuário. Você pode encontrar mais informações aqui: https://www.blackbox.co.uk/gb-gb/page/37929/Solutions-Industries/Technology-Products/KVM-Switching-and-Extension/Centralised-KVM-AV-Manager -Boxilha

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações