flags:
- runtime
with_legacy: false
+- name: bluestore_bdev_label_multi_upgrade
+ type: bool
+ level: advanced
+ desc: Let repair upgrade to multi label.
+ long_desc: By default single label is preserved.
+ Setting this variable before running fsck-repair upgrades single label into multi label.
+ default: false
+ flags:
+ - startup
+ with_legacy: false
# whether preallocate space if block/db_path/wal_path is file rather that block device.
- name: bluestore_block_preallocate_file
type: bool
auto alloc_size = fm->get_alloc_size();
// Delayed action, we could not do it in _fsck().
+ if (repair && !bdev_label_multi &&
+ cct->_conf.get_val<bool>("bluestore_bdev_label_multi_upgrade")) {
+ // upgrade to multi
+ bdev_label.meta["multi"] = "yes";
+ bdev_label.meta["epoch"] = "1";
+ bdev_label_multi = true;
+ bdev_labels_broken.push_back(BDEV_LABEL_POSITION);
+ errors++;
+ }
if (bdev_label_multi) {
for (size_t i = 0; i < bdev_label_positions.size(); i++) {
uint64_t location = bdev_label_positions[i];