Проектирование
Как оказалось в результате проектно-изыскательских работ, качество и оперативность процесса миграции зависит не только от технических характеристик «площадок», где находятся или будут находиться данные, но и от их физического местоположения.
Миграционный менеджер — вычислительный узел, на котором функционирует «логика» процесса — ПО для управления миграцией.
То есть, всего существуют две модели размещения «миграционного менеджера»
- Модель А. Если хотя бы к одной из площадок есть доступ только изнутри локальной сети, то в этой же сети стоит размещать и «миграционного менеджера». Ибо производительность и время миграции всё равно ограничены скоростью и аптаймом канала, площадки связывающие.
- Модель B. Если и к источнику, и к приёмнику данных есть доступ за пределами локального сети, то «миграционного менеджера» стоит селить там, где скорость и аптайм канала между ними будет заведомо лучше.
Чтобы как-то декомпозировать вышесказанное, предлагаю вернуться к задачам из основного вопроса статьи, и формализовать их в техническое задание.
Для начала необходимо выяснить, поддерживает ли используемое мной программное обеспечение «облака»: Mail.ru, Yandex, Google Drive, Mega, Nextloud?
Короткий ответ: «ДА!»
Я использую Rclone.
Rclone — rsync для облачных хранилищ. Open Source ПО предназначенное для синхронизации файлов и папок более чем с 45 типами и видами хранилищ.
Вот лишь некоторые из них:
Основной функционал:
От себя добавлю, что Rclone также помогает мне решать львиную долю задач связанных с автоматизацией резервирования данных в проекте «Väinämöinen».
Следующая задача — выбор модели размещения «миграционного менеджера».
Ко всем источникам данных — коими являются различные публичные облачные сервисы, есть доступ через интернет. В том числе и через API. У двух из трёх приёмников — тоже. Неясно только где развёрнут сам Nextcloud и какой доступ к нему есть?
Возможных вариантов я насчитал пять:
- На собственном сервере в домашней/корпоративной сети.
- На собственном сервере в арендуемой стойке дата-центра сервис-провайдера.
- На арендуемом у сервис-провайдера сервере.
- На виртуальном сервере (VDS/VPS) у сервис/хостинг-провайдера
- У сервис-провайдера по модели SaaS
Учитывая то, что Nextcloud это всё-таки ПО для создания и использования облачного хранилища, можно смело утверждать что доступ к нему через интернет доступен во всех пяти вариантах. И оптимальным в этом случае моделью размещения «миграционного менеджера» станет — модель B.
Согласно выбранной в качестве площадки для «миграционного менеджера» модели, я выберу один из оптимальных, с моей точки зрения, вариантов — виртуальный сервер в дата-центре М9 крупнейшей в России точки обмена интернет-трафиком MSK-IX.
Третье решение, которое необходимо принять — это определиться с конфигурацией виртуального сервера.
При выборе параметров конфигурации VDS нужно руководствоваться необходимой производительностью, которая зависит от ширины каналов между площадками, количеством и размером перемещаемых файлов, количеством потоков миграции и настройками. Что касается ОС, то Rclone — кроссплатформенное ПО, работающее под различными операционными системами, включая Windows и Linux.
Если планируется запускать несколько процессов миграции, да ещё и определённой периодичностью, то стоит рассмотреть вариант аренды VDS с оплатой за ресурсы.
Создание
Настройка
- Первые четыре шага аналогичны процессу подключения Nextcloud.
- Далее всё оставляем как есть, то есть — поля в Step 2: Setup drive оставляем пустыми, в расширенных опциях ничего не меняем.
- Жмём Сreate Config.
- В браузере открывается страница авторизации на Яндексе, после прохождения которой, сообщение об успешном подключении и предложением вернуться к Rclone.
- Что мы и делаем, проверяя раздел Config.
Миграция
Когда у нас подключены две площадки, мы уже можем осуществить миграцию данных между ними. Собственно процесс похож на проверку работоспособности подключения к Nextcloud, что мы проводили ранее.
- Переходим в Explorer.
- Выбираем шаблон 2-side by side.
- В каждом из Remotes указываем имя своей площадки.
- Жмём Open.
- Видим каталог файлов и папок каждой из них.