]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/crimson/os/seastore/segment_manager.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / crimson / os / seastore / segment_manager.cc
index 2ed74625242f3eca82df9140603bade291911709..098a9b068f8fe61afd4424d9c3ce4c8e88826c1b 100644 (file)
@@ -3,68 +3,41 @@
 
 #include "crimson/os/seastore/segment_manager.h"
 #include "crimson/os/seastore/segment_manager/block.h"
-#include "crimson/common/log.h"
-
+#include "crimson/os/seastore/logging.h"
 
 #ifdef HAVE_ZNS
 #include "crimson/os/seastore/segment_manager/zns.h"
+SET_SUBSYS(seastore_device);
 #endif
 
-namespace{
-
-#ifdef HAVE_ZNS
-seastar::logger &logger(){
-  return crimson::get_logger(ceph_subsys_seastore_device);
-}
-#endif
-
-}
 
 namespace crimson::os::seastore {
 
-std::ostream& operator<<(std::ostream& out, const device_spec_t& ds)
+std::ostream& operator<<(std::ostream& out, const block_shard_info_t& sf)
 {
-  return out << "device_spec("
-             << "magic=" << ds.magic
-             << ", device_type=" << ds.dtype
-             << ", device_id=" << std::to_string(ds.id)
-             << ")";
+  out << "("
+      << "size=" << sf.size
+      << ", segments=" <<sf.segments
+      << ", tracker_offset=" <<sf.tracker_offset
+      << ", first_segment_offset=" <<sf.first_segment_offset
+      <<")";
+  return out;
 }
 
 std::ostream& operator<<(std::ostream& out, const block_sm_superblock_t& sb)
 {
   out << "superblock("
-      << "size=" << sb.size
+      << "shard_num=" << sb.shard_num
       << ", segment_size=" << sb.segment_size
       << ", block_size=" << sb.block_size
-      << ", segments=" << sb.segments
-      << ", tracker_offset=" << sb.tracker_offset
-      << ", first_segment_offset=" << sb.first_segment_offset
-      << ", major_dev=" << sb.major_dev
-      << ", magic=" << sb.magic
-      << ", device_type=" << sb.dtype
-      << ", device_id=" << std::to_string(sb.device_id)
-      << ", meta=" << sb.meta
-      << ", secondary(";
-  for (const auto& [k, v] : sb.secondary_devices) {
-    out << std::to_string(k) << ": " << v;
-  }
-  return out << "))";
-}
-
-std::ostream& operator<<(std::ostream& out, const segment_manager_config_t& conf)
-{
-  out << "sm_config_t("
-      << "major_dev=" << conf.major_dev
-      << ", magic=" << conf.magic
-      << ", device_type=" << conf.dtype
-      << ", device_id=" << std::to_string(conf.device_id)
-      << ", meta=" << conf.meta
-      << ", secondary(";
-  for (const auto& [k, v] : conf.secondary_devices) {
-    out << std::to_string(k) << ": " << v;
+      << ", shard_info:";
+  for (auto &sf : sb.shard_infos) {
+    out << sf
+        << ",";
   }
-  return out << "))";
+  out << "config=" << sb.config
+      << ")";
+  return out;
 }
 
 std::ostream& operator<<(std::ostream &out, Segment::segment_state_t s)
@@ -84,9 +57,10 @@ std::ostream& operator<<(std::ostream &out, Segment::segment_state_t s)
 
 seastar::future<crimson::os::seastore::SegmentManagerRef>
 SegmentManager::get_segment_manager(
-  const std::string &device)
+  const std::string &device, device_type_t dtype)
 {
 #ifdef HAVE_ZNS
+LOG_PREFIX(SegmentManager::get_segment_manager);
   return seastar::do_with(
     static_cast<size_t>(0),
     [&](auto &nr_zones) {
@@ -102,7 +76,7 @@ SegmentManager::get_segment_manager(
          });
       }).then([&](auto ret) -> crimson::os::seastore::SegmentManagerRef {
        crimson::os::seastore::SegmentManagerRef sm;
-       logger().error("NR_ZONES: {}", nr_zones);
+       INFO("Found {} zones.", nr_zones);
        if (nr_zones != 0) {
          return std::make_unique<
            segment_manager::zns::ZNSSegmentManager
@@ -110,7 +84,7 @@ SegmentManager::get_segment_manager(
        } else {
          return std::make_unique<
            segment_manager::block::BlockSegmentManager
-           >(device + "/block");
+           >(device + "/block", dtype);
        }
       });
     });
@@ -118,7 +92,7 @@ SegmentManager::get_segment_manager(
   return seastar::make_ready_future<crimson::os::seastore::SegmentManagerRef>(
     std::make_unique<
       segment_manager::block::BlockSegmentManager
-    >(device + "/block"));
+    >(device + "/block", dtype));
 #endif
 }