From 7f4c1d97bd26ca78751cd28f628370a702ef0157 Mon Sep 17 00:00:00 2001 From: Adam Kupczyk Date: Tue, 23 Jun 2020 14:45:18 +0200 Subject: [PATCH] os/bluestore: Added rescue procedure for bluefs log replay This is a procedure tries to find on disk unreachable extents and pretend they were already a part of bluefs log. If this gives proper crc, accept it. Fixes: https://tracker.ceph.com/issues/46195 Signed-off-by: Adam Kupczyk --- src/common/legacy_config_opts.h | 1 + src/common/options.cc | 7 ++ src/os/bluestore/BlueFS.cc | 202 +++++++++++++++++++++++++++++++- src/os/bluestore/BlueFS.h | 6 + 4 files changed, 215 insertions(+), 1 deletion(-) diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index 57ef5caef53a..da5d961dcccd 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -995,6 +995,7 @@ OPTION(bluefs_buffered_io, OPT_BOOL) OPTION(bluefs_sync_write, OPT_BOOL) OPTION(bluefs_allocator, OPT_STR) // stupid | bitmap OPTION(bluefs_preextend_wal_files, OPT_BOOL) // this *requires* that rocksdb has recycling enabled +OPTION(bluefs_replay_recovery, OPT_BOOL) OPTION(bluestore_bluefs, OPT_BOOL) OPTION(bluestore_bluefs_env_mirror, OPT_BOOL) // mirror to normal Env for debug diff --git a/src/common/options.cc b/src/common/options.cc index 4f7a076e384a..5c982c81e037 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -3378,6 +3378,13 @@ std::vector