VxVM Veritas Volume Manager

Le sempre crescenti richieste in termini di memoria di massa richiedono la possibilita' di gestire in modo semplice e flessibile i dischi in ambiente Unix.

Tra i prodotti piu' diffusi ed utilizzati vi e' il Veritas Volume Manager (VxVM). In questo breve documento ne sono riportati i principali concetti ed alcuni esempi pratici.

Utilizzo di un Volume Manager

L'utilizzo di un Volume Manager comporta diversi vantaggi:

I principali utilizzi di un Volume Manager sono i seguenti:

Gli oggetti trattati

Su Unix si opera generalmente a livello di partizioni di disco. Su tali partizioni possono essere creati file system (che vengono quindi montati) oppure possono essere utilizzate direttamente (eg. swap, raw partition di un RDBMS).

Con un volume manager viene inserito un livello logico intermedio che si occupa di gestire la parte fisica di indirizzamento al disco e fornisce al sistema operativo i "volumi". Dal punto di vista del sistema Unix un volume viene utilizzato come se si trattasse di una partizione (e' quindi possibile creare un file system, ...). Vengono infatti creati i relativi file /dev a blocchi ed a caratteri.

Il volume manager interfaccia direttamente i dischi fisici. Tali dischi vengono spezzati in parti chiamate subdisk. La dimensione massima di un subdisk e' quindi quella del disco stesso.

Aggregando uno o piu' subdisk e' possibile creare un plex. Quando si utilizzano piu' subdisk questi possono essere visti in concatenazione (in tal modo la dimensione del plex puo' superare la dimensione di un disco fisico), in striping (in tal modo le operazioni di lettura e scrittura vengono eseguite in parallelo su piu' dischi fisici) o in raid (che fornisce funzionalita' di fault tolerance).

E' quindi possibile creare un volume assegnando uno o piu' plex. Quando i plex associati (ed attivi) sono piu' di uno il volume manager li tiene costantemente aggiornati tra loro (sono quindi in mirroring). Nel caso in cui si verifichi un errore fisico su un disco il relativo plex viene posto in stato di detach e le operazioni continuano normalmente sugli altri plex. Anche l'operazione di riallineamento di un plex puo' avvenire in linea (naturalmente richiede piu' tempo).

Su alcune versioni di volume manager (cfr. SUN Solstice) sono definiti i disk group. Ad ogni disk group corrispondono volumi, plex e dischi distinti. Sul disk group principale (rootdg) vengono salvati i dati della configurazione del volume manager. E' opportuno utilizzare tale disk group solo per i volumi di sistema e non per i dati. Sugli altri disk group e' infatti possibile effettuare operazioni di deport ed import (che consentono ripristini in alcune situazioni di anomalia).

 

Funzioni speciali

Vi sono funzionalita' particolari presenti solo in alcuni VM.

Su alcune versioni di volume manager i volumi posti in mirroring possono avere un volume log. Sul volume log vengono registrate le diverse attivita' svolte sul volume. In tal modo in caso di problema temporaneo su un plex non e' necessario rieffettuare una lunga operazione di riallineamento ma vengono ribaltati i soli cambiementi occorsi (mantenuti sul volume log).

Alcuni volume manager offrono la funzionalita' di bootability ovvero la possibilita' di effettuare il boot del sistema operativo non solo dal disco principale ma anche dalle copie in mirroring.

In alcuni casi e' disponibile la funzione di Hot relocation di un disco. Quando questa funzione e' presente, nel caso che un disco in una configurazione di mirroring o RAID-5 abbia un malfunzionamento, viene automaticamente sostituito dal disco stabilito.

In alcuni sistemi e' disponibile la Hot relocation di un singolo subdisk nel caso in cui il problema si presenti su una sola parte del disco.

Interfaccia grafica

Per una piu' semplice gestione dei dischi, dei volumi, ... e' spesso fornita un'interfaccia grafica (in genere sotto X-Windows). Spesso vi sono comandi ed opzioni semplificate (eg. selezionando un disco fisico e lanciando la creazione di un volume vengono creati automaticamente sub-disk, plex, volumi, log, file system, ..).

Potendo utilizzare tale interfaccia non leggete questo documento ed utilizzatela direttamente. E' molto piu' facile e divertente.

L'importante e' conoscere i concetti di fondo dell'architettura del Volume Manager utilizzato.

Come esempio le piu' recenti versioni di VxVM offrono il Veritas Enterprise Administrator (eg. /opt/VRTSob/bin/vea), su SUN e' disponibile il comando vxva, ...

 

Interfaccia a comando

E' sempre fornita anche un'interfaccia a comando che e' necessaria in alcuni casi (terribili) e su stazioni che non forniscono l'interfaccia X.

 

Esempio di creazione di un volume a partire dai singoli componenti (vi sono comandi che fanno tutto in meno passi ma cosi' e' piu' chiaro e completo) e quindi modificano alcuni parametri.

 

# Creazione dei subdisk

volmake sd sc0d1s3-01 /dev/dsk/sc0d1s3,0 len=1400000

volmake sd sc0d1s3-02 /dev/dsk/sc0d1s3,1400000 len=103000

# ....

volmake sd sc1d1s3-01 /dev/dsk/sc1d1s3,0 len=1400000

 

# Creazione dei plex

volmake plex nomepl-0 sd=sc0d1s3-01

volmake plex nomepl-1 sd=sc1d1s3-01

 

# Creazione del volume

volmake -U fsgen vol nomevol plex=nomepl-0,nomepl-1

 

# Modifica delle permission sul volume (deve essere effettuata

# sul volume e non sui file /dev)

voledit set fstype=gen user=oracle group=dba mode=660 nomevol

voledit set fstype=fsgen user=root group=bin mode=660 nomevol

 

# Attivazione del volume

volume init active nomevol

# volume init [clean active enable zero]

 

# Creazione di un file system sul volume

mkfs -F vxfs /dev/rvol/nomevol 1400000

 

# Disconnessione di un plex e subdisk

volplex dis nomepl-1

volsd dis sc1d1s3-01

# Ripristino della situazione

volsd assoc nomepl-1 sc1d1s3-01

volplex att nomevol nomepl-1

 

Esempio di distruzione di un volume e di tutti i suoi componenti con comandi singoli (vi e' un comando che fa tutto ma cosi' e' piu' bello).

 

# Disassociazione del volume da un plex

volplex dis nomepl-0

# Disassociazione del secondo plex (richiede l'opzione di force)

# poiche' si tratta dell'ultimo plex associato

volplex -oforce dis nomepl-1

 

# Cancellazione del volume

voledit -f rm nomevol

 

# Disassociazione dei subdisk dai plex

volsd dis sc0d1s3-01

volsd dis sc1d1s3-01

 

# Cancellazione dei plex

voledit -f rm nomepl-0

voledit -f rm nomepl-1

 

# Cancellazione dei subdisk

voledit -f rm sc0d1s3-01

voledit -f rm sc1d1s3-01

 

Per controllare lo stato dei volumi e' utilizzabile il comando volprint. Con l'opzione -t si hanno maggiori dettagli e con l'opzione -l tutti i possibili dettagli. Altri comandi per visualizzare lo stato corrente e le statistiche di utilizzo sono volinfo e volstat.

Altre informazioni

Il comando vxassist permette di lanciare in modo semplificato una catena di operazioni.

Una funzionalita' molto sfruttata e' quella degli SNAPSHOT che consentono di disporre di piu' copie degli stessi volumi. Affiancata al Fast Mirror Resync (disponibile come feature dalla versione 3.1), consente di gestire in modo semplice (vxassist snapstart|snapshot|snapclear) la replicazione di volumi per molteplici usi.

Il demone di configurazione vxconfigd, attivo sul sistema Unix ospite, mantiene le configurazioni di dischi e volumi e si occupa della sincronizzazione tra comandi lanciati ed il kernel.
Il comando vxdctl permette il controllo del demone di configurazione. Ad esempio con vxdctl enable si porta in stato di enable il demone e fa effettuare una nuova scansione delle risorse presenti sul sistema. In questo modo dischi aggiunti dinamicamente al sistema possono essere riconosciuti ed utilizzati senza richiedere un reboot.

Con il comando vxdmpadm si controlla il Dynamic Multipathing (DMP). Tale facility permette di definite nodi che utilizzano controller differenti per raggiungere gli enclosure. Insomma gestisce il multipath dei dischi!

Informazioni specifiche su alcuni Volume Manager si trovano nei documenti SPARCstorage Volume Manager.


Testo: Utilizzo di un Volume Manager su Unix: note pratiche
Data: 4 Agosto 1997
Versione: 1.2.1 - 31 Settembre 2003
Autore: mail@meo.bogliolo.name