Having just done a largish mv from one ZFS filesystem to another ZFS filesystem in the same zpool, I was somewhat surprised at how long it took - I was expecting it to be near instant like it would be within the same filesystem.
Are there optimisations possible here? Surely it should be possible to just change some block pointers and do a little bit of accounting? Or is the amount of work required only really beneficial for large files (hundreds of MB or GB)? e.g. mv will currently do this: ... lstat64("/biscuit/bfu//hda4.dump", 0x08066370) Err#2 ENOENT rename("hda4.dump", "/biscuit/bfu//hda4.dump") Err#18 EXDEV open64("hda4.dump", O_RDONLY) = 3 creat64("/biscuit/bfu//hda4.dump", 0644) = 4 stat64("/biscuit/bfu//hda4.dump", 0x08066370) = 0 chmod("/biscuit/bfu//hda4.dump", 0100644) = 0 fstat64(3, 0x080662E0) = 0 mmap64(0x00000000, 8388608, PROT_READ, MAP_SHARED, 3, 0) = 0xFE600000 write(4, "01\0\0\0 {1CDF ?\0\0\0\0".., 8388608) = 8388608 mmap64(0xFE600000, 8388608, PROT_READ, MAP_SHARED|MAP_FIXED, 3, 8388608) = 0xFE6 00000 write(4, "11 603\0\f\001\0 .\0 d 1".., 8388608) = 8388608 mmap64(0xFE600000, 8388608, PROT_READ, MAP_SHARED|MAP_FIXED, 3, 0x01000000) = 0x FE600000 write(4, "\v998B\t96CBD2 X * ;E7ED".., 8388608) = 8388608 ... There are likely other considerations that need to be considered (such as encryption being on/off, etc) but if all of the properties are the same for a given pair of ZFS filesystems between which a file is being moved, surely it should be possible to take some nice shortcuts? RFE worthy? Darren _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss