(це почалося як коментар, але стало занадто довгим, тому зараз відповідь)
На жаль, відповідь - «Ні». Немає швидшого чи розумнішого способу зробити це.
Файлові системи 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