--- /dev/null
+===============================
+GlusterFS
+===============================
+----------------------------------------------------------
+Appunti sulla installazione e configurazione di Gluster
+----------------------------------------------------------
+
+ :Author: Andrea Manni
+ :Copyright: GFDL
+ :Version: 0.1
+
+Questa guida e' dedicata a GlusterFS (d'ora in poi citato Gluster)::
+
+ GlusterFS is an free / open source clustered file system capable of scaling to several petabytes and handling thousands of clients. GlusterFS clusters together storage building blocks, aggregating disk and memory resources and managing data in a single global namespace.
+
+ A key advantage is the GlusterFS modular architecture that allows modules to be stacked to match user requirements. You can use GlusterFS to quickly configure a standalone server system and later expand the system as your needs grow.
+
+ GlusterFS includes a configuration utility to handle standard workloads. This document describes how to select the appropriate options for your needs and install and configure GlusterFS to best support them.
+
+.. sectnum::
+
+.. contents:: Indice degli argomenti
+
+Generato con: http://docutils.sourceforge.net/rst.html
+
+Installazione
+=========================
+
+
+Links:
+ - http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems
+ - http://www.gluster.com/products/index.php
+ - http://www.gluster.com/community/documentation/index.php/Storage_Server_Installation_and_Configuration#Installing_on_GNU.2FLinux
+
+
+
+
+
+
+
+
+
+
+Alla data attuale (6/10/2009) Gluster non e' disponibile negli archivi di Debian stable (Lenny), ma solo in Sid dove per altro non risulta aggiornata all'ultima versione disponibile (che presenta un diverso modo di creare i clusters).
+
+Sono invece disponibili i pacchetti per Squeeze direttamente dal sito di Gluster:
+
+ - http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/Debian/README.Debian
+
+Il sorgente e' disponibile da:
+
+ - http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/
+
+
+
+
+Compilazione
+----------------
+
+Queste istruzioni valgono per Gluster v. 2.0.7 su Debian Lenny:
+
+ conny:/usr/src/gluster# pwd
+ /usr/src/gluster
+
+ wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.7.tar.gz
+
+ tar -zxf glusterfs-2.0.7.tar.gz
+ cd glusterfs-2.0.7/
+ apt-get install make flex bison fuse-utils libfuse2 libfuse-dev fuse-utils libfuse2 libdb-dev
+ ./configure
+
+ make && make install
+ ldconfig
+ glusterfs --version
+
+
+Dipendenze per la compilazione (per avere il supporto a fuse e BerkleyDB)::
+
+ make flex bison fuse-utils libfuse2 libfuse-dev fuse-utils libfuse2 libdb-dev
+
+
+
+Cachefs
+------------
+
+Si guardi anche cache fs:
+ - http://www.mjmwired.net/kernel/Documentation/filesystems/caching/cachefiles.txt
+ -
+
+
+Livelli
+
+primo
+=============
+
+secondo
+-------------
+
+terzo
+~~~~~~~~~~~~~~~
.. image:: img/blade_server.jpg
Un server e' un elaboratore che tipicamente eroga servizi a molti *utenti* (clients) e offre continuita' del servizio: un server tipicamente resta acceso 24/7 mentre una workstation otto ore al giorno. L'hardware di un server (in particolare le parti in movimento piu' soggette a usura: alimentatore, ventole, hard disks) dovrebbero quindi essere in grado di funzionare tutto il giorno tutti i giorni, dato che l'interruzione, seppur temporanea, dell'erogazione dei servizi puo' compromettere la produttivita' di molti *clients*.
-Componenti come alimentatore o hard disk hanno comunque una vita limitata (anche se di *buona* qualita') e in previsione di un loro malfunzionamento e' possibile implementare sistemi di *ridondanza* relativamente economici come RAID_ e alimentazione ridondante. Puo' essere possibile a seconda del tipo di hardware sostituire *al volo* (hot swap) i componenti guasti senza essere costretti a spegnere la macchina per l'intervento di manutenzione.
+Componenti come alimentatore o hard disk hanno comunque una vita limitata (anche se di *buona* qualita') e in previsione di un loro malfunzionamento e' possibile implementare sistemi di *ridondanza* relativamente economici come RAID_ e alimentazione ridondante. Puo' essere possibile a seconda del tipo di hardware sostituire *al volo* (hot swap) i componenti guasti senza essere costretti a spegnere la macchina durante l'intervento di manutenzione.
.. _RAID: http://it.wikipedia.org/wiki/RAID
-I requisiti di capacita' di calcolo e memoria avranno da calcolare in base ai requisiti dei servizi in esecuzione sul server in relazione al numero dei client collegati e effettivo utilizzo di questi. Non e' raro trovare server con quantitativi di *RAM* o *CPU* ben piu' limitati dei clients che servono quando i servizi sono poco esosi di risorse o le richieste relativamente frequenti e sopratutto senza picchi di utilizzo. Alcuni servizi fondamentali come DNS, routing o firewall possono saturare la banda disponibile del server ben prima delle altre risorse di sistema. Capita ritrovare vecchie work-station in disuso, ormai sostituite da macchine piu' recenti e prestanti, svolgere decorosamente queste funzioni. Il che' rappresenta un'interessante opzione di reciclo, per quanto il consumo elettrico sia il piu' delle volte sproporzionato al lavoro svolto (tenendo come riferimento macchine a bassissiimo costo di derivazione embedded o NAS di produzione recente, ma il discorso si farebbe complicato...) .
+I requisiti di capacita' di calcolo e memoria saranno da calcolare in base ai requisiti dei servizi in esecuzione sul server in relazione al numero dei client collegati e effettivo utilizzo di questi. Non e' raro trovare server con quantitativi di *RAM* o *CPU* ben piu' limitati dei clients che servono quando i servizi sono poco esosi di risorse o le richieste relativamente frequenti e sopratutto senza picchi di utilizzo. Alcuni servizi fondamentali come DNS, routing o firewall possono saturare la banda disponibile del server ben prima delle altre risorse di sistema. Capita ritrovare vecchie work-station in disuso, ormai sostituite da macchine piu' recenti e prestanti, svolgere decorosamente queste funzioni. Il che' rappresenta un'interessante opzione di reciclo, per quanto il consumo elettrico sia il piu' delle volte sproporzionato al lavoro svolto (tenendo come riferimento macchine a bassissiimo costo di derivazione embedded o NAS di produzione recente, ma il discorso si farebbe complicato...) .
Tipicamente i server hanno capacita' di *collegamento* (hardware di rete) superiori ai singoli client (in proporzione alle macchine che devono servire), ma dato che *spesso* client e server condividono la stessa architettura hardware non e' semplice fare in modo che i server siano in grado di gestire input/output in quantita' direttamente proporzionale al numero dei clients. Si tenga conto che molti servizi non prevedono un flusso costante di dati ma solo chiamate sporadiche: questo permette di poter pianificare la ampiezza di banda necessaria al server sul valore massimo *stimato* di connessioni che si potrebbero verificare in un singolo momento piuttosto che sul reale numero di clients.
Vim e' l'editor di testo preferito dai sistemisti, quindi sara' conveniente impostare fin da subito alcune impostazioni per renderlo piu' comodo.
-Assicurarsi che sia installata nel sistema la versione completa dell'editor ``vim`` installando il pacchetto ``vim``::
+Assicurarsi che sia installata nel sistema la versione completa dell'editor installando il pacchetto ``vim``::
# apt-get install vim
- e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
+
+Modificare poi il file di configurazione generale ``/etc/vim/vimrc`` ::
" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
Acquire::http::Proxy "http://10.10.208.254:3128";
-Si tenga conto che se si imposta un proxy per apt sul proprio portatile e tornati a casa propria si vuole scaricare nuovi pacchetti si dovra' disabilitare il proxy.
+Si tenga conto che se si imposta un proxy per apt sul proprio portatile e tornati a casa propria si vuole scaricare nuovi pacchetti si dovra' disabilitare il proxy commentando la riga con ";" (''punto-e-virgola'')::
+
+
Squid
======
-Squid e' un proxy cache http (ma anche FTP e https) robusto e strutturato, puo' essere usato sia in reti relativamente piccole grazie alla semplicita' di configurazione che in scenari piu' complessi grazie alla possibilita' di gestirne in modo granulare le risorse. Si partira' dalle configurazioni piu' semplici per la semplice *condivisione della navigazione* internet, per poi poter configurare la gestione degli accessi, il filtraggio dei contenuti (Squid e' una applicazione che si muove nel 4' livello del modello TCP/IP a differenza di un *ipfilter* limitato al 2') nel l bilanciamento del carico tra piu' hosts.
+Squid e' un proxy cache http (ma anche FTP e https) robusto e strutturato, puo' essere usato sia in reti relativamente semplici che in scenari piu' complessi grazie alla possibilita' di gestirne in modo granulare le risorse. Si partira' dalle configurazioni piu' semplici per la semplice *condivisione della navigazione* internet, per poi poter configurare la gestione degli accessi, il filtraggio dei contenuti (Squid e' una applicazione che si muove nel 4' livello del modello TCP/IP a differenza di un *ipfilter* limitato al 2'), nel bilanciamento del carico tra piu' server proxy.
Inoltre Squid svolge la funzione di *anonymizer*:
- nasconde i client http alla rete internet: risulta solo il server proxy nei log dei server web frequentati dagli utenti di Squid.
+ nasconde i client http alla rete internet: e' solo il server proxy a risultare nei log dei server web frequentati dagli utenti di Squid. Glu utenti non sono percepiti ed esposti all'esterno.
-Cosa a volte sottovalutata, Squid permette la navigazione web a una rete basata su *indirizzi IP privati* (es una 192.168.0.0/24). E se la rete privata deve *solo navigare* in internet, non serve un *NAT* od altro, basta il solo Squid. Per altro non servira' neanche un servizio DNS dato che *sara' il solo Squid a risolvere i nomi di dominio* per i suoi client http.
+Cosa a volte sottovalutata, Squid permette la navigazione web a una rete basata su *indirizzi IP privati* (es una 192.168.0.0/24). E se la rete privata deve *solo navigare* in internet, non serve dover introdurre nella rete un *NAT* (si veda la sezione sui firewall) per condividere la connessione, basta il solo Squid. Per altro non servira' neanche un servizio DNS utilizzabile dai clients dato che *sara' il solo Squid a risolvere i nomi di dominio* per i suoi client http.
Squid ascolta di default sulla porta 3128, per impostare *apt* per utilizzarlo si aggiunga ad ``/etc/apt/apt.conf`` ::
~~~~~~~~~~~~
Per limitare attacchi di tipo brute force su SSH::
+
iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 3000 --hitcount 4 --name DEFAULT --rsource -j DROP
iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource