Veritas File System e Volume Manager su HP-UX

Il Veritas File System (VxFS) e la gestione del Volume Manager (VxVM) Veritas sono ambienti molto diffusi su tutti i sistemi Unix. In questo breve documento vengono riportate alcune indicazioni relative al loro utilizzo sul sistema operativo Unix HP-UX.
Il documento e' breve e semplice: a parte l'introduzione utilizza esempi concreti! Se servono ulteriori elementi... meglio consultare i manuali!

Cos'e' un Volume Manager e cosa fa VxFS? Partizioni, volumi, plex, ... tutto chiaro vero? Beh, se non lo sapete aspettate a leggere questo documento. Non ho voglia di descriverlo! Magari provate prima con Utilizzo di un Volume Manager su Unix...
Cos'e' HP-UX, quali caratteristiche ha? Beh, se non lo sapete aspettate a leggere subito questo documento. Non ho voglia di descriverlo! Magari iniziate con Il sistema operativo Unix: HP-UX...

Bene, l'introduzione e' stata anche fin troppo lunga. Ora parliamo di File System e di Volume Manager!

VxFS ed HP-UX

HP-UX supporta diversi tipi di File System e tra questi anche VxFS. In effetti VxFS viene distribuito direttamente con tutte le versioni del sistema operativo.
E' pero' presente una limitazione. A seconda del tipo di licenza acquistata puo' essere presente o meno il prodotto HP OnLineJFS (detto anche Advanced VxFS) che abilita alcune funzionalita' di VxFS.

Il file system type VxFS supporta:

Se e' non presente l'OnLine JFS le prime due attivita' non possono essere effettuate in on-line (quindi con i file system montati). Quindi prima di allargare un file system e' necessario sapere se e' attivo l'Online JFS!

Prima di passare ai comandi... un ripasso su HP-UX: l'elenco dei File Systems si ottiene con bdf, il comando ioscan consente di verificare tutte le periferiche connesse al sistema, con diskinfo si leggono le caratteristiche di un disco fisico e sam e' l'interfaccia a menu per l'amministratore del sistema.

Controllare Online JFS

Per controllare la presenza del pacchetto Online JFS si puo' controllare con:

# swlist -l product | grep -i jfs
  JFS                   B.11.11        The Base VxFS File System
  OnlineJFS             B.11.11        Online features of the VxFS File System
Sulle precedenti versioni di HP-UX i pacchetti sono:
# swlist -l product |grep -i adv
AdvJournalFS B.10.20 
The Advanced VxFS File System 

Allargare un File System senza JFS

Un'attivita' comune e' quella di allargare un file system. Se Online JFS non e' attivo e' necessario smontare il file system da incrementare.

I passi da effettuare sono i seguenti:

Come? Ecco!
# lvextend -L new_size /dev/vg*/lvol*
# umount filesystem
# extenfs 
# mount filesystem

Il problema si complica se i file system che richiedono il ridimensionamento sono /var, /usr o comunque file systems che non si possono smontare... in questo caso e' necessario lavorare in Single User Mode.

Dimenticavo... un file system non si smonta se vi sono processi che lo utilizzano. Per controllare chi utilizza un file system: fuser -c mount_point. Per ammazzare chi lo utilizza... non ve lo dico: se non sapete come si fa e' meglio che non lo facciate!

Allargare un File System con JFS

E' tutto piu' facile... I passi da effettuare sono i seguenti:

Come? Ecco!
# lvextend -L new_size /dev/vg*/lvol*
# fsadm -b new_size FSname

Simpaticamente il parametro dell'lvextend e' in MB mentre per l'fsadm e' in KB... il mondo e' bello perche' e vario!

Allargare un File System utilizzando SAM

Con sam si fa tutto! E tutto e' semplice, fa tutto lui in automatico. C'e' solo un'avvertenza: quando bisogna allargare un FS, bisogna allargare un FS!
Ovvero non si deve allargare il LV (Logical Volume)... basta modificare direttamente il FS e SAM incrementera' di conseguenza il LV.

