Progressive File Layout (PFL)
(LU-8998)
|
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.10.0 |
| Type: | Technical task | Priority: | Minor |
| Reporter: | Joseph Gmitter (Inactive) | Assignee: | Zhenyu Xu |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
In order to simplify implementation, this project will focus on implementing composite layouts that are grown by allocating objects in non-overlapping layout extents at the end of the file, and will not implement modification of already allocated layout extents containing data. The client IO (CLIO) layer needs to be able to manage the growth of the file layout by reconfiguring its IO stack to add new OST objects into the layout. The client will request that the MDS instantiate OST objects based on the layout template before it begins writing to a file offset beyond the currently instantiated layout components. The layout generation stored in the composite layout and in each layout extent will allow CLIO to detect whether a specific layout extent has been modified when the lock is revoked. Since the existing components of the file layout will not be modified for PFL files, any in-flight IO operations and cached data do not need to be interrupted. |
| Comments |
| Comment by Zhenyu Xu [ 19/Jan/17 ] |
|
This involves following changes:
|
| Comment by Gerrit Updater [ 08/Feb/17 ] |
|
Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/25317 |
| Comment by Gerrit Updater [ 22/Mar/17 ] |
|
Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26117 |
| Comment by Gerrit Updater [ 31/Mar/17 ] |
|
Jinshan Xiong (jinshan.xiong@intel.com) merged in patch https://review.whamcloud.com/25317/ |
| Comment by Joseph Gmitter (Inactive) [ 31/Mar/17 ] |
|
Patch landed to PFL branch |
| Comment by Dmitry Eremin (Inactive) [ 11/Apr/17 ] |
|
This patch introduce the following crash in master: 16:46:36:[14470.127738] LustreError: 22186:0:(vvp_io.c:345:vvp_io_fini()) ASSERTION( io->ci_type == CIT_WRITE || cl_io_is_trunc(io) ) failed: 16:46:36:[14470.132048] LustreError: 22186:0:(vvp_io.c:345:vvp_io_fini()) LBUG 16:46:36:[14470.134194] Pid: 22186, comm: cat 16:46:36:[14470.135970] 16:46:36:[14470.135970] Call Trace: 16:46:36:[14470.139113] [<ffffffffa07107f3>] libcfs_debug_dumpstack+0x53/0x80 [libcfs] 16:46:36:[14470.141168] [<ffffffffa0710861>] lbug_with_loc+0x41/0xb0 [libcfs] 16:46:36:[14470.143473] [<ffffffffa0c93761>] vvp_io_fini+0x321/0x360 [lustre] 16:46:36:[14470.145411] [<ffffffffa0beaff2>] ? lov_io_fini+0x282/0x460 [lov] 16:46:36:[14470.147499] [<ffffffffa0805165>] cl_io_fini+0x75/0x240 [obdclass] 16:46:36:[14470.149358] [<ffffffffa0c42f73>] ll_file_io_generic+0x2a3/0xb00 [lustre] 16:46:36:[14470.151383] [<ffffffff81219cff>] ? touch_atime+0x12f/0x160 16:46:36:[14470.153202] [<ffffffffa0c4409a>] ll_file_aio_read+0x34a/0x3e0 [lustre] 16:46:36:[14470.155178] [<ffffffffa0c441fe>] ll_file_read+0xce/0x1e0 [lustre] 16:46:36:[14470.157019] [<ffffffff811fe19e>] vfs_read+0x9e/0x170 16:46:36:[14470.158806] [<ffffffff811fed6f>] SyS_read+0x7f/0xe0 16:46:36:[14470.160524] [<ffffffff81696b09>] system_call_fastpath+0x16/0x1b The code is following: /** * dynamic layout change needed, send layout intent * RPC. */ if (io->ci_need_write_intent) { loff_t start = 0; loff_t end = 0; LASSERT(io->ci_type == CIT_WRITE || cl_io_is_trunc(io)); [...] static int lov_io_rw_iter_init(const struct lu_env *env, const struct cl_io_slice *ios) { [...] index = lov_lsm_entry(lsm, lio->lis_endpos - 1); if (index > 0 && !lsm_entry_inited(lsm, index)) { io->ci_need_write_intent = 1; RETURN(io->ci_result = -ENODATA); } So, "io->ci_need_write_intent" can be set to "1" in read operation also. |
| Comment by Dmitry Eremin (Inactive) [ 11/Apr/17 ] |
|
This is from test failure on test suite sanity-lfsck, subtest test_18d
|
| Comment by Zhenyu Xu [ 11/Apr/17 ] |
|
Yes, thank you for the catch, read should not trigger the layout write intent. |
| Comment by Gerrit Updater [ 11/Apr/17 ] |
|
Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/26499 |
| Comment by Gerrit Updater [ 13/Apr/17 ] |
|
Jinshan Xiong (jinshan.xiong@intel.com) uploaded a new patch: https://review.whamcloud.com/26613 |
| Comment by Gerrit Updater [ 14/Apr/17 ] |
|
Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: https://review.whamcloud.com/26622 |
| Comment by Gerrit Updater [ 17/Apr/17 ] |
|
Jinshan Xiong (jinshan.xiong@intel.com) merged in patch https://review.whamcloud.com/26622/ |
| Comment by Gerrit Updater [ 26/Apr/17 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26499/ |