Mac OSx Monterey (e precedenti) e la questione della gestione di set RAID.
Dalla versione OS X El Capitan, per non si capisce bene quale motivo, Apple ha deciso di togliere la possibilità di creare dei dischi RAID da due o più volumi. Cosa sia un set di dischi RAID potete leggerlo andando a questa pagina del Wiki italiano.
Originalmente Apple permetteva di creare dei set RAID in modo piuttosto veloce: era una funzione prevista dall'applicazione Utility Disco
, nativo del sistema operativo. Al giorno d'oggi trovate, invece, questa schermata:
per ogni disco interno, o esterno, visibile sul vostro Mac.
Mentre sino alla versione precedente alla OS X El Capitan la schermata per ogni disco era:
Al di là del colore, noterete l’assenza di un panel in particolare nell’ultima versione del sistema operativo dell’Apple: il pannello RAID.
Quest’ultimo è scomparso sin dalla versione El Capitan. Quale siano stati i motivi per cui abbiano cessato di fornire la, comoda, possibilità di generare dei set RAID in modo così elementare, non è dato da sapere.
Da sapere, invece, c’è che una certa pigrizia da parte di qualcuno in casa Apple ha fatto, e questo fa comodo a noi che necessitiamo di un RAID: hanno eliminato la parte grafica, il pannello RAID, dal programma Utility Disco
, ma non il software relativo.
In realtà non si tratta di pigrizia, ma di lungimiranza: come ben immaginate il pannello altro non è che un interfaccia grafica, per semplificare la vita all’utente, verso un comando vero e proprio del sistema operativo: il comando in questione è diskutil
.
Per togliere definitivamente la gestione dei set RAID, dal sistema operativo, avrebbero dovuto prendere il sorgente di diskutil, cancellare la parte del programma inerente la gestione del RAID, ricompilare il programma e distribuirlo tramite una aggiornamento a tutti gli utenti in giro per il mondo.
Ovviamente questo non era fattibile, non tanto per i programmatori, ma per una questione, chiamata in gergo tecnico, backward compatibility. Cosa significa? Che non puoi permetterti di fare delle modifiche, ad un programma, senza considerare che conseguenze avrà sugli utenti che lo usavano in passato e che si troverebbero nelle peste perché il programma non fa più quello che doveva.
Un esempio facile: io utente, di vecchia data, ho una serie di set RAID che uso come backup o per qualsiasi altro motivo, dopo un aggiornamento in cui avessero levato la gestione dei set RAID mi sarei trovato senza più avere la possibilità di usarli e quindi a non avere più tutti i miei dati salvati, sui miei eventuali set RAID, creati in precedenza con il software prodotto dalla Apple stesso.
Probabilmente è questo il motivo per cui, al di là della sparizione del tab dedicato nel programma Utility Disco
, resta viva la gestione in tutti i suoi campi dei set RAID.
Quindi passiamo alla pratica. Avete due, o più, dischi che volete mettere in RAID 1, ossia mirroring: per questo esempio userò dei dischi che si attestano a /dev/disk10
e /dev/disk11
Per quanto riguarda i tipi di RAID supportati di Apple ecco una piccola descrizione:
RAID 0
: noto anche come RAID "striping", ciò che fa è che combina più dischi in un unico volume più grande. I dati memorizzati in un simile array sono distribuiti quasi equamente tra tutti i dischi dell'array stesso. Ciò consente tempi di lettura e scrittura più veloci . Esiste tuttavia un problema, se uno dei dischi nel proprio livello 0 RAID non funziona, diventa quasi impossibile recuperare i dati dagli altri dischi, perché nessun disco contiene tutti i dati. Questo livello è particolarmente utile per le persone che lavorano con file di grandi dimensioni.RAID 1
: questo livello è chiamato RAID "mirror" e fa esattamente quello che sembra. Riflette il contenuto di un disco su ogni singolo disco dell'array . Ciò significa che se uno o più dischi si guastano, è comunque possibile ripristinare tutti i dati fino a quando almeno un disco dell'array funziona correttamente. Questo è possibile perché i dati vengono copiati su ogni disco dell'array.RAID 2
(o CDS / JBOD : Concatenated Disk Set, noto anche come Just a Bunch Of Disks non è in realtà una configurazione propriamente RAID. Permette semplicemente di concatenare un numero di dischi in un unico grande volume logico. Supponiamo, ad esempio, di avere quattro dischi da 256 GB. RAID 2 ti consentirebbe di concatenarli in un volume da 1TB. Ciò significa che sarete in grado di salvare i file su questi dischi come se fosse un singolo volume da 1TB anziché da 256GB. Oppure avendo più dischi di dimensioni diverse, ottenere un disco logico che avrebbe la dimensione totale, pari circa, alla somma dei dischi che compongono il set. Per esempio: se inseriamo nel set un disco da 250GB + uno da 500GB + uno da 128GB otterremmo un disco finale di approssimativamente 878GB.
Quindi questo tipo di RAID è comodo per recuperare set di dischi relativamente piccoli ed ottenerne uno grande dove riporre, per esempio, file video di grandi dimensioni. Questo sistema si rivela molto efficiente in ambienti in cui si verificano numerosi errori di lettura o scrittura, ma al giorno d'oggi, data l'inclusione della correzione tramite codice di Hamming (ECC) direttamente nel controller del disco, il RAID 2 non viene più utilizzato ed è considerato obsoleto.
Esistono altri livelli di RAID, ma non sono gestiti da Apple: si arriva sino ai livelli di RAID nidificati, come il RAID 01 oppure il più sicuro RAID 10. La pagina Wiki, sopra riportata, spiega tutto piuttosto bene. Non so se il sistema RAID di Apple consenta la nidificazione dei vari livelli: non ho mai avuto modo di verificare.
Il comando da usare, come dicevo prima, è diskutil
con i giusti parametri ovviamente, visto che non abbiamo più l’aiuto grafico, va fatto tutto a manina (che poi si tratta solo di un comando alla fin fine!!). Il comando quindi sarà:
diskutil appleRAID create mirror TimeCapsule APFS /dev/disk10 /dev/disk11
Vediamo un po’ i vari parametri:
diskutil: il comando vero e proprio
appleRAID: corrisponderebbe al tipo di oggetto che vogliamo creare nella sessione attuale ossia un set RAID;
create: comando per diskutil: cosa devo fare di questa richiesta di gestione set RAID? Voglio crearne uno.
mirror: che tipo di RAID voglio creare? stirping=0, mirroring=1 o concatenated=2? Questi tre tipi sono gli unici gestibili da parte di Apple sebbene al giorno d’oggi le tipologie di RAID, tecnicamente possibili, siano molte di più.
TimeCapsule: nome arbitrario del nuovo set RAID
APFS: tipologia di filesystem che vogliamo il set RAID abbia. La lista completa dei filesystem utilizzabili per un RAID sotto Mac, e la sua etichetta per il comando, la si ottiene con il comando diskutil listFilesystems
/dev/disk10: primo disco da aggiungere nel set
/dev/disk11: secondo disco da aggiungere nel set.
Legenda tipologia RAID utilizzabili con diskutil appleRAID
su Apple sono:
stripe: corrisponde a RAID 0 ossia striping
mirror: corrisponde a RAID 1 ossia mirroring
concat: corrisponde a RAID 2 ossia contatenated (o JBOD)
La lista completa del tipo di filesystem utilizzabile con un RAID è la seguente:
e ripeto si ottiene con il comando diskutil listFilesystems. L’etichetta da usare nel comando è quella scritta tutta in stampatello, per cui, per esempio, se volessimo formattare il nostro volume RAID con un case-sensitive APFS usiamo l’etichetta APFS oppure APFSX se vogliamo un formattare in Mac OS Extended (Case-sensitive) allora useremmo l’etichettta JHFSX e cosi via.
Per quanto riguarda il tipo di indirizzo device, diskutil può usare indifferentemente il device dell’intero disco o di una partizione: comunque userà l’intero disco riconfigurando il disco come gli necessita per creare i vari dischi del set di RAID.
Per la mia esperienza, meglio il disco intero, /dev/disk10, che non una partizione, /dev/disk10s1: non ha senso perdere tempo a partizionare i dischi, visto che comunque il comando di creazione di un set RAID: poi farà come gli necessita, ossia usare l’intero disco.
Una volta creato il vostro set RAID esso vi comparirà in Utility Disco in questo modo:
Essendo in modalità RAID 0 non è possibile aggiungere o togliere volumi.
Se invece RAID è in modalità 1 o 2 compariranno anche i pulsanti + e - :
che permetteranno in modo dinamico di aggiungere, o rimuovere, dischi dal set del RAID.
Rammentate che l’interfaccia grafica della gestione dei RAID è sparita dalla versione OS X El Capitan, inclusa, in poi, ma che il comando diskutil
ha tutt’ora la gestione dei set RAID, e probabilmente non sparirà mai.
Ultime note:
I set RAID possono includere tutti i tipi di supporto connessi in qualsiasi modo alla nostra macchina Apple, ad esempio:
Dischi interni;
Dischi esterni connessi via USB (di qualunque versione) o Thunderbolt
Chiavi USB (di qualunque versione) o Thunderbolt
Schede di memoria dal loro lettore sia integrato che via USB.
Per poter usare il RAID di tipo 1 CONVIENE AVERE avere dischi di UGUALE dimensione. In caso contrario il volume RAID ottenuto sarà di dimensione pari al disco più piccolo dei due. È pur vero che così si perde il vantaggio del concatenamento di vari dischi, con il totale della loro somma (circa) in dimensione, ma il vantaggio, del tipo 1, è che si vi si rompe un disco l’altro resta funzionante al 100% quindi non perderete alcun dato!
Va da sé che la decisione è soggettiva e spesso collegata a diverse necessità: quindi ognuno procederà in base alle proprie. In linea di massima io, e non solo, seguo questo ragionamento:
Mi serve più spazio possibile? Allora usa RAID di tipo 0 o 2 (più veloce ma meno sicuro)
Mi serve la sicurezza di non perdere mai i dati importanti? Allora usa RAID di tipo 1 (decisamente più lento, visto che scrive tutti i dati su due dischi diversi, ma decisamente più sicuro).
Ultima precisazione:
In passato mi è stato chiesto se fosse possibile costruire un set RAID usando più partizioni di uno stesso disco o di dischi diversi, per esempio due partizioni da 512GB su un disco da un terabyte. Tecnicamente è possibile, ma visto che lo scopo di un set RAID, di norma, è la sicurezza dei dati, o l’ottenimento di maggiore spazio, concatenando più dischi tra di loro, trovo poco sensato operare su più partizioni di uno stesso, o diverso disco. Se si rovinasse il disco o si rompesse il suo controller vi trovereste comunque a non poter accedere ai dati di nessuna delle due partizioni che costituiscono il vostro set di RAID.
Come detto prima, comunque, resta tecnicamente possibile creare un set RAID per esempio con una partizione di 512GB su un disco e una partizione da 512 su un’altro disco fisico, ma ripeto, la trovo una cattiva idea, salvo forse per il RAID 0.
Buon divertimento con i vostri set di volumi RAID!!
J.C.