GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare un server KVM in modo rapido

Questa è una configurazione molto breve e veloce su come rendere operativo il server KVM (The Linux Kernel Virtual Machine).

Perché KVM?

KVM è un hypervisor, proprio come VmWare ESX, Hyper-V e XEN di Microsoft. La cosa grandiosa (come al solito) di KVM, è che fa parte di Linux, il che significa che è gratuito, e le sue prestazioni sono eccellenti. L'utilizzo in un ambiente di produzione come hypervisor autonomo è una scelta eccellente, ha un ingombro ridotto del server host (in termini di esigenze di prestazioni e disco) e può essere amministrato facilmente con altri strumenti come virt-manager.

Ipotesi

Questo breve tutorial presuppone che:
  • Vuoi eseguire un server KVM con almeno una macchina virtuale guest,
  • Il tuo server KVM ottiene un indirizzo IP nella tua rete,
  • Le tue macchine virtuali ottengono un indirizzo IP dalla tua rete, quindi puoi utilizzare il bridging invece del natting (l'utilizzo del NATting invece del bridging è un compito facile ma non fa parte di questo howto),
  • Puoi usare lvm per l'allocazione dello spazio su disco sul tuo master KVM (anche l'uso di altri metodi di allocazione dello spazio su disco come i file di immagine è facile, ma non fa parte di questo howto) – nota che dovrai installarlo prima di passare attraverso di seguito, se non è già installato sul tuo server.
  • Stai usando Ubuntu 10.04 o versioni successive. Dovrebbe essere un server Ubuntu aggiornato con connettività di rete e accesso tramite ssh.

Ringraziamenti

Questa è una breve guida che deve essere rinnovata e lo farà presto, tuttavia nel suo stato attuale è stata presa principalmente all'ingrosso da www.screenage.de, quindi grandi sostegni per l'autore originale, ccm. Sono state apportate modifiche minori per la leggibilità.

Fai funzionare la rete

Per la rete con bridge è necessario installare le utility bridge e modificare la configurazione della rete. Per prima cosa installa il pacchetto:
$ sudo apt-get install bridge-utils
Ora aggiungi un bridge chiamato "br0" (questo è stato fatto solo una volta):
$ sudo brctl addbr br0
Ora cambia il tuo /etc/network/interfaces in modo che utilizzi il bridge br0. Questo passaggio in realtà imposta br0 invece di eth0. Pensa a eth0 come a un semplice trasporto fisico aggiunto all'interfaccia del bridge virtuale.
# The loopback network interface
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet manual
 
auto br0
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Assicurati di non dimenticare di impostare "eth0" su "iface eth0 inet manual" come mostrato sopra. Questo è necessario perché vuoi impedire a eth0 di recuperare un indirizzo tramite dhcp ma vuoi comunque che sia lì per il tuo bridge poiché è il livello fisico. Dopo aver configurato il bridge, riavviare la rete (sudo /etc/init.d/networking restart ) o riavviare il server. Se stai già accedendo al tuo server tramite ssh, tieni presente che un'errata configurazione potrebbe bloccarti.

Installa KVM

Ora è il momento di installare kvm e alcune utili applicazioni di supporto:
$ sudo apt-get install qemu-kvm ubuntu-vm-builder uml-utilities \
  virtinst

Questo è tutto:ora hai già un server kvm. È ora di...

Installa la tua prima macchina virtuale

Imposteremo un volume logico da 100 Gb per l'ospite, scaricheremo Ubuntu e creeremo una macchina con 2 Gb di Ram e 4 core:

# create an empty 100Gb logical volume
sudo lvcreate --size 100G vg0 --name guest1
# download Ubuntu iso (or use one you already have)
$ wget http://..../
# create machine
$ sudo virt-install --connect qemu:///system -n guest1 -r 2048 \
 --vcpus=4 -f /dev/mapper/guest1 --network=bridge:br0 \
 --vnc --accelerate -v -c ./SOMEUBUNTUISO.iso \
 --os-type=linux --os-variant=ubuntuKarmic --noautoconsole
# please note: "ubuntuKarmic" is currently the most recent
# virt-install defaults scheme - just use this if in doubt.

Ottieni una connessione VNC

