Red Hat Linux

La distribuzione Linux/GNU Red Hat e' una delle piu' diffuse negli ambienti Enterprise.

La distribuzione Red Hat offre un ambiente operativo Linux 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. La versione di riferimento e' la 5.x, ma sono riportate indicazioni valide anche per le altre versioni.

Gestione degli spazi

Il file che contiene la definizione dei file system da montare e' /etc/fstab. Il comando per controllare i file system e' il solito df -k oppure, piu' leggibile per noi umani df -h.
La gestione dei dischi si effettua con fdisk, la creazione dei file system con mkfs, ...

Inoltre il sistema operativo e' fornito con un affidabile e completo Volume Manager (LVM) molto, molto simile a quello di HP-UX. Per la gestione dei volumi di dischi si utilizzano i comandi vg lv ... (eg. vgdisplay -v riporta la configurazione completa dei Volume Group).

Ma al posto di tante parole... meglio un esempio:

# Configurare le partizioni del disco come 8e (Linux LVM)
fdisk /dev/sdb
fdisk -l

# Creazione Volume Group, Logical Volume, formattazione FSs e mount
pvcreate /dev/sdb1
vgcreate vg_oradata /dev/sdb1
vgdisplay

lvcreate -n lv_oradata  -l 7679 vg_oradata /* oppure */ lvcreate -l 100%FREE -n lv_oracle vg_oracle
lvdisplay

mkfs.ext3 -m 1 /dev/vg_oradata/lv_oradata

mkdir /ora01
mount /dev/vg_oradata/lv_oradata /ora01/

# configurare il mount al boot
vi /etc/fstab

Una volta creati i FS appoggiati su LVM la gestione e' molto flessibile. E' possibile allargare un file system senza modificare il partizionamento e neanche smontare il file system:

lvextend -L+4G /dev/VolGroup00/LogVol01
resize2fs /dev/VolGroup00/LogVol01
Per ridurre la dimensione di un FS va smontato, ridotto il FS, ridotto il volume "contenitore" e rimontato tutto. Comunque si fa in pochi secondi con:
umount /home
e2fsck -f /dev/VolGroup00/LogVol02
resize2fs /dev/VolGroup00/LogVol02 69G
lvreduce -L-11G /dev/VolGroup00/LogVol02
mount /home
Generalmente funziona tutto senza problemi. In ogni caso i FS ext3 sono journaled e quindi robusti. In qualche caso il journal puo' essere troppo piccolo; per aumentarne le dimensioni basta cancellarlo e ricrearlo:
dumpe2fs /dev/VolGroup00/LogVol02 | grep Journal
tune2fs -O ^has_journal /dev/VolGroup00/LogVol02
tune2fs -j /dev/VolGroup00/LogVol02
dumpe2fs /dev/VolGroup00/LogVol02 | grep Journal

Gestione degli utenti

Il file /etc/passwd ha il classico formato BSD. E' presente il corrispondente file /etc/shadow con le password leggibile solo da root.

Gli utenti ed i gruppi vengono tipicamente creati con i comandi useradd groupadd.

Networking

La configurazione del networking, a parte qualche amenita' sintattica, e' analoga a tutti gli altri unix: ifconfig eth0 10.0.0.10 netmask 255.255.255.0 broadcast 10.0.0.255; route add default gw 10.0.0.1 A questo punto la macchina e' accessibile da rete e si puo' configurare via ssh anziche' da console. La configurazione permanente avviene impostando alcuni file posti in /etc/sysconfig. Un esempio?
hostaname myhost.mydomain
vi /etc/sysconfig/network
vi /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
vi /etc/resolv.conf
Ovviamente eth0:0 e' un IP virtuale e l'ultimo comando serve per impostare il DNS...

Controllo del sistema

La directory dei messaggi di sistema e' /var/log ed i principali file sono messages lastlog secure wtmp ....

Configurazioni particolari

I sistemi Red Hat possono condividere pool di dischi ed essere configurati in cluster. Il software di cluster fornito con il sistema operativo e' la Red Hat Cluster Suite.

In tal caso i Volume Group debbono essere configurati per "puntare" a dischi visti in comune da due sistemi.

Swap

