Slot disk I / O in KVM con LVM e md raid5

Mi sono lottato con una configuration di kvm in debian per due settimane, in particolare con le performance del disco I / O ospite.

Il sistema:

-Supermicro 1018d-73mtf (X10SL7-F motherboard) -16GB ECC/UB -Intel Xeon E3-1240v3 -6xWD Red 750GB 6Gb/s 

Su questo io sto eseguendo un Debian Wheezy su due dei dischi, gli altri quattro dischi sono impostati con md per raid5 con LVM in cima per l'archiviazione degli ospiti. La prestazione direttamente sul raid5 (misurata creando un LV e montandolo e eseguendo i test bonnie ++ e dd) va bene, dandomi ~ 220 / 170MB / s di lettura / scrittura, ma gli ospiti ricevo letture decenti e scrive 40-50MB / s , testato sia su Windows (Server 2012) che su Linux (Debian). Ho letto su allineare i dischi e le partizioni e ricreato il raid e il setup lvm da parte del libro, ma havnt ricevuto tutte le performance aumenta.

Quando si misura i carichi in cima alla scrittura direttamente dall'host, vedo che i dischi e le lvm stanno ottenendo carichi elevati, ma misurando mentre un ospite scrive mostra i dischi a ~ 20-30% e lvm ottenendo "rosso" (100%) .

Le modifiche normali del sistema KVM / host sono state eseguite, impostando il programmatore alla scadenza, impostando le cache delle bande per il raid, la cache = none sugli ospiti, riflessa la scheda controller SAS in modalità IT (LSI 2308) e sono fuori dalle idee , ecco una bacheca con le informazioni pertinenti circa l'installazione nella speranza di qualcuno che nota qualcosa che ho fatto sbagliato http://pastebin.com/vuykxeVg .

Se hai bisogno di qualcos'altro, lo incollalo.

modifiche:

Questo è in fondo come è impostato l'azionamento, md e lvm, con alcuni cambiamenti perché sto eseguendo 3 dischi + spare. http://dennisfleurbaaij.blogspot.se/2013/01/setting-up-linuxmdadm-raid-arrays-with.html

Schermate di atop durante gli scrittori host e guest (bonnie ++)

Ospite: http://i.imgur.com/IsTprqA.png

Ospite: http://i.imgur.com/uVmhFCK.png

  • Debian, mdadm, Array degradato, il disco è diventato ricco dopo il re-aggiunto
  • Software Raid 10 di Linux si è bloccato dopo che un disco è riuscito, mdadm non mi permetterà di forzare la rimozione del dispositivo difettoso
  • Perché il mio recupero mdadm raid-1 è così lento?
  • Utilizzando unità 4k con md / LVM / dm-crypt
  • Linux mdadm --grow RAID6: Qualcosa di sbagliato - ripristina l'aborto
  • Installazione di Debian su software RAID (configuration lilo.conf)
  • Come ri-aggiungere un'unità quando il RAID è in modalità degradata?
  • La ricostruzione RAID sembra essersi fermata
  • 4 Solutions collect form web for “Slot disk I / O in KVM con LVM e md raid5”

    Non sono sicuro che la mia nota copre tutto il problema ma con questa configuration di archiviazione non hai potuto get l'allineamento corretto.

    Vediamo,

    • È ansible allineare i limiti delle partizioni in base alla dimensione della striscia RAID, è OK.
    • È ansible impostare i parametri di ottimizzazione del file system di conseguenza, è anche OK.

    • Ma per allineare correttamente LVM è necessario che le righe RAID corrispondano alla misura LVM.

    La dimensione di dimensione LVM è sempre di potenza di 2. Quindi la dimensione della banda RAID deve essere potenza di 2. Per get questo occorre un certo numero di dischi in RAID5 per essere uguali a 2 ^ N + 1 = 3, 5, 9. ..

    Con 4 dischi in RAID5 è imansible.

    Poiché il software RAID5 non dispone di una cache di scrittura protetta, può essere sensibilmente vulnerabile con la "pena di scrittura parziale a strisce".

    Può anche avere altre cause che limitano le performance di scrittura, ma il primo che avrei fatto – la migrazione a RAID10. Con RAID10 su tutti i 6 dischi è ansible get performance di lettura e capacità di archiviazione degli ospiti comparabili all'installazione iniziale … e senza mal di testa con allineamento;).

    Non utilizzare la cache con il vostro ospite di kvm se l'ospite invia una richiesta di scrittura e la richiesta va alla cache host (i dati di cache sono in memory dell'host fisico) e l'arresto dell'host e la richiesta non vengono scritti sul disco virtuale guest , forse si otterrà un problema di filesystem sul tuo ospite

    Se sei google per le performance del kvm disk io c'è un incredibile numero di colpi. Quindi rimarrò con XEN. 😉

    Quindi questo sembra essere un problema generale con KVM.

    La linea principale è quella di utilizzare il giusto virtuoso-driver.

    Poi ci sono due righe:

    • utilizzare la memorizzazione nella cache sul server KVM

    • non utilizzare la memorizzazione nella cache nei client su un server KVM se l'hostOS sta già eseguendo la cache del disco. Questo vale anche per Xen e gli altri hypervisor.

    Entrambi sembrano funzionare – ma entrambi dicono che le impostazioni predefinite sono solo terribili.

    Ho eseguito numerosi test sulle performance KVM e la memorizzazione nella cache (puoi leggere qui , qui e qui ) e molte raccomandazioni che si trovano su Internet sono obsolete di sbagliato. Ma procediamo un passo alla volta …

    1. RAID5 necessita di size molto piccole (nell'ordine di 32-64K) rispetto ai tuoi (512K, come si vede da pastebin) e una BBU (per la memorizzazione in scrittura) per essere validi per qualsiasi cosa diversa da quella di lettura / scrittura sequenziale.
    2. Evitare RAID5 per eventuali carichi di lavoro che necessitano di IOPS e / o emettere una parte significativa di scritture casuali. Questo è esattamente ciò che un OS ospite richiede (IOPS e velocità di scrittura random), quindi la scelta di RAID5 (senza BBU hardware e per l'abilitazione della cache di scrittura a livello di arrays) è errata. Utilizza invece RAID10.
    3. Abilitare assolutamente la cache = writeback per i tuoi ospiti. La cache = none è leggermente migliore solo su letture / scritture sequenziali o templates assolutamente irregolari e cache-non amici.
    4. Utilizzare i driver virtio nei tuoi ospiti each volta che sia ansible.
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.