SSD Nodes Learn Hosting plans →
Guide Matt ConnorDi Matt Connor

Che cos'è un VPS? Spiegazione semplice

Un VPS è un server privato creato con macchine virtuali o container su hardware condiviso. Scopri cosa consente l'accesso root e quali limiti restano.

Che cos'è un VPS?

Un VPS (server privato virtuale) è una porzione di un computer fisico in un data center, noleggiata come se fosse una macchina interamente a tua disposizione. Il software installato su quel computer lo suddivide in diversi server indipendenti e tu ne ricevi uno: memoria allocata, spazio su disco, un indirizzo IP e accesso amministrativo per installare software entro i limiti del piano. Il VPS è sempre in esecuzione e i piani esposti pubblicamente rispondono a un indirizzo su Internet.

Le tre parole descrivono il prodotto. Server è un computer che rimane acceso e risponde alle richieste sulla rete. Virtual significa che è stato creato dal software. Il tuo server è una partizione di una macchina fisica più grande. Private significa che quella partizione è riservata esclusivamente a te. I tuoi file e i programmi in esecuzione non sono visibili a chi noleggia la partizione accanto alla tua.

Se non hai mai avuto accesso root a un sistema, quest'ultimo aspetto è il più importante. Un VPS ti fornisce accesso amministrativo al tuo ambiente server. Ciò che è già configurato e ciò che puoi modificare dipende dall'immagine, dalla tecnologia di virtualizzazione e dal piano.

Cosa suddivide l’hypervisor e cosa condivide

Su un VPS basato su macchina virtuale, il programma che esegue la suddivisione si chiama hypervisor. Viene eseguito sulla macchina fisica, chiamata host. A ogni cliente assegna un insieme di componenti hardware virtuali: un processore, una quantità di memoria, un disco e una scheda di rete. Su questo hardware virtuale viene installato un sistema operativo, che si avvia come se fosse proprietario di un computer reale. Questo sistema guest è il tuo VPS. KVM (kernel-based virtual machine), Xen, VMware ESXi e Microsoft Hyper-V svolgono questo compito. I VPS basati su container, come OpenVZ, usano invece un livello di virtualizzazione nel kernel del sistema operativo dell’host, senza un kernel guest separato.

La memoria e il disco vengono suddivisi per spazio. Il processore viene suddiviso per tempo. Questa differenza spiega la maggior parte dei comportamenti che possono sorprendere in seguito. La memoria assegnata non costituisce automaticamente una riserva di RAM fisica: KVM supporta l’overcommit della memoria e l’host può usare lo swap per la memoria guest. Il tuo disco è un file o un volume logico nello storage dell’host e rimane di tua proprietà finché non lo elimini. I tuoi core virtuali sono code verso i core fisici dell’host e l’hypervisor stabilisce quale guest eseguire successivamente.

Un comando identifica il tipo di virtualizzazione rilevato.

systemd-detect-virt
uname -r

systemd-detect-virt stampa kvm su un VPS KVM. Questo indica che un hypervisor completo ha avviato un kernel appartenente esclusivamente al tuo sistema. Stampa lxc o openvz per queste tecnologie basate su container, nelle quali il tuo server è un’area isolata all’interno del sistema operativo dell’host e il kernel è condiviso con gli altri container presenti sulla macchina; container-other indica che è stato rilevato un altro ambiente container. Stampa none quando non rileva alcuna virtualizzazione. Questa differenza ha conseguenze concrete, perché un kernel condiviso è un kernel che non puoi modificare. In un container con kernel condiviso, il caricamento dei moduli è controllato dall’host. Di conseguenza, una funzionalità implementata nel kernel, come il modulo VPN WireGuard, richiede il supporto dell’host. In un container con kernel condiviso, uname -r normalmente restituisce la release del kernel dell’host, ma i runtime dei container funzionano in modo diverso: gVisor esegue i container senza condividere il kernel dell’host e il suo esempio ufficiale restituisce 5.15.0-gvisor. Su un server KVM, lo stesso comando mostra un kernel installato all’interno del tuo guest, che puoi aggiornare o sostituire come faresti su qualsiasi altra macchina.

Che cosa significa “virtuale” in questo contesto?

