Log delle transazioni di SQL Server nel cloud


8

È pratica comune posizionare i registri delle transazioni ( *.ldf) su un sistema di disco fisico separato rispetto ai file di database ( *.mdf, *.ndf).

In un ambiente cloud di macchine virtuali, è corretto inserire i registri delle transazioni sulla stessa lettera di unità degli altri file di dati? Come viene di solito gestito questo nei moderni ambienti di macchine virtuali cloud di oggi.

NOTA: non usare SQL Azure. Utilizzo di una macchina virtuale Windows con accesso completo.


1
Se stai parlando di Azure, non penso che tu abbia davvero alcun controllo sul posizionamento dei file, o addirittura sulla visibilità del sistema disco sottostante. Detto questo, non penso che Microsoft sarebbe molto intelligente nel violare le migliori pratiche e collocare i dati e i file di registro sullo stesso disco, soprattutto considerando l'ulteriore sovraccarico di scrittura inerente alla piattaforma.
Aaron Bertrand

Chiarito: non usare SQL Azure. Utilizzo di una macchina virtuale Windows completa, quindi il posizionamento del registro delle transazioni dipende da me.
Jason Kresowaty il

1
Quindi, se hai più volumi indipendenti accessibili alla tua VM, perché pensi che le considerazioni sul posizionamento dei registri sarebbero diverse per una macchina virtuale rispetto a una macchina fisica?
Aaron Bertrand

Immagino che uno debba conoscere le raccomandazioni del particolare venditore per rispondere con certezza. Immagino che vorrei solo alcune idee generali su ciò che le persone hanno effettivamente fatto a questo proposito con i più famosi fornitori di cloud.
Jason Kresowaty,

1
Di cosa stiamo parlando qui? Una macchina virtuale ospitata da te sull'hardware e l'archiviazione che controlli o una macchina virtuale ospitata da un provider cloud come Azure o EC2?
Mark Storey-Smith,

Risposte:


4

Nei miei test approfonditi di cloud SQL su server cloud (cloud dello spazio rack, per essere precisi), ho scoperto che la suddivisione di ldf e mdf in volumi di archiviazione a blocchi distinti ha apportato un miglioramento significativo delle prestazioni. Ho ottenuto prestazioni davvero eccezionali mettendo ldf su un volume di memoria a blocchi basato su SSD e mdf su un volume di memoria a blocchi standard.

In definitiva, ovviamente, un volume di archiviazione a blocchi è una SAN condivisa da qualche parte. E l'archiviazione locale "di istanza" si trova sull'hypervisor stesso. Pertanto, la topologia hardware del tuo ambiente cloud determinerà quale configurazione funzionerà meglio.


2

Dipende dall'ambiente cloud che si sta utilizzando, ma in genere ha senso inserirli nella stessa unità logica. Se sono necessari ulteriori IOPS, è possibile eseguire lo striping su più volumi ma presentare comunque un'unica unità.

In un ambiente cloud non sei il solo consumatore dello spazio di archiviazione che ti viene assegnato. Ottieni una piccola fetta di una torta molto grande e come tale tutto l'IO è di natura casuale. Non c'è nulla da guadagnare dal tentativo di separare l'accesso sequenziale (registro) da casuale (dati).

Nulla da guadagnare nemmeno dal punto di vista del recupero poiché non è possibile insistere sul fatto che i due volumi verranno allocati da array diversi. Inoltre, vi è una diversa classe di protezione garantita dalla disponibilità di spazio di archiviazione da parte dei grandi giocatori. L'archiviazione di Azure, ad esempio, è tripla replicata all'interno del data center, con una copia aggiuntiva replicata in un data center di failover per impostazione predefinita.

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.