Tru64

Tru64 e' il sistema operativo Unix sviluppato da Digital (poi Compaq e quindi HP) per i velocissimi processori Alpha.

Il sistema operativo Tru64 offre un ambiente operativo Unix standard. Sono tuttavia parecchie le funzionalita' e le caratteristiche aggiuntive che lo distinguono dagli altri sistemi operativi Unix:

In questo documento vengono riportati gli elementi e le caratteristiche di maggior interesse suddivise per argomento: gestione storage, gestione utenze, kernel, networking, pacchetti ed applicazioni, controllo del sistema, startup/shutdown, miscellanea, installazione, configurazioni particolari, versioni.

Gestione Storage

Il file che contiene la definizione dei file system da montare e' /etc/fstab. La sua configurazione si effettua con un normale editor.
Il tipo di file system di default e' l'ADVFS (Advanced File System) che offre diverse funzionalita' quali l'allargamento dinamico del file system, la condivisione di spazi tra file system diversi, la definizione di quota su file system, ...

Poiche' il sistema operativo e' a 64bit molte delle limitazioni presenti in altri sistemi Unix sono superate (eg file system e file superiori ai 2GB di dimensione, indirizzamenti in memoria, ...). Per la gestione di grandi sistemi e basi dati questo e' certamente vantaggioso.

Quale software di gestione dei volumi e' utilizzato il Logical Storage Manager (LSM) che e' il porting Digital del piu' recente e diffuso Volume Manager Veritas (VxVM).

Dal punto di vista dei supporti di memorizzazione di massa l'offerta di Digital e' molto completa e sofisticata. Oltre alla "normale" possibilita' di collegare dischi in catene SCSI ed a relativi cabinet e RAID ARRAY sono disponibili controller di dischi molto sofisticati (HSZ) che possono supportare diversi dischi in configurazioni di RAID, mirroring, spare, ... Tale gestione viene completamente svolta dai controller sollevando il sistema da tale compito.
Nella configurazione tipica si hanno due controller connessi via bus in configurazione di failover che gestiscono uno o piu' pool di dischi in raid connessi con normali catene SCSI. Diverse operative possono essere effettuate a "caldo". Tra queste la sostituzione di dischi non funzionanti (se e' presente un disco di spare il disco non funzionante viene automaticamente sostituito), inserimento di nuovi dischi, riconficurazione del controller, ....

Logical Storage Manager - LSM

LSM e' un un gestore di volumi che consente di gestire in modo dinamico i dischi organizzandoli in volumi logici.

Un Physical Disk viene assegnato ad un Volume Group. Nei Volume Group possono essere creati i Volume che sono composti da uno o piu' plex posti in mirror tra loro. I plex infine sono composti da piu' subdisk che sono semplicemente partizioni dei Physical disk. Tutto chiaro vero?.

Poiche' l'LSM e' un porting del noto Volume Manager Veritas (VxVM) ulteriori informazioni possono essere trovate in Utilizzo di volume manager su Unix: note pratiche. Naturalmente vi sono delle differenze. Con VxVM i comandi iniziano con vx, col LSM iniziano con vol!

Generalmente viene utilizzata l'interfaccia grafica dxlsm per la definizione dei volumi, ecco comunque i principali comandi:

# Lancio dell'interfaccia grafica
dxlsm &

# Elenco di dischi, subdisk, volumi, plex, ...
volprint -Ath

# Creazione del volume volume01 di 4GB come file system e volume02 come raw device
volassist -U fsgen -g volume_group01 make volume01 4G layout=striped nstripe=2
volassist -U gen -g volume_group01 make volume02 4096M layout=striped nstripe=2

# Definizione di alcune caratteristiche su un volume
voledit -g volume_group01 set user=oracle group=dba mode=600 volume01

# Aggiunta di un nuovo disco fisico (o di un raid set) ad un volume group
voldiskadd rzb16

# Eliminazione di un volume, dei plex associati, subdisk, ...
voledit -g volume_group1 -fr rm volume01

Consigli: tenete ben in ordine i volumi ed evitate di frammentare troppo le diverse allocazioni. Create tutti gli oggetti come multipli di dimensioni comuni. Per una nota legge ogni Volume dovra' essere allargato un giorno.

