ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Ask AI
ScyllaDB Docs Scylla Manager Backup Native Backup

Caution

You're viewing documentation for an unstable version of Scylla Manager. Switch to the latest stable version.

Native Backup¶

ScyllaDB Manager uses ScyllaDB Manager Agents deployed on each ScyllaDB node to coordinate backups. Those agents serve as a proxy to ScyllaDB REST API, but they also act as rclone servers responsible for communication between the node and backup location.

Since rclone server is separate from ScyllaDB internal schedulers, yet they both live on the same machine, it is allocated with limited resources not to interfere with ScyllaDB performance.

This solution results in:

  • Inefficient resource utilization (especially when backup is running under high load)

  • Longer backup duration (limited resources allocated to rclone server)

  • Increased disk storage utilization (snapshots are stored on disk for a longer time)

Native backup aims to solve these problems by moving backup responsibilities from rclone server into ScyllaDB itself. It’s important to note that both native and rclone backups performed by ScyllaDB Manager have the same specification consisting of backup directory layout, manifest, schema and SSTable files. This means that all backups can be used for all types of restores (e.g. regular restore, 1-1-restore, native restore, …). In the Status section you can find the parts of backup procedure already moved to ScyllaDB.

Status¶

This section contains the list of stages in the backup procedure now managed by ScyllaDB. All other stages are still performed by the rclone server (e.g., deduplication of SSTables, retention of old backups). The ScyllaDB Version column describes the ScyllaDB version from which the functionality is considered production ready, even though the functionality might be available in earlier versions as well.

Functionality

Since ScyllaDB Version

Description

Limitations

SSTable upload

2025.2

As this is the most time- and resource-consuming part of the backup procedure, moving it to ScyllaDB brings the most benefits. It also leverages knowledge of ScyllaDB internals to prioritize the upload of already compacted SSTables, which can then be fully deleted after upload, which reduces disk storage utilization caused by the snapshot. To ensure that native SSTable upload does not interfere with ScyllaDB performance, it should be throttled by configuring stream_io_throughput_mb_per_sec in scylla.yaml.

Works with S3 provider only. Does not support creation of versioned SSTables.

Configuration¶

To configure native backup, perform the following steps for each ScyllaDB node:

  1. Make sure that ScyllaDB Manager Agent is configured as usual.

  2. Configure object_storage_endpoints in scylla.yaml.

    This configures the backup location access for the ScyllaDB node itself. The backup location access for ScyllaDB Manager Agent needs to be configured separately, in the same way as it is done for the regular backup purposes (see Setup Amazon S3). The configurations in scylla.yaml and scylla-manager-agent.yaml should match. An example of matching configurations is shown below:

    scylla-manager-agent.yaml:

    s3:
      provider: AWS
      region: us-east-1
      endpoint: https://s3.us-east-1.amazonaws.com:443
    

    scylla.yaml:

    object_storage_endpoints:
      - name: s3.us-east-1.amazonaws
        port: 443
        https: true
        aws_region: us-east-1
    
  3. Throttle stream_io_throughput_mb_per_sec in scylla.yaml.

    To ensure that native SSTable upload does not interfere with ScyllaDB performance, it should be throttled by configuring stream_io_throughput_mb_per_sec in scylla.yaml.

Usage¶

The native backup usage is controlled with the sctool backup –method flag. It supports three values: rclone (default), native, and auto:

  • native: Uses all native backup functionalities listed in Status section. Use this value for native backup configuration validation and testing. Note that this will fail when:

    • ScyllaDB is not configured properly (see object_storage_endpoints in Configuration)

    • Provider other than S3 is used (see limitations in Status)

    • The upload of snapshot directories would result in creation of versioned SSTables (see limitations in Status)

  • auto: Uses native backup functionalities when possible, otherwise falls back to rclone backup. Use this value for production backups. It will use native backup functionality only when it is considered production ready (see version support in Status). The fallback works on per snapshot directory basis, so it allows for utilizing native backup functionalities for most snapshot directories, even if a small subset of them contains versioned SSTables.

  • rclone: Uses rclone backup functionalities only. This effectively disables all native backup functionalities.

Note that sctool backup –rate-limit –transfers flags do not take effect when using native backup, as the upload performance is controlled directly by ScyllaDB itself. To control upload performance on the ScyllaDB side, configure stream_io_throughput_mb_per_sec in scylla.yaml.

You can create a new backup task with the desired method:

sctool backup -c <cluster ID> -L <backup locations> --method native

You can also update existing backup task to use a different method:

sctool backup update -c <cluster ID> <backup task ID> -L <backup locations> --method auto

Was this page helpful?

PREVIOUS
Setup Azure Blob Storage
NEXT
Examples
  • Create an issue
  • Edit this page

On this page

  • Native Backup
    • Status
    • Configuration
    • Usage
Scylla Manager
  • master
    • master
    • 3.6
    • 3.5
    • 3.4
  • Docker
  • Install ScyllaDB Manager
  • Install ScyllaDB Manager Agent
  • ScyllaDB Manager Upgrade
  • Compatibility Matrix
  • Add a Cluster
  • Backup
    • Setup Amazon S3
    • Setup S3 compatible storage
    • Setup Google Cloud Storage
    • Setup Azure Blob Storage
    • Native Backup
    • Examples
    • Specification
  • Restore
    • Restore tables
    • Restore schema for ScyllaDB 6.0/2024.2 or newer
    • Restore schema for ScyllaDB 5.4/2024.1 or older
    • Examples
  • Repair
    • Repair faster
    • Repair slower
    • Examples
  • Health Check
  • CLI sctool
    • Environment variables
    • Completion
    • Download files
    • Backup
    • Restore
    • Cluster
    • Info
    • Progress
    • Repair
    • Start
    • Status
    • Stop
    • Suspend & Resume
    • Tasks
    • Version
  • Configuration Files
    • Scylla Manager Config
    • Scylla Manager Agent Config
  • Swagger File
  • ScyllaDB Monitoring
  • Troubleshooting
  • Slack
Docs Tutorials University Contact Us About Us
© 2025, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 22 September 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.8
Ask AI