bluestore fsck behavior with legacy stats etc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Background: In nautilus, bluestore started maintaining usage stats on a 
per-pool basis.  BlueStore OSDs created before nautilus lack these stats. 
Running a ceph-bluestore-tool repair can calculate the usage so that 
the OSD can maintain and report them going forward.

There are two options:

- bluestore_warn_on_legacy_statfs (bool, default: true), which makes the 
cluster issue a health warning when there are OSDs that have legacy stats.

- bluestore_no_per_pool_stats_tolerance (enum enforce, until_fsck, 
until_repair, default: until_repair).

  'until_fsck' will tolerate the legacy but fsck will fail
  'until_repair' will tolerate the legacy but fsck will pass
  'enforce' will tolerate the legacy but disable the warning


The octopus addition of per-pool omap usage tracking presents an identical 
problem: a new tracking ability in bluestore that reqires a conversion to 
enable after upgrade.

I think that we can simplify these settings and make them less confusing, 
still with two options:

- bluestore_fsck_error_on_no_per_pool_omap (bool, default: false). During 
fsck, we can either generate a 'warning' about non-per-pool omap, or an 
error.  Generate a warning by default, which means that the fsck return 
code can indicate success.

- bluestore_warn_on_no_per_pool_omap (bool, default: true). At runtime, we 
can generate a health warning if the OSD is using the legacy non-per-pool 
omap.

The overall default behavior is the same as we have with the 
legacy_statfs: OSDs still work, fsck passes, and we generate a health 
warning.

Setting bluestore_warn_on_no_per_pool_omap=false is the same, AFAICS, as 
setting bluestore_no_per_pool_stats_tolerance=enforce.  (Except maybe 
repair won't do the conversion? I don't see why we'd ever not want to 
do the conversion, though.)

Setting bluestore_fsck_error_on_no_per_pool_omap=true is the same, AFAICS, 
as bluestore_no_per_pool_stats_tolerance=until_fsck.

Overall, this seems simpler and easier for a user to understand.  
Realistically, the only option I expect a user will ever change is 
bluestore_warn_on_no_per_pool_omap=false to make the health warning go 
away after an upgrade.

What do you think?  Should I convert the legacy_statfs to behave the same 
way?

sage
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx



[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux