[LatinaLUG] Appunti di InfoProp
Polli Roberto
latina@lists.linux.it
Wed, 21 Aug 2002 08:41:03 +0200
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01C248DD.B8527860
Content-Type: text/plain;
charset="iso-8859-1"
Come richiesto eccovi la release 0
Non aspettatevi niente da cio', solo un sacco di errori.
Sono graditi cmq feedback.
Per favore NON speditemeli, senno' divento scemo!
Magari organizziamo un CVS ;-)
Se qcn sa come funziona mi faccia sapere,!
Rob <<unix.1.txt>>
------_=_NextPart_000_01C248DD.B8527860
Content-Type: text/plain;
name="unix.1.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="unix.1.txt"
FileSystem
basi:
Un superblocco e' l'header del FS che contiene info su: stato del FS, =
dimensioni, blocchi liberi... Se il superblocco e' danneggiato il =
sistema puo' non riconoscere il FS. Il superblocco inoltre posside =
anche una flag che viene attivata al momento del mount e disattivato =
dopo un corretto umount. Cio' permette di sapere se un FS e' stao =
correttamente smontato o meno.=20
Nella gestione dell'UFS vengono utilizzate 2 strutture sovrapposte: =
"inode" e "directory".
Ad ogni file corrisponde un "inode" contenente: un codice che =
identifica l'inode e i blocchi dove il file e' contenuto. Una =
"directory" e' un file, quindi un "inode" contenente un elenco di =
nomefiles [i permessi loro associati ed altre info] e gli "inode" loro =
associati. I "metadata" sono tutte quelle informazioni contenute nel FS =
che servono a rintracciare i dati.
Un FS "journaled" tiene un "giornale" o "log" con tutte le modifiche =
del FS in modo da ripristinare piu' facilmente le informazioni in caso =
di crash del sistema.
RAID
Redudant Array of Inexpansive Disk. E' una tecnica che permetti di =
aumentare la Fault Tolerance o le performance di uno storage =
utilizzando molti dischi economici. Per quanto riguarda la HA, si =
possono effettuare 2 meccanismi: uno di mirroring, piu' costoso dal =
punto di vista delle risorse ma piu' sicuro che consiste nell'usare due =
HD come fossero uno e copiando ogni dato sia sul primo che sul secondo =
disk. E' possibile alternativamente utilizzare il mccanismo detto di =
RAID5 che necessita di almeno 3 dischi. Si divide ogni dato in 3 parti: =
2 di dati e una di checksum. In caso di fault di un HD e' possibile =
ricostruire il file tramite i dati contenuti negli altri due. Tale =
meccanismo e' piu' economico del mirroring.
Per aumentare le performance e' possibile inoltre effettuare lo =
striping di dischi, ossia fare in modo che piu; dischi vengano visti =
come uno solo e che i dati di ogni file vengano scritti un po' su un =
disco ed un po' sull'altro. Chiaramente lo striping aumenta le =
performance del SO ma non la sua Failure-Resistence.
Logical Volume Manager
fonte:http://www.sistina.com/lvm_whitepaper.pdf
Il LVM e' un livello di astrazione sullo storage. Le applicazioni =
quindi comunicheranno con uno storage virtuale gestido dal SW LVM che =
fara' da intermediario con l'HW.
Cominciamo con un po' di definizioni:
Physical Volume (PV): un dispositivo di storage fisico:un HD, una =
device hda, hdb, sdc, ...;
Physical Extent/Partition (PE/PP): la porzione minima di PV che puo' =
essere indirizzata dal LVM su uno storage. La loro dimensione e' =
costante per ogni VG. Esse sono numerate da 0 a PVsize/PEsize.=20
Volume Group (VG): un dispositivo virtuale equivalente ad un HD e =
composto da uno o piu' PV;=09
Logical Volume (LV): equivalente virtuale di una partizione, e' diviso =
in Logical Extent (LE/LP) corrispondenti virtuali dei PP/PE e mappati =
1-1 con essi;
VG Descriptor Area : area dei PV dove sono contenute le informazioni =
relative ai VG: VG di appartenenza, tabella delle PE/(LV, #VG) che =
serve ad associare ad ogni PE un LV ed un LE.
Grazie a LVM gli applicativi comunicheranno con un VG come se fosse un =
HD e con i LV come fossero partizioni. Questo porta i seguenti =
vantaggi:
Alta Disponibilita' (HA)- e' possibile gestire VG e LV a caldo, ad =
esempio continuare a leggere e scrievre su una directory mentre si =
cambia un PV, ad esempio a causa della rottura di un disco RAID. E' =
possibile inoltre ridimensionare in runtime un LV anche senza =
smontarlo. Si possono inoltre raggruppare dischi o partizioni in un =
unico VG con un unico mount point in modo di concatenamento o striping. =
Il meccanismo di VGDA permette inoltre di modificare l'indirizzo =
fisico dei PV poiche' per la ricostruzione dei VG non vegono utilizzati =
tali indirizzi. E' possibile poi spostare dei files da un PV ad un =
altro tramite il comando migratepv senza che venga cambiato il loro LV, =
e quindi neanche il loro PATH;
SnapShot del VG - e' possibile creare un'immagine istantanea =
(snapshot) de un VG durante il suo utilizzo, ad ex. come BKUP, in =
maniera trasparente per le APPS. Tutto cio' infatti avviene a livello =
LVM.=20
LVM e RAID
L'utilizzo di LVM e' indipendente da quello di RAID. Poiche' il LVM non =
fornisce protezione da DISKFAILURE e sebbene in alcuni casi possa =
fornire funzioni simili(tipo striping e concatenamento) sarebbe meglio =
utilizzarlo con un RAID-HW 0 o 5 e dei BKUP.=20
ufs: unix file system, filesystem usato da SUN
utilizza dei flag per evitare scan inutili: clean, stable, =
active, logging, o unknown. Lo sc
an non viene lanciato nei casi clean, stable e logging
max fs=3D 1Tb con DiskSuite* (v.7) o SolarisVolumeManager =
(v.9), max file >2Gb
possibilita' di attivare il journaling (via logging) montando =
il FS con l'opzione "-o".
possibilita' di SnapShot del FS
info sul FS in /ets/vfstab, tabella del FS virtuale
nfs: network FS detto anche Distribute File System.
file di config in /etc/dfs/dfstab, usato da SUN
xfs: IRIX file system, journaled
AdvFS: fs journaled usato da Tru64
permette file <16Tb;
POSIX 1003.1 compatibile,utilizza la syscall open(), close(), creat();
non utilizza newfs, dump, restore, and fsck.
supporta fs multivolume.
2 livelli:
il FileDomain e' un insieme logico di HD gestito da un LVM;
il FileSet e' l'equivalente di un FS montabile di unix che si =
appoggia ad un FileDomain.
per il journalig utilizza la 'write-ahead logging' ovvero aggiorna =
prima il journal e poi modifica il fs.
LIMITAZIONI: eccessiva frammentazione del fs, troppi utenti =
sovraccaricano l'utilizzo del fs e ne aumentano la frammentazione. per =
ovviare a cio' si puo' usare #defragment*
permette di operare in maniera sicura sui FS senza =
smontarli(ridimensionamento defrag bkup)*=20
permette l'undelete dei files da opportune directory cestino da parte =
degli users senza l'aiuto degli admin*;
JFS: fs journaled usato da AiX
Limitazioni e numeri:=20
block size 512-4K;La grandezza dei blocchi e' inveramente =
proporzionale all'ottimizzazion
e dello spazio su disco in caso di small files, e direttamente =
proporzionale alla frequenza di I/O al disco.
i-nodes: 1-16M
NBPI:Number of Block Per I-Node 512-128K
PP/PE: 1-1024
Esistono delle relazioni tra tutti i possibili valori di tali =
parametri. Per ulteriori info su tali valori vedere i manuali di AiX =
sul sito della IBM.
max file size 512Terab(512bytes/block)- 4PetaB(4Kb/block). I file di =
grandi dimensioni vanno abiltati tramite i comandi crfs e mkfs tramite =
l'opzione _bf=3Dtrue_=20
swap space:2*RAM per RAM<256M, 512M per RAM>=3D256M, SWAP>16M; non =
puo' occupare piu' del 20% del PV; SWAP>64M per AiX>=3D4.3 e hd6. =
Esistono 2 politiche di allocazione stabilite dal settaggio della =
variabile _PSALLOC_: late(default) che alloca la swap il piu' tardi =
possibile, ed early, che lo fa il prima possibile. In caso di swap =
quasi terminata, per evitare un panic, viene prima eseguito un =
SIGDANGER a tutti p processi tranne _kprocs_ quindi, in caso di =
inferiore disponibilita' delle risorse viene eseguito un SIGKILL a =
tutti i processi che occupano maggiormente la swap. In vista di cio' =
bisogna fare in modo che in caso di early-swap ci sia abbastanza swap =
da evitare il panic del sistema nel caso in cui la swap-space fosse =
poca e il kernel intenda usufruirne. Comandi per la gestione della =
swap:chps, lsps, mkps, rmps, swapon, swapoff. Il significato e' analogo =
ai comandi di shell, solo applicato alla ps=3Dpaging space. Il file di =
configurazione della swap e' _/etc/swapspaces_.
Una particolarita' del FS di AiX sono le Physical Partition/Extent =
queste sono=20
l'unita' base di un PV e la sua dimensione varia da 2Mb a 16Mb a =
seconda del VG al quale il PV appartiene.
min partition/FS size 16Mb e multipli di tale dimensione. Sono i PE.
si basa sul journaling o log dei soli metadata. Questo permette una =
velocizzazione del FS ma va a scapito della High Availability. Per =
aumentare la HA si puo' settare l'I/O sincronizzato.
utilizza 'internal' ed 'external logs'. I logs vengono effettuati SOLO =
sui 'metadata'. Quelli 'internal' sono scritti sullo stesso fs dei =
'data' e quindi rallentano la scrittura dei dati sul fs. Quelli esterni =
sono locati su un fs diverso. E' possibile disabilitare il =
'file-logging'.
=
fonte:http://www-1.ibm.com/servers/aix/products/aixos/whitepapers/jfs_vf=
s.html
http://www-106.ibm.com/developerworks/library/jfs.html
=09
la swap e' di default su hdaX dove X e' un numero intero.
Ulteriori aree di swap aggunte dall'admin possono essere denominate =
paging[00,01,..] In genbere la swap area deve essere del doppio della =
RAM con il limite di 2Gb.
Il JSF si riserva una partizione(Physical Partition) di journaling, =
generalmente su hda8, indicata con jsflog. Essa viene creata insieme al =
filesystem e quindi si basa sulla grandezza di tale FS. Nel caso in cui =
tale FS venga ampliato bisognera' fare in modo che la partizione di log =
sia adeguata. La grandezza massima per una partizione di log e' di =
256MB.=20
Su AiX e' possibile modificare la dimensione di tutte le partizioni =
virtuali, comprese quelle di swap, in qualsiasi momento.=20
Per aggiungere un nuovo FS al So si procede col comando
#smitty storage=20
e si prosegue dal frontend.
=09
Un 'aggregate' e' un'array di "blocchi" interamente contenuto in una =
partizione. Esso=20
contiene un formato specifico che include un superblocco e una mappa di =
allocazione. Il superblocco identifica la partizione come un =
'aggregate' del JFS mentre la "mappa di allocazione" descrive lo stato =
di allocazione di ogni "data block" all'interno dell' "aggregate". Tale =
formato include anche info sul fileset e le stutture di controllo =
necessarie per montarlo.
E' possibile indicare delle policy di allocazione dei file sui FS: =
intra-disco ed inter-dischi.
quella intra-disco si basa sulla divisione di ogni disco in 5 zone =
concentriche. Piu' un file e' locato vicino al centro del disco piu' =
veloce sara' l'average seek time. Quindi tranne due eccezioni =
importanti, ovvero LV inferiori ad 1 GB con grossi files sequenziali; e =
Mirrored LV con Mirror Write Consistency (MWC) ON.
quella inter-dischi si occupa invece di come le LP di ogni LV sono =
distribuite, ovvero se sono disposte il piu' possibile su gli stessi PV =
o distribuite su piu' PV. Gestisce anche la disposizione delle LP =
mirrored, basandosi su opzioni simili a quelle appena enunciate per le =
LP.
NB Non conviene modificare le politiche di allcoazione =
intra/inter-dischi a meno che non si sappia _perfettamente_ cio' che si =
sta' facendo. In caso di politiche incompatibili tra loro si rischia =
infatti di danneggiare il sistema.
supporta la compressione dei FS. Essa viene specificata come =
un'attributo del FS al momento della creazione. Non conviene comunque =
comprimere FS come _/_ e _/usr_. In generale la compressione aumenta la =
velocita' di average seek, poiche' i dati vengono compressi prima di =
essere scritti su disco. Oltre a dei vantaggi la compressione comporta =
anche dei problemi: puo' capitare infatti errori di _out of space_ =
quando il FS e' quasi pieno o le quote sono al limite.=20
backup: e' importante sviluppare una strategia di backup adeguata alle =
proprie esigenze. Il backup e' l'unico metodo per recuperare files dopo =
un HD crash o una cencellazione eccidentale. E' importante ai finio di =
un backup separare in FS distinti i dati del sistema da quelli degli =
utenti.E' [possibile effettuare 2x2 tipi di backup: per _nome_ ovvero =
file per file, per _filesystem_ ovvero per _inode_, _incrementale_ =
(aggiorna i soli file modificati) e _completo_(salva tutto). Fare un =
backup incrementale per inode e' piu' performante che non per nome. =
Tramite i comandi di backup (backup, smit backup) vengono bkupped solo =
i FS montati. E' dunque obbligatorio smontare i FS che non si intendono =
salvare. E' importante inoltre controllare i bkup periodicamente e fare =
un _fsck_ dei FS che si intende archiviare per evitare di salvare FS =
inconsistenti.
#lsfs [-a all] lista tutti i FS disponibili
AiX: tabella dei FS in /etc/filesystems, organizzato in _stanze_ a =
differenza degli altri u*x
i FS montati al boot hanno _mount=3Dautomatic_ mentre quelli che =
l'utente vuole in automount hanno _mount=3Dtrue_;quest'ultimi sono =
montati dallo script _/etc/rc_ che effettua un _mountall_
qu
#du info sui FS montati
SUN: tabella dei FS in /etc/vfstab
#df [-k Kb|-g Gb] fornisce info sui FS montati utilizzandol'unita' di =
misura specificata
Tru64: tabella dei fs in /etc/fstab
#df [-k Kb|-g Gb] fornisce info sui FS montati utilizzandol'unita' di =
misura specificata
strumenti di analisi:
vmstat: controllo della memoria virtuale
iostat: controllo dell'I/O
netstat: controlla la rete.=20
[-f inet|inet6|unix|all] tipo di servizio
[-I IFACE [-s]] nome interfaccia [contatori DataLink]
[-n] network address
[-r] mostra la tabella di routing=20
AiX: errpt [-a all] mostra tutti gli eventi ed errori HW/SW e i reboot =
della macchina.
files di log in:
TRU64 /var/adm/[messages]
IRIX:/var/adm/[SYSLOG]
installazione:
nell'install di pacchetti .tar conviene sempre vedere il contenuto =
tramite il comando
#tar tvf NOMEFILE.tar
per controllare che non sia in path assoluto. !Esplodere un tar con =
path assoluto potrebbe sovrascrivere eventuali file presenti. E' bene =
quindi a meno che non sia strettamente necessario, non lanciare il =
comando di tar da / ma sempre dall'inizio del percorso che si vuole =
presente durante l'esplosione.
SUN: pkgadd, pkgdel, pkginfo
Tru64: setld [-i info|-l install|-d delete]=20
IRIX: swmgr: GUI di installazione sw. Necessita di creare un DB con =
tutti i CD del SW tramite il bottone ADD. I cd sono tendenzialmente: =
Found1,2- materiale di base; CD1,2,3- SW dell'OS; Applications; =
Develope-per sviluppatori;
AiX: Tutte le funzioni di amministrazione su AiX vengono svolte anche =
tramite il programma-frontend #smitty e la sua GUI #smit. Per quando =
riguarda l'install di SW si puo' procedere come segue:
#smitty install=20
e navigare dei menu' fino a trovare install SW ed indicare il path dove =
cercarlo. In caso di install da cd locale il programma fara' tutto da =
solo. In caso di install da cd remoto o da directory bisognera' =
indicargli il path della directory contenente il file .toc [forse table =
of contents] grazie al quale smitty mostrera' un eleconco indicante il =
SW gia' installato e quello da installare presenti sul CD.
Il SW non pertinente al SO viene generalmente installato in /usr/lpp =
analoga alla /usr/opt o /opt di linux.
il comando #lslpp [-l list] mostra tutti i pacchetti presenti sulla =
macchina.=20
CDE
procedura di avvio di CDE:
generalmente nel runlvl2 e' presente il demone #dtlogin che si occupa:
lancia il server X tramite
Xsetup che legge /usr/dt/config/Xconfig
Xresources che legge Xservers, Xaccess
esegue poi
dtgreet che mostra la login mask
dopo la LOGIN partono
Xstartup
Xsession -> ~/.dtprofile|/usr/dt/config/sys.dtprofile se .dtprofile =
non esiste=20
/usr/dt/config/Xsession.d/ scripts
e' possibile modificare i msgs di greetings e altre cosine varie =
non strettamente necessarie all'utilizzo del WinMan
[~/.profile|.login] se specificato
/usr/dt/bin/dtsession -> /usr/dt/config/sys.resources=20
~/.Xdefaults
=09
alla LOGOUT parte
Xreset =09
Gestione dei Caratteri:
sed
awk
cut [-f LISTA -d SEPARATORE] NOMEFILE suddivide ogni linea in campi =
separati dal SEPARATORE e mostra solo i campi indicati in LISTA.
ex.=20
# cut -f 2,4 -d ' ' pippo.txt
dove pippo.txt continene a b c d e f
mostra b d
tail [-/+ n] [-f] mostra le ultime n righe di un file. Con l'opzione =
-f mostra eventuali modifiche del file. Utile per visualizzare i log in =
realtime.
head [-n LINEE] mostra le prime n righe di un file
Gestione dei processi
ps elenca i processi
fg mette un processo in Foreground
bg mette un processo in Background
job elenca i job attivi
------_=_NextPart_000_01C248DD.B8527860--