Whamcloud - gitweb
LU-8900 snapshot: new config for MDT write barrier 62/24262/18
authorFan Yong <fan.yong@intel.com>
Mon, 17 Oct 2016 10:57:52 +0000 (18:57 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 9 Mar 2017 06:12:15 +0000 (06:12 +0000)
commit019a3b34c0f4d934266a185bcda048b1dab201ed
tree19f994a242d96cd4344f4a490f7b3543ef6f302d
parentc5c8d0623a60ee54bd11588a391b3dcd43c1abcf
LU-8900 snapshot: new config for MDT write barrier

We need some mechanism to set write barrier on the MDT, with that,
all the subsequent modification will be blocked, then the barrier
sponsor can operate on the frozen system, such as make snapshot.

It is implemented via new MGS/MGC plain LDLM lock on the virtual
barrier config-log. The MGS sends the barrier request to the MDTs
via glimpse callback against such barrier plain ldlm lock. The MGC
returns is local barrier status via the glimpse reply.

This patch also enhances mgs lproc interface logic.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I349249fc21e3a6394e658d7529cf87299c050f1a
Reviewed-on: https://review.whamcloud.com/24262
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
26 files changed:
lustre/include/lustre/Makefile.am
lustre/include/lustre/lustre_barrier_user.h [new file with mode: 0644]
lustre/include/lustre/lustre_idl.h
lustre/include/lustre_disk.h
lustre/include/lustre_dlm.h
lustre/include/lustre_swab.h
lustre/include/obd_class.h
lustre/ldlm/ldlm_internal.h
lustre/ldlm/ldlm_lock.c
lustre/ldlm/ldlm_lockd.c
lustre/mgc/mgc_internal.h
lustre/mgc/mgc_request.c
lustre/mgs/lproc_mgs.c
lustre/mgs/mgs_handler.c
lustre/mgs/mgs_internal.h
lustre/mgs/mgs_llog.c
lustre/mgs/mgs_nids.c
lustre/obdclass/lprocfs_status.c
lustre/obdclass/obd_mount.c
lustre/ofd/ofd_dlm.c
lustre/ptlrpc/layout.c
lustre/ptlrpc/pack_generic.c
lustre/ptlrpc/wiretest.c
lustre/quota/qsd_lock.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c