(สิ่งนี้เริ่มเป็นความคิดเห็น แต่ยาวเกินไปดังนั้นจึงเป็นคำตอบ)
น่าเสียดายที่คำตอบคือ "ไม่" ไม่มีวิธีที่เร็วกว่าหรือฉลาดกว่าในการทำสิ่งนี้
ระบบไฟล์ ZFS (แม้ว่าจะอยู่ในกลุ่มเดียวกัน) เป็นระบบไฟล์แยกกัน ทั้งmvมิได้เครื่องมืออื่น ๆ ก็สามารถย้ายตัวชี้บล็อกหรืออะไรก็ตามเพื่อให้ไฟล์ที่อยู่บนอยู่ในขณะนี้fs_afs_b
(BTW, ฟอร์แมตพาร์ติชั่นหลายรูปแบบหรือวอลุ่ม LVM บนดิสก์เดียวกันหรืออาเรย์ RAID นั้นยังแยกระบบไฟล์และmvdevolves เพื่อคัดลอกและลบสำหรับพวกเขาด้วย)
ปัญหานี้เกิดขึ้นหลายครั้งในช่วงหลายปีที่ผ่านมา (ด้วยการพูดถึงการสร้างเครื่องมือเพื่อทำสิ่งที่คุณต้องการ) และเมื่อฉันเข้าใจแล้วปัญหาสำคัญที่ทำให้มันอยู่ในตะกร้ายากเกินไปคือคำถามว่าจะจัดการกับสแนปชอตได้อย่างไร - หากมีสแนปชอตของfs_aบล็อกจะอยู่ในทั้งสองระบบไฟล์ในเวลาเดียวกัน เช่นเดียวกับไฟล์ที่มีฮาร์ดลิงก์
ฉันพบเจอตัวเองหลายครั้ง (เช่นเมื่อย้ายไฟล์ระหว่างชุดข้อมูลตามที่คุณทำหรือเมื่อฉันต้องการแปลงไดเรกทอรีย่อยเป็น fs) และเพิ่งเรียนรู้ที่จะรับมือกับความไม่สะดวก มันสามารถเป็น PITA ที่สำคัญ
ถ้าfs_bว่างเปล่าหรือยังไม่อยู่และคุณต้องการที่จะย้ายทั้งเนื้อหาของfs_aการfs_b(และไม่ได้เป็นเพียงบางส่วนหรือแม้กระทั่งไฟล์มากที่สุดและไดเรกทอรี) คุณสามารถใช้zfs renameในการเปลี่ยนชื่อไปfs_a fs_bฉันสงสัยว่าสิ่งนี้ไม่เกี่ยวข้องกับสถานการณ์ของคุณ
มีปัญหาแบบเปิดสำหรับ ZFSOnLinux ที่https://github.com/zfsonlinux/zfs/issues/2991
ฉันไม่ได้ค้นหา แต่ฉันคาดหวังว่าOpenZFSต้นน้ำ และแม้แต่ Sun / Oracle ZFS อาจมีรายงานข้อบกพร่อง / คำขอคุณสมบัติที่คล้ายกัน
BTW ดูเพิ่มเติมที่/server/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volume