Мне нужно было автоматизировать перемещение довольно больших объемов данных (возможно, около 1 ТБ / день + в среднем. Пока что 60 ТБ, и это количество растет) в отдельную удаленную систему хранения.
До сих пор я делал это путем написания собственного кода на Python из-за некоторых особых проблем, связанных с упаковкой данных в подходящие блоки для передачи по сети и для доступных протоколов (в нашем случае GridFTP).
Мне было интересно, есть ли какие-либо материалы (статьи, сообщения в блогах или книги - если они действительно хороши), содержащие передовые методы и / или советы о том, как писать сценарии управления данными надежным и отказоустойчивым способом?
ОБНОВЛЕНИЕ / УТОЧНЕНИЕ: Добавлю, что мы более-менее решили проблему с загрузкой файлов (сравнением удаленных и локальных контрольных сумм). Тем не менее, нам нужно обрабатывать гораздо больше, чем это, поскольку мы предоставляем решение типа Dropbox для всех проектов в Центре HPC, поэтому мы в основном управляем всем из этого интерфейса Dropbox, пока пользователь не захочет вернуть специальный файл из хранилища. .
Итак, нам нужно обрабатывать проекты, архивировать события, метаданные для всех файлов, включая создание контрольных сумм и тому подобное, и все это полностью автоматизировано, когда одно событие архивирования может состоять из 5 ТБ, распределенных на тысячах средних и малых- размер файлов.
Это требует написания нашего программного обеспечения для автоматизации надежным и отказоустойчивым образом, поскольку мы не можем вручную отслеживать каждый сохраненный файл.
Таким образом, я ищу больше общих советов / лучших практик для написания программного обеспечения (и, в частности, для обработки данных / выполнения системных вызовов), а не только того, как проверять загрузки.
Вещи, для которых я хотел бы увидеть лучшие практики и подсказки, например: обработка исключений, ведение журнала, проверка, автоматические тесты и т. Д. И то, как объединить все это, чтобы получить решение, на которое вы можете положиться, не наблюдая его постоянно. (при необходимости вы должны получить письмо и т. д.).
Я бы использовал классический метод контрольной суммы с архивами tar.
Достаточно простой сценарий, независимый от протокола и, безусловно, самый надежный метод.
Для протокола, я думаю, что сам нашел кое-что сейчас (но ищу больше, если есть!):