Резервное копирование вашей ноды
В настоящее время эта инструкция написана для установок в режиме Docker. Некоторые расположения могут отличаться для пользователей Hybrid или Native.
В целом, если вы создали кошелек ноды и minipool через Smartnode, единственное, что вам действительно необходимо иметь под рукой для восстановления ноды после полного сбоя, — это мнемоническая фраза для кошелька вашей ноды. Все остальное можно легко восстановить из нее.
Если у вас есть minipool с ключами validator, сгенерированными извне (например, вы мигрировали с Allnodes на собственную self-hosted ноду), вам также понадобятся файлы приватных keystore для ваших validator, поскольку их нельзя восстановить из кошелька ноды.
Тем не менее, после Merge вы больше не сможете использовать легкий Execution client (например, Pocket или Infura) в качестве резервного варианта, если вам когда-либо понадобится повторно синхронизировать цепь Execution layer. Более того, для корректной аттестации вам потребуется активный и работоспособный Execution client. Наличие быстрого и надежного способа восстановления после сбоя Execution client (например, поврежденной базы данных, неисправности SSD или компрометации / кражи оборудования) будет критически важным, поскольку синхронизация с нуля может занять часы или даже дни.
В этом руководстве мы покажем вам, как создать резервные копии некоторых из этих элементов, чтобы повысить устойчивость вашей ноды и минимизировать ненужные простои.
Это руководство предполагает, что вы установили Smartnode в директорию по умолчанию (~/.rocketpool).
Если вы указали другую директорию установки, подставьте ее соответствующим образом в приведенных ниже инструкциях.
Элементы, которые можно создать в резервной копии
Конфигурация Smartnode
Конфигурация Smartnode хранится в ~/.rocketpool/user-settings.yml.
Вы можете сохранить этот файл и заменить его, чтобы восстановить все настройки Smartnode (то есть параметры, которые вы указали в rocketpool service config).
Данные цепи Execution Client / ETH1 Client
Данные цепи Execution client, вероятно, являются самым важным элементом для резервного копирования. Как уже упоминалось, повторная синхронизация данных цепи EC может занять несколько дней. После Merge это означает часы или дни простоя и потерянной прибыли!
Данные цепи хранятся в Docker volume rocketpool_eth1clientdata, который по умолчанию находится в /var/lib/docker/volumes/rocketpool_eth1clientdata.
Обратите внимание, что эта папка обычно недоступна для непривилегированных учетных записей пользователей; вам нужно будет повысить привилегии до пользователя root, чтобы увидеть ее.
Если вы изменили расположение хранилища Docker во время первоначальной установки Smartnode (например, люди, которые запускают Docker на втором SSD), вы найдете volume в /<ваша внешняя точка монтирования>/docker/volumes/rocketpool_eth1clientdata
Если вы не помните, какой путь установки используете, вы можете проверить /etc/docker/daemon.json для его расположения.
Если файл не существует, вы используете расположение по умолчанию.
Подробные инструкции по эффективному резервному копированию данных цепи Execution смотрите в разделе Резервное копирование данных цепи Execution ниже.
Данные мониторинга и метрик
Эти данные хранятся в Docker volume rocketpool_grafana-storage, который по умолчанию находится в /var/lib/docker/volumes/rocketpool_grafana-storage (или /<ваша внешняя точка монтирования>/docker/volumes/rocketpool_prometheus-data, если вы настроили расположение хранилища Docker).
Элементы, которые не следует создавать в резервной копии
Приватные ключи и пароли
Приватный ключ кошелька вашей ноды и файл пароля, используемый для его шифрования, хранятся в ~/.rocketpool/data/wallet и ~/.rocketpool/data/password соответственно.
Эти файлы обычно не нужно создавать в резервной копии, поскольку их можно восстановить из вашей мнемонической фразы с помощью rocketpool wallet recover.
Если по какой-то причине вы все же решите создать резервную копию этих файлов, вам нужно будет быть чрезвычайно осторожными в отношении того, как вы их храните. Любой, кто получит доступ к этим файлам, получит доступ к кошельку вашей ноды, ее validator и любым средствам, которые вы храните в нем для таких целей, как оплата газа.
Мы настоятельно рекомендуем не создавать резервные копии этих файлов и просто использовать мнемоническую фразу кошелька для их восстановления при необходимости.
Данные цепи Consensus Client
В отличие от данных Execution layer, данные Consensus layer не так важны для вашей ноды благодаря Checkpoint Sync. Consensus client могут легко использовать эту технику для немедленной повторной синхронизации с головой цепи Beacon и возобновления обязанностей по валидации.
Резервное копирование данных цепи Execution
Smartnode поставляется с возможностью резервного копирования данных цепи Execution через команду rocketpool service export-eth1-data.
Под капотом это использует rsync, мощный инструмент резервного копирования/копирования в Linux.
rsync сравнивает файлы в исходной директории (ваш Docker volume) и целевой директории (ваше расположение резервной копии).
Если исходный файл не существует в целевой директории, он будет скопирован полностью.
Однако, если он существует, rsync скопирует только изменения между двумя файлами.
Это означает, что первое резервное копирование займет значительное количество времени, поскольку необходимо изначально скопировать все данные. Последующие резервные копии будут копировать только изменения между предыдущей резервной копией и текущим состоянием, что делает процесс намного быстрее.
В рамках стратегии резервного копирования вы можете запланировать регулярный запуск export-eth1-data.
Чтобы обеспечить целостность данных цепи, выполнение этой команды безопасно остановит Execution client перед резервным копированием его данных.
Если вы решите планировать это каждую неделю, ваш Execution client будет отключен всего на несколько минут во время обновления резервной копии.
Это определенно лучше, чем дни, которые потребуются для повторной синхронизации данных с нуля.
Чтобы запустить резервное копирование, начните с монтирования носителя данных, на который вы хотите экспортировать данные. Например, это может быть внешний жесткий диск.
Если вы не знаете, как монтировать внешние устройства в Linux, это легко! Подключите устройство к своей ноде и следуйте такому руководству, чтобы узнать, как его смонтировать.
Как только вы смонтируете его, запишите путь монтирования.
Для этого примера предположим, что мы хотим сохранить данные цепи в папке под названием /mnt/external-drive, куда смонтировано внешнее устройство.
Замените это на ваш фактический путь монтирования везде, где вы видите его ниже.
Теперь выполните следующую команду:
Это проверит, что ваша целевая папка доступна и имеет достаточно свободного места для хранения данных цепи. Вывод будет выглядеть следующим образом:
Как видите, данные цепи будут занимать менее 100 ГБ (для тестовой сети Hoodi; Ethereum mainnet будет на порядок больше), а во внешней папке свободно 287 ГиБ, поэтому экспорт может продолжиться.
Когда будете готовы, введите y здесь и нажмите Enter.
Это остановит ваш Execution client и начнет копирование данных цепи в целевую папку.
Вы увидите, как прогресс каждого отдельного файла проходит по экрану во время выполнения.
Важно, чтобы вы не выходили из терминала во время выполнения. Если вы это сделаете, копирование продолжит выполняться в фоновом режиме, но вы не сможете следить за его прогрессом!
После завершения он автоматически перезапустит ваш контейнер Execution client.
Обратите внимание, что ваши существующие данные цепи не удаляются с вашей ноды после завершения экспорта!
Восстановление данных цепи Execution
Если вам когда-либо понадобится восстановить резервную копию данных цепи, просто выполните следующую команду.
Это автоматически удалит все существующие данные Execution client в вашем volume rocketpool_eth1clientdata!
После завершения ваш Execution client будет готов к работе.