new files
This commit is contained in:
277
DATACENTERS.md
277
DATACENTERS.md
@@ -658,6 +658,281 @@ flowchart TD
|
||||
CLIM -->|"Chladná (SE, NO)"| FC3["Free cooling 7000+ h/rok<br/>Air-side economizer<br/>PUE < 1.2"]
|
||||
```
|
||||
|
||||
## Topologie sekundárního datového centra
|
||||
|
||||
Při plánování druhého DC je klíčová volba topologie podle vzdálenosti, RPO/RTO a rozpočtu.
|
||||
|
||||
### Klasifikace vzdáleností
|
||||
|
||||
| Kategorie | Vzdálenost | Latence (round-trip) | Use case |
|
||||
|-----------|-----------|---------------------|----------|
|
||||
| **Metro (Campus)** | 1–20 km | < 1 ms | Synchronní replikace, stretched cluster |
|
||||
| **Metro** | 20–100 km | 1–5 ms | Metro cluster, většinou sync replikace |
|
||||
| **Regional** | 100–500 km | 5–20 ms | Asynchronní replikace, warm standby |
|
||||
| **Continent** | 500–3000 km | 20–100 ms | Asynchronní replikace, cold standby |
|
||||
| **Global** | 3000+ km | > 100 ms | Pouze async, žádné real-time závislosti |
|
||||
|
||||
### Topologie podle provozního režimu
|
||||
|
||||
#### Active-Active (Hot-Hot)
|
||||
|
||||
```
|
||||
DC-A (Primary) DC-B (Active)
|
||||
┌────────────────────┐ ┌────────────────────┐
|
||||
│ App Active │ │ App Active │
|
||||
│ DB Active │◄─sync─►│ DB Active │
|
||||
│ Users → LB → A │ │ Users → LB → B │
|
||||
└────────────────────┘ └────────────────────┘
|
||||
│ │
|
||||
└──── Global Load Balancer ────┘
|
||||
```
|
||||
|
||||
| Parametr | Hodnota |
|
||||
|----------|---------|
|
||||
| **RTO** | 0–vteřiny (automatický failover, traffic se přesměruje) |
|
||||
| **RPO** | 0 (sync replikace, commit je potvrzen až po zápisu do obou DC) |
|
||||
| **Max distance** | < 100 km (latence < 5 ms RTT pro sync DB replikaci) |
|
||||
| **Provozní náklady** | 2× (obě DC plně aktivní, obě plně vybavené) |
|
||||
| **Výhody** | Nulový výpadek, okamžité přepnutí, plné využití obou DC |
|
||||
| **Nevýhody** | Nutná synchronní replikace → limit vzdálenosti, komplexní networking, split-brain risk |
|
||||
|
||||
**Split-brain řešení**: STONITH (Shoot The Other Node In The Head), watchdog, quorum (3. node v 3. lokaci / cloud), fencing, SCSI-3 persistent reservation.
|
||||
|
||||
**Use case**: Finanční služby, telco, platební brány — kde i minuta výpadku = miliony.
|
||||
|
||||
#### Active-Passive (Hot-Warm, MetroCluster)
|
||||
|
||||
```
|
||||
DC-A (Primary) DC-B (Standby)
|
||||
┌────────────────────┐ ┌────────────────────┐
|
||||
│ App Active │ │ App Standby │
|
||||
│ DB Primary │──sync──►│ DB Standby │
|
||||
│ Users → LB → A │ │ ~~~ (čeká) ~~~ │
|
||||
│ DNS: A-record │ │ DNS: health check │
|
||||
└────────────────────┘ └────────────────────┘
|
||||
```
|
||||
|
||||
| Parametr | Hodnota |
|
||||
|----------|---------|
|
||||
| **RTO** | desítky vteřin–minuty (DNS failover + startup App) |
|
||||
| **RPO** | 0 (sync) nebo sekundy (async) |
|
||||
| **Max distance** | sync < 100 km, async neomezeně |
|
||||
| **Provozní náklady** | 1,5–1,8× (druhé DC má zmenšený nebo idle compute) |
|
||||
| **MetroCluster** | Specifická implementace: FC SAN přes DWDM, sync mirror, automatický failover |
|
||||
|
||||
**MetroCluster** (NetApp, Dell EMC, HPE):
|
||||
- Storage-based cluster se synchronním mirroringem mezi DC
|
||||
- Automatic failover při selhání celého DC
|
||||
- Vyžaduje dedikované DWDM nebo dark fiber propojení
|
||||
- Typická vzdálenost: do 50 km (pro latenci < 1 ms RTT)
|
||||
- Use case: enterprise storage, primary+secondary DC v metropolitní oblasti
|
||||
|
||||
#### Hot-Cold (Warm Standby → Cold)
|
||||
|
||||
```
|
||||
DC-A (Primary) DC-B (Cold Standby)
|
||||
┌────────────────────┐ ┌────────────────────┐
|
||||
│ App Active │ │ ~~~ powered off ~~~│
|
||||
│ DB Active │──async─►│ Backup storage │
|
||||
│ Users → A │ │ ~~~ no compute ~~~│
|
||||
└────────────────────┘ └────────────────────┘
|
||||
```
|
||||
|
||||
| Parametr | Hodnota |
|
||||
|----------|---------|
|
||||
| **RTO** | hodiny–dny (nákup/najmutí HW, obnova z backupu) |
|
||||
| **RPO** | hodiny (poslední backup) |
|
||||
| **Max distance** | neomezena |
|
||||
| **Provozní náklady** | 1,1–1,3× (jen storage a facility, compute až při failoveru) |
|
||||
| **Typ use case** | Low-cost DR, compliance, poslední záchrana |
|
||||
|
||||
#### Pilot Light
|
||||
|
||||
```
|
||||
DC-A (Primary) DC-B (Pilot Light)
|
||||
┌────────────────────┐ ┌────────────────────┐
|
||||
│ App Active │ │ ~~~ off ~~~ │
|
||||
│ DB Active │──async─►│ DB replica (mini) │
|
||||
│ Všechny služby │ │ Core services jen │
|
||||
│ │ │ (DNS, LDAP, mon) │
|
||||
└────────────────────┘ └────────────────────┘
|
||||
Při DR: spin-up compute
|
||||
z IaC, zbytek z backupu
|
||||
```
|
||||
|
||||
- DC-B běží s minimem compute (jen core služby a DB replica)
|
||||
- Aplikační vrstva se spin-up z IaC (Terraform, Ansible) až při DR
|
||||
- Kompromis mezi náklady a RTO
|
||||
|
||||
### Srovnávací tabulka
|
||||
|
||||
| Topologie | RTO | RPO | Náklady (× primár) | Max distance | Failover |
|
||||
|-----------|-----|-----|-------------------|-------------|----------|
|
||||
| **Active-Active** | 0–s | 0 | 2,0× | < 100 km | Auto (traffic) |
|
||||
| **MetroCluster** | s–min | 0 | 1,8–2,0× | < 50 km | Auto (storage) |
|
||||
| **Active-Passive (sync)** | min | 0 | 1,5–1,8× | < 100 km | Polo-auto |
|
||||
| **Active-Passive (async)** | min–h | s–min | 1,3–1,5× | neomezena | Polo-auto |
|
||||
| **Pilot Light** | h | min–h | 1,2–1,4× | neomezena | Manuální |
|
||||
| **Warm Standby** | min–h | s–min | 1,5–1,8× | neomezena | Polo-auto |
|
||||
| **Cold Standby** | dny | h | 1,1–1,3× | neomezena | Manuální |
|
||||
|
||||
### Stretched Cluster
|
||||
|
||||
```
|
||||
┌──── Site A (50 km) ────┐ ┌──── Site B ──────────┐
|
||||
│ ┌──────────────────┐ │ │ ┌──────────────────┐ │
|
||||
│ │ ESXi / Hyper-V │ │ │ │ ESXi / Hyper-V │ │
|
||||
│ │ VM │ │ │ │ VM (komplement) │ │
|
||||
│ └────────┬─────────┘ │ │ └────────┬─────────┘ │
|
||||
│ │ │ │ │ │
|
||||
│ ┌────────▼─────────┐ │ │ ┌────────▼─────────┐ │
|
||||
│ │ Storage (SAN) │──┼────┼──│ Storage (SAN) │ │
|
||||
│ │ MetroCluster │ │ │ │ MetroCluster │ │
|
||||
│ └──────────────────┘ │ │ └──────────────────┘ │
|
||||
└────────────────────────┘ └────────────────────────┘
|
||||
│
|
||||
┌─────▼──────┐
|
||||
│ vCenter / │
|
||||
│ Cluster │
|
||||
│ (single) │
|
||||
└────────────┘
|
||||
```
|
||||
|
||||
- Jeden cluster roztažený přes dvě lokality (single management domain)
|
||||
- VM mohou live-migrovat mezi site (vMotion nad vzdálenost)
|
||||
- Storage synchronně mirrorovaná (MetroCluster, VPLEX, vSAN延伸)
|
||||
- **Požadavky**: dark fiber / DWDM, nízká latence (< 5 ms), vysoká spolehlivost linky
|
||||
- **Riziko**: split-brain, brain drain (split-site cluster), závislost na síti
|
||||
- **Use case**: enterprise s vlastní dark fiber mezi dvěma DC v metropolitní oblasti
|
||||
|
||||
### Rozhodovací strom
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start(["Sekundární DC"]) --> RPO{"Požadované RPO?"}
|
||||
RPO -->|"0 (žádná ztráta dat)"| SYNC{"Sync replikace možná?"}
|
||||
SYNC -->|"Ano, < 100 km"| ACT{"Chceš nulový výpadek?"}
|
||||
ACT -->|"Ano"| AA["Active-Active<br/>RTO=0, RPO=0, 2× náklady"]
|
||||
ACT -->|"Ne"| AP["Active-Passive<br/>RTO=min, RPO=0, 1,5×"]
|
||||
SYNC -->|"Ne, > 100 km"| ASYNC["Active-Passive (async)<br/>RTO=min, RPO=s, 1,3×"]
|
||||
|
||||
RPO -->|"minuty–hodiny"| WARM{"Chceš rychlý failover?"}
|
||||
WARM -->|"Ano"| PILOT["Pilot Light<br/>RTO=h, RPO=min, 1,2×"]
|
||||
WARM -->|"Ne"| COLD["Cold Standby<br/>RTO=dny, RPO=h, 1,1×"]
|
||||
|
||||
Start --> DIST{"Vzdálenost mezi DC"}
|
||||
DIST -->|"< 50 km, vlastní fiber"| MC["MetroCluster / Stretched Cluster<br/>Single management, sync storage"]
|
||||
DIST -->|"50–300 km"| REG["Regionální DR<br/>Active-Passive, async replikace"]
|
||||
DIST -->|"> 300 km"| GLOBAL["Globální DR<br/>Cold standby, backup & restore"]
|
||||
```
|
||||
|
||||
### Fyzická infrastruktura pro propojení DC
|
||||
|
||||
| Technologie | Bandwidth | Max distance | Latence | Use case |
|
||||
|------------|-----------|-------------|---------|----------|
|
||||
| **Dark fiber** | 100 GbE–800 GbE | 10–80 km (single-mode) | < 0,1 ms | MetroCluster, stretched cluster |
|
||||
| **DWDM** | 400 GbE–1,6 TbE (per lambda) | 80–120 km (bez zesilovače) | < 0,5 ms | Metro, metro cluster |
|
||||
| **CWDM** | 10–25 GbE (per channel) | 10–40 km | < 0,3 ms | Campus, menší metro |
|
||||
| **MPLS L2VPN** | 10–100 GbE | neomezena | 1–10 ms | Regional DR, async replikace |
|
||||
| **Internet IPsec** | 1–10 GbE | neomezena | 5–50 ms | Cold standby, backup |
|
||||
|
||||
### Vliv jednotlivých technologií na výběr DC topologie
|
||||
|
||||
Volba topologie sekundárního DC není čistě infrastrukturní rozhodnutí — každá vrstva (DB, hypervisor, orchestrace, messaging) přináší vlastní omezení.
|
||||
|
||||
#### Databáze
|
||||
|
||||
| DB technologie | Sync replikace | Max distance | Auto-failover | Split-brain řešení | Poznámka |
|
||||
|---------------|---------------|-------------|---------------|-------------------|----------|
|
||||
| **PostgreSQL** | Synchronous commit (synchronous_standby_names) | < 100 km (latence < 10 ms) | Patroni / repmgr + etcd | Quorum (etcd, 3+ node) | Streaming replication, nutné wal_keep_segments |
|
||||
| **MySQL** | Group Replication (multi-primary, single-primary) | < 100 km | MySQL InnoDB Cluster + MySQL Router | Paxos (Group Replication, 3+ node) | Semi-sync jako kompromis |
|
||||
| **Oracle** | Data Guard (SYNC/FASTSYNC/ASYNC), RAC extended | sync < 100 km, async neomezena | Data Guard Broker / FSFO (Fast Start Failover) | Observer (3. node) | Far Sync pro vzdálená DC |
|
||||
| **MSSQL** | AlwaysOn Availability Groups (SYNCHRONOUS_COMMIT) | < 100 km | AlwaysOn + Cluster quorum | File share majority / cloud witness | Multi-site cluster podpora |
|
||||
| **MongoDB** | Majority write concern + journaling | < 100 km | Replica set auto-election | Arbitration node (voting member) | Priority-based failover |
|
||||
| **Cassandra** | N/A (multi-master, eventual consistency) | neomezena | Ano (peer-to-peer) | Žádné (multi-master, gossip protokol) | Snitch-aware topologie, NetworkTopologyStrategy |
|
||||
| **Redis** | Redis Sentinel / Redis Cluster (async) | neomezena (async) | Sentinel / Cluster failover | Quorum (Sentinel, majority) | PSYNC replikace, replication lag |
|
||||
|
||||
Klíčové omezení pro **sync replikaci**: latence < 5 ms RTT (commit musí počkat na potvrzení z obou DC). Při 100 km je RTT ~1 ms – v pořádku. Při 1000 km (~10 ms RTT) sync replikace snižuje výkon transakcí o 80+ %.
|
||||
|
||||
Pro **Active-Active** jsou vhodné:
|
||||
- **Cassandra / ScyllaDB** — nativní multi-DC, eventual consistency, žádný split-brain
|
||||
- **MySQL Group Replication (multi-primary)** — 3+ DC pro kvorum
|
||||
- **CockroachDB / TiDB** — nativní multi-region, ACID napříč DC
|
||||
- **Redis Enterprise** — Active-Active (CRDT-based)
|
||||
|
||||
Pro **Active-Passive** jsou vhodné:
|
||||
- **PostgreSQL + Patroni** — auto-failover, etcd kvorum
|
||||
- **Oracle Data Guard** — FSFO, far sync pro vzdálené DC
|
||||
- **MSSQL AlwaysOn** — cloud witness
|
||||
- **MongoDB Replica Set** — arbitration node v 3. lokaci
|
||||
|
||||
#### Hypervisory
|
||||
|
||||
| Hypervisor | Cluster technologie | Stretched cluster | Max distance | Split-brain |
|
||||
|-----------|-------------------|-------------------|-------------|-------------|
|
||||
| **VMware vSphere** | vSAN延伸, Metro vCenter, Site Recovery Manager | Ano (vSAN延伸, Metro Cluster) | < 50 km (vSAN延伸), < 10 ms RTT | Fencing (STONITH), witness host |
|
||||
| **Hyper-V** | Storage Replica + Failover Cluster | Ano (Cluster Sets) | < 50 km (sync), neomezena (async) | File share witness / cloud witness |
|
||||
| **Proxmox VE** | Proxmox HA + Ceph | Omezeně (Ceph stretch cluster) | < 50 km (Ceph sync) | Ceph monitor quorum (3+ DC) |
|
||||
| **XCP-ng / XenServer** | Xen Orchestra HA + SR (Storage Repository) replication | Omezeně | závisí na storage replikaci | — |
|
||||
| **Nutanix AHV** | Metro Availability (sync), Async DR | Ano (Metro) | < 100 km (sync), neomezena (async) | Witness VM (cloud / 3. site) |
|
||||
| **KVM / oVirt** | oVirt HA + GlusterFS / NFS | Omezeně | závisí na storage replikaci | — |
|
||||
|
||||
**vSAN延伸** specifické požadavky:
|
||||
- Dedikovaná síť pro vSAN (25 GbE min., < 5 ms RTT)
|
||||
- Witness host v 3. lokaci (nebo cloud witness)
|
||||
- Všechny VM protokoly (FTT=1, mirroring striped)
|
||||
- Storage policy: `site-A + site-B + witness`
|
||||
|
||||
#### Kubernetes a kontejnerové platformy
|
||||
|
||||
| Platforma | Multi-cluster DR | Replikace | Max distance | Failover |
|
||||
|-----------|-----------------|-----------|-------------|----------|
|
||||
| **Vanilla K8s** | KubeFed, Cluster API, Velero + Restic | Velero (backup/restore), Rook (Ceph) | neomezena | Manuální (Velero restore) |
|
||||
| **OpenShift** | ACM (Advanced Cluster Management), Velero | OADP (OpenShift API for Data Protection) | neomezena | ACM failover (subscription) |
|
||||
| **Rancher** | Rancher Multi-Cluster App, Velero | Longhorn (sync/async DR), Velero | neomezena | Polo-auto |
|
||||
| **Google GKE** | Multi-cluster Services, Backup for GKE | Config Sync, Backup for GKE | neomezena | Manuální |
|
||||
| **Azure AKS** | Azure ARC + Velero + Azure Traffic Manager | AKS backup (velero), Azure Site Recovery | neomezena | Manuální (Velero) |
|
||||
| **AWS EKS** | EKS multi-cluster, Velero + S3 cross-region | Velero (S3), Rook (EBS snapshots) | neomezena | Manuální |
|
||||
|
||||
**Klíčové principy K8s DR:**
|
||||
- **Aplikace musí být stateless** (nebo state externalizovaný do DB/storage)
|
||||
- **Velero** — backup/restore celého clusteru (PV, resources, helm releases)
|
||||
- **Rook/Ceph** — cross-region mirroring RBD volumes
|
||||
- **KubeFed / ACM** — subscription-based deploy do více clusterů
|
||||
- **Ingress/Gateway API** — traffic routing mezi clustery
|
||||
- **External DNS** — DNS failover při výpadku clusteru
|
||||
|
||||
#### Messaging / streaming
|
||||
|
||||
| Platforma | Replikace | Topologie | DR podpora | Max distance |
|
||||
|-----------|-----------|-----------|------------|-------------|
|
||||
| **Apache Kafka** | MirrorMaker 2, Confluent Cluster Linking, KRaft quorum | Active-Passive (MM2), Active-Active (Cluster Linking) | MM2: async, Cluster Linking: async | neomezena |
|
||||
| **RabbitMQ** | Classic Queue Mirroring, Quorum Queues | Active-Passive (Warm Standby) | Federation / Shovel (async) | neomezena |
|
||||
| **Red Hat AMQ** | (Artemis) Cluster + HA | Active-Passive (shared store / replication) | Live-backup pair | < 100 km (sync) |
|
||||
| **NATS** | NATS JetStream (cluster + cross-account) | Active-Active (Leaf nodes, cross-account) | Super-cluster, failover | neomezena |
|
||||
| **Apache Pulsar** | BookKeeper (bookie rack-aware), geo-replication | Active-Active (geo-replication) | Built-in (cluster-level) | neomezena (async) |
|
||||
| **AWS SQS/SNS** | Managed, AWS region pairs | Active-Active (multi-region) | Built-in (AWS managed) | neomezena |
|
||||
| **Azure Service Bus** | Managed, paired region | Active-Passive (paired region) | Built-in (geo-recovery) | neomezena |
|
||||
| **Oracle Service Bus (OSB)** | Oracle WebLogic Cluster + JDBC store + AQ | Active-Passive (WebLogic Cluster + Data Guard) | OSB/WLS cluster + Oracle RAC/Data Guard sync | < 100 km (Data Guard sync), neomezena (async) |
|
||||
|
||||
**Doporučení pro DR messagingu:**
|
||||
- **Kafka**: použít Cluster Linking pro Active-Active, nebo MirrorMaker 2 pro Active-Passive; replikovat jen kritická témata
|
||||
- **RabbitMQ**: Quorum Queues + Federation upstream pro DR; vyhnout se Classic Queue Mirroring (deprecated)
|
||||
- **Pulsar**: nativní geo-replication, bookie rack-aware pro stretch cluster; nejjednodušší DR mezi messaging platformami
|
||||
- **OSB**: WebLogic cluster + Oracle RAC/Data Guard; DR závisí na DB vrstvě, ne na OSB samotném
|
||||
|
||||
### Hlavní omezení per vrstva (shrnující tabulka)
|
||||
|
||||
| Vrstva | Omezující faktor pro sekundární DC | Max distance pro sync | Dopad na výběr topologie |
|
||||
|--------|-----------------------------------|----------------------|--------------------------|
|
||||
| **Storage** | Latence sync mirroru, DWDM náklady | < 50 km (MetroCluster) | Stretched cluster jen v metru |
|
||||
| **Databáze** | Commit wait pro sync replikaci | < 100 km (5 ms RTT) | Active-Active jen s DB podporující multi-master |
|
||||
| **Hypervisor** | Stretched cluster quorum + fencing | < 50 km (vSAN, 5 ms) | MetroCluster / stretched cluster |
|
||||
| **Kubernetes** | Velero restore time, Rook mirror latency | neomezena (async) | Active-Passive, cold standby |
|
||||
| **Messaging** | Replication lag, offset management | neomezena (async) | Active-Active (Kafka, Pulsar, NATS) nebo Active-Passive |
|
||||
| **Network** | Dark fiber/DWDM náklady, latency | < 100 km (metro fiber) | Omezuje možnosti sync replikace |
|
||||
| **Aplikace** | Stateful/stateless, connection draining | závisí na architektuře | Stateless app → libovolná topologie |
|
||||
|
||||
## Monitoring disků — S.M.A.R.T.
|
||||
|
||||
Self-Monitoring, Analysis and Reporting Technology — prediktivní monitoring HDD/SSD.
|
||||
@@ -785,4 +1060,4 @@ OpenStack přináší do DC softwarovou abstrakční vrstvu, která umožňuje m
|
||||
- Akademické / HPC clustery (Ironic, Cyborg, Manila)
|
||||
- Government / regulated prostředí (on-prem, audit trail)
|
||||
|
||||
*Poslední revize: 2026-06-03*
|
||||
*Poslední revize: 2026-06-12*
|
||||
|
||||
Reference in New Issue
Block a user