]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'gh/wip-osd-compat'
authorSage Weil <sage@redhat.com>
Thu, 27 Aug 2015 17:05:40 +0000 (13:05 -0400)
committerSage Weil <sage@redhat.com>
Thu, 27 Aug 2015 17:05:40 +0000 (13:05 -0400)
Reviewed-by: Samuel Just <sjust@redhat.com>
1  2 
src/mon/OSDMonitor.cc
src/os/FileStore.cc
src/os/FileStore.h
src/os/KeyValueStore.cc
src/os/KeyValueStore.h
src/os/ObjectStore.h
src/os/Transaction.cc
src/osd/OSD.cc
src/osd/PG.cc
src/osd/PG.h
src/tools/ceph_objectstore_tool.cc

index c47744e2d7c3450e3bdf028b53e73bfb3ce9831c,6e2f14c20171aca65eca4359677252fd08d2d7b9..25cf3c10e95e4ec7aa0f68a4d6899c037b0dd8c6
@@@ -1856,20 -1845,26 +1856,40 @@@ bool OSDMonitor::preprocess_boot(MonOpR
      goto ignore;
    }
  
 +  if (any_of(osdmap.get_pools().begin(),
 +           osdmap.get_pools().end(),
 +           [](const std::pair<int64_t,pg_pool_t>& pool)
 +           { return pool.second.use_gmt_hitset; })) {
 +    assert(osdmap.get_num_up_osds() == 0 ||
 +         osdmap.get_up_osd_features() & CEPH_FEATURE_OSD_HITSET_GMT);
 +    if (!(m->osd_features & CEPH_FEATURE_OSD_HITSET_GMT)) {
 +      dout(0) << __func__ << " one or more pools uses GMT hitsets but osd at "
 +            << m->get_orig_source_inst()
 +            << " doesn't announce support -- ignore" << dendl;
 +      goto ignore;
 +    }
 +  }
 +
+   // make sure upgrades stop at hammer
+   //  * OSD_PROXY_FEATURES is the last pre-hammer feature
+   //  * MON_METADATA is the first post-hammer feature
+   if (osdmap.get_num_up_osds() > 0) {
+     if ((m->osd_features & CEPH_FEATURE_MON_METADATA) &&
+       !(osdmap.get_up_osd_features() & CEPH_FEATURE_OSD_PROXY_FEATURES)) {
+       mon->clog->info() << "disallowing boot of post-hammer OSD "
+                       << m->get_orig_source_inst()
+                       << " because one or more up OSDs is pre-hammer\n";
+       goto ignore;
+     }
+     if (!(m->osd_features & CEPH_FEATURE_OSD_PROXY_FEATURES) &&
+       (osdmap.get_up_osd_features() & CEPH_FEATURE_MON_METADATA)) {
+       mon->clog->info() << "disallowing boot of pre-hammer OSD "
+                       << m->get_orig_source_inst()
+                       << " because all up OSDs are post-hammer\n";
+       goto ignore;
+     }
+   }
    // already booted?
    if (osdmap.is_up(from) &&
        osdmap.get_inst(from) == m->get_orig_source_inst()) {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 714623f9eed4f3b3989ca2a1e40d3fae7412508e,aab9cea139ede7841ec2652b1e996f7a1e42a758..f1deb2595e1295a12594b787a134deb66cff57fc
@@@ -974,12 -931,9 +931,9 @@@ void ObjectStore::Transaction::generate
    t->clone(c, o1, o3);
    t->clone_range(c, o1, o2, 1, 12, 99);
  
 -  t->create_collection(c);
 +  t->create_collection(c, 12);
    t->collection_move_rename(c, o2, c2, o3);
    t->remove_collection(c);
-   t->collection_setattr(c, string("this"), bl);
-   t->collection_rmattr(c, string("foo"));
-   t->collection_setattrs(c, m);
    o.push_back(t);  
  }
  
diff --cc src/osd/OSD.cc
Simple merge
diff --cc src/osd/PG.cc
Simple merge
diff --cc src/osd/PG.h
Simple merge
Simple merge