
Oggi parleremo di come sia possibile creare rapidamente e in modo relativamente semplice più server virtuali con sistemi operativi diversi su un singolo server fisico. Questo approccio consente a ogni amministratore di sistema di gestire centralmente l'intera infrastruttura IT dell'azienda, risparmiando un'enorme quantità di risorse. L'uso della virtualizzazione permette di astrarsi il più possibile dall'hardware fisico del server, proteggere i servizi critici e ripristinarli facilmente anche in caso di guasti gravi.
Senza dubbio, la maggior parte degli amministratori di sistema conosce le tecniche per lavorare in ambienti virtuali e per loro questo articolo non rappresenterà una novità. Tuttavia, ci sono aziende che non sfruttano la flessibilità e la rapidità delle soluzioni virtuali a causa della mancanza di informazioni precise su di esse. Speriamo che il nostro articolo possa illustrare, attraverso esempi, quanto sia più semplice iniziare a utilizzare la virtualizzazione una volta piuttosto che affrontare gli inconvenienti e le limitazioni di un'infrastruttura fisica.
Fortunatamente, provare come funziona la virtualizzazione è piuttosto semplice. Ti mostreremo come creare un server in un ambiente virtuale, ad esempio per migrare un sistema CRM utilizzato in azienda. Praticamente qualsiasi server fisico può essere trasformato in virtuale, ma prima è necessario apprendere le basi del funzionamento. Di questo parleremo di seguito.
Come funziona
Quando si parla di virtualizzazione, molti principianti hanno difficoltà a comprendere la terminologia, quindi spiegheremo alcuni concetti di base:
- Ipervisore – un software speciale che consente di creare e gestire macchine virtuali;
- Macchina virtuale (di seguito VM) – è un sistema che rappresenta un server logico all'interno di un fisico con il proprio insieme di caratteristiche, archiviazione e sistema operativo;
- Host di virtualizzazione — un server fisico su cui è in esecuzione un'ipervisore.
Affinché il server possa funzionare come un host completo per la virtualizzazione, il suo processore deve supportare una delle due tecnologie: Intel® VT o AMD-V™. Entrambe le tecnologie hanno un compito fondamentale: fornire risorse hardware del server alle macchine virtuali.
La caratteristica chiave è che tutte le operazioni di macchine virtuali vengono eseguite direttamente a livello hardware. Inoltre, esse sono isolate l'una dall'altra, consentendo così una gestione separata. Il hypervisor funge da organo di controllo, distribuendo risorse, ruoli e priorità tra di esse. Inoltre, il hypervisor si occupa di emulare la parte di hardware necessaria per il corretto funzionamento del sistema operativo.
L'implementazione della virtualizzazione consente di avere più istanze in esecuzione dello stesso server. Un guasto critico o un errore durante la modifica di una copia non influenzerà il funzionamento dell'attuale servizio o applicazione. In questo modo, si risolvono anche due problemi principali: la scalabilità e la possibilità di gestire un «zoo» di diversi sistemi operativi su un'unica apparecchiatura. Questa è un'opportunità ideale per combinare diversi servizi senza la necessità di acquisire apparecchiature separate per ciascuno di essi.
La virtualizzazione aumenta l'affidabilità dei servizi e delle applicazioni dispiegate. Anche se il server fisico si guasta e deve essere sostituito, l'intera infrastruttura virtuale rimarrà completamente operativa, a condizione che i supporti di memorizzazione siano intatti. Inoltre, il server fisico può essere di un produttore completamente diverso. Questo è particolarmente rilevante per le aziende che utilizzano server la cui produzione è stata interrotta e che necessitano di migrare su altri modelli.
Ora elenchiamo i più popolari ipervisori attualmente esistenti:
- VMware ESXi
- Microsoft Hyper-V
- Open Virtualization Alliance KVM
- Oracle VM VirtualBox
Tutti sono piuttosto versatili, tuttavia ciascuno di essi ha particolari caratteristiche che è sempre necessario considerare nella fase di scelta: il costo di implementazione/gestione e le specifiche tecniche. Il costo delle licenze commerciali VMware e Hyper-V è piuttosto elevato e, in caso di guasti, risolvere i problemi con questi sistemi con le proprie forze è molto difficile.
Il KVM, al contrario, è completamente gratuito e abbastanza semplice da usare, specialmente come parte di una soluzione pronta basata su Debian Linux chiamata Proxmox Virtual Environment. Proprio questo sistema possiamo raccomandare per un primo approccio al mondo dell'infrastruttura virtuale.
Come installare rapidamente il hypervisor Proxmox VE
L'installazione di solito non solleva alcuna domanda. Scarichiamo la versione attuale dell'immagine dal sito ufficiale e la registriamo su qualsiasi supporto esterno utilizzando l'utilità Win32DiskImager (in Linux si utilizza il comando dd), dopodiché avviamo il server direttamente da questo supporto. I nostri clienti che noleggiano server dedicati da noi possono usufruire di due modalità ancora più semplici: montando direttamente l'immagine necessaria dalla console KVM, oppure usando il nostro server PXE.
Il programma di installazione ha un'interfaccia grafica e farà solo alcune domande.
- Selezioniamo il disco su cui verrà eseguita l'installazione. Nella sezione Opzioni è possibile anche specificare ulteriori parametri di partizionamento.

