Quando si tratta di aggiungere un nuovo hard disk ad un server GNU Linux non sempre tutti sono d’accordo sul fatto che si tratti proprio di una passeggiata; soprattutto se questa operazione viene eseguita “a caldo”.
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, non viene installato il Desktop Manager; questo è giustificato da diverse motivazioni:
- 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 e senza l’aiuto di tool visuali
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) Virtualbox, ma ciò non toglie nulla all’essenza dell’esercizio.
- Il nuovo hard disk 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 GNU Linux recente.
- Tutte le operazioni descritte in questo posto sono state eseguite su un server appena installato al quale sono state applicate alcune operazioni preliminari di post-installazione.
Prima di inserire il nuovo hard disk
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 server Linux che ho utilizzato per questo post:
[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), se presenti; 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 possono essere equipaggiati con controller che permettono di inserire e disinserire “a caldo” i dischi. Solitamente si tratta controller di fascia medio-alta che accolgono dischi SCSI o SAS, costruttivamente diversi (almeno nell’elettronica) dai ben noti dischi SATA dei computer Desktop di tipo Consumer.
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.
Se invece il sistema non è ancora in grado di rilevare il nuovo hard disk, allora sarà necessario fare una scansione del Bus.
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
Questo comando qui sopra, fa tutto il lavoro sporco per me in un colpo solo.
Se è andato tutto come previsto, 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.
Anche queste operazioni possono essere eseguite a caldo e senza interruzione dei servizi; ossia, mentre il server continua tranquillamente a fare il proprio lavoro.
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.
CondividiDisclaimer
Questa pagina potrebbe contenere link di affiliazione. Gli acquisti o gli ordini che effettuerai tramite tali link possono generare commissioni che ci aiutano a sostenere questo sito web.