Archiviazione di database - Best Practice per l'esecuzione del database Oracle su AWS

Archiviazione di database

La maggior parte degli utenti utilizza in genere Amazon EBS per l'archiviazione di database Per alcune architetture ad altissime prestazioni, è possibile utilizzare SSD di archiviazione dell'istanza, ma dovrebbero essere aumentati con l'archiviazione Amazon EBS per una persistenza affidabile.

Per prestazioni di database e IOPS elevate e coerenti, AWS consiglia vivamente di utilizzare volumi GP2 (General Purpose) o volumi IOPS con provisioning (PIOPS). I volumi GP2 e PIOPS sono disponibili sia per Amazon EC2 sia per Amazon RDS. Fare riferimento a Storage delle istanze di database Amazon RDS per i limiti più recenti di IOPS per volume per i tipi di volume GP2 e PIOPS. I volumi GP2 forniscono un eccellente equilibrio tra prezzo e prestazioni per la maggior parte delle esigenze di database. Quando il database richiede un IOPS più elevato di quello che può fornire GP2, i volumi PIOPS sono la scelta giusta.

Per i volumi PIOPS, si specifica una percentuale IOPS al momento della creazione del volume e Amazon EBS fornisce fino al 10% delle prestazioni IOPS con provisioning per il 99,9% del tempo in un dato anno. Il rapporto tra IOPS forniti e la dimensione del volume richiesta può essere al massimo 30. Ad esempio, per ottenere 3.000 IOPS, la dimensione del volume deve essere di almeno 100 GB.

Analogamente ai volumi PIOPS, anche i volumi GP2 sono basati su SSD, ma gli IOPS ottenuti dai volumi GP2 possono variare da un IOPS di base fino a un massimo di 3.000 IOPS per volume. Questo funziona molto bene per la maggior parte dei carichi di lavoro del database perché le prestazioni IOPS richieste dal database variano molte volte in un dato periodo di tempo in base alla dimensione del carico e al numero di query eseguite.

Le prestazioni del volume SSD per scopi generici dipendono dalla dimensione del volume, che determina il livello di prestazioni di base del volume e la velocità con cui vengono accumulati i crediti di I/O. Volumi più grandi hanno livelli di prestazioni di base più elevati e accumulano crediti di I/O più velocemente.

I crediti di I/O rappresentano la larghezza di banda disponibile che il volume SSD per scopi generici può usare per il burst di grandi quantità di I/O quando sono necessarie prestazioni superiori a quelle di base. Maggiore è il numero di crediti che il volume ha per I/O, maggiore è il tempo in cui può far aumentare le prestazioni al di là del suo livello di prestazioni di base e migliore è il rendimento quando sono necessarie ulteriori prestazioni.

Throughput Optimized HDD (st1) offre volumi HDD a basso costo progettati per carichi di lavoro intensivi che richiedono meno IOPS ma un throughput elevato. I database Oracle utilizzati per i data warehouse e per scopi di analisi dei dati possono sfruttare i volumi st1.

Qualsiasi area di elaborazione dei log o di gestione temporanea dei dati, come le tabelle esterne Oracle o l'archiviazione BLOB esterna che richiede un throughput elevato, può sfruttare i volumi st1. I volumi ottimizzati per il throughput (st1) possono gestire un massimo di 500 IOPS per volume.

I volumi Cold HDD (sc1) sono adatti per la gestione di sistemi legacy, che vengono mantenuti per scopi occasionali di riferimento o di archiviazione. L'accesso a questi sistemi è meno frequente e vengono eseguite alcune scansioni al giorno sul volume.

Un buon approccio è quello di stimare la quantità di IOPS costantemente necessaria per il database e allocare una quantità sufficiente di archiviazione GP2 per ottenere così tanti IOPS. Eventuali IOPS aggiuntivi necessari per i picchi periodici devono essere coperti dalle prestazioni burst in base ai crediti disponibili.

Per informazioni sui metodi di stima che è possibile utilizzare per determinare le richieste di IOPS del proprio database Oracle, consultare il Whitepaper Determinare le richieste di IOPS per il database Oracle su AWS.

La durata ottimale di un volume dipende dalle dimensioni del volume, dall'IOPS ottimale richiesto e dal saldo del credito quando inizia l'ottimizzazione. Se si nota che le prestazioni del volume sono frequentemente limitate al livello di base (a causa di un saldo del credito I/O vuoto), prendere in considerazione l'utilizzo di un volume General Purpose (SSD) più grande (con un livello di prestazioni di base più alto) o il passaggio a un volume di IOPS con provisioning per carichi di lavoro che richiedono prestazioni IOPS sostenute superiori a 10.000 IOPS. Per ulteriori informazioni sui volumi GP2, fare riferimento a Tipi di volume Amazon EBS.

L'archiviazione General Purpose (SSD) di Amazon RDS fornisce una base costante di 3 IOPS per GB assegnato e offre la possibilità di aumentare le prestazioni fino a 3.000 IOPS. Se si sta già utilizzando l'archiviazione magnetica per Amazon RDS, è possibile convertirla in archiviazione General Purpose (SSD), ma si avrà un impatto breve sulla disponibilità. Utilizzando IOPS con provisioning, è possibile eseguire il provisioning fino al limite massimo di archiviazione corrente e al massimo IOPS per istanza di database.

Le operazioni IOPS ottenute possono variare rispetto al volume assegnato in base al carico di lavoro del database, al tipo di istanza e al motore del database. Per maggiori informazioni, consultare la sezione Fattori che influiscono sui tassi di IOPS realizzati nella Guida per l'utente di Amazon RDS.

Per Oracle Database su Amazon EC2, eseguire lo striping di più volumi per ottenere più IOPS e una maggiore capacità. È possibile utilizzare più volumi Amazon EBS singolarmente per diversi file di dati, ma combinarli insieme consente un bilanciamento e una scalabilità migliori.

Oracle Automatic Storage Management (ASM) può essere utilizzato per lo striping. Conservare file di dati, file di log e file binari su volumi Amazon EBS separati e acquisire istantanee dei volumi dei file di log su base regolare. La scelta di un tipo di istanza con archiviazione SSD locale consente di migliorare le prestazioni del database utilizzando Smart Flash Cache (se il sistema operativo è Oracle Linux) e utilizzando l'archiviazione locale per file temporanei e spazi tabella.

Per Oracle Database su VMware Cloud on AWS, vSAN fornisce l'archiviazione virtualizzata necessaria con striping sugli host bare metal. La capacità di archiviazione virtualizzata vSAN può essere utilizzata in Oracle RAC per lo storage condiviso ad alte prestazioni.

I file VMDK (disco della macchina virtuale) creati per Oracle RAC devono essere sottoposti a provisioning per eager zero thick ed essere abilitati per il flag multi-writer. VMware ha pubblicato uno studio dettagliato delle prestazioni per i database Oracle su VMware Cloud on AWS.