← Cloudflare R2 / r2 / reference
Долговечность
R2 спроектирован для обеспечения 99.999999999% (одиннадцать девяток) годовой надёжности хранения. Это означает, что при хранении 10,000,000 объектов в R2 в среднем можно ожидать потери одного объекта раз в 10,000 лет.
Как R2 обеспечивает надёжность на уровне «одиннадцати девяток»
Надёжность R2 основана на нескольких уровнях избыточности и защиты данных:
-
Репликация: при загрузке объекта R2 сохраняет несколько его "копий" с помощью полной репликации и/или erasure coding. Это гарантирует, что полный или частичный отказ отдельного диска не приведёт к потере данных. Erasure coding распределяет части объекта между несколькими дисками, поэтому даже при отказе части дисков объект можно восстановить из оставшихся доступных частей, что защищает данные от потери при аппаратных сбоях или физическом воздействии на дата-центры, например при пожаре или наводнении.
-
Аппаратная избыточность: кластеры хранения состоят из оборудования, распределённого между несколькими дата-центрами в пределах одного географического региона. Такое физическое распределение гарантирует, что локальные сбои, например отключение электроэнергии, сетевые неполадки или неисправность оборудования на одной площадке, не приведут к потере данных.
-
Синхронная запись: R2 возвращает
HTTP 200 (OK)для записи через API или иным способом сообщает об успехе только тогда, когда данные действительно сохранены на диске. Мы не полагаемся на асинхронную репликацию для обеспечения базовых гарантий надёжности. Это критически важно для гарантий согласованности R2 и снижает вероятность того, что клиент получит успешный ответ API без фактического сохранения изменений в базовой инфраструктуре метаданных и хранения.
Особенности
- Надёжность хранения не гарантирует доступность данных. Это показатель вероятности потери данных.
- R2 обеспечивает доступность на уровне SLA на уровне 99.9% ↗
- Надёжность хранения не защищает от преднамеренного или случайного удаления данных. Используйте блокировки бакета и/или ограниченный бакетом API-токены чтобы ограничить доступ к данным.
- Надёжность хранения также следует отличать от согласованность, который описывает, как операции чтения и записи отражаются в состоянии системы (например, итоговая согласованность в сравнении со строгой согласованностью).