]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: MDS data and metadata pool numbers are hardcoded
authorLoic Dachary <loic@dachary.org>
Wed, 25 Dec 2013 12:30:34 +0000 (13:30 +0100)
committerLoic Dachary <loic@dachary.org>
Thu, 26 Dec 2013 08:12:03 +0000 (09:12 +0100)
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 <loic@dachary.org>
src/mds/Dumper.cc
src/mds/Resetter.cc
src/mds/mdstypes.h
src/mon/MDSMonitor.cc

index 9b83b4d9b002195582a1ce3c9a6b80180598e0e5..fc9b48133fb9e0c5cfde7c4f627d5580056a1b89 100644 (file)
@@ -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;
index ed409a492e04b4911eacc32d52da9ac2c661fc6d..cbf8f8964ddbd5dd94db6bc03b61fca139bd1d73 100644 (file)
@@ -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,
index d68e147dcbca5f16a569bd345735e4e3f2a8a06e..2b7c8e0e66aaa16051a0d2d7d1d87d4c34221aaa 100644 (file)
@@ -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
index 45b932735fb6096f1483a85022f94a19eb6ed7e1..3a1af05ffae5a81eab5c76bf4dc00b1a8df497ea 100644 (file)
@@ -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);
 }