(cela a commencé comme un commentaire mais est devenu trop long, c'est maintenant une réponse)
Malheureusement, la réponse est non". Il n'y a pas de moyen plus rapide ou plus intelligent de le faire.
Les systèmes de fichiers ZFS (même s'ils se trouvent sur le même pool) sont des systèmes de fichiers distincts. Ni mv
aucun autre outil ne peut simplement déplacer les pointeurs de bloc ou quoi que ce soit afin que les fichiers qui étaient allumés fs_a
soient maintenant activés fs_b
.
(BTW, plusieurs partitions formatées ou volumes LVM sur le même disque ou baie RAID sont également des systèmes de fichiers distincts et sont également mv
chargés de les copier-supprimer)
Ce problème a été soulevé plusieurs fois au fil des ans (avec des discussions sur la création d'un outil pour faire ce que vous voulez) et si je comprends bien, la principale difficulté qui le place dans le panier trop dur est la question de savoir comment gérer les instantanés - s'il y a des instantanés de fs_a
, les blocs seraient dans les deux systèmes de fichiers en même temps. Il en va de même pour les fichiers qui ont des liens physiques.
Je l'ai rencontré moi-même de nombreuses fois (par exemple lors du déplacement de fichiers entre des ensembles de données comme vous l'avez fait, ou lorsque j'ai besoin de convertir un sous-répertoire en fs), et je viens d'apprendre à supporter les inconvénients. Il peut s'agir d'un PITA majeur.
si fs_b
est vide ou n'existe pas encore et que vous voulez déplacer l' ensemble contenu fs_a
à fs_b
(et pas seulement certains ou même la plupart des fichiers et répertoires) que vous pouvez utiliser zfs rename
pour renommer fs_a
à fs_b
. Je soupçonne cependant que cela n'est pas pertinent pour votre situation.
Il y a un problème ouvert à ce sujet pour ZFSOnLinux à https://github.com/zfsonlinux/zfs/issues/2991
Je n'ai pas cherché mais je m'attendrais à ce qu'OpenZFS en amont et même Sun / Oracle ZFS aient probablement des rapports de bogues / demandes de fonctionnalités similaires.
BTW, voir également /server/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volume