Poiché il server è costituito da software, per il provisioning non è necessario che qualcuno installi per te una nuova macchina fisica in un rack. Nessuno installa hardware per te. Il server viene creato da un’immagine modello, quindi una ricostruzione reinstalla Ubuntu in modo pulito, ma cancella anche i contenuti esistenti del disco. La maggior parte dei pannelli dei provider consente inoltre di creare uno snapshot del disco prima di eseguire un’operazione rischiosa, ridimensionare il piano con un riavvio e spostare la macchina guest su hardware diverso quando è necessario intervenire sull’host sottostante.

Il prezzo dipende dallo stesso fatto: una macchina fisica viene pagata contemporaneamente da molti clienti. Per questo un VPS ha il costo che ha rispetto al noleggio di un server intero.

Il costo è direttamente legato al vantaggio. L’hardware sottostante è condiviso, quindi anche un vicino molto impegnato può creare problemi al tuo server. La sezione sui limiti più avanti contiene il comando per misurare questo aspetto.

Che cosa significa “privato” in questo contesto?

Privato significa isolamento, ma è utile definire concretamente il livello di isolamento. Hai un filesystem root, account utente ed elenco dei processi separati; un VPS basato su macchina virtuale ha anche un kernel proprio, mentre un container OpenVZ condivide il kernel dell’host. Un altro cliente sullo stesso host non può elencare i tuoi processi né leggere i tuoi file, perché il suo guest non ha accesso alla tua memoria o al tuo disco virtuale. Le macchine virtuali eseguono sistemi operativi separati, mentre i container con kernel condiviso isolano utenti e programmi all’interno di un unico sistema operativo. Tuttavia, la privacy si ferma all’host: chi gestisce l’hypervisor può leggere in qualsiasi momento la memoria del tuo guest, e per eliminare anche quest’ultima esposizione servono le funzionalità hardware per la memoria cifrata descritte in confidential computing su un VPS.

Il shared hosting funziona nel modo opposto. Hai una directory su una macchina che serve centinaia di altri siti web, un pannello di controllo e il software che il provider ha scelto di installare. Non esiste alcun apt install, perché l’installazione di un pacchetto modifica l’intera macchina e non hai il diritto di modificarla. Shared hosting e VPS analizza in dettaglio questo compromesso. In sintesi: lo shared hosting ti concede in affitto un account, mentre un VPS ti concede in affitto un computer.

Una scheda tecnica VPS, riga per riga

Ogni VPS viene venduta come un breve elenco di numeri. Di seguito è riportato un piano di fascia media a titolo illustrativo, usato come esempio nel resto della sezione. Questi valori sono un esempio, non un'offerta commerciale né un'indagine di mercato riferita a una data specifica.

GraficoAn illustrative mid-range VPS plan
I dati alla base di questo grafico
[
  {
    "plan": "Example mid-range VPS",
    "vcpu_cores": 4,
    "ram_gb": 16,
    "nvme_gb": 160,
    "bandwidth_tb": 8,
    "ipv4_addresses": 1
  }
]

Quella singola riga descrive l'intero prodotto. Leggila da sinistra a destra.

4 vCPU. Una vCPU (virtual central processing unit) è un processore virtuale che l'hypervisor pianifica sui processori dell'host. Se il piano non specifica che le CPU sono dedicate, si tratta di una quota del thread disponibile, non di una risorsa riservata. All'interno del server, nproc restituisce normalmente 4. Indica i processori disponibili per il processo corrente; l'affinità CPU e le quote CPU supportate da cgroup possono ridurre questo valore, mentre OMP_NUM_THREADS e OMP_THREAD_LIMIT impostano rispettivamente i valori minimo e massimo restituiti, e nproc --all conta tutti i processori installati. lscpu mostra un nome di modello che può corrispondere alla CPU reale dell'host oppure a un modello QEMU generico, in base alla configurazione dell'host.

16 GB di RAM. Il piano specifica una quantità o un limite di memoria, ma questo da solo non garantisce RAM fisica riservata sull'host. free -h restituisce la memoria utilizzabile in unità binarie, escludendo il kernel e le aree di memoria riservate; prima di valutare la differenza, confronta quindi le unità GB o GiB usate dal provider. La memoria aggiuntiva oltre la quantità assegnata dipende dal piano e dalla configurazione della virtualizzazione.

160 GB di NVMe. NVMe (non-volatile memory express) indica il modo in cui l'unità è collegata all'interno dell'host ed è molto più veloce delle unità SSD SATA usate nei piani precedenti. La tua quota viene presentata come un disco virtuale, normalmente /dev/vda con KVM. df -h / restituisce la dimensione del filesystem root in unità binarie, quindi il valore visualizzato differisce da quello di un disco pubblicizzato in GB decimali ed esclude anche lo spazio usato da altre partizioni e dai metadati del filesystem; lo spazio disponibile è ancora inferiore, perché ext4 riserva per impostazione predefinita il 5 percento del filesystem a root. Gli approfondimenti Cosa significa realmente SSD in una VPS con SSD e come verificare il disco acquistato trattano entrambi l'argomento in maggiore dettaglio.

