Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
maxLevel2

There are three types of storage policies in Swarm: replication, erasure coding, and versioning. They can be customized at the level of domains and buckets, but this section concerns the Swarm settings that control your the cluster-wide requirements. They appear in the Policy section of the Cluster Settings in the Swarm UI:

...

Excerpt

What EC Protection Level is needed?

The EC protection level determines how strictly EC segments must be distributed for a write to succeed, or else return an error (412 Precondition Failed) to the writing application. After Swarm writes an object to the cluster, the health processor attempts to maintain the requested protection level. If cluster resources become unavailable, it will degrade degrades gracefully. When this occurs, the health processor logs errors, alerting you that the requested protection cannot be maintained and that your data may be at risk.

Regardless of the protection level you set, Swarm always makes a best effort to distribute segments as broadly as possible across your hardware, to protect your data.

ec.protectionLevel

Cluster requirements

Effect

subcluster

>= (k+p)/p subclusters

Requires a subcluster for every p segments. Use only if you have geographical or systems-based subclusters defined that you need to factor into content protection.

node (default)

>= (k+p)/p nodes

Requires a node for every p segments. Use for most situations.

Important: When working with a small number of nodes, be sure that your verify the EC encoding can support what you haveexists

  • With 3 nodes, you can use 3:2 encoding ((3 + 2) ÷ 2 = 3 nodes required), but not 3:1 encoding ((3 + 1) ÷ 1 = 4 nodes required).

  • With 4 nodes, you can use 4:2 encoding ((4 + 2) ÷ 2 = 3 nodes required), but not 4:1 encoding ((4 + 1) ÷ 1 = 5 nodes required).

volume

>= k+p volumes

Least protection. Requires k+p volumes, but p+1 nodes are still needed because the manifest must be written to separate nodes. Use only if you have insufficient nodes for node-based protection. 


< k+p volumes

Unsupportable. EC writes will fail.

Info

Deprecated

The setting  ec.subclusterLossTolerance has been deprecated and needs to be removed from configurations when upgrading to Swarm 10.

Versioning Policy

Swarm has policy support for object versioning. Versioning can be enabled for specific contexts (domains and buckets) after the cluster is configured to permit versioning of objects. 

...