Macchine virtuali e carico di lavoro pesante I / O, è mai sano?


14

Ho visto numerosi servizi di virtualizzazione (Azure) e prodotti (vmware, kvm, hyperv) e bancarelle di sistema con un carico di lavoro di I / O pesante.

Le mie domande sono:

  • È mai corretto utilizzare una soluzione virtualizzata quando si eseguono carichi di lavoro pesanti di I / O?
  • Quali sono le migliori pratiche in questo genere di cose?
  • Cosa causa questi problemi, ci sono colli di bottiglia del sistema ben noti o è solo una questione di contese eccessive?

Rilevante documento di ricerca IBM . Vorrei anche prendere in considerazione l'uso di contenitori, ad esempio Docker. Dall'articolo: "I container possono anche eliminare la distinzione tra IaaS e server non virtualizzati" bare metal "[...] poiché offrono il controllo e l'isolamento delle macchine virtuali con le prestazioni del bare metal".
oleksii,

1
1. Che ricerca hai fatto? Ci aspettiamo che tu faccia una notevole quantità di ricerche prima di chiedere. Mostrare la tua ricerca aiuta gli altri e aiuta le persone a darti risposte migliori. Consulta serverfault.com/help/how-to-ask e il centro assistenza . 2. Questa domanda è piuttosto ampia, forse troppo ampia per questo sito. La consulenza standard è: una domanda per domanda. 3. Questo sito non è adatto a domande che richiedono un parere. Puoi chiedere qualcosa di più specifico e più obiettivamente rispondente delle "migliori pratiche in questo genere di cose"?
DW,

1. 10 anni di esecuzione di varie macchine virtuali, kvn, xen, virtualbox, amazon, azzurro, hyperv. Ho riscontrato che le prestazioni sono generalmente disastrose, ma c'è così tanto clamore e capitale di rischio che circola nell'attuale ortodossia IT che tutto deve essere virtualizzato. Mi chiedo se fossi solo io, o se anche altri professionisti dell'opinione pubblica sentano un certo scetticismo.
Bryan Hunt,

2
Se hai trovato le prestazioni GENERALMENTE disastrose, dopo 10 anni di lavoro con la virtualizzazione, è tempo di accettare la sconfitta nell'essere un amministratore e cercare qualcosa che puoi fare, quando il resto del mondo non ha problemi a farlo. Seriamente, penso che tu drammatizzi qui. O non si rende mai conto che la virtualizzazione deve acquistare un sottosistema IO decente. Trovo sempre orribile quando le persone caricano più di 10 macchine virtuali - su un disco desktop e si lamentano della velocità di IO.
TomTom,

È più un'osservazione. Non ho sempre voce in capitolo nella soluzione scelta. Sono operativo. Tengo solo tutto ciò che mi viene lanciato e funzionante.
bryan hunt,

Risposte:


19

È mai corretto utilizzare una soluzione virtualizzata quando si eseguono carichi di lavoro pesanti di I / O?

Sì, molto sano di fatto, in effetti per la maggior parte delle organizzazioni ora virtuale è l'impostazione predefinita e fare cose su scatole fisiche è l'eccezione. Abbiamo oltre 100k VM di tutte le forme e molte di esse sono IOPS> 40k senza alcun problema.

Quali sono le migliori pratiche in questo genere di cose?

La cosa chiave qui non è se è virtualizzata o meno: è capire bene il tuo IO ha bisogno e abbinare le risorse di archiviazione virtuale. È così semplice, se sai di cosa hai bisogno / desideri e hai il budget per abbinarlo ai tuoi sistemi di archiviazione, il livello di virtualizzazione gioca davvero poco o niente - a meno che tu non stia DAVVERO spingendo cose ovviamente (sto parlando di decine / centinaia di milioni di IOP).

Cosa causa questi problemi, ci sono colli di bottiglia del sistema ben noti o è solo una questione di contese eccessive?

Mancanza di comprensione o tentativo di fare troppo con risorse di archiviazione insufficienti, questo è ciò che normalmente causa problemi alle persone.


10

È mai corretto utilizzare una soluzione virtualizzata quando si eseguono carichi di lavoro pesanti di I / O?

Un server di database che tira regolarmente IO casuale da 1 gb / secondo conta? Ne hai uno qui.

O un file server virtuale che fornisce fino a 600mb / secondo a un cluster HPC. Quello sta scappando da 8 Velicoraptor in un Raid 10, dedicato.

Quali sono le migliori pratiche in questo genere di cose?

Fornire un sacco di IO. Penso che questa macchina virtuale SQL abbia circa 8 o 10 SSD dedicati.

Quali sono le cause di questi problemi? Sono noti colli di bottiglia nel sistema,

Le persone non fanno matematica di base. Se il sottosistema IO non è in grado di gestire il carico, non lo farà nemmeno durante la virtualizzazione. Hai bisogno di MOLTO IO, quindi fornisci un sottosistema di archiviazione dedicato delle dimensioni appropriate.


10
"Fornisci molta UI" - probabilmente intendevi IO
oleksii il

2

Oltre alla matematica e al concetto di base secondo cui hai ancora bisogno degli stessi IO di non virtualizzati, c'è anche QOS / prioritizzazione. La maggior parte delle piattaforme di virtualizzazione offre almeno un supporto di base per questo, aiuterà molto a prevenire il malfunzionamento della macchina virtuale di sviluppo che blocca il DB di produzione.


1
Si. Hai bisogno di 5000IOPS, quindi un disco rigido con 350 non lo taglierà. Carica più vms sullo stesso disco e no, non funzionerà magicamente. Sono sempre stupito di quante persone ignorano la matematica di base.
TomTom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.