"README" did not exist on "57e6d88a8a8d858e2d74aeefba4c764ad08cf86d"
LU-1303 mds: integration lod/osp into the stack
- config handler recognizes MDS config and replace LOV/OSC devices with LOD/OSP - the devices in MDS stack are setup from bottom to top using obd_connect() namely MDT->MDD->LOD->OSD, when new OSPs arrive, they connect to the OSD and LOD connects to every OSP). all the devices are referenced by exports, preventing them from early release. - once the whole configuration is processed, prepare() method of the top device is called, that in turn call ->prepare() down through the stack, etc. at this point the stack is considered ready to access storage, start recovery and do regular processing. - at umount ->ldo_process_config(LCFG_CLEANUP) is called down through the stack asking devices to release the resources (like objects referenced for internal purposes), then the series of calls to obd_disconnect()'s starting from the top MDT causes all the devices to become unreferenced and subject to release by zombie thread. - obd_notify() mechanism is not used by MDT/MDD/LOD/OSD, it's still used by OSP to be aware of current state: - to learn when the first connection to OST happens and let clients to connect to MDS, MDS uses obd_health_check() and caches positive result. - during object creation LOD uses dt_statfs() and data returned by OSP tells LOD whether specific OST active/inactive, space available, number of precreated objects, etc. - LOD takes care of striping: it maintains the list of available OST represented locally by OSP devices. on create, LOD finds suitable OSPs, create objects by means of OSD API and stores striping info into a local object. similarly LOD handles object destroy and UID/GID changes: load striping and execute on them. - llog is used by OSP as a local library, cookies are not visible out side of OSP. thus neither MDT nor MDD needs to care about cookies, prepare buffers. MDD doesn't need to send RPCs to destroy objects on behalf of evicted clients. all is hidden behind OSP's object destroy method. - OSP generates llog records for OST object being destroyed and, once corresponded local transaction is committed, send OST_DESTROY RPC. once OST_DESTROY is reported to be committed, corresponded llog record is cancelled. - the same logic is used for UID/GID changes. Signed-off-by:Alex Zhuravlev <alexey.zhuravlev@intel.com> Change-Id: Ifb282ace94f583ffa86020b763f22922e5d0b032 Reviewed-on: http://review.whamcloud.com/4087 Reviewed-by:
Andreas Dilger <adilger@whamcloud.com> Tested-by: Hudson Tested-by:
Maloo <whamcloud.maloo@gmail.com> Reviewed-by:
Mike Pershin <tappro@whamcloud.com>
Showing
- lustre-iokit/mds-survey/mds-survey 1 addition, 1 deletionlustre-iokit/mds-survey/mds-survey
- lustre/mdd/mdd_device.c 172 additions, 110 deletionslustre/mdd/mdd_device.c
- lustre/mdd/mdd_dir.c 77 additions, 112 deletionslustre/mdd/mdd_dir.c
- lustre/mdd/mdd_internal.h 3 additions, 3 deletionslustre/mdd/mdd_internal.h
- lustre/mdd/mdd_lfsck.c 2 additions, 2 deletionslustre/mdd/mdd_lfsck.c
- lustre/mdd/mdd_lov.c 0 additions, 809 deletionslustre/mdd/mdd_lov.c
- lustre/mdd/mdd_lproc.c 3 additions, 2 deletionslustre/mdd/mdd_lproc.c
- lustre/mdd/mdd_object.c 55 additions, 505 deletionslustre/mdd/mdd_object.c
- lustre/mdd/mdd_orphans.c 23 additions, 56 deletionslustre/mdd/mdd_orphans.c
- lustre/mdd/mdd_trans.c 0 additions, 10 deletionslustre/mdd/mdd_trans.c
- lustre/mdt/mdt_handler.c 211 additions, 256 deletionslustre/mdt/mdt_handler.c
- lustre/mdt/mdt_lib.c 28 additions, 29 deletionslustre/mdt/mdt_lib.c
- lustre/mdt/mdt_open.c 34 additions, 25 deletionslustre/mdt/mdt_open.c
- lustre/mdt/mdt_recovery.c 1 addition, 23 deletionslustre/mdt/mdt_recovery.c
- lustre/mdt/mdt_reint.c 15 additions, 28 deletionslustre/mdt/mdt_reint.c
- lustre/obdclass/llog_cat.c 1 addition, 0 deletionslustre/obdclass/llog_cat.c
- lustre/obdclass/obd_config.c 27 additions, 0 deletionslustre/obdclass/obd_config.c
- lustre/obdclass/obd_mount.c 30 additions, 6 deletionslustre/obdclass/obd_mount.c
- lustre/obdecho/echo_client.c 1 addition, 0 deletionslustre/obdecho/echo_client.c
- lustre/osd-ldiskfs/osd_compat.c 2 additions, 2 deletionslustre/osd-ldiskfs/osd_compat.c
Loading
Please register or sign in to comment