f->dump_unsigned("max", fs->mds_map.max_mds);
}
} else {
- *out << "e" << get_epoch() << ":";
if (filesystems.size() == 1) {
auto fs = filesystems.begin()->second;
- *out << " " << fs->mds_map.up.size() << "/" << fs->mds_map.in.size() << "/"
+ *out << fs->mds_map.up.size() << "/" << fs->mds_map.in.size() << "/"
<< fs->mds_map.max_mds << " up";
} else {
for (auto i : filesystems) {
auto fs = i.second;
- *out << " " << fs->mds_map.fs_name << "-" << fs->mds_map.up.size() << "/"
- << fs->mds_map.in.size() << "/" << fs->mds_map.max_mds << " up";
+ *out << fs->mds_map.fs_name << "-" << fs->mds_map.up.size() << "/"
+ << fs->mds_map.in.size() << "/" << fs->mds_map.max_mds << " up ";
}
}
}
auto fs = std::make_shared<Filesystem>();
fs->mds_map.fs_name = name;
fs->mds_map.max_mds = 1;
- fs->mds_map.data_pools.insert(data_pool);
+ fs->mds_map.data_pools.push_back(data_pool);
fs->mds_map.metadata_pool = metadata_pool;
fs->mds_map.cas_pool = -1;
fs->mds_map.max_file_size = g_conf->mds_max_file_size;
while (n--) {
__u32 m;
::decode(m, p);
- legacy_mds_map.data_pools.insert(m);
+ legacy_mds_map.data_pools.push_back(m);
}
__s32 s;
::decode(s, p);
return result;
}
-mds_gid_t FSMap::find_unused(fs_cluster_id_t fscid,
- bool force_standby_active) const {
+mds_gid_t FSMap::find_unused_for(mds_role_t role,
+ bool force_standby_active) const {
for (const auto &i : standby_daemons) {
const auto &gid = i.first;
const auto &info = i.second;
continue;
if (info.standby_for_fscid != FS_CLUSTER_ID_NONE &&
- info.standby_for_fscid != fscid)
+ info.standby_for_fscid != role.fscid)
+ continue;
+ if (info.standby_for_rank != MDS_RANK_NONE &&
+ info.standby_for_rank != role.rank)
continue;
// To be considered 'unused' a daemon must either not
if (standby)
return standby;
else
- return find_unused(role.fscid, force_standby_active);
+ return find_unused_for(role, force_standby_active);
}
void FSMap::sanity() const