(це почалося як коментар, але стало занадто довгим, тому зараз відповідь)
На жаль, відповідь - «Ні». Немає швидшого чи розумнішого способу зробити це.
Файлові системи ZFS (навіть якщо вони знаходяться в одному пулі) - це окремі файлові системи. Ні один, mvні будь-який інший інструмент не можуть просто переміщувати блок-покажчики чи будь-що інше, щоб fs_aтепер увімкнути файли fs_b.
(BTW, декілька форматованих розділів або томів LVM на одному диску або рейдовому масиві - це також окрема файлова система і mvпередається для копіювання та видалення для них також)
Це питання виникало декілька разів протягом багатьох років (з деякими розмовами про створення інструменту робити те, що ви хочете), і, як я розумію, основна складність, яка вкладає його в занадто жорсткий кошик, - це питання, як обробляти знімки. - якщо є знімки fs_a, блоки будуть в обох файлових системах одночасно. Те саме стосується файлів, які мають жорсткі посилання.
Я сам неодноразово натрапляв на нього (наприклад, коли переміщував файли між наборами даних, як ти, або коли мені потрібно конвертувати підкаталог у fs), і щойно навчився миритися з незручностями. Це може бути головним ПДФА.
якщо fs_bпорожньо або ще не існує , і ви хочете , щоб перемістити всі вміст fs_aдо fs_b(а не тільки деякі або навіть більшості файлів і каталогів) , які можна використовувати zfs renameдля перейменування fs_aв fs_b. Я підозрюю, що це не стосується вашої ситуації.
Про це для ZFSOnLinux відкрите питання на веб-сторінці https://github.com/zfsonlinux/zfs/isissue/2991
Я не шукав, але сподіваюся, що в OpenZFS і навіть Sun / Oracle ZFS, ймовірно, є подібні звіти про помилки / функції-запити.
BTW, див. Також /server/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volume