[LU-16789] "lfs migrate" to use AIO/DIO Created: 01/May/23 Updated: 20/Jan/24 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Andreas Dilger | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | lad23dd, lug23dd, medium | ||
| Issue Links: |
|
||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||
| Description |
|
It would be useful to speed up "lfs migrate", "lfs mirror extend", and "lfs mirror resync" to use asynchronous Direct IO (AIO/DIO via libaio) to do the data copying This should use the same mechanism as lustre/tests/aiocp.c to have a producer/consumer queue and submits some number of AIO read requests, and then submit the write requests when the reads finish. |
| Comments |
| Comment by Patrick Farrell [ 04/Oct/23 ] |
|
I think we should actually aim this at io_uring. simmonsja says there is a library which allows you to write against io_uring and have it use AIO for backwards compatibility with older kernels (eg, RHEL 8 which is still a major target). |
| Comment by Patrick Farrell [ 04/Oct/23 ] |
|
Note for anyone doing this - These changes should be made to migrate_copy_data(), which can then be shared out. See LU-17143. |
| Comment by James A Simmons [ 04/Oct/23 ] |
|
Just to leave a note, at ORNL we implemented a replacement for lfs mirgate using a library that uses IO ring under the hood. Need to ask Chris Brumgard. |
| Comment by Peter Jones [ 20/Oct/23 ] |
|
simmonsja any word from Chris B? |
| Comment by Peter Jones [ 09/Nov/23 ] |
|
As per James, this work has not been tackled at ORNL yet so this task is still available for someone else to work on |