KVM utilizza VNC per darti un'interfaccia grafica per la tua macchina. La cosa buona di questo è che ti consente di utilizzare programmi di installazione grafici (e sì, anche Windows) senza problemi. Dato che anche il server Ubuntu si avvia in modalità grafica all'inizio, è fantastico usare VNC qui.

Presumo che tu stia lavorando su un server remoto. KVM offre a ogni ospite che avvia una nuova istanza vnc con una nuova porta incrementata. Inizia con 5900. Quindi eseguiamo il tunnel tramite ssh:

ssh user@remotekvmhost -L 5900:localhost:5900

Ti connetti al tuo host kvm remoto tramite ssh e apri una porta ssh tunnel fort 5900. Ora avvia il tuo client VNC preferito in locale e lascia che si connetta al display "0" o alla porta 5900 che significa lo stesso in VNC (duh...).

D'ora in poi dovresti vedere il tuo server su un display VNC. Installalo come se installassi tutti gli altri server. La rete è collegata, quindi potresti persino usare dhcp se è offerto nella tua rete.

Assicurati di installare il pacchetto "acpi" all'interno del tuo guest kvm, altrimenti non sarai in grado di fermare il guest dal master (come avviene tramite acpi):

# make sure, "acpi" is installed in the *guest* machine
sudo apt-get install acpi

Dopo l'installazione puoi gestire le tue gue kvm usando i seguenti comandi:

# list running instances
$ virsh list
# start an instance
$ virsh start INSTANCENAME
# stop an instance politely
$ virsh stop INSTANCE
# immediatly destroy a running instance
$ virsh destroy INSTANCE
# edit the config file for an instance
$ virsh edit INSTANCE

Montaggio dei volumi LVM

Come avrai notato, i volumi lvm del tuo ospite virtuale non possono essere montati direttamente nel master poiché contengono la propria tabella delle partizioni. Se hai bisogno di accedere al filesystem del guest dal master, però, devi creare alcuni nodi del dispositivo. C'è un ottimo strumento chiamato "kpartx" che può creare ed eliminare i nodi del dispositivo per te. È così facile:

# install kpartx
$ sudo install kpartx
# make sure, virtual gues is switched off!
# create device nodes
$ sudo kpartx -a /dev/mapper/guest1
# check /dev/mapper for new device nodes and mount/unmount them
# after you are done, delete the nodes
$ sudo kpartx -d /dev/mapper/guest1

Tieni presente che questo metodo funziona anche con altri dispositivi a blocchi come file di immagine contenenti tabelle di partizione. Potresti avere problemi solo quando il tuo volume lvm contiene il proprio lvm. Se questo è il caso, gioca con pvscan, vgscan e lvscan dopo aver usato kpartx. Sii coraggioso, ma tieni presente che il backup dei dati è sempre un'ottima idea.

Interfacce di gestione alternative

Se hai davvero bisogno di una GUI per le tue esigenze di gestione, controlla "virt-manager". Puoi installarlo sul desktop e gestire in remoto le istanze in esecuzione:

$ sudo install virt-manager

Tuttavia, dovresti controllare la pagina "Virtual Machine Manager" di RedHat. Potrebbe essere una buona idea compilare e installare manualmente una versione più recente e fare affidamento sulle istruzioni di installazione. Personalmente preferisco usare la console di testo normale qui, poiché aiuta a essere in grado di agire abbastanza velocemente e da qualsiasi luogo quando si verificano problemi e, naturalmente, non hai il sovraccarico di eseguire X11 sul server.

Conclusione

Al giorno d'oggi è abbastanza facile configurare un server KVM. Poiché gli ospiti abilitati per KVM/libvirt sono abbastanza veloci, è un modo semplice e piacevole anche per ospitare macchine virtuali. Ho eseguito circa una dozzina di macchine virtuali e tre server hardware per due anni senza alcun problema serio.


Linux
  1. Come configurare un server SVN su CentOS

  2. Come configurare il server Rsyslog su Debian 11

  3. Come configurare SSH senza password su Linux

  4. Come configurare il server NTP in CentOS?

  5. come avviare il server Tomcat in Linux?

Procedura:configurazione iniziale del server Ubuntu 15.04

Procedura:Configurazione iniziale del server Fedora 21

Procedura:configurazione iniziale del server Debian 8.2

Come configurare HAProxy su CentOS 8

Come configurare la cache Nginx sul server LEMP

Come modificare il fuso orario su Ubuntu 18.04 Server?