Последний год почти в каждом проекте по резервному копированию повторяется одна и та же сцена. Обсуждаем архитектуру, считаем дисковый уровень, спорим про дедупликацию и глубину хранения — а когда доходим до ленты, разговор сворачивается за две минуты. «Ну там библиотека, поставим сколько надо картриджей». И это ровно тот слой, который потом приходится пересчитывать.
Причин две. Первая — ленту проектируют по инерции, копируя конфигурацию из прошлого проекта, где были другие объёмы и другое поколение носителя. Вторая — в 2025 году вышло поколение LTO-10, и оно поменяло арифметику планирования сильнее, чем любое предыдущее: разорвало обратную совместимость и подняло требования к сети хранения. Спецификации, собранные по памяти, теперь ошибаются не на проценты.
Эта статья — для менеджера проекта и для архитектора, который отвечает за решение целиком и не обязан помнить, сколько приводов влезает в модуль. Устройство привода объяснять не будем. Разберём то, что определяет бюджет и сроки: из чего складывается конфигурация, что в ней ломается, почему новое поколение тянет за собой замену коммутаторов и откуда на самом деле берётся число картриджей.
Место в архитектуре
Зачем этот слой вообще остался
У ленты в системе резервного копирования другая работа, чем у дискового уровня, и требовать от неё скорости — ошибка постановки задачи.
Раз в полгода слышим, что лента умерла. Обычно от людей, которые не подписывали акт после проверки регулятором.
Разговор путается ещё и потому, что под лентой понимают две разные задачи. Резервная копия — это то, из чего восстанавливаются после сбоя, и живёт она недели. Архив — это то, что обязаны хранить годы, и обращаются к нему в лучшем случае по запросу проверяющего. Требования к оборудованию у них противоположные, и когда эти две задачи считают одной строкой, спецификация получается неверной сразу в обе стороны.
Лента держится на четырёх вещах, и ни одна из них не про скорость. Стоимость хранения терабайта на больших объёмах кратно ниже дисковой. Картридж в слоте потребляет ровно ноль ватт — на объёмах в петабайты это уже статья в счёте за электричество, а не абстракция. Заявленный срок хранения — тридцать лет и больше, у диска без питания счёт идёт на годы. И главное: картридж, вынутый из библиотеки, недостижим по сети физически. Не «защищён политикой», а недостижим — между ним и злоумышленником воздух и человек.
Вот это последнее и есть причина, по которой лента живёт в банках. Всё остальное, что называют air gap, — это процедура, настройка или договорённость с вендором. Их можно обойти, скомпрометировав достаточно высокие права. Картридж на полке обойти нельзя.
Отсюда главная мысль для тех, кто принимает решение: у ленты в системе резервного копирования другая работа, чем у дискового уровня. Диск отвечает за то, чтобы быстро восстановиться. Лента отвечает за то, чтобы было что восстанавливать даже в самом плохом сценарии. Требовать от ленты быстрого восстановления — это как требовать от сейфа в подвале, чтобы из него удобно доставали мелочь на обед.
Практическое следствие: если в требованиях к проекту написан один показатель времени восстановления на всё подряд — это ошибка постановки, и её надо чинить до расчёта спецификации, а не после.
Устройство и сервис
Как устроена библиотека и что в ней ломается
Вся арифметика держится на трёх числах. А единственная подвижная часть останавливает весь обмен с лентой целиком.
Современная библиотека среднего класса собирается вертикально из модулей по 3U, и вся её арифметика держится на трёх числах.
Один модуль даёт до сорока слотов под картриджи. Если в нём настраивается станция ввода-вывода — а она нужна, чтобы вынимать и добавлять картриджи, не останавливая работу, — под данные остаётся тридцать пять. Приводов в модуль помещается либо три половинной высоты, либо один полноразмерный и один половинной высоты. Третьего варианта нет: полноразмерный привод занимает два посадочных места из трёх, и ставится только в две нижние позиции.
Робот в стеке один и обслуживает все модули сразу. Из этого следуют два вывода противоположного знака.
Хороший: расширять библиотеку почти всегда выгоднее, чем покупать вторую. Модуль расширения — это по сути умная полка, вы не платите второй раз за робота, контроллер и управляющую электронику, а в системе резервного копирования библиотека остаётся одним устройством с общим пулом слотов. Две отдельные библиотеки — это две сущности в софте, раздельные пулы и ручная балансировка заданий.
Плохой: робот — единственная точка отказа для всей ёмкости сразу.
И здесь же ловушка, которую в спецификациях не видно. У платформы бывает два исполнения — на семь модулей и на шестнадцать. Это разные изделия с разными партномерами, и исполнение на семь модулей нельзя переконвертировать в исполнение на шестнадцать. Выбор делается один раз, при покупке базового модуля. Совет «не покупайте вторую библиотеку, расширьте текущую» работает ровно до потолка вашего конкретного исполнения — и проверять этот потолок надо до того, как вы пообещали заказчику дешёвое расширение.
Теперь про то, что ломается. У нас однажды встал робот в модульной библиотеке корпоративного класса — та самая карбоновая рука, которая ездит по рельсам и с ювелирной точностью вставляет картриджи в слоты. Библиотека выдала ошибку, рука перестала отвечать на команды, и весь обмен с лентой остановился.
Замена такого узла — не «поменять диск». Отключить шлейфы, снять робота с направляющих, поставить новый, откалибровать позиционирование по каждой стене слотов, прогнать полную инвентаризацию, проверить захват и отпускание картриджей. Только после этого в продакшн. Ошибка в калибровке — и робот начинает промахиваться мимо слотов или ронять картриджи.
На возрастной библиотеке к этому добавляется то, что вообще не относится к технике. Платформа может быть снята с продаж, запчасть — под заказ со сроком в недели, а инженер с опытом именно этой модели — редкость на рынке. Видели ситуации, где сама процедура занимала день, а ожидание узла — полтора месяца, и все эти полтора месяца вторая копия просто не создавалась.
Отсюда два пункта, которые стоит закладывать в проект осознанно, а не по остаточному принципу: возможность второго робота в старших моделях и наличие сервисного контракта с внятным сроком реакции на механику. И третий, совсем мелкий, про который забывают в каждой второй спецификации: чистящие картриджи. Один рассчитан примерно на пятьдесят циклов, и их отсутствие обнаруживается через полгода эксплуатации.
Смена поколения
LTO-10: что изменилось на самом деле
Что выросло, что осталось прежним и что сломалось окончательно — по пунктам, без маркетингового шума.
Тут много маркетингового шума, поэтому разберём по пунктам — что выросло, что не выросло и что сломалось.
Ёмкость выросла существенно. Носитель LTO-9 — 18 ТБ native. У LTO-10 два типа носителя: стандартный на 30 ТБ и премиальный на 40 ТБ, оба работают в одном приводе. Это плюс 67 или плюс 122 процента на картридж. Все красивые сравнения вида «в 2,2 раза меньше кассет» считаются от премиального носителя, и это надо оговаривать явно, иначе на закупке выяснится, что цифры не сходятся.
Скорость записи не выросла. Полноразмерный привод LTO-9 выдаёт 400 МБ/с native, полноразмерный LTO-10 — те же 400 МБ/с. Весь выигрыш поколения вложен в плотность записи, а не в темп. Если вам обещают сокращение окна резервного копирования при переходе на новое поколение — спросите, откуда оно берётся. Обычно там сравнивают привод половинной высоты старого поколения (300 МБ/с) с полноразмерным новым, то есть выигрыш даёт форм-фактор, а не поколение.
Зато выросла шина. Приводы LTO-9 в библиотеках этого класса подключались по Fibre Channel 8 Gb. Полноразмерный LTO-10 заявлен на 32 Gb, а на сжимаемых данных способен отдавать до 1200 МБ/с. Вот это изменение и есть самое дорогое по последствиям — про него следующий раздел.
Ёмкость картриджа выросла на две трети. Темп записи — ни на процент. Выросла шина, по которой этот темп едет.
Исчезла процедура первичной оптимизации носителя. На LTO-9 новый картридж перед первым использованием проходил калибровку, которая могла занять до двух часов и роняла задания по таймауту. У LTO-10 её нет — мелочь, но при массовой загрузке нового пула экономит рабочий день.
И сломалась обратная совместимость. Полностью. Привод LTO-10 не читает и не пишет LTO-9. До LTO-7 приводы работали с двумя предыдущими поколениями, с LTO-8 по LTO-9 — с одним, у LTO-10 не осталось ничего.
Это не мелкая деталь спецификации, это разворот стратегии закупки. Встречали в чужих обоснованиях для заказчика фразу «новое поколение читает старые картриджи, ваши инвестиции защищены». Она неверна, и цена ошибки — весь ранее записанный архив.
Что делать практически: либо оставлять часть приводов старого поколения в библиотеке ради доступа к накопленному архиву, либо мигрировать данные. Первое означает два пула носителей в одном устройстве — рабочая схема, но её надо развести по логическим библиотекам, иначе софт рано или поздно отправит картридж не в тот привод. Второе означает прочитать весь архив и записать заново, и вот это уже отдельный проект: несколько петабайт через реальную фабрику вычитываются неделями, причём на старых носителях выше вероятность ошибок чтения.
И одна деталь из практики разбора спецификаций: цифры «36 ТБ native» и «90 ТБ compressed» относятся к дорожной карте консорциума, а не к выпущенному продукту, и в расчёты их переносить нельзя.
Сеть хранения
Почему новое поколение тянет за собой сеть хранения
Строка «замена коммутаторов» в смете на резервное копирование — не раздувание бюджета, а прямое следствие смены поколения.
Это тот раздел, ради которого стоило всё остальное. Строка «замена SAN-коммутаторов» в смете на резервное копирование выглядит как раздувание бюджета — а на самом деле это прямое следствие смены поколения ленты.
Считать надо две вещи по отдельности, и их постоянно смешивают. Первая — хватает ли полосы одного порта на один привод. Вторая — хватает ли самих портов на всю библиотеку.
По полосе. Порт Fibre Channel 8 Gb даёт примерно 800 МБ/с. Привод предыдущего поколения на 400 МБ/с native в него укладывается свободно — но на сжимаемых данных тот же привод отдаёт до тысячи мегабайт в секунду и в порт уже не помещается. Новое поколение рассчитано на 32 Gb и на поток до 1200 МБ/с: в старой фабрике оно просто согласуется вниз. Заказчик заплатил за поколение и не получил его.
По числу портов. Каждый привод занимает свой порт на коммутаторе — линк они между собой не делят. Двадцать четыре привода — это двадцать четыре порта фабрики, плюс порты адаптеров в медиа-серверах, плюс запас. На старой фабрике, где свободных портов три, разговор о расширении библиотеки заканчивается, не начавшись.
Отдельно про SAS. Приводы бывают и в SAS-исполнении, и для небольшой установки это честный вариант: библиотека подключается прямо к адаптеру медиа-сервера, фабрика не нужна вообще, и весь разговор про порты снимается. Ограничение в другом — SAS не коммутируется: длина кабеля меряется метрами, приводов помещается столько, сколько портов на адаптере, и подключить одну библиотеку к двум медиа-серверам уже неудобно. Как только приводов становится больше пары или серверов больше одного, возвращаемся к фабрике и к арифметике портов.
И третье, о чём вспоминают в последнюю очередь: настоящий потолок обычно стоит выше по тракту. Разбирали конфигурацию, где двадцать четыре привода давали паспортных почти десять гигабайт в секунду — а данные к ним приходили через пару адаптеров в медиа-серверах, и это была совсем другая цифра. Все споры про «добавить приводов, чтобы уложиться в окно» там не имели смысла: узким местом была не библиотека и даже не фабрика.
Практический порядок действий, который советуем закладывать в план работ:
Сначала фиксируем интерфейс приводов. Они бывают в исполнении Fibre Channel и в исполнении SAS, и это разные адаптеры в медиа-сервере. Видели спецификацию, где приводы заказаны с FC, а в рекомендациях по серверу стоял внешний SAS-адаптер. Подключить такую библиотеку физически невозможно, и выясняется это на приёмке.
Дальше считаем порты: сколько приводов, столько же портов нужной скорости, и проверяем, свободны ли они. Потом считаем суммарную потребность и сверяем её с полосой адаптеров в медиа-серверах. Потом проверяем, что в медиа-серверах есть свободный слот PCIe нужного поколения под адаптер. И только после этого закрываем спецификацию.
Для менеджера вывод простой: если проект предполагает переход на новое поколение ленты, вопрос «а что у нас с сетью хранения» задаётся на старте, а не после подписания. Иначе он всплывёт на этапе внедрения, когда бюджет уже утверждён.
Расчёт ёмкости
Ёмкость: откуда берётся число картриджей
Три места, где ошибаются, и все три — в одну сторону: картриджей заказывают меньше, чем нужно.
Здесь ошибаются чаще всего, и ошибка всегда в одну сторону — картриджей заказывают меньше, чем нужно.
Первое. Считаем только native. Лента традиционно продаётся в «сжатых» терабайтах: 18 ТБ превращаются в 45, 40 — в 100. Аппаратная компрессия привода действительно работает — но только на данных, которые до неё дошли несжатыми. Современная система резервного копирования отдаёт на носитель уже дедуплицированный и сжатый поток. Сжимать там нечего, коэффициент будет околоединичным.
Любой расчёт, где паспортная ёмкость библиотеки умножается на два с половиной, — ошибка, и вскроется она не на защите проекта, а через год эксплуатации, когда картриджи кончатся втрое раньше плана.
Аппаратная компрессия работает только на данных, которые дошли до неё несжатыми.
Второе. Слоты — это не картриджи с данными. Видели спецификацию, где на три петабайта архива посчитали сто шестьдесят семь картриджей и заказали библиотеку на двести слотов — «с запасом». Запаса там нет: в эти двести слотов должны поместиться архив, пул свободных картриджей под текущую запись, чистящие картриджи, слоты станции ввода-вывода и рост на весь срок жизни решения.
Третье, и самое дорогое. Число копий определяет регулятор, а не архитектор. В одном из проектов расчёт числа картриджей дал вилку: около 364 штук при оптимизированной схеме поколений копий против примерно 936 при строгом прочтении требования «хранить 36 месяцев». Разница — почти шестьсот картриджей, и она не зависит ни от модели библиотеки, ни от вендора, ни от качества расчёта дедупликации.
Поэтому вопрос «какую именно схему хранения требует регулятор и как её трактует ваша служба комплаенса» задаётся первым, до всех технических споров. Один невыясненный пункт здесь стоит дороже, чем весь спор о том, чья библиотека лучше.
Пределы решения
Когда лента перестаёт быть ответом
Обратная сторона: где лента действительно не подходит и что при замене всплывает поздно и дорого.
Честный разбор требует и обратной стороны. Лента не универсальна, и есть сценарии, где её надо заменять.
У неё принципиально последовательный доступ. Восстановление одного файла из середины картриджа — это монтирование, перемотка и ожидание, минуты вместо секунд. Восстановление большого набора данных упирается в то, сколько приводов можно задействовать параллельно.
Но здесь важно не впасть в противоположную ошибку. Уход с ленты на диск сам по себе быстрого восстановления не гарантирует. Был кейс, где виртуальная машина на 1,1 терабайта восстанавливалась девять часов — около 34 мегабайт в секунду. Ленты в схеме не было вообще: читали с дискового пула на обычных шпиндельных дисках 7200 оборотов.
Разбор оказался поучительнее самой цифры. У машины было два диска — небольшой системный и второй, на котором лежало всё остальное. В логах видно, что системный прошёл со скоростью около ста мегабайт в секунду и занял считаные минуты, а большой шёл на тридцати двух и съел почти всё окно. Агент восстанавливает машину последовательно, диск за диском — но даже умей он иначе, это ничего бы не дало: распараллеливать было нечего, почти все данные лежали на одном томе. И этот единственный поток тянул за собой всю цепочку — произвольное чтение с дедуплицированного пула на шпинделях, обратную сборку из дедупликации, распаковку и запись. Вот она целиком и упиралась в тридцать с небольшим мегабайт в секунду.
Сеть, базу дедупликации и оборудование проверили и исключили, поведение подтвердил вендор кейсом в поддержке.
Вывод, который после этого повторяем на каждом проекте: время восстановления проверяется восстановлением, а не расчётом. Скорость бэкапа не говорит о скорости restore ничего — это разные цепочки. А если все данные машины лежат на одном большом томе, её не спасёт никакой параллелизм.
Если лента всё-таки заменяется, заменяют её обычно на иммутабельное объектное хранилище. И здесь важно, что «иммутабельность» бывает разной глубины: от блокировки на уровне носителя, которую не снять никак, до механизма на уровне массива, где политику меняют через поддержку вендора по подтверждению от согласованных контактов заказчика — то есть защита уже процедурная, а не техническая. У блокировки объектов вдобавок есть мягкий режим, где привилегированная роль может её снять, и строгий, где не может никто. Под требования регулятора нужен строгий, и это пишется в требованиях явно — иначе поставщик закроет пункт самым мягким вариантом.
Две вещи, которые в таких проектах всплывают поздно и дорого. Иммутабельность стоит ёмкости: чтобы блокировка всего набора истекала одновременно, система хранит его замкнутым, без ссылок наружу, и эффективность дедупликации падает. И матрица совместимости определяет архитектуру сильнее даташита — разбирали случай, где выбранный массив был сертифицирован для одной системы резервного копирования и не числился в списке для второй, и архитектуру пришлось делить на два таргета.
Чек-лист
Что спросить до того, как считать спецификацию
Девять вопросов, которые решаются за одну встречу с эксплуатацией и снимают почти все риски проекта.
- Сколько данных реально лежит на ленте сейчас — по отчёту системы резервного копирования, а не по числу картриджей. И native это или compressed: путают постоянно, разница в разы.
- Какое поколение приводов и носителей стоит. Не «LTO», а конкретное поколение и форм-фактор: от этого зависит и ёмкость картриджа, и скорость, и совместимость.
- Какое исполнение библиотеки и сколько модулей уже занято. Если потолок исчерпан, дешёвого расширения не будет.
- Сколько портов сети хранения подведено к приводам и на какой они скорости. Это ваш реальный потолок производительности.
- В каком интерфейсном исполнении заказываются приводы и есть ли под них адаптер и свободный слот в медиа-сервере.
- Какую схему хранения требует регулятор и как её трактует служба комплаенса. От формулировки число картриджей меняется кратно.
- Есть ли сервисный контракт на механику и какой у него срок реакции. Робот — единственная точка отказа для всей ёмкости.
- Когда в последний раз проверяли восстановление на реальном объёме и сколько оно заняло. Расчётное время восстановления и измеренное — разные величины, и разница обычно не в вашу пользу.
- Когда планируется смена поколения носителя и заложена ли миграция архива в бюджет и в график.
Итог
Вместо вывода
Ленточный слой выглядит самым скучным элементом системы резервного копирования, и именно поэтому его проектируют последним и по остаточному принципу. А потом он оказывается единственным местом, где ошибка обнаруживается не на бумаге, а через год, когда картриджи кончились, окно не укладывается, а архив предыдущего поколения читать нечем.
С приходом LTO-10 цена такой ошибки выросла. Ёмкость носителя действительно шагнула вперёд, и это хорошая новость для бюджета. Но темп записи остался прежним, шина под приводом стала втрое шире, а мост в прошлое поколение сгорел. Спецификация, собранная по памяти или скопированная из прошлогоднего проекта, теперь не просто неточна — она может быть нерабочей.
Хорошая новость в том, что все девять вопросов из чек-листа решаются за одну встречу с эксплуатацией заказчика. Дороже всего обходятся не сложные расчёты, а те, которые никто не сделал.