(bu bir yorum olarak başladı ancak çok uzun oldu, şimdi bir cevap)
Maalesef, cevap hayır". Bunu yapmanın daha hızlı veya daha akıllı bir yolu yoktur.
ZFS dosya sistemleri (aynı havuzda olmalarına rağmen) ayrı dosya sistemleridir. Ne mv
ne de başka herhangi bir araç, blok işaretleyicileri veya herhangi bir şeyi hareket ettiremez, böylece mevcut dosyalar fs_a
şimdi açıktır fs_b
.
(BTW, aynı disk veya raid dizisindeki birden çok biçimlendirilmiş bölüm veya LVM birimleri de ayrı dosya sistemleridir ve mv
onlar için de kopyalayıp silmeye yöneliktir)
Bu sorun yıllar içinde birkaç kez ortaya çıktı (istediğinizi yapmak için bir araç oluşturma konuşmasıyla) ve anladığım kadarıyla, onu çok zor sepete koyan en büyük zorluk, anlık görüntülerin nasıl ele alınacağı sorusudur. - Anlık görüntüler varsa fs_a
, bloklar aynı anda her iki dosyada da olurdu. Aynı durum, sabit bağlantıları olan dosyalar için de geçerlidir.
Ben kendimi defalarca içine koştum (örneğin, veri kümeleri arasında yaptığınız gibi dosyaları taşıdığınızda veya bir alt dizini bir fs'ye dönüştürmem gerektiğinde) ve sadece rahatsızlık vermeyi öğrendim. Büyük bir PITA olabilir.
eğer fs_b
boş veya henüz yok ve taşımak istediğiniz tüm içeriği fs_a
için fs_b
kullanabileceğiniz (ve sadece bazı hatta çoğu dosya ve dizinlere) zfs rename
yeniden adlandırmak fs_a
için fs_b
. Ancak bunun durumunuzla ilgili olmadığından şüpheleniyorum.
Bu konuda ZFSOnLinux için https://github.com/zfsonlinux/zfs/issues/2991 adresinde açık bir sorun var
Ben arama yapmadım ama yukarı akış OpenZFS ve hatta Sun / Oracle ZFS muhtemelen benzer hata raporları / özellik istekleri olmasını beklenir .
BTW, ayrıca bkz. Https://serverfault.com/questions/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volume