Come aggiungere un nuovo disco in un server GNU Linux

Quando si tratta di aggiungere un nuovo disco ad un server GNU Linux non sempre tutti sono d'accordo sul fatto che si tratti proprio di una passeggiata.

Se è vero che il Desktop Manager è di grande aiuto per le installazioni Desktop del sistema operativo del pinguino, quando questo utilissimo strumento viene a mancare, di solito alcuni pensano iniziano i guai. Personalmente invece penso che sia anche meglio.

Solitamente, in una installazione server, infatti, non viene installato il Desktop Manager. Questo accade per diversi motivi:

  • Minore Footprint del sistema operativo
  • Maggiori performance per l'assenza di processi che richiedono Rendering grafico
  • Maggiore memoria libera per i processi essenziali (mail server, http server, eccetera)

Tuttavia, come accennato, in una installazione GNU Linux Server non abbiamo nessun aiuto, e ci toccherà fare tutto manualmente.

Ma niente paura; aggiungere un nuovo hard disk ad un server Linux è più facile a dirsi che a farsi. Basta seguire questa breve guida ed anche coloro che si sono accostati da poco al Magico Mondo di Linux, riusciranno con successo nell'impresa.

Il Contesto

Prima di procedere può essere utile qualche informazione sul contesto nel quale operare. Infatti, non tutti i sistemi sono uguali, così come pure non tutti i dischi sono uguali (anche i sistemisti non sono tutti uguali, ma questa è un'altra storia.

Quindi, per amor di chiarezza, cercherò di descrivere al meglio il contesto e soprattutto l'ambiente che ho utilizzato per scrivere questo sintetico How To e gli esempi a corredo. Non a caso, tutti gli esempi che incontrerai più oltre, sono tutti esempi reali; ossia, non presi da qualche altra guida teorica chissà dove, ma il frutto di una implementazione fatta davvero.

  • La macchina utilizzata è una Macchina Virtuale (VM), ma ciò non toglie nulla all'essenza dell'esercizio.
  • Il disco aggiunto è un disco anch'esso virtuale. Anche qui, al di la dei nomi dei device, c'è ben poco di diverso da un vero disco (dopotutto una macchina virtuale è pur sempre una emulazione di una fisica).
  • La distribuzione GNU Linux usata per l'esercizio è una CentOS 7.6.1810, ma può essere utilizzata qualsiasi altra distribuzione Linux recente.

Prima di cominciare

Prima di iniziare qualsiasi operazione sarebbe opportuno verificare lo stato delle cose attuale, controllando quanti e quali Block Device siano presenti. Ciò può essere fatto con il comando ls -l /sys/block/.

Questo è ciò che "vede" il mio sistema Linux

[root@centauro ~]# ls -l /sys/block/
total 0
lrwxrwxrwx. 1 root root 0 28 mag 13.10 dm-0 -> ../devices/virtual/block/dm-0
lrwxrwxrwx. 1 root root 0 28 mag 13.10 dm-1 -> ../devices/virtual/block/dm-1
lrwxrwxrwx. 1 root root 0 28 mag 13.10 sda -> ../devices/pci0000:00/0000:00:05.0/virtio1/host2/target2:0:0/2:0:0:0/block/sda
lrwxrwxrwx. 1 root root 0 28 mag 13.10 sr0 -> ../devices/pci0000:00/0000:00:01.1/ata2/host1/target1:0:0/1:0:0:0/block/sr0

Che ci da una panoramica di tutti i Block Device presenti.

Notare che i device sono mostrati come link simbolici all'effettivo path dei dispositivi, così che possano essere riconosciuti con i nomi che ci sono più familiari (sda per il primo hard disk, sr0 per il primo lettore CD-ROM, eccetera).

Notare anche che i device mostrati non sono solo gli hard disk fisici, ma anche i device di tipo LVM (Logical Volume Manager); in definitiva anche i volumi logici (LVM) sono anch'essi dei Block Device!

Tuttavia, per lo scopo di questo How To prenderemo in considerazione solo ciò che ha a che fare con gli hard disk

Come si riconoscono gli hard disk? Orbene, gli hard drive fisici, almeno nei computer non troppo datati, sono ovviamente connessi ad un bus PCI. Quindi sono quelli il cui link simbolico "punta" a qualcosa che inizia con ../devices/pci. Ossia, nell'elenco qui sopra: sda e sr0.

Inseriamo il nuovo Hard Disk

Qui va fatto un breve distinguo. In una macchina virtuale avviata si possono aggiungere dischi virtuali anche a macchina accesa e sistema operativo avviato senza causare alcun danno.

Diversamente, in un server fisico la cosa richiede un minimo di attenzione e soprattutto di conoscenza del hardware che abbiamo tra le mani. Infatti, alcuni server sono equipaggiati con controller che permettono di inserire e disinserire "a caldo" i dischi. Solitamente si tratta di dischi SCSI o SAS costruttivamente diversi (almeno nell'elettronica) dai ben noti dischi SATA dei computer Desktop.

Ad ogni buon conto, possiamo assumere che il nuovo disco (qualunque esso sia, è finalmente connesso al sistema.

Disco inserito, e adesso?

È possibile che il sistema abbia già rilevato autonomamente il nuovo disco (questo dipende da molti fattori che non discuteremo qui), ma è anche possibile che il nuovo disco non sia ancora "visto" dal sistema operativo.

Per verificare se il nuovo hard disk è visibile dal sistema possiamo verificare con il comando ls -l /sys/block che abbiamo già usato prima di cominciare.

[root@centauro ~]# ls -l /sys/block/
total 0
lrwxrwxrwx. 1 root root 0 28 mag 13.10 dm-0 -> ../devices/virtual/block/dm-0
lrwxrwxrwx. 1 root root 0 28 mag 13.10 dm-1 -> ../devices/virtual/block/dm-1
lrwxrwxrwx. 1 root root 0 28 mag 13.10 sda -> ../devices/pci0000:00/0000:00:05.0/virtio1/host2/target2:0:0/2:0:0:0/block/sda
lrwxrwxrwx. 1 root root 0 28 mag 14.41 sdb -> ../devices/pci0000:00/0000:00:05.0/virtio1/host2/target2:0:0/2:0:0:1/block/sdb
lrwxrwxrwx. 1 root root 0 28 mag 13.10 sr0 -> ../devices/pci0000:00/0000:00:01.1/ata2/host1/target1:0:0/1:0:0:0/block/sr0

In questo ultimo listato è ben visibile il nuovo device sdb (evidenziato in rosso) che è stato rilevato automaticamente del sistema ed appena inserito nella dilsta dei block device.

La scansione del Bus

Va detto che potrebbe andare storto qualcosa, oppure l'hardware del server è piuttosto obsoleto ed il sistema operativo potrebbe non essere stato informato del fatto che ora c'è un nuovo dispositivo di storage di cui tenere conto e quindi il link simbolico del nuovo device potrebbe ancora non esistere all'interno del sistema. In ogni caso è possibile eseguire una scansione del bus SCSI; una specie di "spintarella" al sistema al sistema per costringerlo ad ispezionare tutti i dispositivi eventualmente connessi al bus SCSI.

Eseguire la scansione del Bus SCSI signigica, di fatto, esegue il comando echo "- - -" > /sys/class/scsi_host/hostX/scan dove 'X' è il numero del host SCSI e il simbolo '-' ripetuto tre volte indica rispettivamente il numero del controller SCSI, il canale del controller e la LUN (Logical Unit Number) del dispositivo. Quindi questo comando viene eseguito su tutti i controller SCSI, su tutti i canali e per tutte le LUN.

Per facilitare la scansione di tutti i dispositivi senza troppi grattacapi, personalmente preverisco utilizzare questo comando

for SHOST in /sys/class/scsi_host/host*; do echo "- - -" > ${SHOST}/scan; done

... che fa tutto il lavoro sporco per me in un colpo solo.

Se è andato tutto come previsto ed eseguo il listato degli host device, con il comando ls -l /sys/class/scsi_host/host*/scan, dovrei finalmente "vedere" il nuovo hard disk.

[root@centauro ~]# ls -l /sys/class/scsi_host/host*/scan
--w-------. 1 root root 4096 7 giu 10.56 /sys/class/scsi_host/host0/scan
--w-------. 1 root root 4096 7 giu 10.56 /sys/class/scsi_host/host1/scan
--w-------. 1 root root 4096 7 giu 10.56 /sys/class/scsi_host/host2/scan

Et voilà. E senza riavviare il sistema!

Il nuovo disco è finalmente pronto per essere utilizzato. Ora non resta che:

  • Creare una partition table, con una o più partizioni;
  • Creare i filesystem che ci servono nelle partizioni appena create;
  • Montare i filesystem per l'utilizzo che ne vorremmo fare.

Conclusioni

Lavorare con i server spesso significa non dover mai riavviare il sistema, per evitare di interrompere i servizi. Aggiungere nuovo spazio di storage aggiungendo nuovi dischi, abbiamo visto che si può fare senza interferire con il lavoro del server, ossia senza che gli utenti del sistema possano avere il benché minimo sentore di ciò che sta accadendo agli strati bassi della macchina.

Sfruttando la grande flessibilità di Linux, questo genere di task sono davvero una passeggiata.

 

Lascia un commento

Tutti i commenti dovranno essere verificati ed approvati dal webmaster, prima di essere pubblicati

 

Quote of the Day

Noi siamo macchine di sopravvivenza – veicoli robot ciecamente programmati per salvaguardare quelle molecole egoiste che chiamiamo geni.

Richard Dawkins («Il gene egoista»)

Chi è online

Abbiamo 258 visitatori e nessun utente online

Newsletter

Per essere sempre aggiornato sulle ultime novità del sito.
Go to top