Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "CristianoChiucchiolo/Prove0"
Differenze tra le versioni 1 e 2
Versione 1 del 18/05/2008 10.20.48
Dimensione: 6905
Commento:
Versione 2 del 18/05/2008 11.35.34
Dimensione: 6899
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 90: Linea 90:
È bene creare uno schema di partizionamento, che può essere utile per il futuro, quando si tratterà di espandere un array o di recuperare un array danneggiato. Lo si può fare su un foglio di carta oppure su una tabella o foglio di calcolo. Ecco un esempio in questo caso: È bene creare uno schema di partizionamento, che può essere utile per il futuro, quando si tratterà di aggiungere un disco o sosostuirne uno danneggiato. Lo si può fare su un foglio di carta oppure su una tabella o foglio di calcolo. Ecco un esempio in questo caso:

BRIndice()

Introduzione

Lo scopo di questa guida è quello di mostrare come costruire un server di storage domestico, dove poter salvare i backup dei computer di casa e tutti i file che normalmente su conservano masterizzandoli su CD o DVD.

Tale server utilizzerà una combinazione di array RAID 5 e RAID 1 su partizioni per garantire la massima sicurezza dei dati; essi verranno poi riuniti in un unico volume logico attraverso LVM.

Si potranno utilizzare hard disk di dimensioni differenti e sarà possibile aggiungere ulteriori dischi in un secondo tempo al fine di espandere lo spazio disponibile, senza necessità di rompere gli array RAID e potendo quindi mantenere tutti i dati al loro posto. Il server sarà accessibile dai sistemi Windows connessi alla rete locale attraverso Samba, e sarà possibile controllare il server da remoto mediante OpenSSH.

Infine, si esamineranno le problematiche che possono mettere in pericolo i dati salvati nel server, individuandone ove possibile le soluzioni.

Installazione di Ubuntu

Per creare il server di storage utilizzeremo Ubuntu Server nella versione a 64 bit. Infatti, la versione a 32 bit impone pesanti limitazioni per quanto riguarda le dimensioni massime dei volumi logici di LVM, e se vogliamo avere un server espandibile da utilizzare per anni e anni di queste limitazioni non abbiamo proprio bisogno.

Al fine di utilizzare tutti gli slot disponibili all’interno del case (e della scheda madre) per lo storage, consiglio di installare il sistema operativo in una chiavetta USB. Tra l’altro, questo garantisce anche una maggiore silenziosità del sistema, perché gli hard disk gireranno solo quando verrà effettivamente utilizzato lo storage interno. Per garantire la massima espandibilità futura, consiglio di usare una chiavetta da almeno 2 GB.

Il server non dovrebbe montare una unità ottica, che occupa un prezioso slot ed è perfettamente inutile ai nostri fini. È possibile comunque utilizzarla per l’installazione iniziale del sistema da CD, per poi toglierla non appena l’installazione sia stata completata. Altrimenti, è possibile utilizzare un metodo alternativo di installazione, ad esempio quello da chiavetta USB, come descritto nella guida all’installazione di Ubuntu. Per evitare confusione, al momento dell’installazione del sistema è meglio avere collegata solo la chiavetta USB su cui Ubuntu verrà installato. Gli hard disk da utilizzare per lo storage verranno aggiunti successivamente.

L’installazione può essere effettuata seguendo la procedura standard. Nella schermata “Software Selection” selezionare “OpenSSH server” e “Samba File Server”.

Installazione del software necessario

Al primo avvio di Ubuntu, è necessario installare mdadm (serve a creare gli array RAID) e LVM:

sudo apt-get install mdadm
sudo apt-get install lvm2

Fatto ciò, arrestate il sistema:

sudo init 0

Partizionamento dei dischi

Collegate gli hard disk da utilizzare per lo storage (almeno due per iniziare) e avviate il sistema: è il momento di partizionare i dischi e creare gli array RAID necessari.

Criteri per il partizionamento dei dischi

Per poter utilizzare dischi di dimensioni diverse sfruttandone l’intero spazio, è necessario costruire diversi array RAID su partizioni, non su interi dischi. I dischi disponibili vanno partizionati in modo che vi siano partizioni della stessa dimensione su più dischi. Quando una partizione con la stessa dimensione è presente su più di due dischi, vi si costruirà sopra un array RAID 5; quando è presente su due soli dischi, vi si costruirà sopra un array RAID 1; quando è presente su un solo disco (perché evidentemente quel disco è più capiente di tutti gli altri) rimarrà inutilizzata, ma solo temporaneamente: potrà infatti essere utilizzata quando verrà aggiunto un nuovo disco, oppure quando un disco sarà sostituito con uno più capiente.

Esempio pratico di partizionamento

Immaginiamo di aver collegato tre hard disk di dimensioni diverse: uno da 10GB, uno da 20GB e uno da 30GB. Questo esempio è comunque adattabile a dischi di qualsiasi dimensione: è sufficiente applicare quanto detto nella spiegazione teorica appena fatta.

Cominciamo con il disco meno capiente, quello da 10GB: esso può essere partizionato per la sua intera capacità, in quanto 10GB sono reperibili in tutti gli altri dischi:

sudo fdisk /dev/sdb

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x691f3b75

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): 
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305): +10700M

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

In tal modo abbiamo creato una partizione da 10700MB su /dev/sdb: è /dev/sdb1

Passiamo al secondo disco per capienza, /dev/sdc da 20GB. In esso, creiamo innanzitutto una partizione della stessa dimensione di /dev/sdb1 (10700MB). Poi, creiamo un’altra partizione con lo spazio rimanente. Avremo ottenuto due partizioni da 10700MB, dev/sdc1 e /dev/sdc2 (in questo caso le due partizioni hanno la stessa dimensione perché i dischi dell’esempio sono esattamente uno il doppio dell’altro come capienza, ma questo non è detto che avvenga nella realtà).

Passiamo al terzo disco, /dev/sdd. Anche in questo caso creiamo due partizioni della stessa dimensione di quelle create sul secondo disco, e poi creiamo un’altra partizione con lo spazio rimanente.

Schema di partizionamento

È bene creare uno schema di partizionamento, che può essere utile per il futuro, quando si tratterà di aggiungere un disco o sosostuirne uno danneggiato. Lo si può fare su un foglio di carta oppure su una tabella o foglio di calcolo. Ecco un esempio in questo caso:

Dev

sdb

sdc

sdd

n

1

10700M

10700M

10700M

2

10700M

10700M

3

10700M

Ulteriori risorse

  • Risorsa 1
  • Risorsa 2