Классифицируйте файлы по роли и по владельцу
Разделите входные данные, необходимые для обработки, промежуточные файлы и результаты, которые нужно сохранить. Входные данные могут поступать из репозитория или архива; временные файлы можно создать заново; для результатов требуется долговременное место хранения. Добавьте четвёртую категорию: состояния, позволяющие возобновить выполнение. Точка возобновления не совпадает ни с исходными входными данными, ни с финальным результатом.
Для каждой категории определите владельца и правило хранения. Кто может разрешить удаление кэша? Кто подтверждает, что результат пригоден для использования? Какой файл отсутствует, если работа останавливается? Занесите эти ответы в карточку проекта вместе с выбранным местом хранения. Каталог описывает GPU; ёмкость дисков, квоты и условия хранения нужно проверить для фактически предоставляемого периметра.
Рассчитывайте пиковый объём хранилища, а не только исходный архив
Оцените максимальный объём во время выполнения. Распакованные образы, рабочие копии или последовательные версии могут занимать больше, чем полученный архив. Правильный расчёт суммирует элементы, которые сосуществуют в один момент времени. Нельзя ни складывать взаимоисключающие этапы, ни забывать о том, что экспорт может готовиться, пока обработка всё ещё создаёт свои выходные данные.
Вымышленный пример с десятичными ГБ: команда хранит архив объёмом 180 ГБ во время подготовки 420 ГБ распакованных файлов. Она планирует 120 ГБ временных файлов, 60 ГБ выходных данных и три точки возобновления по 24 ГБ. Если всё сосуществует, пик составляет 180 + 420 + 120 + 60 + 72 = 852 ГБ. Внутренний запас в 20 % доводит потребность до 1 022,4 ГБ. Это гипотеза проекта, а не ёмкость, включённая в какое-либо предложение.
| Категория | Расчёт | Объём |
|---|---|---|
| Сохранённый входной архив | 1 × 180 ГБ | 180 ГБ |
| Распакованные входные данные | 1 × 420 ГБ | 420 ГБ |
| Временные файлы в пике | Рабочее допущение | 120 ГБ |
| Выходные данные в подготовке | Рабочее допущение | 60 ГБ |
| Точки возобновления | 3 × 24 ГБ | 72 ГБ |
| Итого до запаса | Сумма пяти категорий | 852 ГБ |
Проверьте доступное место перед запуском серии
Выясните доступное пространство в файловой системе, которая фактически примет проект, затем проверьте права на запись и ожидаемый максимальный размер файлов. При очень большом числе мелких файлов посмотрите также доступность inode, если система их использует. GNU df различает доступные блоки и inode: показатель ёмкости в байтах не охватывает все причины сбоя при создании файла.
Если есть Linux и инструменты GNU, приведённые ниже команды позволяют выполнить снятие показателей текущего каталога только для чтения. Запишите время и проверенный путь. Эти показатели не измеряют скорость хранилища и не являются резервированием пространства; кроме того, могут применяться дополнительные квоты. Уточните их периметр, прежде чем считать подготовку завершённой.
df -B1 --output=source,size,used,avail,pcent,target .
df -i .Организуйте имена и состояния, которые команда сможет перечитать
Дайте выходным данным имя, которое идентифицирует партию и версию обработки. Отделяйте текущие файлы от проверенных поставок; папка поставки не должна смешивать принятый результат и частичную копию с тем же именем. Реестр может связывать идентификатор партии, версию кода, место размещения и статус проверки, не содержа при этом сами данные.
Для длительных вычислений определите точки возобновления, которые приложение умеет создавать, и проверьте их чтение. Сохраняйте необходимые параметры вместе с сохранённым состоянием. Если процесс всё ещё пишет в файл во время его копирования, не считайте эту копию согласованным состоянием без механизма, предусмотренного приложением. Предпочитайте завершённую и идентифицированную резервную копию, а затем передайте её имя тому, кто готовит продолжение.
Проверять передачу и использование результата по отдельности
Перенесите первый результат в место его конечного назначения до последнего дня. Сравните список ожидаемых файлов и их размеры, а затем контрольные суммы, если это предусмотрено вашей процедурой. Инструменты SHA-2 из GNU вычисляют и проверяют контрольные суммы файлов. Манифест должен соответствовать завершённым файлам и храниться с известным происхождением; сам по себе он не подтверждает прикладное качество содержимого.
После проверки целостности откройте результат из места его назначения тем приложением, которое будет его использовать. Проверьте количество элементов, формат и внешние зависимости. Безупречно скопированный архив может всё ещё содержать файл, отсутствовавший с самого начала. Поэтому ответственный за приёмку должен подтвердить две разные вещи: копия соответствует ожидаемому пакету, и этот пакет действительно нужен для следующего этапа.
sha256sum --check MANIFEST.sha256Решить вопрос о хранении до конца периода
В примере с 852 ГБ удаление рабочего архива после подтверждения независимой копии снизило бы потребность до 672 ГБ до учёта запаса. Этот выигрыш действителен только при условии, что восстановление архива остаётся возможным и что ни один следующий этап не требует его на месте. Решение принадлежит владельцу данных; его не должен импровизированно принимать тот, кто обнаружил нехватку места.
Частые ошибки — хранить все версии без ограничения, ждать конца, чтобы проверить права на месте назначения, и считать копию в том же месте решением для вывода. Зафиксируйте список того, что нужно сохранить, ответственного за экспорт и его финальную проверку. Будь то 3, 7 или 30 дней, длительность вычислений и длительность извлечения входят в один и тот же план.
Вопросы для принятия решения
Нужно ли хранить все временные файлы?
Не обязательно. Определите те из них, которые приложение может восстановить, и сравните их объём со стоимостью и временем такого восстановления. Сохраните элементы, необходимые для проверенного возобновления работы. Удаление ещё используемого файла или незаменимого состояния должно быть исключено из правила очистки.
Достаточно ли правильной контрольной суммы, чтобы принять экспорт?
Она проверяет соответствие ожидаемой контрольной сумме. Остаётся убедиться, что манифест охватывает нужные файлы и что результат открывается вместе со своими зависимостями. Таким образом, приёмка сочетает целостность пакета и функциональную проверку из места назначения.
Может ли память GPU заменить недостающее дисковое пространство?
Нет: VRAM хранит данные, используемые вычислениями на карте. Она не заменяет место назначения файлов и хранение после периода аренды. Описывайте память GPU, системную память и хранилище в своём досье по отдельности.