Dear OpenZFS developers, Since SIMD RAID-Z code was merged to ZoL [1], I started to look into the rest of the scrub/resilvering code path. I've found some existing specs and ideas about how to make the process more rotational drive friendly [2][3][4][5]. What I've gathered from these is that scrub should be split to metadata and data traversal phases. As I'm new to ZFS, I've made a quick prototype simulating large elevator using AVL list to sort blocks by DVA offset [6]. It's probably broken in more than few ways, but this is just a quick hack to get a grasp of the code. Solution turned out similar to 'ASYNC_DESTROY' feature, so I'm wondering if this might be a direction to take?
At this stage, I would appreciate any input on how to proceed with this project. If you're a core dev and would like to provide any kind of mentorship or willing to answer some questions from time to time, please let me know. Or, if there's a perfect solution for this just waiting to be implemented, even better. For starters, pointers like: read this article, make sure you understand this peace of code, etc., would also be very helpful. Regards, [1] https://github.com/zfsonlinux/zfs/commit/ab9f4b0b824ab4cc64a4fa382c037f4154de12d6 [2] https://blogs.oracle.com/roch/entry/sequential_resilvering [3] http://wiki.old.lustre.org/images/f/ff/Rebuild_performance-2009-06-15.pdf [4] https://blogs.oracle.com/ahrens/entry/new_scrub_code [5] http://open-zfs.org/wiki/Projects#Periodic_Data_Validation [6] https://github.com/ironMann/zfs/commit/9a2ec765d2afc38ec76393dd694216fae0221443 ------------------------------------------- openzfs-developer Archives: https://www.listbox.com/member/archive/274414/=now RSS Feed: https://www.listbox.com/member/archive/rss/274414/28015062-cce53afa Modify Your Subscription: https://www.listbox.com/member/?member_id=28015062&id_secret=28015062-f966d51c Powered by Listbox: http://www.listbox.com