## page was renamed from ServerDiStorageConRaidLvm #format wiki #LANGUAGE it <
><> = 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: due da 16GB e uno da 50GB. Questo esempio è comunque adattabile a dischi di qualsiasi dimensione: è sufficiente applicare quanto detto nella spiegazione teorica appena fatta. Cominciamo con il disco meno capiente, uno di quelli da 16GB: esso può essere partizionato per la sua intera capacità, in quanto 16GB sono reperibili su 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: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xf76b45c4 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): +17100M 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 17100MB su /dev/sdb: è /dev/sdb1 Passiamo al secondo disco per capienza /dev/sdc, sempre da 16GB. In esso, creiamo una partizione della stessa dimensione di /dev/sdb1 (17100MB). Poi, creiamo un’altra partizione con lo spazio rimanente. Passiamo ora al terzo disco, /dev/sdd da 50GB. Anche in questo caso creiamo una partizione da 17100N, 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 ||17100M ||17100M ||17100M || ||2 || ||10700M ||36500M || = Costruzione degli array Raid = Come si può vedere dallo schema, in questo caso abbiamo una partizione da 17100M comune a 3 dischi (sdb1, sdc1, sdd1) e una da 36500M che sta solo su un disco (sdd2), e che pertanto al momento non potrà essere utilizzata. Si procederà dunque alla creazione di un array RAID 5 sulle partizioni sdb1, sdc1 e sdd1. Questo array sarà chiamato /dev/md0. Ecco come fare: {{{ sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 }}} Inizierà la costruzione degli array. Per controllare a che punto è: {{{ cat /proc/mdstat}}} È necessario attendere che la procedura sia completata prima di poter continuare. = Creazione di un volume logico con LVM = Si procederà ora ad unire i due dispositivi RAID che abbiamo creato in un unico volume logico, attraverso LVM. Innanzitutto, “prepariamo” i dispositivi: {{{ sudo pvcreate /dev/md0 }}} Creiamo poi un Volume Group formato dal volume RAID. Lo chiameremo lvm-raid: {{{ sudo vgcreate lvm-raid /dev/md0}}} Per avere dettagli sul Volume Group appena creato: {{{ sudo vgdisplay --- Volume group --- VG Name lvm-raid System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 31,86 GB PE Size 4,00 MB Total PE 8157 Alloc PE / Size 0 / 0 Free PE / Size 8157 / 31,86 GB VG UUID uKj0uI-Dwzs-2ZDv-tJnl-Kyn3-FK2o-aHTh4X }}} Vediamo che il Volume Group è formato da 8157 Physical Extents (Free PE). Creiamo ora un volume logico chiamato lvm0 con l’intero spazio a disposizione: {{{ sudo lvcreate -l 8157 lvm-raid -n lvm0 }}} == Formattazione del volume logico == Adesso, formattiamo il volume logico con il file system ext3. Esistono anche file system più veloci, ma la solidità di ext3 è imbattibile (almeno fino a quando ext4 non sarà stabile): {{{ sudo mkfs.ext3 /dev/lvm-raid/lvm0 }}} == Mount del volume logico == Infine, montiamo il volume logico nella sottocartella “share” della home directory dell’utente. {{{ mkdir share sudo mount /dev/lvm-raid/lvm0 share}}} Il volume logico è ora montato. Per far sì che venga montato automaticamente ad ogni avvio del sistema, editare il file /etc/fstab: {{{ sudo nano /etc/fstab}}} e aggiungere questa riga: {{{ /dev/lvm-raid/lvm0 /home/NomeUtente/share ext3 defaults 0 0}}} Per finire, salvate con CTRL+O e uscite con CTRL+X. = Configurazione di Samba = == Premessa == Per poter accedere al server dai sistemi Windows collegati in rete, è necessario configurare appropriatamente Samba, editando il file /etc/samba/smb.conf. Le opzioni di configurazione sono molte e variano a seconda delle esigenze. In questo esempio si configurerà una condivisione immediatamente accessibile a tutti gli utenti connessi alla rete, senza necessità di autenticazione e con permessi di lettura e scrittura sulle cartelle e sui file. Per configurazioni diverse, riferirsi all’apposita guida sulla configurazione di Samba. == Configurazione == Per editare il file di configurazione: {{{ sudo nano /etc/samba/smb.conf}}} Nella sezione [global] inserire le seguenti righe: {{{ security = share}}} {{{ guest account = nobody}}} Nella sezione “Share definitions” aggiungere quanto segue: {{{ [NomeCondivisione] comment = Descrizione condivisione path = /home/NomeUtente/share public = yes read only = no }}} Salvate e riavviate il sistema. A questo punto, la nuova condivisione dovrebbe essere visibile da Windows. Provate a copiarvi dentro un file. Se l’operazione produce un errore, è necessario modificare i permessi della cartella condivisa: {{{ sudo chmod 777 share }}} A questo punto tutto dovrebbe funzionare correttamente. = Controllare il server da remoto = Grazie all'opzione "OpenSSH Server" che abbiamo selezionato durante l'installazione, è possibile controllare il server da remoto attraverso un client SSH. Ad esempio, sui sistemi Windows è possibile utilizzare [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|Putty]]. La connessione avviene semplicemente inserendo il nome del computer server o il suo indirizzo di rete; è necessaria l’autenticazione con nome utente e password. = Ulteriori risorse = * Risorsa 1 * Risorsa 2 ---- CategoryHomepage