(điều này bắt đầu như một bình luận nhưng đã trở nên quá dài nên bây giờ là một câu trả lời)
Rất tiếc, câu trả lời là không". Không có cách nào nhanh hơn hay thông minh hơn để làm việc này.
Các hệ thống tệp ZFS (mặc dù chúng nằm trên cùng một nhóm) là các hệ thống tệp riêng biệt. Không mv
phải bất kỳ công cụ nào khác có thể di chuyển các con trỏ khối hoặc bất cứ thứ gì để các tệp fs_a
đang được bật fs_b
.
(BTW, nhiều phân vùng được định dạng hoặc khối lượng LVM trên cùng một đĩa hoặc mảng đột kích cũng là các hệ thống tệp riêng biệt và mv
phá hủy để sao chép và xóa đối với chúng)
Vấn đề này đã xuất hiện nhiều lần trong nhiều năm (với một số thảo luận về việc tạo ra một công cụ để làm những gì bạn muốn) và theo tôi hiểu, khó khăn lớn khiến nó rơi vào giỏ quá khó là câu hỏi về cách xử lý ảnh chụp nhanh - nếu có ảnh chụp nhanh fs_a
, các khối sẽ nằm trong cả hai hệ thống tệp cùng một lúc. Điều tương tự cũng đúng với các tập tin có liên kết cứng.
Tôi đã tự mình sử dụng nó nhiều lần (ví dụ như khi di chuyển các tệp giữa các bộ dữ liệu như bạn đã làm hoặc khi tôi cần chuyển đổi thư mục con sang fs) và vừa học được cách xử lý sự bất tiện này. Nó có thể là một PITA chính.
nếu fs_b
là trống hoặc chưa tồn tại và bạn muốn di chuyển toàn bộ nội dung của fs_a
để fs_b
(và không chỉ một số hoặc thậm chí hầu hết các file và thư mục), bạn có thể sử dụng zfs rename
để đổi tên fs_a
để fs_b
. Tôi nghi ngờ rằng điều này không liên quan đến tình huống của bạn, mặc dù.
Có một vấn đề mở về vấn đề này đối với ZFSOnLinux tại https://github.com/zfsonlinux/zfs/issues/2991
Tôi chưa tìm kiếm nhưng tôi hy vọng rằng OpenZFS ngược dòng và thậm chí cả Sun / Oracle ZFS có thể có các báo cáo lỗi / yêu cầu tính năng tương tự.
BTW, xem thêm /server/584693/freenas-why-isnt-mv-command-instant-within-a-stonz1-volume