8 TB di trasferimento. Si tratta dei dati trasferiti ogni mese, generalmente conteggiati solo in uscita. È un volume; la velocità della porta è un parametro distinto specificato dal piano. Il superamento della quantità inclusa comporta un addebito oppure una limitazione della velocità, in base al provider. Leggi quindi quella voce prima di ospitare video. sudo apt install vnstat fornisce il conteggio relativo alla tua VPS con vnstat -m, a partire dal giorno dell'installazione.

1 indirizzo IPv4. L'indirizzo è tuo per tutto il periodo di noleggio del server. Puoi associarvi un dominio e accettare traffico sulle porte consentite dal firewall e dalle policy di rete del provider; anche le impostazioni del DNS inverso dipendono dal provider. I piani molto economici talvolta collocano molti clienti dietro un unico indirizzo condiviso. Questa configurazione è chiamata NAT VPS e, in tal caso, ip -4 addr show restituisce un indirizzo privato come 10.0.0.5, mentre le porte in ingresso sono limitate.

Quattro comandi confermano ciò che hai ricevuto.

nproc
free -h
df -h /
ip -4 addr show

Se uno qualsiasi di questi valori differisce dalla scheda tecnica oltre l'arrotondamento descritto sopra, è opportuno aprire un ticket al supporto prima di configurare qualsiasi servizio sulla macchina.

Cosa comporta in pratica l'accesso root

Root è l'account amministratore in Linux e il suo ID utente è 0. Esegui id -u e, quando sei root, visualizzi 0. Root può installare pacchetti per l'intero sistema, aprire porte inferiori a 1024 (per impostazione predefinita, il kernel le riserva a root o ai processi con CAP_NET_BIND_SERVICE; quindi un processo non root dotato di questa capability può associarsi alla porta 80 senza abbassare net.ipv4.ip_unprivileged_port_start), leggere e modificare i file di sistema e distruggere il sistema con un comando eseguito senza attenzione; il caricamento dei moduli e la sostituzione del kernel richiedono il controllo del kernel, che i container con kernel condiviso non forniscono. Nessuno può annullare queste operazioni al posto tuo.

La differenza pratica è semplice. Su un servizio di hosting condiviso apri un ticket all'assistenza per chiedere un software. Su un VPS esegui questo comando.

sudo apt update
sudo apt install -y nginx
systemctl status nginx

Su un'immagine Ubuntu che usa systemd, dopo l'installazione systemctl status nginx dovrebbe visualizzare active (running) e, se la porta 80 è raggiungibile, l'indirizzo IP del server aperto in un browser dovrebbe mostrare la pagina predefinita di nginx. Se lo stato visualizza failed, esegui journalctl -u nginx -n 50 e leggi le ultime righe, perché il servizio registra il motivo per cui ha rifiutato di avviarsi. Le cause più comuni sono un errore di battitura in un file di configurazione oppure un altro programma già in ascolto sulla porta 80.

Root è anche l'intero perimetro di sicurezza del sistema e l'accesso avviene tramite il metodo di login configurato per il server, ad esempio una chiave SSH o una password. La prima sessione su un server nuovo non è il momento adatto per installare applicazioni. Crea un utente ordinario, trasferisci il login a una chiave SSH e configura un firewall davanti alle porte. I primi dieci minuti su un nuovo VPS è la checklist da seguire in questo ordine, Nozioni di base sulle chiavi SSH descrive il login, Nozioni di base sul firewall ufw descrive la gestione delle porte e Utenti con privilegi minimi spiega con quale account devono essere eseguiti i servizi in seguito. Monitora i log del servizio SSH con journalctl -u ssh -f per rilevare i tentativi di login.

Quali sono i limiti di un VPS?

Il processore è condiviso e puoi misurare la condivisione. Lo steal time è la percentuale di tempo in cui la CPU virtuale era pronta per l'esecuzione, ma non ha ricevuto tempo di CPU perché l'hypervisor ha assegnato il core fisico a un altro guest.

vmstat 1 5

