From: Loic Dachary Date: Wed, 25 Dec 2013 12:30:34 +0000 (+0100) Subject: mon: MDS data and metadata pool numbers are hardcoded X-Git-Tag: v0.75~31^2~12 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=20b3da059d2ed9b5a797f020d4dc097667a05add;p=ceph.git mon: MDS data and metadata pool numbers are hardcoded The MDS assumes pool 0 and 1 are suitable for data and metadata respectively. Instead of relying on the CEPH_DATA_RULE and CEPH_METADATA_RULE constants that only match by chance, set a hardcoded value specific to MDS to reduce the fragility of the hardcoded assumption. Signed-off-by: Loic Dachary --- diff --git a/src/mds/Dumper.cc b/src/mds/Dumper.cc index 9b83b4d9b0021..fc9b48133fb9e 100644 --- a/src/mds/Dumper.cc +++ b/src/mds/Dumper.cc @@ -49,7 +49,7 @@ bool Dumper::ms_get_authorizer(int dest_type, AuthAuthorizer **authorizer, void Dumper::init(int rank) { inodeno_t ino = MDS_INO_LOG_OFFSET + rank; - unsigned pg_pool = CEPH_METADATA_RULE; + unsigned pg_pool = MDS_METADATA_POOL; osdmap = new OSDMap(); objecter = new Objecter(g_ceph_context, messenger, monc, osdmap, lock, timer); journaler = new Journaler(ino, pg_pool, CEPH_FS_ONDISK_MAGIC, @@ -194,7 +194,7 @@ void Dumper::undump(const char *dump_file) cout << "start " << start << " len " << len << std::endl; inodeno_t ino = MDS_INO_LOG_OFFSET + rank; - unsigned pg_pool = CEPH_METADATA_RULE; + unsigned pg_pool = MDS_METADATA_POOL; Journaler::Header h; h.trimmed_pos = start; diff --git a/src/mds/Resetter.cc b/src/mds/Resetter.cc index ed409a492e04b..cbf8f8964ddbd 100644 --- a/src/mds/Resetter.cc +++ b/src/mds/Resetter.cc @@ -57,7 +57,7 @@ bool Resetter::ms_dispatch(Message *m) void Resetter::init(int rank) { inodeno_t ino = MDS_INO_LOG_OFFSET + rank; - unsigned pg_pool = CEPH_METADATA_RULE; + unsigned pg_pool = MDS_METADATA_POOL; osdmap = new OSDMap(); objecter = new Objecter(g_ceph_context, messenger, monc, osdmap, lock, timer); journaler = new Journaler(ino, pg_pool, CEPH_FS_ONDISK_MAGIC, diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index d68e147dcbca5..2b7c8e0e66aaa 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -36,6 +36,9 @@ using namespace std; #define MDS_PORT_LOCKER 0x300 #define MDS_PORT_MIGRATOR 0x400 +// FIXME: this should not be hardcoded +#define MDS_DATA_POOL 0 +#define MDS_METADATA_POOL 1 #define MAX_MDS 0x100 #define NUM_STRAY 10 diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 45b932735fb60..3a1af05ffae5a 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -39,6 +39,8 @@ #include "common/cmdparse.h" #include "include/str_list.h" +#include "mds/mdstypes.h" + #define dout_subsys ceph_subsys_mon #undef dout_prefix #define dout_prefix _prefix(_dout, mon, mdsmap) @@ -80,7 +82,7 @@ void MDSMonitor::create_new_fs(MDSMap &m, int metadata_pool, int data_pool) void MDSMonitor::create_initial() { dout(10) << "create_initial" << dendl; - create_new_fs(pending_mdsmap, CEPH_METADATA_RULE, CEPH_DATA_RULE); + create_new_fs(pending_mdsmap, MDS_METADATA_POOL, MDS_DATA_POOL); }