--- title: How to snapshot your filesystems eleventyNavigation: key: 📸 Snapshot your filesystems parent: How-to guides order: 9 --- Many filesystems support taking snapshots—point-in-time, read-only "copies" of your data, ideal for backing up files that may change during the backup. These snapshots initially don't use any additional storage space and can be made almost instantly. To help automate backup of these filesystems, borgmatic can use them to take snapshots. ### ZFS New in version 1.9.3 Beta feature borgmatic supports taking snapshots with the [ZFS filesystem](https://openzfs.org/) and sending those snapshots to Borg for backup. To use this feature, add one or more ZFS dataset paths to your `source_directories`. Then, enable borgmatic's ZFS snapshotting of those datasets by adding the following line to your configuration file: ```yaml zfs: ``` No other options are necessary to enable ZFS support. But if you're using systemd to run borgmatic, you'll likely need to modify the [sample systemd service file](https://projects.torsion.org/borgmatic-collective/borgmatic/raw/branch/main/sample/systemd/borgmatic.service) to work with ZFS. See the comments in that file for details. As long as the ZFS hook is in beta, it may be subject to breaking changes and/or may not work well for your use cases. But feel free to use it in production if you're okay with these caveats, and please [provide any feedback](https://torsion.org/borgmatic/#issues) you have on this feature. For additional details about ZFS support, see [borgmatic's ZFS documentation](https://torsion.org/borgmatic/reference/configuration/data-sources/zfs/). #### Extract a dataset Filesystem snapshots are stored in a Borg archive as normal files, so you can use the standard [extract action](https://torsion.org/borgmatic/how-to/extract-a-backup/) to extract them. ### Btrfs New in version 1.9.4 Beta feature borgmatic supports taking snapshots with the [Btrfs filesystem](https://btrfs.readthedocs.io/) and sending those snapshots to Borg for backup. To use this feature, add one or more subvolume paths to your `source_directories`. Then, enable Btrfs within borgmatic by adding the following line to your configuration file: ```yaml btrfs: ``` No other options are necessary to enable Btrfs support. But if you're using systemd to run borgmatic, you may need to modify the [sample systemd service file](https://projects.torsion.org/borgmatic-collective/borgmatic/raw/branch/main/sample/systemd/borgmatic.service) to work with Btrfs. See the comments in that file for details. As long as the Btrfs hook is in beta, it may be subject to breaking changes and/or may not work well for your use cases. But feel free to use it in production if you're okay with these caveats, and please [provide any feedback](https://torsion.org/borgmatic/#issues) you have on this feature. For additional details about Btrfs support, see [borgmatic's Btrfs documentation](https://torsion.org/borgmatic/reference/configuration/data-sources/btrfs/). #### Extract a subvolume Subvolume snapshots are stored in a Borg archive as normal files, so you can use the standard [extract action](https://torsion.org/borgmatic/how-to/extract-a-backup/) to extract them. ### LVM New in version 1.9.4 Beta feature borgmatic supports taking snapshots with [LVM](https://sourceware.org/lvm2/) (Linux Logical Volume Manager) and sending those snapshots to Borg for backup. LVM isn't itself a filesystem, but it can take snapshots at the layer right below your filesystem. Note that, due to Borg being a file-level backup, this feature is really only suitable for filesystems, not whole disk or raw images containing multiple filesystems (for example, if you're using a LVM volume to run a Windows KVM that contains an MBR, partitions, etc.). In those cases, you can omit the `lvm:` option and use Borg's own support for [image backup](https://borgbackup.readthedocs.io/en/stable/deployment/image-backup.html). To use the LVM snapshot feature, add one or more mounted LVM logical volumes to your `source_directories`. Then, enable LVM within borgmatic by adding the following line to your configuration file: ```yaml lvm: ``` No other options are necessary to enable LVM support. But if you're using systemd to run borgmatic, you may need to modify the [sample systemd service file](https://projects.torsion.org/borgmatic-collective/borgmatic/raw/branch/main/sample/systemd/borgmatic.service) to work with LVM. See the comments in that file for details. As long as the LVM hook is in beta, it may be subject to breaking changes and/or may not work well for your use cases. But feel free to use it in production if you're okay with these caveats, and please [provide any feedback](https://torsion.org/borgmatic/#issues) you have on this feature. For additional details about LVM support, see [borgmatic's LVM documentation](https://torsion.org/borgmatic/reference/configuration/data-sources/lvm/). #### Extract a logical volume Logical volume snapshots are stored in a Borg archive as normal files, so you can use the standard [extract action](https://torsion.org/borgmatic/how-to/extract-a-backup/) to extract them.