La colonna st indica lo steal time. Su host condivisi possono verificarsi brevi picchi di steal time. Un valore stabile a due cifre mentre i tuoi processi sono inattivi indica in genere che l'host è sovraccarico, e nessuna ottimizzazione eseguita all'interno del server può risolvere il problema, perché l'attesa si verifica al di fuori del server. Hostinger distingue lo steal della CPU dal proprio sistema di crediti CPU; la policy dei crediti CPU ripristina la capacità completa quando l'utilizzo diminuisce e i crediti vengono ricostituiti fino alla soglia di recupero. Leggi la policy CPU del tuo piano prima di attribuire il problema agli altri guest. Eseguire correttamente il benchmark di un VPS mostra come dimostrarlo prima di segnalarlo al provider. Lo steal viene riportato dai guest KVM e Xen. Nei container, il valore riportato dipende dal modo in cui vengono esposte le statistiche della CPU e non è una misura affidabile del throttling della CPU del container.

La memoria è fissa e il limite viene raggiunto bruscamente. Quando la memoria è esaurita e il reclaim non riesce a liberarne abbastanza, l'OOM (out of memory) killer del kernel sceglie un processo e lo termina con SIGKILL.

sudo dmesg -T | grep -i "out of memory"

Una sola riga spiega un'interruzione del servizio che altrimenti sembrerebbe inspiegabile:

Out of memory: Killed process 2412 (mysqld) total-vm:2183104kB, anon-rss:1897224kB, file-rss:0kB

Il log dell'applicazione di solito non contiene alcuna informazione, perché SIGKILL non lascia al processo il tempo di scrivere. Cerca la causa nel log del kernel; l'accesso del container a quel log dipende dalla configurazione dell'host. Verifica se è configurato lo swap prima di aggiungere un file di swap e controlla le regole dell'host per un VPS basato su container.

Il disco è veloce, ma condiviso. L'NVMe dell'host è rapido, ma la tua porzione compete con tutti gli altri guest per le operazioni di input/output. Un benchmark eseguito in un'ora di bassa attività non garantisce gli stessi risultati sulla stessa macchina durante il picco.

Non puoi intervenire sull'hardware. Non puoi collegare dispositivi. Nessun dispositivo USB, nessuna scheda di acquisizione e nessuna scheda grafica, a meno che il piano non preveda esplicitamente il passthrough; in questo caso si tratta di un prodotto distinto: un VPS con GPU.

Ne esiste una sola istanza. Un VPS è una singola macchina. Un guasto dell'host può rendere indisponibile il server; la possibilità che il provider lo migri o lo riavvii altrove dipende dal servizio, e il failover dell'applicazione deve comunque essere predisposto. I backup sono a tuo carico, quindi backup restic da un VPS deve rientrare nell'elenco delle attività di configurazione. Uno snapshot del provider è comodo, ma la sua protezione dipende dal luogo in cui viene archiviato e dalle modalità di conservazione; mantieni anche un backup indipendente.

Il supporto si ferma all'hypervisor. Con un piano non gestito, il provider mantiene in buone condizioni l'hardware, la rete e il livello di virtualizzazione. Tutto ciò che riguarda il sistema operativo e i livelli superiori è a tuo carico, inclusi gli aggiornamenti di sicurezza. Hosting gestito e non gestito chiarisce questa distinzione, mentre aggiornamenti automatici su Ubuntu è la misura minima utile da attivare.

Confronto tra un VPS e i sistemi con cui viene confuso

Una macchina virtuale è un guest con hardware virtuale e un proprio kernel del sistema operativo; un VPS è un prodotto server a noleggio, realizzato come macchina virtuale o container, in genere con un indirizzo pubblico e una rete già collegata. Una VPC (cloud privato virtuale) è una rete privata all'interno di un cloud più ampio, in cui risiedono i server, quindi risponde a una domanda completamente diversa. VPS, macchina virtuale e VPC a confronto distingue correttamente i tre termini.

Un server dedicato è l'intera macchina fisica riservata all'utente, senza guest di altri clienti che la condividono; è possibile installare autonomamente un hypervisor. È un'opzione da valutare quando lo steal time o la contesa del disco costituiscono il vero collo di bottiglia. VPS e server dedicato a confronto elenca i fattori da considerare.

Una VPN (rete privata virtuale) condivide due lettere con VPS, ma non ha altro in comune. Una VPN è un tunnel crittografato tra macchine. Un VPS è una macchina e uno dei suoi usi più comuni consiste nell'eseguire una VPN personale. È da qui che nasce la confusione. VPS e VPN a confronto chiarisce la differenza tra i due termini.

