From 6991295fb93c3e2afe9bc74ab249099b51de76ee Mon Sep 17 00:00:00 2001 From: Ravind Kumar Date: Tue, 20 Jun 2023 17:13:34 -0400 Subject: [PATCH] Improvements to replication conceptual docs (#885) --- .../architecture-4-node-deploy.svg | 888 ++++++- ...chitecture-erasure-set-retrieve-object.svg | 1387 +++++++++- .../architecture-erasure-set-shard.svg | 1806 ++++++++++++- .../architecture-load-balancer-8-node.svg | 624 ++++- .../architecture-load-balancer-multi-pool.svg | 1729 +++++++++++- ...cture-load-balancer-multi-site-healing.svg | 1 - .../architecture-load-balancer-multi-site.svg | 610 ++++- .../architecture-multi-site-latency.svg | 846 +++++- .../architecture-multi-site-setup.svg | 304 ++- .../architecture/architecture-multi-site.svg | 710 ++++- .../architecture-multiple-clients.svg | 806 +++++- .../architecture-one-node-DAS.svg | 434 +++- .../availability-erasure-set-failure.svg | 1069 +++++++- .../availability-erasure-set-selection.svg | 617 ++++- ...lability-erasure-sharding-degraded-set.svg | 1720 +++++++++++- ...bility-erasure-sharding-degraded-write.svg | 1757 ++++++++++++- ...availability-erasure-sharding-degraded.svg | 1638 +++++++++++- ...ilability-erasure-sharding-split-brain.svg | 1786 ++++++++++++- .../availability-erasure-sharding-striped.svg | 2314 ++++++++++++++++- .../availability-erasure-sharding.svg | 1634 +++++++++++- .../availability-multi-site-healing.svg | 447 ++++ .../availability-multi-site-proxy.svg | 624 +++++ .../availability-multi-site-setup.svg | 647 +++++ .../availability-pool-failure.svg | 914 ++++++- source/operations/concepts/architecture.rst | 37 +- .../concepts/availability-and-resiliency.rst | 47 + .../multi-site-replication.rst | 19 + 27 files changed, 25361 insertions(+), 54 deletions(-) delete mode 100644 source/images/architecture/architecture-load-balancer-multi-site-healing.svg create mode 100644 source/images/availability/availability-multi-site-healing.svg create mode 100644 source/images/availability/availability-multi-site-proxy.svg create mode 100644 source/images/availability/availability-multi-site-setup.svg diff --git a/source/images/architecture/architecture-4-node-deploy.svg b/source/images/architecture/architecture-4-node-deploy.svg index d8d44825..b47404cb 100644 --- a/source/images/architecture/architecture-4-node-deploy.svg +++ b/source/images/architecture/architecture-4-node-deploy.svg @@ -1 +1,887 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-erasure-set-retrieve-object.svg b/source/images/architecture/architecture-erasure-set-retrieve-object.svg index eaee8897..c45e7e92 100644 --- a/source/images/architecture/architecture-erasure-set-retrieve-object.svg +++ b/source/images/architecture/architecture-erasure-set-retrieve-object.svg @@ -1 +1,1386 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-erasure-set-shard.svg b/source/images/architecture/architecture-erasure-set-shard.svg index 99373f14..f5fc4e44 100644 --- a/source/images/architecture/architecture-erasure-set-shard.svg +++ b/source/images/architecture/architecture-erasure-set-shard.svg @@ -1 +1,1805 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-load-balancer-8-node.svg b/source/images/architecture/architecture-load-balancer-8-node.svg index f4059c3a..079e3c1a 100644 --- a/source/images/architecture/architecture-load-balancer-8-node.svg +++ b/source/images/architecture/architecture-load-balancer-8-node.svg @@ -1 +1,623 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-load-balancer-multi-pool.svg b/source/images/architecture/architecture-load-balancer-multi-pool.svg index ccdbd4fc..cbf5fd4e 100644 --- a/source/images/architecture/architecture-load-balancer-multi-pool.svg +++ b/source/images/architecture/architecture-load-balancer-multi-pool.svg @@ -1 +1,1728 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-load-balancer-multi-site-healing.svg b/source/images/architecture/architecture-load-balancer-multi-site-healing.svg deleted file mode 100644 index a3a7a287..00000000 --- a/source/images/architecture/architecture-load-balancer-multi-site-healing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/source/images/architecture/architecture-load-balancer-multi-site.svg b/source/images/architecture/architecture-load-balancer-multi-site.svg index 1a1710b8..1d63b57d 100644 --- a/source/images/architecture/architecture-load-balancer-multi-site.svg +++ b/source/images/architecture/architecture-load-balancer-multi-site.svg @@ -1 +1,609 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-multi-site-latency.svg b/source/images/architecture/architecture-multi-site-latency.svg index 0bdd154e..629fbe56 100644 --- a/source/images/architecture/architecture-multi-site-latency.svg +++ b/source/images/architecture/architecture-multi-site-latency.svg @@ -1 +1,845 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-multi-site-setup.svg b/source/images/architecture/architecture-multi-site-setup.svg index 12b4eeed..3038d0e0 100644 --- a/source/images/architecture/architecture-multi-site-setup.svg +++ b/source/images/architecture/architecture-multi-site-setup.svg @@ -1 +1,303 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + SITE A + + + + + + + + + + + SITE B + + + + ReplicationTraffic + Replicated Data + + + CONFIG + + + + + + IAM + BUCKETS + + + CONFIG + + + + IAM + BUCKETS + + + diff --git a/source/images/architecture/architecture-multi-site.svg b/source/images/architecture/architecture-multi-site.svg index 64a174bc..cac57ce9 100644 --- a/source/images/architecture/architecture-multi-site.svg +++ b/source/images/architecture/architecture-multi-site.svg @@ -1 +1,709 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-multiple-clients.svg b/source/images/architecture/architecture-multiple-clients.svg index b98fe1f9..bcb8088a 100644 --- a/source/images/architecture/architecture-multiple-clients.svg +++ b/source/images/architecture/architecture-multiple-clients.svg @@ -1 +1,805 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/architecture/architecture-one-node-DAS.svg b/source/images/architecture/architecture-one-node-DAS.svg index 1b15e13d..4c366e2d 100644 --- a/source/images/architecture/architecture-one-node-DAS.svg +++ b/source/images/architecture/architecture-one-node-DAS.svg @@ -1 +1,433 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-set-failure.svg b/source/images/availability/availability-erasure-set-failure.svg index 51d9b53d..b6fd4a3b 100644 --- a/source/images/availability/availability-erasure-set-failure.svg +++ b/source/images/availability/availability-erasure-set-failure.svg @@ -1 +1,1068 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-set-selection.svg b/source/images/availability/availability-erasure-set-selection.svg index 92eb00d5..a1fb0bf4 100644 --- a/source/images/availability/availability-erasure-set-selection.svg +++ b/source/images/availability/availability-erasure-set-selection.svg @@ -1 +1,616 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-sharding-degraded-set.svg b/source/images/availability/availability-erasure-sharding-degraded-set.svg index cd109f33..59120cef 100644 --- a/source/images/availability/availability-erasure-sharding-degraded-set.svg +++ b/source/images/availability/availability-erasure-sharding-degraded-set.svg @@ -1 +1,1719 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-sharding-degraded-write.svg b/source/images/availability/availability-erasure-sharding-degraded-write.svg index 7738f082..c7fe08fb 100644 --- a/source/images/availability/availability-erasure-sharding-degraded-write.svg +++ b/source/images/availability/availability-erasure-sharding-degraded-write.svg @@ -1 +1,1756 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-sharding-degraded.svg b/source/images/availability/availability-erasure-sharding-degraded.svg index c7fe9d03..31127ea0 100644 --- a/source/images/availability/availability-erasure-sharding-degraded.svg +++ b/source/images/availability/availability-erasure-sharding-degraded.svg @@ -1 +1,1637 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-sharding-split-brain.svg b/source/images/availability/availability-erasure-sharding-split-brain.svg index 24c58a43..99c66822 100644 --- a/source/images/availability/availability-erasure-sharding-split-brain.svg +++ b/source/images/availability/availability-erasure-sharding-split-brain.svg @@ -1 +1,1785 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-sharding-striped.svg b/source/images/availability/availability-erasure-sharding-striped.svg index 1a6616d1..8dd150c3 100644 --- a/source/images/availability/availability-erasure-sharding-striped.svg +++ b/source/images/availability/availability-erasure-sharding-striped.svg @@ -1 +1,2313 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-erasure-sharding.svg b/source/images/availability/availability-erasure-sharding.svg index bad148b3..9675b826 100644 --- a/source/images/availability/availability-erasure-sharding.svg +++ b/source/images/availability/availability-erasure-sharding.svg @@ -1 +1,1633 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-multi-site-healing.svg b/source/images/availability/availability-multi-site-healing.svg new file mode 100644 index 00000000..631fedf6 --- /dev/null +++ b/source/images/availability/availability-multi-site-healing.svg @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SITE A + + + + Replication Traffic + NetworkLinks + + + CONFIG + + + + + + IAM + BUCKETS + + + + + + + + + + + + + + SITE B + + CONFIG + + + IAM + BUCKETS + + + + + DATACENTER 1 + diff --git a/source/images/availability/availability-multi-site-proxy.svg b/source/images/availability/availability-multi-site-proxy.svg new file mode 100644 index 00000000..3fb9259c --- /dev/null +++ b/source/images/availability/availability-multi-site-proxy.svg @@ -0,0 +1,624 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SITE A + + + + Replication Traffic + S3 Traffic + + + CONFIG + + + + + + IAM + BUCKETS + + + + + + + + + + + + + + SITE B + + CONFIG + + + IAM + BUCKETS + + + + + DATACENTER 1 + diff --git a/source/images/availability/availability-multi-site-setup.svg b/source/images/availability/availability-multi-site-setup.svg new file mode 100644 index 00000000..7d9690f9 --- /dev/null +++ b/source/images/availability/availability-multi-site-setup.svg @@ -0,0 +1,647 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/images/availability/availability-pool-failure.svg b/source/images/availability/availability-pool-failure.svg index 2f029892..98b08d71 100644 --- a/source/images/availability/availability-pool-failure.svg +++ b/source/images/availability/availability-pool-failure.svg @@ -1 +1,913 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/operations/concepts/architecture.rst b/source/operations/concepts/architecture.rst index e64c192a..5768434b 100644 --- a/source/operations/concepts/architecture.rst +++ b/source/operations/concepts/architecture.rst @@ -134,18 +134,6 @@ MinIO :ref:`site replication ` provides support A MinIO multi-site deployment with three peers. Write operations on one peer replicate to all other peers in the configuration automatically. -Each peer site consists of an independent set of MinIO hosts, ideally having matching pool configurations. - The architecture of each peer site should closely match to ensure consistent performance and behavior between sites. - All peer sites must use the same primary identity provider, and during initial configuration only one peer site can have any data. - - .. figure:: /images/architecture/architecture-multi-site-setup.svg - :figwidth: 100% - :alt: Diagram of a multi-site deployment during initial setup - - The initial setup of a MinIO multi-site deployment. - The first peer site replicates all required information to other peers in the configuration. - Adding new peers uses the same sequence for synchronizing data. - Replication performance primarily depends on the network latency between each peer site. With geographically distributed peer sites, high latency between sites can result in significant replication lag. This can compound with workloads that are near or at the deployment's overall performance capacity, as the replication process itself requires sufficient free :abbr:`I/O (Input / Output)` to synchronize objects. @@ -162,27 +150,10 @@ Deploying a global load balancer or similar network appliance with support for s .. figure:: /images/architecture/architecture-load-balancer-multi-site.svg :figwidth: 100% - :alt: Diagram of a multi-site deployment with a failed site + :alt: Diagram of a site replication deployment with two sites - One of the peer sites has failed completely. - The load balancer automatically routes requests to the remaining healthy peer site. + The Load Balancer automatically routes client requests using configured logic (geo-local, latency, etc.). + Data written to one site automatically replicates to the other peer site. The load balancer should meet the same requirements as single-site deployments regarding connection balancing and header preservation. - MinIO replication handles transient failures by queuing objects for replication. - -MinIO replication can automatically heal a site that has partial or total data loss due to transient or sustained downtime. - If a peer site completely fails, you can remove that site from the configuration entirely. - The load balancer configuration should also remove that site to avoid routing client requests to the offline site. - - You can then restore the peer site, either after repairing the original hardware or replacing it entirely, by adding it back to the site replication configuration. - MinIO automatically begins resynchronizing existing data while continuously replicating new data. - - .. figure:: /images/architecture/architecture-load-balancer-multi-site-healing.svg - :figwidth: 100% - :alt: Diagram of a multi-site deployment with a healing site - - The peer site has recovered and reestablished connectivity with its healthy peers. - MinIO automatically works through the replication queue to catch the site back up. - - Once all data synchronizes, you can restore normal connectivity to that site. - Depending on the amount of replication lag, latency between sites and overall workload :abbr:`I/O (Input / Output)`, you may need to temporarily stop write operations to allow the sites to completely catch up. \ No newline at end of file + MinIO replication handles transient failures by queuing objects for replication. \ No newline at end of file diff --git a/source/operations/concepts/availability-and-resiliency.rst b/source/operations/concepts/availability-and-resiliency.rst index 070be50d..509e7b89 100644 --- a/source/operations/concepts/availability-and-resiliency.rst +++ b/source/operations/concepts/availability-and-resiliency.rst @@ -24,6 +24,9 @@ This page provides an overview of MinIO's availability and resiliency design and Community users can seek support on the `MinIO Community Slack `__. Community Support is best-effort only and has no SLAs around responsiveness. +Distributed MinIO Deployments +----------------------------- + MinIO implements :ref:`erasure coding ` as the core component in providing availability and resiliency during drive or node-level failure events. MinIO partitions each object into data and :ref:`parity ` shards and distributes those shards across a single :ref:`erasure set `. @@ -158,4 +161,48 @@ For multi-pool MinIO deployments, each pool requires at least one erasure set ma Use replicated remotes to restore the lost data to the deployment. All data stored on the healthy pools remain safe on disk. +Replicated MinIO Deployments +---------------------------- + +MinIO implements :ref:`site replication ` as the primary measure for ensuring Business Continuity and Disaster Recovery (BC/DR) in the case of both small and large scale data loss in a MinIO deployment. + .. figure:: /images/availability/availability-multi-site-setup.svg + :figwidth: 100% + :alt: Diagram of a multi-site deployment during initial setup + + Each peer site is deployed to an independent datacenter to provide protection from large-scale failure or disaster. + If one datacenter goes completely offline, clients can fail over to the other site. + +MinIO replication can automatically heal a site that has partial or total data loss due to transient or sustained downtime. + .. figure:: /images/availability/availability-multi-site-healing.svg + :figwidth: 100% + :alt: Diagram of a multi-site deployment while healing + + Datacenter 2 was down and Site B requires resynchronization. + The Load Balancer handles routing operations to Site A in Datacenter 1. + Site A continuously replicates data to Site B. + + Once all data synchronizes, you can restore normal connectivity to that site. + Depending on the amount of replication lag, latency between sites and overall workload :abbr:`I/O (Input / Output)`, you may need to temporarily stop write operations to allow the sites to completely catch up. + + If a peer site completely fails, you can remove that site from the configuration entirely. + The load balancer configuration should also remove that site to avoid routing client requests to the offline site. + + You can then restore the peer site, either after repairing the original hardware or replacing it entirely, by :ref:`adding it back to the site replication configuration `. + MinIO automatically begins resynchronizing existing data while continuously replicating new data. + +Sites can continue processing operations during resynchronization by proxying ``GET/HEAD`` requests to healthy peer sites + .. figure:: /images/availability/availability-multi-site-proxy.svg + :figwidth: 100% + :alt: Diagram of a multi-site deployment while healing + + Site B does not have the requested object, possibly due to replication lag. + It proxies the ``GET`` request to Site A. + Site A returns the object, which Site B then returns to the requesting client. + + The client receives the results from first peer site to return *any* version of the requested object. + + ``PUT`` and ``DELETE`` operations synchronize using the regular replication process. + ``LIST`` operations do not proxy and require clients to issue them exclusively against healthy peers. + + diff --git a/source/operations/install-deploy-manage/multi-site-replication.rst b/source/operations/install-deploy-manage/multi-site-replication.rst index 9d7c56bf..6b75f533 100644 --- a/source/operations/install-deploy-manage/multi-site-replication.rst +++ b/source/operations/install-deploy-manage/multi-site-replication.rst @@ -88,6 +88,25 @@ Any MinIO deployment in the site replication configuration can resynchronize dam If one site loses data for any reason, resynchronize the data from another healthy site with :mc-cmd:`mc admin replicate resync`. This launches an active process that resynchronizes the data without waiting for the passive MinIO scanner to recognize the missing data. +Proxy to Other Sites +~~~~~~~~~~~~~~~~~~~~ + +MinIO peer sites can proxy ``GET/HEAD`` requests for an object to other peers to check if it exists. +This allows a site that is healing or lagging behind other peers to still return an object persisted to other sites. + +For example: + +1. A client issues ``GET("data/invoices/january.xls")`` to ``Site1`` +2. ``Site1`` cannot locate the object +3. ``Site1`` proxies the request to ``Site2`` +4. ``Site2`` returns the latest version of the requested object +5. ``Site1`` returns the proxied object to the client + +For ``GET/HEAD`` requests that do *not* include a unique version ID, the proxy request returns the *latest* version of that object on the peer site. +This may result in retrieval of a non-current version of an object, such as if the responding peer site is also experiencing replication lag. + +MinIO does not proxy ``LIST``, ``DELETE``, and ``PUT`` operations. + Prerequisites -------------