Puoi usare lvm per questo. È stato progettato per separare l'unità fisica dall'unità logica.
Con lvm, puoi :
-
Aggiungi una nuova unità fisica nuova a un pool (denominato Gruppo di volumi nella terminologia LVM)
pvcreate /dev/sdb my_vg
-
Estendi lo spazio di un volume logico
lvextend ...
-
E termina con un ridimensionamento online del tuo filesystem
e2resize /mnt/mio/percorso
Ma attenzione, non è una pallottola magica. È molto più difficile ridurre un filesystem, anche con LVM.
Potresti essere interessato a UnionFS. Potrebbe essere più semplice da configurare su un sistema esistente rispetto a un LVM.
Dalla pagina UnionFS, http://www.filesystems.org/project-unionfs.html :
Questo progetto crea un file system di unificazione impilabile, che può sembrare unire i contenuti di diverse directory (rami), mantenendo separato il loro contenuto fisico. Unionfs è utile per la gestione unificata dell'albero dei sorgenti, l'unione dei contenuti di CD-ROM divisi, l'unione di directory separate di pacchetti software, griglie di dati e altro ancora.
Spero che tu lo trovi utile.
La risposta di LVM è buona, ma anche raid può farlo, quindi aggiungerne un'altra.
Il linux software raid (mdadm) consente di aggiungere dischi a un array già creato. Quando lo fai, riequilibrerai i dati sulla nuova unità.
Se non sei interessato alla ridondanza, puoi usare raid-0 che semplicemente distribuisce i dati in modo uniforme su tutti i dischi.
Tuttavia raid-5 offre almeno un po' di ridondanza senza perdere molto spazio di archiviazione (si sacrifica il valore di un disco).
Detto questo, raid funziona meglio quando tutte le unità hanno le stesse dimensioni. Se non hanno le stesse dimensioni, parti dell'unità rimarranno inutilizzate in quanto utilizzerà solo quanto l'unità più piccola. Se non ricordo male, lo stiping di LVM non presenta questo problema poiché se le unità non hanno le stesse dimensioni, lo spazio extra semplicemente non verrà sottoposto a striping.