Le aree di swap consentono di portare aree di memoria su disco quando lo spazio in memoria non e' piu' sufficiente. Lo spaw propriamente detto e' la tecnica nata storicamente per prima, in realta' queste aree sono utilizzate anche e sopratutto per la paginazione.

Come fare? Cosi':

# Check space, configuration and usage
free
swapon -s
top
df -h
cat /proc/sys/vm/swappiness
sar -B

# Allocate and use swap space
fallocate -l 16G /swapfile01
chmod 600 /swapfile01

mkswap -f /var/swapfile01
swapon /swapfile01


# /etc/fstab
/swapfile01   swap    swap    sw  0   0

# /etc/sysctl.conf
vm.swappiness = 0

Miscellanea

Per inserire nuovi servizi attivati al boot del sistema e' sufficiente creare i relativi file di attivazione nelle directory /etc/rc2.d o /etc/rc3.d. Il modo corretto e' quello di inserire gli script in /etc/init.d/script e porre in /sbin/rcX un link con il nome corretto per la sequenza di attivazione.
In realta' i comandi corretti sono chkconfig e service... ma fanno la stessa cosa!

Il bootstrap utilizza tipicamente il grub che e' configurato nel file /boot/grub/grub.conf dove trovano posto gli eventuali parametri del kernel passati da linea di comando. Nella sequenza di boot il grub carica il kernel. Quindi il processo 1 (init) si occupa di far partire tutti i servizi come configurato in /etc/inittab (che contiene anche l'avvio degli script rc).
Le configurazioni statiche dei parametri del kernel vengono poste nel file /etc/sysctl.conf. Il file system /proc contiene l'immagine di tutte le strutture del sistema a runtime e consente il controllo e la modifica dei parametri del kernel in ogni momento. Ad esempio per impostare i parametri relativi ai semafori (semmsl, semmns, semopm, semmni) e controllare le caratteristiche delle CPU presenti:

 echo 256 32000 100 128 > /proc/sys/kernel/sem
 cat /proc/cpuinfo
La configurazione dello ulimit si effettua nel file /etc/security/limits.conf
 *               soft    nproc           2047
 *               hard    nproc           16384
 *               soft    nofile          2048
 *               hard    nofile          16384
La configurazione dei parametri di tuning dell'I/O puo' essere effettuata on line. Ad esempio con echo deadline > /sys/block/sda/queue/scheduler si imposta l'elevator a deadline (il default e' cfq). Nelle versioni precedenti la configurazione non poteva essere effettuata online (4.X) oppure richiedeva comandi specifici (elvtune).

Per effettuare l'installazione/aggiornamento di programmi si utilizzano i comandi rpm (comando introdotto da RH e poi diventato molto comune su tutti i Linux) e yum (che scarica direttamente da Internet gli ultimi aggiornamenti). Con rpm -qa si ottiene l'elenco completo dei pacchetti installati.

Sui sistemi RH un disco ha generalmente il nome /dev/hdisk55.

Per controllare la dimensione dell'area di swap: swapon -s. La memoria di sistema si controlla con free -t.
Le patch possone essere scaricate da Internet dal sito http://redhat.com se si ha un contratto di supporto.

Per il debug di applicazioni o il problem solving sono disponibili su RH molti SW comuni in ambiente unix (eg. strace (analogo del truss su SUN), lsof, top, ...). Alcuni sono SW di pubblico dominio e debbono essere scaricati da Internet.
La gestione dei moduli caricati dinamicamente nel kernel si effettua con sysctl.

L'elenco delle schede di rete si ottiene con il comando ifconfig -a.

Versioni

Attualmente le versione supportate del sistema operativo sono 4.x, 5.x e 6.x. Con RH non si acquisisce una licenza ma il supporto annuale che da diritto al download dei binari, all'aggiornamento automatico ed, ovviamente al supporto. RH e' disponibile nella versione base "Enterprise Linux" (fino a 2 CPU socket) ed "Advanced Platform" con livelli di supporto differenti.

Un documento molto piu' recente e sempre aggiornato sulle versioni di Red Hat e' questa pagina.

Link

Si trova tutto sul sito ufficiale http://www.redhat.com o cercando su Google...


Testo: Linux Red Hat

Data: 31 Aprile 2009

Versione: 1.0.2 - 14 Febbraio 2013

Autore: mail@meo.bogliolo.name