Message ID | 20190724122120.17438-1-zyan@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | ceph: auto reconnect after blacklisted | expand |
On Wed, 2019-07-24 at 20:21 +0800, Yan, Zheng wrote: > This series add support for auto reconnect after blacklisted. > > Auto reconnect is controlled by recover_session=<clean|no> mount option. > So far only clean mode is supported and it is the default mode. In this > mode, client drops any dirty data/metadata, invalidates page caches and > invalidates all writable file handles. After reconnect, file locks become > stale because MDS lose track of them. If an inode contains any stale file > lock, read/write on the indoe are not allowed until all stale file locks > are released by applications. > > v2: remove force_remount mount option > no enabled auto reconnect by default > remove unfinished recover_session=brute code > I've looked over the set and I think this looks reasonable modulo a few small nits that can be cleaned up during or after merging. I don't see the knob that forces a reconnect in this set any longer. Did you decide that that wasn't needed or are you planning to add it in a later set? > Yan, Zheng (9): > libceph: add function that reset client's entity addr > libceph: add function that clears osd client's abort_err > ceph: allow closing session in restarting/reconnect state > ceph: track and report error of async metadata operation > ceph: pass filp to ceph_get_caps() > ceph: add helper function that forcibly reconnects to ceph cluster. > ceph: return -EIO if read/write against filp that lost file locks > ceph: invalidate all write mode filp after reconnect > ceph: auto reconnect after blacklisted > > Documentation/filesystems/ceph.txt | 10 ++++ > fs/ceph/addr.c | 37 ++++++++---- > fs/ceph/caps.c | 93 +++++++++++++++++++++--------- > fs/ceph/file.c | 50 +++++++++------- > fs/ceph/inode.c | 2 + > fs/ceph/locks.c | 8 ++- > fs/ceph/mds_client.c | 89 ++++++++++++++++++++++------ > fs/ceph/mds_client.h | 6 +- > fs/ceph/super.c | 45 ++++++++++++++- > fs/ceph/super.h | 21 +++++-- > include/linux/ceph/libceph.h | 1 + > include/linux/ceph/messenger.h | 1 + > include/linux/ceph/mon_client.h | 1 + > include/linux/ceph/osd_client.h | 2 + > net/ceph/ceph_common.c | 8 +++ > net/ceph/messenger.c | 5 ++ > net/ceph/mon_client.c | 7 +++ > net/ceph/osd_client.c | 24 ++++++++ > 18 files changed, 324 insertions(+), 86 deletions(-) >
On 7/24/19 8:56 PM, Jeff Layton wrote: > On Wed, 2019-07-24 at 20:21 +0800, Yan, Zheng wrote: >> This series add support for auto reconnect after blacklisted. >> >> Auto reconnect is controlled by recover_session=<clean|no> mount option. >> So far only clean mode is supported and it is the default mode. In this >> mode, client drops any dirty data/metadata, invalidates page caches and >> invalidates all writable file handles. After reconnect, file locks become >> stale because MDS lose track of them. If an inode contains any stale file >> lock, read/write on the indoe are not allowed until all stale file locks >> are released by applications. >> >> v2: remove force_remount mount option >> no enabled auto reconnect by default >> remove unfinished recover_session=brute code >> > > I've looked over the set and I think this looks reasonable modulo a few > small nits that can be cleaned up during or after merging. > > I don't see the knob that forces a reconnect in this set any longer. Did > you decide that that wasn't needed or are you planning to add it in a > later set? add it later Regards Yan, Zheng > > >> Yan, Zheng (9): >> libceph: add function that reset client's entity addr >> libceph: add function that clears osd client's abort_err >> ceph: allow closing session in restarting/reconnect state >> ceph: track and report error of async metadata operation >> ceph: pass filp to ceph_get_caps() >> ceph: add helper function that forcibly reconnects to ceph cluster. >> ceph: return -EIO if read/write against filp that lost file locks >> ceph: invalidate all write mode filp after reconnect >> ceph: auto reconnect after blacklisted >> >> Documentation/filesystems/ceph.txt | 10 ++++ >> fs/ceph/addr.c | 37 ++++++++---- >> fs/ceph/caps.c | 93 +++++++++++++++++++++--------- >> fs/ceph/file.c | 50 +++++++++------- >> fs/ceph/inode.c | 2 + >> fs/ceph/locks.c | 8 ++- >> fs/ceph/mds_client.c | 89 ++++++++++++++++++++++------ >> fs/ceph/mds_client.h | 6 +- >> fs/ceph/super.c | 45 ++++++++++++++- >> fs/ceph/super.h | 21 +++++-- >> include/linux/ceph/libceph.h | 1 + >> include/linux/ceph/messenger.h | 1 + >> include/linux/ceph/mon_client.h | 1 + >> include/linux/ceph/osd_client.h | 2 + >> net/ceph/ceph_common.c | 8 +++ >> net/ceph/messenger.c | 5 ++ >> net/ceph/mon_client.c | 7 +++ >> net/ceph/osd_client.c | 24 ++++++++ >> 18 files changed, 324 insertions(+), 86 deletions(-) >> >
On Thu, 2019-07-25 at 09:31 +0800, Yan, Zheng wrote: > On 7/24/19 8:56 PM, Jeff Layton wrote: > > On Wed, 2019-07-24 at 20:21 +0800, Yan, Zheng wrote: > > > This series add support for auto reconnect after blacklisted. > > > > > > Auto reconnect is controlled by recover_session=<clean|no> mount option. > > > So far only clean mode is supported and it is the default mode. In this > > > mode, client drops any dirty data/metadata, invalidates page caches and > > > invalidates all writable file handles. After reconnect, file locks become > > > stale because MDS lose track of them. If an inode contains any stale file > > > lock, read/write on the indoe are not allowed until all stale file locks > > > are released by applications. > > > > > > v2: remove force_remount mount option > > > no enabled auto reconnect by default > > > remove unfinished recover_session=brute code > > > > > > > I've looked over the set and I think this looks reasonable modulo a few > > small nits that can be cleaned up during or after merging. > > > > I don't see the knob that forces a reconnect in this set any longer. Did > > you decide that that wasn't needed or are you planning to add it in a > > later set? > > add it later > > Ok. I went ahead and pushed these to the testing branch, and added a few small patches on top to clean up the documentation and some sparse warnings. Let me know if you have issues with any of those. > > > > > Yan, Zheng (9): > > > libceph: add function that reset client's entity addr > > > libceph: add function that clears osd client's abort_err > > > ceph: allow closing session in restarting/reconnect state > > > ceph: track and report error of async metadata operation > > > ceph: pass filp to ceph_get_caps() > > > ceph: add helper function that forcibly reconnects to ceph cluster. > > > ceph: return -EIO if read/write against filp that lost file locks > > > ceph: invalidate all write mode filp after reconnect > > > ceph: auto reconnect after blacklisted > > > > > > Documentation/filesystems/ceph.txt | 10 ++++ > > > fs/ceph/addr.c | 37 ++++++++---- > > > fs/ceph/caps.c | 93 +++++++++++++++++++++--------- > > > fs/ceph/file.c | 50 +++++++++------- > > > fs/ceph/inode.c | 2 + > > > fs/ceph/locks.c | 8 ++- > > > fs/ceph/mds_client.c | 89 ++++++++++++++++++++++------ > > > fs/ceph/mds_client.h | 6 +- > > > fs/ceph/super.c | 45 ++++++++++++++- > > > fs/ceph/super.h | 21 +++++-- > > > include/linux/ceph/libceph.h | 1 + > > > include/linux/ceph/messenger.h | 1 + > > > include/linux/ceph/mon_client.h | 1 + > > > include/linux/ceph/osd_client.h | 2 + > > > net/ceph/ceph_common.c | 8 +++ > > > net/ceph/messenger.c | 5 ++ > > > net/ceph/mon_client.c | 7 +++ > > > net/ceph/osd_client.c | 24 ++++++++ > > > 18 files changed, 324 insertions(+), 86 deletions(-) > > >