Come vedremo poi... anche Veritas offre un'interfaccia grafica, su X, con cui fare tutto. Il comando e': /opt/VRTSob/bin/vea.

A volte e' questione di gusti... personalmente preferisco utilizzare i comandi di linea.

VxVM ed HP-UX

Su HP-UX e' disponibile da sempre un suo Volume Manager l'LVM (Logical Volume Manager). L'LVM ha molte caratteristiche in comune a VxVM... e' robusto, affidabile ed le funzioni di basi sono comuni (eg. mirroring, encapsulation). Negli esempi utilizzati fino ad ora abbiamo sempre l'LVM ma... ora tocca al VxVM.

Il primo fondamentale vantaggio di VxVM e' che la sua disponibilita' su piattaforme differenti, naturalmente con le stesse funzionalita' e modalita' di utilizzo. Alcune attivita' risultano piu' semplici con il VxVM ed il VxVM offre alcune funzionalita' specifiche non presenti in LVM (eg. Dirty Region Logging, Online Relayout, Snapshot, ...).

Con il VxVM si gestiscono disk, disk group, subdisk, plex, volume, ... non sapete cosa sono? Leggete Utilizzo di un Volume Manager su Unix! Nel seguito facciamo solo semplici esempi di comandi.

Comandi facili...

Oltre all'interfaccia a comando completa, che vediamo negli ultimi esempi alla fine del documento, vi e' un'interfaccia a comando "assistita" che permette di fare la maggior parte delle attivita'. Il comando e' vxassist. Per esempio con vxassist -g diskgroup -b growto volname 8000m; fsadm -F vxfs -b 800m mountpoint il volume viene incrementato alla nuova dimensione in background ed il comando si occupa di trovare lo spazio sul disk group. Per controllare l'andamendo del comando si possono controllare i task lanciati con vxtask list.

Altro comando semplice e' vxprint che riporta la configurazione di disk group, disk, plex, ... insomma di tutto. La forma piu' leggibile e completa e' vxprint -Ath.

Per controllare invece i dischi "visti" dal Volume Manager il comando e' vxdisk -o alldgs list.

Sempre della serie dei comandi facili, con il menu richiamato da vxdiskadm si fanno la maggior parte delle attivita' di gestione.

Per poter essere utilizzato da VxVM un disco deve essere libero e va inizializzato (eg. con vxdiskadm). Se un disco contiene partizioni LVM non puo' essere utilizzato. Per convertire un disco ed i sui contenuti da LVM a VxVM si utilizza il comando vxvmconvert. Per rimuovere la struttura LVM da un disco non associato ad alcun disk group si utilizza il comando pvremove, a questo punto il disco e' libero e puo' essere assegnato a VxVM.

A volte e' utile sganciare un disk group da un sistema (ad esempio per simulare le azioni di un cluster)... si fa con vxdg diskgroup deport. Quindi per riagganciarlo vxdg diskgroup import e per riattivare i volumi: vxvol [-f] -g diskgroup startall. Ma questi non sono piu' comandi facili...

Interfaccia grafica

Per una piu' semplice gestione dei dischi, dei volumi, ... e' fornita un'interfaccia grafica via X-Windows: /opt/VRTSob/bin/vea.
Effettivamente e' utile perche' consente di fare tutto (o quasi) e permette di avere una visione completa e veloce di tutto.
Infine alcuni semplici wizard permettono, anche a chi non conosce affatto VxVM come il sottoscritto, di fare le principali attivita'!

Configurare dischi in SAN

Un esempio comune ed interessante (spero!) e' quello di configurare su VxVM dischi in SAN (Storage Area Network). I passi sono diversi...

