]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdmaptool: lpg_bits specifiable
authorSage Weil <sage@newdream.net>
Thu, 18 Sep 2008 21:26:57 +0000 (14:26 -0700)
committerSage Weil <sage@newdream.net>
Thu, 18 Sep 2008 21:26:57 +0000 (14:26 -0700)
src/config.cc
src/config.h
src/osd/OSDMap.cc
src/osd/OSDMap.h
src/osdmaptool.cc

index c17b5f6c30576bdb8d298659d40e89217f3640e8..8cd230275e426c8a4c4655ceda419d9a6c9cc416 100644 (file)
@@ -405,6 +405,7 @@ md_config_t g_conf = {
   osd_min_pg_size_without_alive: 2,  // smallest pg we allow to activate without telling the monitor
 
   osd_pg_bits: 6,  // bits per osd
+  osd_lpg_bits: 1,  // bits per osd
   osd_object_layout: CEPH_OBJECT_LAYOUT_HASHINO,//LINEAR,//HASHINO,
   osd_pg_layout: CEPH_PG_LAYOUT_CRUSH,//LINEAR,//CRUSH,
   osd_min_rep: 2,
index b7819c1154312e3532393d8a338b8f603c3718b8..44faf4362581b578d972c69fcb12298eae21bc74 100644 (file)
@@ -266,6 +266,7 @@ struct md_config_t {
   int osd_min_pg_size_without_alive;
 
   int   osd_pg_bits;
+  int   osd_lpg_bits;
   int   osd_object_layout;
   int   osd_pg_layout;
   int   osd_min_rep;
index a686682b2347190b191340a2224e3cb71642b577..518b234cb7ac57267bc73946111339bb3d5483f9 100644 (file)
 
 
 void OSDMap::build_simple(epoch_t e, ceph_fsid &fsid,
-                         int num_osd, int pg_bits, int mds_local_osd)
+                         int num_osd, int pg_bits, int lpg_bits,
+                         int mds_local_osd)
 {
   dout(10) << "build_simple on " << num_osd
-          << " osds with " << pg_bits << " pg bits per osd" << dendl;
+          << " osds with " << pg_bits << " pg bits per osd, "
+          << lpg_bits << " lpg bits" << dendl;
   epoch = e;
   set_fsid(fsid);
   ctime = g_clock.now();
 
   set_max_osd(num_osd);
   pg_num = pgp_num = num_osd << pg_bits;
-
+  lpg_num = lpgp_num = lpg_bits ? (1 << (lpg_bits-1)) : 0;
+  
   // crush map
   build_simple_crush_map(crush, num_osd);
 
index 75b526c52ab86e7d1f052da9508a337cd868fdea..53faed49679bb1e692c3c2d2356df8199fd3c596 100644 (file)
@@ -744,7 +744,8 @@ private:
    * handy helpers to build simple maps...
    */
   void build_simple(epoch_t e, ceph_fsid &fsid,
-                   int num_osd, int pg_bits, int mds_local_osd);
+                   int num_osd, int pg_bits, int lpg_bits,
+                   int mds_local_osd);
   static void build_simple_crush_map(CrushWrapper& crush, int num_osd);
 
 };
index ef25fa2718162e67b2e79379e07eba828d35ab0a..fb9d1375b7652f48956ffac98136de99df65af7a 100644 (file)
@@ -60,6 +60,7 @@ int main(int argc, const char **argv)
   const char *monmapfn = 0;
   int num_osd = 0;
   int pg_bits = g_conf.osd_pg_bits;
+  int lpg_bits = g_conf.osd_lpg_bits;
   bool clobber = false;
   bool modified = false;
   const char *export_crush = 0;
@@ -75,8 +76,10 @@ int main(int argc, const char **argv)
       num_osd = atoi(args[++i]);
     } else if (strcmp(args[i], "--clobber") == 0) 
       clobber = true;
-    else if (strcmp(args[i], "--pgbits") == 0)
+    else if (strcmp(args[i], "--pg_bits") == 0)
       pg_bits = atoi(args[++i]);
+    else if (strcmp(args[i], "--lpg_bits") == 0)
+      lpg_bits = atoi(args[++i]);
     else if (strcmp(args[i], "--export-crush") == 0)
       export_crush = args[++i];
     else if (strcmp(args[i], "--import-crush") == 0)
@@ -121,7 +124,7 @@ int main(int argc, const char **argv)
       cerr << me << ": osd count must be > 0" << std::endl;
       exit(1);
     }
-    osdmap.build_simple(0, monmap.fsid, num_osd, pg_bits, 0);
+    osdmap.build_simple(0, monmap.fsid, num_osd, pg_bits, lpg_bits, 0);
     modified = true;
   }