FREENAS: Pourquoi la commande mv n'est-elle pas instantanée dans un volume RAIDZ1?

14

Je suis en train de «réorganiser» la structure des fichiers dans un volume RAIDZ1. Déplacement de répertoires d'un ensemble de données à un autre, tous deux contenus sur le même volume.

SSH est entré dans la machine et a fait un bon vieux jeu:

mv * destination

Cela ne devrait-il pas être instantané? Je comprends qu'il est réparti sur trois disques, mais en même temps, les fichiers eux-mêmes n'ont pas vraiment besoin de se déplacer - je m'attendais juste à ce qu'il modifie les pointeurs de ces fichiers et soit, enfin, essentiellement instantané. Ce n'est certainement pas le cas. J'ai environ 500 G de données à déplacer et cela fonctionne depuis environ une demi-heure maintenant. oO

Pourquoi n'est-il pas proche de l'instant?

Spécifications: CPU: Intel G3220
Mo: Gigabyte GA-B85-HD3
MEM: Kingston DDR3-1600 8 Go
DISK: 3x2TB WD Green en volume RAIDZ1

Ryan
la source
Vous avez des instantanés?
MadHatter
Pas d'instantanés, il s'agit d'une toute nouvelle installation que j'ai configurée hier et puis j'ai copié les fichiers d'un lecteur NTFS existant sur ce volume.
Ryan

Réponses:

22

Vous pensez à des choses du mauvais niveau, c'est tout.

Si vous déplacez un fichier dans les limites d'un seul ensemble de données ZFS, il réagira de manière similaire à ce que vous attendez. Si vous déplacez un fichier dans les limites d'un pool, mais entre des ensembles de données, c'est un vrai mouvement. Oui, techniquement, les données sont simplement passées du point A au point B et les deux points sont sur les mêmes plateaux - mais du point de vue de ZFS, cela a déplacé les maisons.

Les jeux de données ZFS sont des systèmes de fichiers distincts. De vrais systèmes de fichiers. Ils peuvent avoir des tailles de bloc, des paramètres de compression, etc. différents. Le déplacement d'un fichier entre deux systèmes de fichiers ZFS, même sur le même pool, est un véritable mouvement - les bits sont lus puis réécrits, au lieu de simplement mettre à jour un pointeur.

Fonctionnellement, il est à peu près analogue au déplacement d'un fichier entre deux systèmes de fichiers ext4 qui proviennent techniquement de 2 partitions du même disque dur - les deux systèmes de fichiers, malgré le partage du matériel sous-jacent, sont logiquement disparates et donc aucun changement de «pointeur» ne peut se produire, il doit déplacer physiquement le fichier, même s'il ne s'agit en réalité que de copier des données d'un emplacement à un autre sur le même lecteur sous-jacent.

Nex7
la source