Cristian Cudizio on the WEB

esperimenti web di un DBA

  • Increase font size
  • Default font size
  • Decrease font size
Home

09) Automatic Storage Management (ASM) - Parte 1

E-mail Print PDF

Una delle pi grosse novità introdotte da Oracle con la versione 10g senz'altro lo strumento chiamato Automatic Storage Management (ASM). Si tratta dell'integrazione verticale di un cluster file system e di un Volume Manager studiata e ottimizzata per file di database Oracle. Si tratta quindi di uno strumento di gestione dello storage specializzato per i file di database Oracle.
Con questo strumento si hanno i vantaggi di un cluster file system, quindi possibilit di utilizzo in ambiente RAC, flessibilit e facilit d'uso;in pi si hanno i vantaggi di un Volume Manager che sono quelli descritti dal concetto di SAME (Stripe Everything Mirror Everything) ovvero ridondanza e quindi sicurezza dei dati e distribuzione dei dati su pi dischi quindi con maggiori prestazioni (throughput) dovute al maggior parallelismo che si ottiene. Un Volume Manager rende molto pi flessibile e semplice l'amministrazione dello spazio disco soprattutto in ambienti complessi.

Con questa soluzione quindi Oracle fornisce due strumenti (integrati in uno) che prima venivano forniti da terze parti, in pi con il vantaggio di uno strumento ottimizzato per database Oracle e con un'interfaccia di gestione uniforme a quella di gestione tradizionale del database.
Andr in questo articolo a descrivere in maniera non dettagliata che cosa ASM


File System

Con file system intendiamo un sistema di gestione dei file su disco. Per capire i vantaggi di un filesystem basta pensare ai problemi di gestione di un database Oracle su RAW devices. Occorre definire RAW devices di determinate dimensioni, con comandi oscuri, con conoscenza dell'hardware che c' sotto. Non possibile ridimensionare dei file (su questo forse ci sono delle eccezioni, ma comunque se possibile non banale). Un file system invece facilita tutta la gestione dei file su disco.

Volume Manager

Per una panoramica globale faccio riferimento a un articolo di Bert Scalzo.
In sostanza, un Volume Manager tradizionale prende dei dischi, li riunisce in "Volume Group", implementando Mirroring e Striping e poi da questi Volume Group permette di "ritagliare" dei "Logical Volumes" che sono analighi alla classica partizione, quindi sono fette di disco formattabili o utilizzabili come Raw device. Tutto questo rende molto flessibile la gestione dello spazio su disco praticamente in alternativa al semplice partizionamento dei dischi e introducendo lo striping, cio la distribuzione dello spazio su pi dischi fisici, abilitando la parallelizzazione nell'accesso ai dati e quindi aumendo le prestazioni (RAID 0). Inoltre i Volume Manager possono anche implementare il Mirroring, ovvero la duplicazione dei dati su dischi separati per garantire la protezione dei dati in caso di guasti hardware su dei dischi (RAID 1). Nel complesso quindi si hanno le caratteristiche di un sistema RAID 1+0. 

Tutto questo, semplificando viene ottenuto gestendo lo spazio in blocchi (stripes) di dimensioni pi o meno ridotte (stripe size, in media da 64 Kb a 1 Mb). Stripe size "grandi" sono adatta ad ambienti in cui vi sono molti accessi concorrenti, viceversa stripe size "piccoli" sono pi adatti ad ambienti con pochi accessi concorrenti. Su questo vi sono molti distinguo da fare, in questo caso mi attengo all'utilizzo per database Oracle e mi riferisco a quanto viene detto sui manuali Oracle.

ASM

In ASM quelli che nei LVM sono chiamati Physical Volume sono chiamati Disk, quelli che LVM sono chiamati Volume Group sono chiamati Disk Group. In ASM non esiste l'equivalente di Logical Volume, un Disk Group il posto da usare per mettere i file dei database Oracle. Infine quello che in Logical Volume uno Stripe, cio il blocco in cui viene suddiviso lo spazio, in ASM chiamato Extent.
ASM lavora con una caratteristica gi introdotta da oracle con la versione 9: Oracle Managed Files. Questo fa si che l'organizzazione logica dei file del database sia completamente automatizzata e quindi molto pi facile. Si parla della struttura gerarchica e dei nomi dei file.

Implementazione di ASM (Manuale)

