Webrium
Подписаться

Стоимость хранения: три сценария на 100 ТБ

Почему нельзя просто умножить цену за терабайт на сто и как собрать модель из пяти слоёв, чтобы честно сравнить свои диски, выделенный сервер и облако

Два стыка: расчёт по модели из пяти слоёв совпадает с реальной стоимостью месяца, а прайс, умноженный на объём, с ней расходитсямодель из слоёвпрайс × объём

Вопрос «сколько нам стоит хранить сто терабайт» выглядит как арифметика: взять цену, умножить на объём. На деле это вопрос про метод, и первый способ расчёта, к которому тянется рука, даёт уверенно неверное число. Разберём почему — и соберём модель, в которую вы подставите свои цены и получите три сравнимых ответа.

Тупик: прайс, умноженный на объём

Первое, что делают с этим вопросом: открывают прайсы, находят строку «за ТБ в месяц», умножают на сто и берут минимум. Дальше спорят о цифрах.

Почему это не работает. В прайсе облачного хранилища строка «за ТБ» — один слой стоимости из пяти: без исходящего трафика, без множителя избыточности, без класса хранения. У выделенного сервера цены за терабайт не существует вовсе: месячный платёж собран из дисков, вычислителя, сети и маржи хостера за работу, которую он делает вместо вас. У собственных дисков прайса нет в принципе — диск это треть системы, вокруг него корпус, питание, помещение и ваши часы.

И главная ошибка не в пропущенных слагаемых, а в постановке: цена покупки и цена месяца не сравниваются, пока их не привести к общему знаменателю. Число из прайса, умноженное на объём, выглядит как расчёт, но расчётом не является. Оно защищает только себя: «мы считали».

Общий знаменатель: пять слоёв и горизонт

Способов хранить сто терабайт — три, статей расхода в любом из них — пять, и они одни и те же:

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

Дальше одна арифметика на все сценарии: вход + поток × горизонт + выход = деньги за период. Горизонт — ваша цифра: столько месяцев вы готовы обещать бюджет. Разделите сумму на объём и на месяцы — получите честную «цену за ТБ в месяц» уже для вашего случая, и только такие числа можно класть в одну таблицу.

Это тот же принцип, о котором мы писали в материале о стоимости владения кодом: считать то, что течёт постоянно, игнорировать то, что куплено один раз, и не путать одно с другим. Здесь он применён к дискам.

И да: «сто терабайт» — подстановка. Если у вас другой объём, модель не меняется, меняются входные цифры.

Сценарий 1: свои диски

Самый богатый на скрытые расходы вариант — начнём с него.

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

Вокруг дисков живёт машина: корпус с бэкплейном, контроллер, память, сеть, блоки питания. Считайте её целиком. «Диски плюс верёвка» — не система хранения, а способ отложить проблему.

Электричество: диски не спят. Возьмите потребляемую мощность из спецификации, умножьте на часы месяца и на ваш тариф. Добавьте охлаждение — офисная кладовка без кондиционера летом превращается в духовку для дисков. Добавьте ИБП.

Замены. Большой парк дисков отказывает не «когда-нибудь», а постоянно: это поток. В модель он входит как «замен за период × цена диска»; частоту возьмите из своей статистики или из спецификации производителя. Ноль не берите: ноль здесь означает лишь, что счёт вам ещё не приходил.

Ваши часы: монтаж, замены, мониторинг, обновления. Часы × ставка. Возражение «у нас и так есть сисадмин» не работает — его время уже оплачено, вопрос лишь, на что оно уйдёт.

Помещение: своя серверная, колокейшен (юниты в месяц) или кладовка. Кладовка — не бесплатное помещение, а риск без страховки: пожар, потоп, кража, жара.

Выход. Диски, купленные в один день, стареют синхронно. Миграция на новое поколение — отдельный проект со своим бюджетом и простоем; в модели это слой «выход», и он не нулевой.

Где сценарий выигрывает: холодные данные, стабильный объём, длинный горизонт — месячная доля закупки падает с каждым месяцем. Где кусается: всем остальным.

Сценарий 2: выделенный сервер у хостера

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

Что не внутри: ваши часы — их меньше, чем в первом сценарии, но не ноль. И масштаб: ёмкость растёт ступенями — сначала свободные слоты, потом новый сервер, а это перенос данных.

Подводный камень сравнения: месячная плата за сервер с сотней терабайт и «сто терабайт в облаке» — числа из разных миров. В первом зашит вычислитель и чужая забота, во втором — только хранение. Сравнивать их можно после нормализации из предыдущего раздела и не раньше.