Innanzi tutto debbono essere definite le LUN sulla SAN, quindi deve essere fatto il mapping sugli switch (zoning). Per fare questo chi si occupa della configurazione dei dischi (spesso il venditore dell'HW SAN) ha bisogno di alcune informazioni sul sistema.

Con ioscan -kfn si controllano le interfacce in fibra e quindi con fcmsutil /dev/td* si individuano i Port World Wide Name (per gli amici WWN). Si tratta dell'indirizzo univoco della scheda (come un MAC ma piu' lungo) necessario per la configurazione del mapping.

Terminata la configurazione della SAN si debbono far vedere i nuovi "dischi". I comandi sono:

ioscan -fn
insf -e
vxdctl enable
Ovviamente la loro funzione e' quella di fare lo scan dell'HW, installare gli special file ed avvertire il demone vxconfigd che c'e' qualcosa di nuovo. Se si vedono i nuovi dischi e' opportuno controllare anche il corretto funzionamento del Dynamic Multi Path con il comando vxdmpadm (nel caso di multipath andrebbe utilizzato prima dell'enable il comando vxdctl initdmp).

Semplice, veloce e, importante, tutto in linea senza reboot o disservizi!
A questo punto con l'interfaccia grafica o in qualche altro modo si configurano i dischi su VxVM associandoli ad un disk group.
Alcuni vendor di SAN forniscono client specifici per il controllo della configurazione (eg. con EMC2 syminq, con IBM Shark esscli, ...).

Interfaccia a comando

L'interfaccia a comando consente di agire direttamente a livello di singolo disco, subdisk, plex, volume, disk group, ... con comandi specifici: vxdisk vxmake vxplex vxvol vxdg vxattr .... L'interfaccia a comando serve in tre casi:

Nella speranza che per voi valga il secondo caso, o che siate curiosi, vediamo comunque qualche esempio...

Creazione di un volume

Esempio di creazione di un volume a partire dai singoli componenti e quindi modificando alcuni parametri.

# Creazione dei subdisk
vxmake sd sc0d1s3-01 /dev/dsk/sc0d1s3,0 len=1400000
vxmake sd sc0d1s3-02 /dev/dsk/sc0d1s3,1400000 len=103000
# ....
vxmake sd sc1d1s3-01 /dev/dsk/sc1d1s3,0 len=1400000

# Creazione dei plex
vxmake plex nomepl-0 sd=sc0d1s3-01
vxmake plex nomepl-1 sd=sc1d1s3-01

# Creazione del volume
vxmake -U fsgen vol nomevol plex=nomepl-0,nomepl-1

# Modifica delle permission sul volume (deve essere effettuata 
# sul volume e non sui file /dev)
vxedit set fstype=gen user=oracle group=dba mode=660 nomevol
vxedit set fstype=fsgen user=root group=bin mode=660 nomevol

# Attivazione del volume
vxvol init active nomevol
# vxvol 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
vxplex dis nomepl-1
vxsd dis sc1d1s3-01
# Ripristino della situazione
vxsd assoc nomepl-1 sc1d1s3-01
vxplex att nomevol nomepl-1

Distruzione di un volume

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
vxplex dis nomepl-0

# Disassociazione del secondo plex (richiede l'opzione di force)
# poiche' si tratta dell'ultimo plex associato
vxplex -oforce dis nomepl-1

# Cancellazione del volume
vxedit -f rm nomevol

# Disassociazione dei subdisk dai plex
vxsd dis sc0d1s3-01
vxsd dis sc1d1s3-01

# Cancellazione dei plex
vxedit -f rm nomepl-0
vxedit -f rm nomepl-1

# Cancellazione dei subdisk
vxedit -f rm sc0d1s3-01
vxedit -f rm sc1d1s3-01

Testo: Veritas File System e Volume Manager su HP-UX
Data: 31 Febbraio 2004
Versione: 1.0.9 - 31 Febbraio 2005
Autore: mail@meo.bogliolo.name