Per i piu' bravi (e coraggiosi): l'incapsulamento del disco di boot si effettua con volencap (non si puo' fare dal vxdiskadm come su altri sistemi); il mirror del disco di boot si fa con volrootmir -a DEV dove DEV e' il disco su cui si vuole creare il mirror.

ADVFS

ADVFS e' un tipo di file system introdotto da Digital. I file system, anziche' utilizzare direttamente i dischi o i volumi, vengono raccolti in domain. I dischi vengono assegnati ai domain cosi che' lo spazio fisico puo' essere condiviso in modo elastico tra file system diversi (fset). E' possibile aggiungere in qualsiasi momento nuovi dischi ad un domain rendendo cosi' automaticamente piu' ampi tutti i file system che si trovano su tale domain.

A tutti gli effetti la struttura di domini creata e' riportata nella directory /etc/fdmns.

Nel seguito sono riportati i principali comandi:

# Creazione di nuovo dominio con assegnazione di un volume
mkfdmn -l 2048 /dev/vol/volume_group01/volume01 domain01

# Aggiunta di un nuovo disco o volume ad un dominio
addvol /dev/vol/volume_group01/volume01 domain01 addvol /dev/rz1c domain01

# Creazione di un file set
mkfset domain01 fset01

# Mount del disco
mkdir /mount_point
mount -t advfs domain01#fset01 /mount_point

# Settaggio di un quota (hard) a 10.000K su un file set
chfsets -b 10000 domain01 fset01

# Controllo stato e definizione di un dominio
showfdmn -k domain01

# Controllo stato e definizione dei file system
df -k

# Rimozione di un disco da un dominio
rmvol /dev/rz1c domain01

# Cancellazione di File Set
rmfset fset01

# Cancellazione di domain
rmfdmn domain01
# La rimozione di una directory ve la risparmio

Gestione fisica dei dischi

Per effettuare il label dei dischi si utilizza disklabel; ad esempio disklabel -wr rz6 RZ28D(disco del modello RZ28D) oppure disklabel -wr rz6 HSZ50 (disco su controller gerarchico HSZ) viene creata la label per la prima volta sul disco. Come su altri sistemi Unix il comando per creare file system e' newfs.
I dischi SCSI prendono il nome dalla loro disposizione su BUS e configurazione di TARGET e LEN. Il numero del disco e' dato dal BUS*8+TARGET. La LEN, se diversa da 0, viene indicata con una lettera che precede il numero (b=len1, c=len2, ...). Le partizioni sono infine indicate dalla lettera finale. Ad esempio il device a blocchi della seconda partizione di un disco sul BUS 1, target 1, len 0 e' /dev/rz9b, mentre la quarta partizione di un disco sul BUS 2, target 3, len 2 e' /dev/rzc19d. Altro esempio, montare un CD-ROM sul BUS 0 target 5: mount -t cdfs /dev/rz5a /mnt (spesso sono utili le opzioni -o noversion oppure -o rrip).

Sono supportati diversi device HW (eg. rz per i disk SCSI, tz per i tape SCSI, re per SWXCR).

Gestione Utenze

Il file /etc/passwd ha il tipico formato BSD (insomma con la password criptata per intendersi).

Il comando da utilizzare per modificare il file di password e' vipw. Tale comando pone i lock opportuni sui file (in modo da impedire modifiche in contemporanea sullo stesso file) e, al termine delle modifiche, genera un file in formato ndbm contenente la lista degli utenti. E' quindi opportuno evitare di agire direttamente in vi sul file di password.
Nel caso in cui una sessione di vipw resti "appesa" e' necessario cancellare i file di lock (generalmente /etc/*ptmp*).

A differenza di altri sistemi Unix, la definizione dei terminali definiti sicuri per il collegamento come root e' in /etc/securettys. Per l'ftp e' invece il solito /etc/ftpusers che, come noto, definisce chi non e' abilitato.

Kernel

La ricompilazione del kernel si effettua con il comando doconfig -c PARAMFILE. PARAMFILE e' tipicamente HOSTNAME (nella directory /sys/conf) e contiene i diversi parametri statici del kernel. Il comando sizer crea una versione aggiornata del file di parametri.
Il file /etc/sysconfigtab contiene i diversi parametri dinamici caricati dal kernel al bootstrap. I susbsystem caricati dinamicamente si trovano generalmente in /subsys.
Alcuni subsystem e parametri del kernel possono essere interrogati e modificati in linea con il comando sysconfig o, da interfaccia grafica, con dxkerneltuner. Ad esempio sysconfig -s riporta lo stato dei diversi subsystem e sysconfig -q ipc riporta la configurazione dell'IPC.

Con lo script MAKEDEV ( e MAKE_RAID_LUNS che si trovano in /dev) e' possibile installare file speciali in modo semplice.

Networking

Le principali configurazioni di rete vengono effettuate agendo semplicemente su file di configurazione o utilizzando il comando netsetup. La configurazione delle interfacce di rete e' effettuata agendo sul file /etc/rc.config. I routing statici vengono definiti nel file /etc/routes. Alcune particolari configurazioni sono descritte nel documento: Configurazione di filtering su Digital Unix.

Pacchetti ed applicazioni

Il comando lmf permette la gestione del software sotto licenza. Puo' essere utilizzato in modo interattivo o da linea di comando e consente l'introduzione dei PAK (Product Authorization Key).

Controllo del sistema

I file dei messaggi di sistema e', come al solito, /var/adm/messages.

Il comando uerf -R riporta, in ordine cronologico inverso, i messaggi d'errore interni e fornisce indicazioni molto dettagliate. Ancora piu' potente e' il dia che fornisce dettagli ancora maggiori ed e' in grado di leggere i file di log anche in caso di corruzioni (che tipicamente sono presenti a fronte di panic).

Per leggere le configurazioni presenti a livello di BOOT PROM si utilizza il comando consvar -l. A seconda delle versioni e dei modelli sono disponibili diverse opzioni...

Con il comando psrinfo si hanno informazioni sui processori presenti.

Se e' installato il relativo pacchetto, e' possibile utilizzare il comando sys_check che consente di estrarre dal sistema le principali informazioni di configurazione e su eventuali crash.

Il controllo delle attivita' (utilizzo di CPU, memoria, dischi, ...) sul sistema e' effettuato, oltre che con le normali utilities, anche con il comando monitor.

Il comando scu scan edt seguito da scu show edt consente di controllare le connessioni di periferiche esterne (tipicamente dischi, tape, ..). Il controllo delle versioni dei device puo' essere effettuato con scu show device bus X target Y lun Z.

Shutdown & Startup

All'accessione del sistema, se non e' settato l'autoboot, si entra in SRM Console (o in PROM mode, dipende dal sistema) da cui si possono dare diversi comandi quali: boot (effettua il caricamento del sistema operativo dal dispositivo di default), boot dka400 (effettua il caricamento del sistema operativo da DKA400 che e' spesso il CD Reader), init (effettua una reinizializzazione del sistema), show device (mostra i devices connessi al sistema), show config (mostra la configurazione), show VAR (riporta il valore di variabili, si puo' usare '*', ..), help (riporta l'help dei comandi di SRM Console)... E' possibile utilizzare parametri opzionali con boot -fl.


