[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--