FREENAS: Perché il comando mv non è istantaneo all'interno di un volume RAIDZ1?


14

Attualmente sto "riorganizzando" la struttura dei file all'interno di un volume RAIDZ1. Spostamento di directory da un set di dati a un altro, entrambi contenuti nello stesso volume.

SSH è entrato nella macchina e ha fatto un buon vecchio stile:

mv * destinazione

Non dovrebbe essere istantaneo? Capisco che sia distribuito su tre unità, ma allo stesso tempo, i file stessi non hanno davvero bisogno di spostarsi - mi aspettavo solo che modificasse i puntatori per questi file e che fosse, beh, praticamente istantaneo. Sicuramente no. Ho circa 500 G di dati da spostare ed è in esecuzione da circa mezz'ora ormai. oO

Perché non è quasi istantaneo?

Specifiche: CPU: Intel G3220
MB: Gigabyte GA-B85-HD3
MEM: Kingston DDR3-1600
DISCO da 8 GB : 3x2 TB WD verde nel volume RAIDZ1


Hai delle istantanee?
MadHatter,

Nessuna istantanea, questa è una nuovissima installazione che ho installato proprio ieri e quindi ho copiato i file da un'unità NTFS esistente a questo volume.
Ryan,

Risposte:


22

Stai pensando a cose dal livello sbagliato, tutto qui.

Se sposti un file entro i limiti di un singolo set di dati ZFS, reagirà in modo simile a quello che ti aspetti. Se si sposta un file all'interno dei confini di un pool, ma tra set di dati, si tratta di una vera mossa. Sì, tecnicamente i dati sono passati dal punto A al punto B ed entrambi i punti si trovano sugli stessi piatti - ma dal punto di vista di ZFS, hanno spostato le case.

I set di dati ZFS sono filesystem separati. File system reali. Possono avere diverse dimensioni di blocco, impostazioni di compressione, ecc. Spostare un file tra due filesystem ZFS, anche sullo stesso pool, è una vera mossa: i bit vengono letti e poi scritti di nuovo, invece di aggiornare semplicemente un puntatore.

Funzionalmente è approssimativamente analogo allo spostamento di un file tra due filesystem ext4 che tecnicamente provengono da 2 partizioni dello stesso disco rigido - i due filesystem, nonostante condividano l'hardware sottostante, sono logicamente diversi e quindi non può avvenire alcuna modifica del 'puntatore', deve sposta fisicamente il file, anche se in realtà sta copiando solo i dati da una posizione all'altra sulla stessa unità sottostante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.