Перенести отросток ноды

Добрый вечер!

Я вырастил на одной площадке маленькую ноду размером 500Гб. Сейчас планирую перенести ее на другую площадку с хорошим каналом и пересадить ее на 16Tb HDD.

Правильно ли я понимаю алгоритм: останавливаю контейнер. Копирую, например, с помощью WinCSP директории, содержащие identity и storage, переношу на новое место, запускаю новый контейнер, стараясь не перепутать новые пути и все получается?

Да, этот процесс кажется мне хорошим. Только убедитесь, что вы скопировали все: каталог данных (включая “blobs” и “sqlite databases”) и каталог identity + config.

2 Likes

Ваше описание правильное, но можно сделать почти без downtime:

Я бы порекомендовал перенести папку с identity файлами на диск с данными, тогда вы их не перепутаете.

Не забудьте запустить завершающее копирование (в случае rsync с флагом --delete), когда исходный контейнер остановлен и удалён, иначе базы данных могут оказаться повреждёнными из-за наличия временных файлов, существующих только когда узел работает.

Важно! Не запускайте шаг SETUP для работавшего узла, это может уничтожить его!

Не забудьте обновить правила проброса порта на роутере. Если вы переносите узел в другую сеть и используете DDNS, не забудьте отключить его обновление на старом месте или используйте другой адрес DDNS.

На сервере назначения вы просто используете обычную полную команду docker run со всеми вашими параметрами.
Исходный контейнер должен быть остановлен и удалён, когда вы будете запускать на новом месте, если будут работать обе копии одновременно - узел будет дисквалифицирован.

2 Likes