Per interrompere il boot ed entrare in SRM Console e' sufficiente premere [CTRL]-P sulla console di sistema.

Lo shutdown del sistema si effettua con il comando shutdown (eg. shutdown -r now effettua il reboot del sistema mentre shutdown -h now rende il sistema non attivo).

Per attivare comandi al boot debbono essere inseriti gli script nella directory /sbin/init.d e quindi creati i link opportuni (eg. a /sbin/rc2.d/S98StartOracle).

Il sistema operativo e' caricato con il file /vmunix. Il kernel generico con i diversi driver e "sempre" funzionante e' il file /genvmunix.

etc

Il comando uac consente di gestire il trattamento dell'allineamento in memoria (sia a livello di sistema che di processo). Ad esempio uac s noprint.

Nel file /etc/exports sono riportate le directory condivise in rete (NFS).

La configurazione dei controller dei dischi (eg. HSZ-70) viene generalmente effettuata da una console collegata sulla seriale del controller. E' tuttavia possibile connettersi al controller con il comando hszterm.

Come su tutti gli Unix il file di configurazione (client) del DNS e' /etc/resolv.conf. L'ordine con cui vengono pero' cercati gli host (e se vengono cercati!) sul DNS rispetto al solito /etc/hosts e' definito dal file svc.conf.

Il comando monitor consente di controllare l'utilizzo di risorse (CPU, dischi, memoria, ...).
Uno strumento molto completo per la raccolta e l'analisi delle performance e' Policenter Performance Advisor che consente il collezionamento e l'analisi delle statistiche del sistema. Comandi pratici: per attivare il collezionamento advise -collect -start, per visualizzare i grafici collgui (applicazione X-Windows), ...

Dalla versione 5 del sistema operativo i devices vengono visti in modo virtualizato. Con i comandi hwmgr e drdmgr vengono gestiti l'HW ed i devices.

Installazione

Vi mette il CD di boot e... si risponde correttamente a tutte le domande!

Configurazioni particolari

Digital offre la configurazione True Cluster in cui due sistemi, eventualmente connessi con un memory channel condividono gli stessi dischi e possono sostituirsi l'un l'altro in caso di cadute HW o SW.

Versioni

Per il sistema operativo sono stati utilizzati nomi differenti nel tempo: OSF1, Digital Unix, Compaq Tru64, Tru64, ... Il sistema operativo e' comunque sempre lo stesso.
L'ultima versione e' la 5.1B. Per la precedente versione l'ultimo livello di patch e' 4.0F.

La roadmap del sistema prevede un phase-out nei prossimi anni. Infatti HP sviluppera' una sola versione di Unix per i processori Intel Itanium (con architettura EPIC). Tru64 verra' mantenuto finche' i processori Alpha garantiranno le migliori prestazioni del mercato, quindi sara' necessario provvedere ad una migrazione. Nel frattempo il sistema Unix HP sara' stato arricchito di alcune funzioni tipiche di Tru64 (eg. AdvFS) per rendere piu' semplice la migrazione.

Anche se si trattava di sistemi operativi differenti l'HW Digital fa parte della storia dello Unix: il primo Unix e' nato su un PDP-11 ai laboratori Bell, ULTRIX e' stato un diffuso sistema operativo Unix, ...


Testo: Tru64

Data: 2 Giugno 1998

Versione: 1.8.11 - 29 Febbraio 2003

Autore: mail@meo.bogliolo.name