БлогИнженерные заметки

Почему мы храним три копии каждого файла

· Команда GeoData Cove

Запись перенесена из блога, который мы вели до июня 2026 года под прежним названием «Заводь»; название сервиса в тексте обновлено. Подробнее — в записи «Мы теперь GeoData Cove».

Диски ломаются. В большом парке это не авария, а ежедневная рутина: из нескольких тысяч накопителей каждую неделю выходят из строя несколько штук. Вопрос не в том, сломается ли диск с вашим файлом, а в том, успеем ли мы восстановить копию до следующего отказа.

Окно уязвимости

Когда диск выходит из строя, система начинает заново создавать копии хранившихся на нём блоков на других серверах. Пока это не закончилось, у части данных копий меньше, чем положено. С современными дисками на 20 ТБ и более полное восстановление занимает от нескольких часов до суток.

При двух копиях любой второй отказ в этом окне, затронувший те же блоки, означает потерю данных. При трёх копиях для потери нужно три независимых отказа подряд за короткое время — вероятность этого на порядки ниже.

Почему не пять

Каждая следующая копия почти не увеличивает надёжность, но прямо увеличивает стоимость хранения. Вместо дополнительных полных копий для архивного класса мы используем кодирование с избыточностью: файл делится на фрагменты так, что его можно собрать из любой большей части. Это даёт сопоставимую надёжность при меньшем расходе места.

Не на одном сервере и не в одном зале

Копии одного блока никогда не лежат на одном сервере и по возможности — в разных стойках с независимым питанием. Для командных тарифов одна копия всегда находится в другом регионе, чтобы данные пережили даже недоступность целого дата-центра.

Подробнее о защите данных — на странице «Безопасность».