ASM stato implementato da Oracle come una istanza particolare di un database Oracle, istanza che per non associata ad alcun database e non ha alcun file se non l'spfile (e opzionalamente un password file). C' solo una SGA di dimensioni contenute (100/200 MB) ed alcuni processi. Di questi processi due sono nuovi: RBAL e ARBn. RBAL coordina  l'attivit dei dischi per i Disk Group, ARBn, con n da 0 a 9 esegue il movimento degli "extent" fra i dischi nei Disk Group. Un'istanza Oracle tradizionale legata a un database che usa ASM ha anch'essa due nuovi processi: ASMB e RBAL (questo lo stesso dell'istanza ASM ma fa altre cose). ASMB si occupa della comunicazione tra il database e l'istanza ASM; RBAL si occupa dell'apertura e della chiusura dei disk nel disk group su richiesta dell'istanza database.
ASM divide i file in extent da 1MB (coarse striping, in realt alcuni file sono divisi in extent da 128 Kb, fine striping) e distribuisce in modo uniforme gli extent su tutti i disk del disk group. Per chi conosce gi bene Oracle pu essere utile l'analogia con i datafile (disk), le tablespace (disk group) e i segmenti (datafile). A parte il mirroring quindi lo striping era gia implementabile manualmente con un po' di lavoro.


Disk

L'idea base (da cui suppongo la decisione sul nome) che un Disk idelamente corrisponde a un disco fisico; nel mondo reale pi facile si tratti di una LUN (cio una fetta di di spazio su uno storage che implementa gi RAID 1+0 in firmware). E' anche possibile (e supportato da Oracle) che sia un file su NAS (!) .

Disk Group

Vi sono tre tipi diversi di Disk Group in base ai tre possibili livelli di ridondanza dei dati supportati:
  • Normal Redundancy, supporta mirroring a 2 livelli, a 3 livello  e non mirroring, default mirroring 2 livelli (2-way)
  • High Redundancy, supporta solo mirroring a 3 livelli (3-way)
  • External Redundancy, non supporta mirroring (unprotected)



Failure Group

Il concetto di ridondanza poggia sulla definizione di Failure Groups che servono a raggruppare dischi che condividono punti di "debolezza", ad esempio il controller. Quindi per avere una ridondanza a 2 vie occorre avere almeno due failure group, quindi se una componente comune (ad esempio il controller) rende inutilizzabile l'intero failure group esiste una copia dei dati sull'altro failure group. Analogamente per avere una vera ridondanza a tre vie (high redundancy) occorre avere almeno tre Failure Group.



File

I file scritti su ASM sono file ASM, i loro nomi e la loro struttura gerarchica viene generata in modo automatico da ASM. Un file ASM sta su uno ed uno solo disk group e viene suddiviso (in extent) in modo uniforme su tutti i disk componenti il disk group (lo stesso concetto di una tabella in una tablespace formata da pi file).

Template

I nomi dei file e alcune caratteristiche come la dimensione degli extent (coarse striping con extent da 1 MB adatti ad ambienti OLTP, o fine striping con extent da 128 KB adatti ad ambienti DWH) possono essere raggruppati in template che poi si possono usare alla creazione del file. I template sono legati al Disk Group, quindi ogni disk group ha i suoi template e vi sono dei template predefiniti che alla creazione del disk group vengono inseriti nel disk group. Si possono personalizzare con ALTER DISKGROUP.

Alias

siccome i nomi dei file sono generati automaticamente e possono essere difficili da usare, possibile definire degli alias (una cosa analaga ad un link simbolico).

Directory

ASM dispone i file al suo interno i file secondo una struttura gerarchica identica a quella di un file system tradizionale. Anche in ASM quindi vi sono le directory, contenitori di file o altre directory.

Gestione di ASM

ASM un'istanza simile a quella di un database, ma senza file. L'accesso e l'amministrazione avviene via SQL su SQL*Plus, e ci si pu collegare solo come amministratore (SYSDBA o SYSOPER). Vi poi l'interfaccia EM Database Control, di tipo grafico che rende tutto pi semplice (e si base comunque sui comandi SQL).

Parametri istanza ASM

  • ISTANCE_TYPE: per ASM deve assumere valore ASM, nel caso di database RDBMS (il default)
  • ASM_POWER_LIMIT
  • ASM_DISKSTRING
  • ASM_DISKGROUPS

Monitoraggio ASM

ASM dispone di alcune viste di sistema che permettono di visualizzare tutte le informazioni su disk, disk group, operazioni ecc.
  • V$ASM_DISK
  • V$ASM_DISKGROUP
  • V$ASM_OPERATION
  • V$ASM_FILE
  • V$ASM_CLIENT
  • V$ASM_TEMPLATE
  • V$ASM_DISK_STAT
  • V$ASM_DISKGROUP_STAT

Avvio e Arresto di ASM

ASM come un'istanza database si avvia con il comando STARTUP e si arresta con il comando SHUTDOWN. A differenza di una istanza database una istanza ASM pu essere solo nello stato NOMOUNT o nello stato MOUNT. Lo stato OPEN non esiste perch non c' nessun database da aprire. Nello stato MOUNT vengono montati (cio attivati) i disk group elencati nel parametro ASM_DISKGROUPS, parametro che viene aggiornato in automatico da ASM.

 

Add comment


Security code
Refresh