- Specifichiamo le impostazioni regionali.

- Indichiamo la password che sarà utilizzata per l'autenticazione dell'utente root e l'indirizzo E-mail dell'amministratore.

- Specifichiamo le impostazioni di rete. FQDN indica il nome di dominio completamente qualificato, ad esempio, node01.yourcompany.com.

- Al termine dell'installazione, il server può essere riavviato tramite il pulsante Reboot.

L'interfaccia web di gestione sarà disponibile all'indirizzo
https://IP_indirizzo_del_server:8006
Cosa fare dopo l'installazione
Ci sono alcune cose importanti da fare dopo aver installato Proxmox. Ne parleremo nel dettaglio.
Aggiorna il sistema all'ultima versione
Per fare questo, accediamo alla console del nostro server e disattiviamo il repository a pagamento (disponibile solo per chi ha acquistato il supporto a pagamento). Se non lo facciamo, apt segnalerà un errore durante l'aggiornamento delle fonti dei pacchetti.
- Apriamo la console e modifichiamo il file di configurazione di apt:
nano /etc/apt/sources.list.d/pve-enterprise.list - In questo file ci sarà solo una riga. Aggiungiamo il simbolo #, per disabilitare il download degli aggiornamenti dal repository a pagamento:
#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise - Con la combinazione di tasti Ctrl + X usciremo dall'editor rispondendo Y alla domanda del sistema riguardo al salvataggio del file.
- Eseguiamo il comando di aggiornamento delle fonti dei pacchetti e del sistema:
apt update && apt -y upgrade
Occuparsi della sicurezza
Possiamo consigliare di installare un'utilità molto popolare Fail2Ban, che protegge dagli attacchi tramite password brute force. Il suo funzionamento si basa sul fatto che se un attaccante supera un certo numero di tentativi di accesso in un tempo specificato con credenziali errate, il suo indirizzo IP verrà bloccato. Il periodo di blocco e il numero di tentativi possono essere configurati nel file di configurazione.
Dall'esperienza pratica, durante una settimana di funzionamento del server con la porta ssh 22 aperta e un indirizzo IPv4 statico esterno, ci sono state oltre 5000 tentativi di accesso non autorizzato. Inoltre, l'utilità ha bloccato con successo circa 1500 indirizzi.
Per eseguire l'installazione, forniamo una breve istruzione:
- Apriamo la console del server tramite l'interfaccia web o SSH.
- Aggiorniamo le sorgenti dei pacchetti:
apt update - Installiamo Fail2Ban:
apt install fail2ban - Apriamo il file di configurazione dell'utilità per modificarlo:
nano /etc/fail2ban/jail.conf - Modifichiamo le variabili bantime (il numero di secondi durante i quali l'attaccante sarà bloccato) e maxretry (il numero di tentativi di accesso/login) per ciascun servizio specifico.
- Con la combinazione di tasti Ctrl + X usciremo dall'editor rispondendo Y alla domanda del sistema riguardo al salvataggio del file.
- Riavviamo il servizio:
systemctl restart fail2ban
Per controllare lo stato dell'utilità, ad esempio per ottenere statistiche sui blocchi degli indirizzi IP da cui sono stati effettuati tentativi di accesso SSH, è possibile utilizzare un semplice comando:
fail2ban-client -v status sshdLa risposta dell'utilità apparirà all'incirca in questo modo:
root@hypervisor:~# fail2ban-client -v status sshd
INFO Caricamento delle configurazioni per fail2ban sotto /etc/fail2ban
INFO Caricamento file: ['/etc/fail2ban/fail2ban.conf']
INFO Caricamento file: ['/etc/fail2ban/fail2ban.conf']
INFO Utilizzo del socket file /var/run/fail2ban/fail2ban.sock
Stato per la prigione: sshd
|- Filtro
| |- Attualmente falliti: 3
| |- Totale falliti: 4249
| `- Elenco file: /var/log/auth.log
`- Azioni
|- Attualmente bannati: 0
|- Totale bannati: 410
`- Elenco IP bannati:Allo stesso modo, è possibile proteggere l'interfaccia Web da attacchi simili creando una regola corrispondente. Un esempio di tale regola per Fail2Ban può essere trovato in guida ufficiale.
Inizio
Si desidera sottolineare che Proxmox è pronto per la creazione di nuove macchine immediatamente dopo l'installazione. Tuttavia, si consiglia di eseguire configurazioni preliminari, in modo che il sistema possa essere gestito facilmente in futuro. La pratica dimostra che è preferibile separare l'iper-vvisor e le macchine virtuali su supporti fisici diversi. Di seguito si parlerà di come fare.
Configurare i dischi
Il passo successivo consiste nel configurare lo storage che potrà essere utilizzato per memorizzare i dati delle macchine virtuali e i backup.
ATTENZIONE! L'esempio di partizionamento del disco riportato di seguito può essere utilizzato solo a scopo di test. Per un utilizzo reale, si raccomanda vivamente di impiegare un array RAID software o hardware, per evitare la perdita di dati in caso di guasto dei dischi. Come preparare correttamente un array disco per l'uso e cosa fare in situazioni di emergenza verrà discusso in uno dei prossimi articoli.
Supponiamo che il server fisico abbia due dischi — /dev/sda, su cui è installato l'hypervisor e un disco vuoto /dev/sdb, che si intende utilizzare per l'archiviazione dei dati delle macchine virtuali. Affinché il sistema possa vedere il nuovo storage, si può utilizzare il metodo più semplice ed efficace: collegarlo come una normale directory. Tuttavia, prima è necessario eseguire alcune operazioni preparatorie. Prendiamo come esempio come collegare un nuovo disco /dev/sdb, di qualsiasi dimensione, formattandolo nel file system ext4.
- Partizioniamo il disco creando una nuova partizione:
fdisk /dev/sdb - Premiamo il tasto o o g (per partizionare il disco in MBR o GPT).
- Poi premiamo il tasto n (per creare una nuova partizione).
- E infine w (per salvare le modifiche).
- Creiamo un file system ext4:
mkfs.ext4 /dev/sdb1 - Creiamo la directory dove monteremo la partizione:
mkdir /mnt/storage - Apriamo il file di configurazione per la modifica:
nano /etc/fstab - Aggiungiamo lì una nuova riga:
/dev/sdb1 /mnt/storage ext4 defaults 0 0 - Dopo aver apportato le modifiche, le salviamo con la combinazione di tasti Ctrl + X, rispondendo Y alla domanda dell'editor.
- Per verificare che tutto funzioni, riavviamo il server:
shutdown -r now - Dopo il riavvio, controlliamo le partizioni montate:
df -H
L'output del comando deve mostrare che /dev/sdb1 è montato nella directory /mnt/storage. Questo significa che il nostro dispositivo è pronto all'uso.
Aggiungere nuovo storage a Proxmox
Accediamo al pannello di controllo e entriamo nelle sezioni Data center ➝ Storage ➝ Aggiungi ➝ Directory.
Nella finestra aperta, compiliamo i seguenti campi:
- ID — nome del futuro storage;
- Directory — /mnt/storage;
- Contenuto — selezioniamo tutte le opzioni (cliccando su ciascuna a turno).

Dopo di che, premiamo il pulsante Aggiungi. A questo punto, la configurazione è completata.
Creare una macchina virtuale
Per creare una macchina virtuale, seguiamo la seguente sequenza di azioni:
- Decidiamo quale versione del sistema operativo utilizzare.
- Scarichiamo in anticipo l'immagine ISO.
- Selezioniamo nel menu Storage il repository appena creato.
- Clicchiamo su Contenuto ➝ Carica.
- Selezioniamo l'immagine ISO dalla lista e confermiamo la selezione premendo il pulsante Carica.
Dopo il completamento dell'operazione, l'immagine sarà visualizzata nell'elenco di quelle disponibili.

Creiamo la nostra prima macchina virtuale:
- Clicchiamo su Crea VM.
- Compiliamo i parametri uno dopo l'altro: Nome ➝ Immagine ISO ➝ Dimensione e tipo del disco rigido ➝ Numero di processori ➝ Capacità della RAM ➝ Scheda di rete.
- Dopo aver selezionato tutti i parametri desiderati, clicchiamo su Fine. La macchina creata sarà visualizzata nel menu del pannello di controllo.
- Selezioniamola e clicchiamo su Avvio.
- Passiamo alla voce Console e procediamo all'installazione del sistema operativo esattamente come su un normale server fisico.
Se è necessario creare un'altra macchina, ripetiamo le operazioni sopra indicate. Una volta che tutte saranno pronte, si potranno utilizzare simultaneamente, aprendo più finestre di console.
Impostare l'avvio automatico
Per impostazione predefinita, Proxmox non avvia automaticamente le macchine, ma questo può essere facilmente risolto con due clic del mouse:
- Facciamo clic sul nome della macchina desiderata.
- Selezioniamo la scheda Opzioni ➝ Avvio all'accensione.
- Mettiamo il segno di spunta accanto alla dicitura corrispondente.
Ora, in caso di riavvio del server fisico, la VM verrà avviata automaticamente.

Per gli amministratori avanzati, c'è anche la possibilità di specificare parametri di avvio aggiuntivi nella sezione Ordine di avvio/shutdown. È possibile specificare esplicitamente l'ordine in cui le macchine devono essere avviate. Si può anche indicare il tempo che deve passare prima dell'avvio della successiva VM e il tempo di attesa per lo spegnimento (se il sistema operativo non riesce a chiudere, il hypervisor lo spegnerà forzatamente dopo un certo numero di secondi).
Conclusione
In questo articolo sono state esposte le basi per iniziare a lavorare con Proxmox VE e speriamo che possa aiutare i principianti a fare il primo passo e provare la virtualizzazione in azione.
Proxmox VE è davvero uno strumento potente e conveniente per qualsiasi amministratore di sistema; la cosa principale è non avere paura di sperimentare e capire come funziona realmente.
Se hai domande, sei benvenuto nei commenti.
Fonte: habr.com