L'hardware di proprietà, oppure un hypervisor come Proxmox installato su una macchina domestica, offre il controllo dell'hardware e una connessione residenziale che molti servizi considerano poco affidabile. Offre inoltre il controllo dell'host stesso, quindi un guest può eseguire un proprio hypervisor dopo aver abilitato la virtualizzazione annidata in Proxmox, una funzione che anche un VPS a noleggio deve supportare esplicitamente. Proxmox e VPS a confronto mette a confronto potenza, rumore e disponibilità con un canone mensile.

Cosa si esegue su un VPS?

La risposta più corretta è: software compatibile con il sistema operativo, l'architettura, le risorse e le regole del provider del VPS. Le opzioni più comuni sono un sito web con il relativo database, una VPN privata, un game server, un monitoraggio dello stato, un mail server, una libreria multimediale oppure un coding agent che continua a funzionare mentre il laptop è chiuso. Per la posta è necessario verificare prima le policy del provider: per esempio, DigitalOcean blocca per impostazione predefinita le porte SMTP 25, 465 e 587 sui Droplet. I servizi di rete restano in ascolto sulle porte, quindi che cos'è una porta in Linux è il prossimo concetto da imparare, mentre cosa puoi fare con un VPS contiene un elenco più completo con il costo in risorse di ogni opzione.

FAQ

Un VPS è la stessa cosa di una macchina virtuale?

Un VPS è un server che un'azienda ti affitta, con un sistema operativo, in genere un indirizzo IP pubblico e un prezzo associato. Può essere una macchina virtuale con un proprio kernel oppure un container, come un VPS OpenVZ che condivide il kernel dell'host. I due termini hanno significati diversi: "macchina virtuale" descrive qualsiasi guest in esecuzione su un hypervisor, anche sul tuo laptop, mentre "VPS" descrive il prodotto che acquisti. Una VPC è ancora un'altra cosa: una rete privata all'interno di un cloud provider, non un server.

Devo conoscere Linux per usare un VPS?

Ne serve una conoscenza di base, e puoi imparare il resto durante l'utilizzo. Il set iniziale comprende la connessione con ssh, lo spostamento tra directory con cd e ls, la modifica di un file con nano, l'installazione del software con apt e la lettura dei log con journalctl. Un VPS non gestito presuppone che sia tu a occuparti degli aggiornamenti e del firewall. Se è più di quanto vuoi gestire, confronta il prezzo e le responsabilità di un piano gestito o di un pannello di controllo.

Perché il mio VPS mostra meno RAM di quella promessa dal piano?

Linux riporta la memoria utilizzabile, mentre il piano pubblicizza la memoria assegnata. L'immagine del kernel e diverse aree di memoria riservate vengono sottratte prima del calcolo del totale in free -h; inoltre, le relative unità binarie differiscono dai GB decimali, quindi verifica quali unità usa il provider. Confronta la memoria assegnata, le unità e la memoria riservata prima di valutare la differenza. Una riduzione non spiegata giustifica l'apertura di un ticket al supporto.

Che cos'è lo steal time e devo preoccuparmene?

Lo steal time è la percentuale di tempo durante la quale la CPU virtuale era pronta per l'esecuzione, ma ha dovuto attendere perché l'hypervisor aveva assegnato il core fisico a un altro guest. La colonna st di vmstat 1 lo mostra. Su hardware condiviso possono verificarsi brevi picchi di steal time. Un valore a due cifre mantenuto nel tempo mentre il carico del tuo server è basso indica in genere che l'host fisico è sovrallocato. La soluzione consiste nell'utilizzare un altro host o un altro piano, perché nessun componente all'interno del server controlla lo scheduler dell'host. Anche i limiti sull'utilizzo della CPU riducono le prestazioni e il ripristino segue i criteri del provider, inclusa la ricostituzione dei crediti CPU quando prevista.

Posso eseguire più di un servizio su un singolo VPS?

Sì. È questo il motivo per cui hai root: la macchina è generica e i servizi possono coesistere finché rientrano nella memoria disponibile e ciascuno resta in ascolto sulla propria porta. La memoria è in genere il primo limite che si raggiunge, mentre la velocità del disco è il secondo. La posta è un'eccezione problematica, perché la consegna dipende dalla reputazione del tuo indirizzo IP e dalle policy SMTP del provider, oltre che dal server di posta.

Questo articolo ti è stato utile?