Tôi đang cố gắng tạo các bản sao của một số tệp / thư mục, nhưng trong một số cách tôi biết, tất cả dường như không tối ưu.
Ví dụ, btrfs có thể, với việc sử dụng cp --reflink=auto
nhanh chóng tạo các bản sao của tệp.
Những gì tôi đã thử:
- Liên kết: Không tốt. Đổi tên tập tin, liên kết bị hỏng.
- Hardlinks: Tốt hơn, nhưng vẫn không tốt. Thay đổi đối với một tệp sẽ thay đổi tệp khác và tôi không nhất thiết muốn tệp khác thay đổi.
- Tạo ảnh chụp nhanh của tập dữ liệu, sau đó sao chép ảnh chụp nhanh: Điều này có thể hoạt động, nhưng không tốt. Thường thì tôi không tìm kiếm một bản sao của toàn bộ tập dữ liệu hoặc để các bản sao hoạt động như một tập dữ liệu khác. Sau đó, có các mối quan hệ cha / con giữa bản sao / ảnh chụp / bản gốc, mà theo tôi hiểu là khó, nếu không muốn nói là không thể phá vỡ.
- Sử dụng
zfs send/receive
và kích hoạt khấu trừ, sao chép tập dữ liệu sang tập dữ liệu mới: Điều này tránh các mối quan hệ cha / con sử dụng bản sao, nhưng vẫn không cần thiết tạo một tập dữ liệu khác và vẫn bị chậm trong các tệp phải đọc 100% và các khối tham chiếu lại thay vì bằng văn bản. - Sao chép tệp và để cho phần mềm thực hiện công việc của mình: Điều này hoạt động, nhưng chậm vì (các) tệp phải được đọc 100% và sau đó các khối được tham chiếu lại thay vì viết.
Sự chậm chạp của việc gửi / nhận zfs và sao chép hoặc rsyncing vật lý càng trở nên trầm trọng hơn vì hầu hết mọi thứ được lưu trữ nén và phải được giải nén trong quá trình đọc, sau đó được nén trước khi trích xuất để tham chiếu các khối trùng lặp.
Trong tất cả các nghiên cứu của tôi, tôi đã không thể tìm thấy bất cứ điều gì từ xa giống như sự đơn giản của --reflink trong btrfs.
Vì vậy, có cách nào để tạo bản sao bò trong ZFS không? Hoặc là sao chép "vật lý" và để cho các khoản trích lập thực hiện công việc của mình là lựa chọn thực sự duy nhất?