Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strategies on avoiding btrfs failures #235

Closed
happyaron opened this issue Jan 30, 2018 · 1 comment
Closed

Strategies on avoiding btrfs failures #235

happyaron opened this issue Jan 30, 2018 · 1 comment
Milestone

Comments

@happyaron
Copy link
Contributor

Since last week we have concluded a series of strategies on avoiding btrfs failures, using this issue as a reference to keep track of all the ideas and TODO items.

We suspect btrfs is vulnerable when it is not cleanly umounted, as well as it tends to fail under heavy workload (overload) with quota in use. To avoid these problems as much as possible, we want to do clean umount when the system is working normally, and run defensive maintenance tools both regularly and on failure happens.

  1. Determine what has been triggering the btrfs failures, so that a proper kernel bug report can be made. This is tracked in Btrfs Fail #229
  2. Detect unclean shutdowns, so that we are able to run btrfs maintenance before mounting the file system. This is tracked in Detect unclean shutdown #232
  3. Run btrfs scrub at least monthly to maintain the file system integrity.
  4. Agent should stop all containers on shutdown and removal. This is tracked in Agent should stop all containers on peer reboot/shutdown agent#270
  5. Set a higher btrfs quota for purely defensive purpose, and let hub/agent do the daily space quota enforcement. This is tracked in Run disk quota excess check  peer-os#2226 and Disable btrfs quotas in btrfsinit script #233
  6. Reduce excessive data collection from agent, to avoid high sys% performance penalty.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants