summaryrefslogtreecommitdiffstats
path: root/health/guides/btrfs/btrfs_metadata.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:20:02 +0000
commit58daab21cd043e1dc37024a7f99b396788372918 (patch)
tree96771e43bb69f7c1c2b0b4f7374cb74d7866d0cb /health/guides/btrfs/btrfs_metadata.md
parentReleasing debian version 1.43.2-1. (diff)
downloadnetdata-58daab21cd043e1dc37024a7f99b396788372918.tar.xz
netdata-58daab21cd043e1dc37024a7f99b396788372918.zip
Merging upstream version 1.44.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'health/guides/btrfs/btrfs_metadata.md')
-rw-r--r--health/guides/btrfs/btrfs_metadata.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/health/guides/btrfs/btrfs_metadata.md b/health/guides/btrfs/btrfs_metadata.md
new file mode 100644
index 000000000..6c44ee09b
--- /dev/null
+++ b/health/guides/btrfs/btrfs_metadata.md
@@ -0,0 +1,70 @@
+### Understand the alert
+
+The `btrfs_metadata` alert calculates the percentage of used Btrfs metadata space for a Btrfs filesystem. If you receive this alert, it indicates that your Btrfs filesystem's metadata space is being utilized at a high rate.
+
+### Troubleshoot the alert
+
+**Warning: Data is valuable. Before performing any actions, make sure to take necessary backup steps. Netdata is not responsible for any loss or corruption of data, database, or software.**
+
+1. **Add more physical space**
+
+ - Determine which disk you want to add and in which path:
+ ```
+ root@netdata~ # btrfs device add -f /dev/<new_disk> <path>
+ ```
+
+ - If you get an error that the drive is already mounted, you might have to unmount:
+ ```
+ root@netdata~ # btrfs device add -f /dev/<new_disk> <path>
+ ```
+
+ - Check the newly added disk:
+ ```
+ root@netdata~ # btrfs filesystem show
+ ```
+
+ - Balance the system to make use of the new drive:
+ ```
+ root@netdata~ # btrfs filesystem balance <path>
+ ```
+
+2. **Delete snapshots**
+
+ - List the snapshots for a specific path:
+ ```
+ root@netdata~ # sudo btrfs subvolume list -s <path>
+ ```
+
+ - Delete an unnecessary snapshot:
+ ```
+ root@netdata~ # btrfs subvolume delete <path>/@some_dir-snapshot-test
+ ```
+
+3. **Enable a compression mechanism**
+
+ Apply compression to existing files by modifying the `fstab` configuration file (or during the `mount` procedure) with the `compress=alg` option. Replace `alg` with `zlib`, `lzo`, `zstd`, or `no` (for no compression). For example, to re-compress the `/mount/point` path with `zstd` compression:
+
+ ```
+ root@netdata # btrfs filesystem defragment -r -v -czstd /mount/point
+ ```
+
+4. **Enable a deduplication mechanism**
+
+ Deduplication tools like duperemove, bees, and dduper can help identify blocks of data sharing common sequences and combine extents via copy-on-write semantics. Ensure you check the status of these 3rd party tools before using them.
+
+ - [duperemove](https://github.com/markfasheh/duperemove)
+ - [bees](https://github.com/Zygo/bees)
+ - [dduper](https://github.com/lakshmipathi/dduper)
+
+5. **Perform a balance**
+
+ Balance data/metadata/system-data in empty or near-empty chunks for Btrfs filesystems with multiple disks, allowing space to be reassigned:
+
+ ```
+ root@netdata # btrfs balance start -musage=50 -dusage=10 -susage=5 /mount/point
+ ```
+
+### Useful resources
+
+1. [The Btrfs filesystem on Arch Linux website](https://wiki.archlinux.org/title/btrfs)
+2. [The Btrfs filesystem on kernel.org website](https://btrfs.wiki.kernel.org) \ No newline at end of file