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.
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
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.
Data: 4 Agosto 1997
Versione: 1.2.1 - 31 Settembre 2003
Autore: mail@meo.bogliolo.name