extent remapper.
> As far as I can see, this task can be done entirely from userland :
>
> o per-extend IO counters exported from kernel-space can be turned into
> a list of extends sorted by activity
>
> o lvdisplay-like tool gives the mapping extend<->physical blocks
>
> o a scheduled job in user-space should be able to massage this info to
> decide where to move low-access-rate-extends to the border of the
> platter and pack high-access-rate-extends together ... all in one run
> that can be scheduled at low activity period (cron defrag way)
>
> The algorithm could be something along the line of :
>
> while top_user_queue_not_empty
> do
> extend = dequeue_lowest_user_extend
> if extend_in_good_spot
> then
> move_extend_to_corner_destination
> find_highest_user_extend_in_bad_spot
> move_this_extend_to_freed_good_spot
> fi
> done
What you describe could be very beneficial, especially if you start
striping the high bandwidth areas. However in no way could this be
described as 'online FS defragmentation'.
- Joe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/