Скучный сценарий, и потому недооценённый: капекса нет, риск железа чужой, выйти проще, чем из облака.

Сценарий 3: объектное хранилище в облаке

Цена за ТБ в месяц здесь — «всё включено» по железу: их диски, их замены, их электричество, их админы. Но у этой цены три множителя и одна ловушка.

Множители. Класс хранения: горячий, холодный, архивный — архивные устроены так: хранить дёшево, читать дорого и с ожиданием. Класс избыточности: одна зона или гео-избыточность — множитель к цене за ТБ, ваш выбор. Реальный объём: он растёт незаметно, и без правил жизненного цикла (остывшее — в холодный класс, истёкшее — в удаление) счёт ползёт сам. В облаке нет события «закупить», которое заставляет остановиться и посчитать.

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

Мелочи, которые иногда не мелочи: плата за запросы (для бэкапа — шум, для хранилища мелких объектов — заметная статья) и дрейф прайса на длинном горизонте — вы не зафиксировали цену за терабайт, в отличие от купленных дисков. Зато уйти можно без утилизации железа — оплатив выгрузку, которая сидит в слое «выход».

Как сравнить три сценария одной формулой

Подставьте в формулу «вход + поток × горизонт + выход» цифры каждого сценария, разделите на объём и на месяцы — и три «цены за ТБ в месяц» станут числами одного вида. Их можно класть в одну строку таблицы и показывать руководству.

Сильнее всего результат качают две переменные. Профиль чтения: чем чаще и больше вы читаете, тем дороже облако и тем безразличнее первые два сценария. Горизонт: чем дольше держите свои диски, тем ниже их месячная доля — но тем больше замен и ближе миграция.

Следствия из этой арифметики, не из прайсов:

  • холодные данные, стабильный объём, длинный горизонт — свои диски или выделенный сервер;
  • объём растёт рывками или неизвестно чем — облако: вы платите за отсутствие проекта закупки, и это нормально;
  • чтения частые и большие — сначала посчитайте трафик, потом выбирайте;
  • бэкап считайте не по цене хранения, а по цене полного восстановления: выгрузка всего объёма по тарифу на трафик плюс время, пока она идёт.

Позиция редакции

Мы считаем, что «сколько стоит терабайт» — неправильный вопрос; правильный — «сколько стоит наш профиль хранения на нашем горизонте». Сравнивать сценарии надо по модели с пятью слоями, и в ней обязана быть строка «наше время»: облако и хостер продают в том числе отсутствие заботы, и это легитимная статья бюджета, а не слабость — но она должна быть посчитана, а не спрятана в прайсе. При холодных данных, стабильном объёме и горизонте, за который капекс успевает амортизироваться, такая модель обычно выводит из облака — в выделенный сервер или на свои диски.

Условие, при котором мы неправы: хранение нельзя считать отдельно от обработки. Когда данные постоянно читаются там же, где считаются, единица сравнения — связка «хранение + вычисление + сеть между ними», и дешёвое хранение вдали от вычислений оборачивается дорогим трафиком и ожиданием. Если ваш случай такой, эта статья не про вас: считайте связку, а не хранение.

С чем это связано

Метка над заголовком говорит, зачем туда идти: продолжить тему, перейти к практике или увидеть возражение.

Четыре шкалы расходов: хостинг, лицензии и зарплаты — в норме, а четвёртая, стоимость владения кодом, уходит за шкалу — инвойса на неё не существуетстоимость кода
Усиление

Стоимость владения кодом: что считать и что игнорировать

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

Изменение схемы пробивает границу контракта и зажигает сигнал, останавливающий деплой до того, как сломается отчётграница контрактаизменение схемы
Предыстория

Контракты данных: как перестать чинить отчёты

Прежде чем считать терабайты, стоит разобраться с контрактами данных: чем настоящий контракт отличается от страницы в вики и с какого отчёта начинать внедрение.

Время съедает один шаг плана выполнения, а не запрос целиком: искать надо его, а не вешать индекс наугадшаги планадорогой шаг
Предыстория

Медленный запрос в PostgreSQL: с чего начинать

База под разговор о базах: как прочитать план выполнения и какие четыре причины медленного запроса встречаются чаще прочих.

Регулярные часы на синхронизацию решают спор раньше, чем список возможностейчасы содержания
Усиление

Поиск по своим данным: когда нужен отдельный движок

Тот же способ считать, но про поиск: модель в часах показывает, когда отдельный движок окупается, а когда достаточно базы.

Письмо по вторникам

Один разбор недели и короткий список того, что изменилось. Без дайджестов на сорок ссылок.

Начните вводить — материалы появятся здесь.

выбрать · Enter открыть · Esc закрыть