Что делать когда закончилось место на узле Storj

Узел Storj, который я открыл с 500 Гб жестким диском заполнился за 10 дней. У меня есть еще один диск на 500 Гб. Рекомендуют создавать новый узел, если позволяет железо только после заполнения других нод. Поэтому дождавшись заполнения первого харда покажу, как пустить в дело еще один, это относится так же к последующим дискам. Главное, что бы параметры сервера позволяли.

Добавление нового узла уже немного проще поскольку основные моменты уже настроены. Все этапы настройки были написаны в этом посте Storj установка настройка в Debian

Подключение и подготовка диска

Как подключать диск физически, писать не буду. Диск подключен и теперь узнаем как он отображается в системе:

lsblk -f

Будет показано имя диска в моем случае sdc с одним томом sdc1 так же его UUID bdafebb6-4753-4f25-b19b-e1b432265a2d

Отформатировать диск на всякий случай:

sudo mkfs.ext4 /dev/sdc1

Создать каталог:

sudo mkdir -p /home/storj/seagate

Дать права на каталог текущему пользователю:

sudo chown -R $(id -u):$(id -g) /home/storj/seagate

Примонтировать диск к созданному каталогу:

sudo mount /dev/sdc1 /home/storj/seagate

Узнать UUID bdafebb6-4753-4f25-b19b-e1b432265a2d диска:

lsblk -f

Для того чтобы после перезагрузки диск автоматически монтировался добавить запись в файл sudo nano /etc/fstab

UUID=bdafebb6-4753-4f25-b19b-e1b432265a2d /home/storj/seagate  ext4    defaults            0             0

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

Монтировать лучше по UUID который узнали выше.

Применить настройки:

sudo mount -a

Проверка монтирования диска

df -h

Проброс портов на роутере

Для второго узла сделать проброс порта 28968

Имя сервиса IP-адрес устройства Внешний порт Внутренний порт Протокол
storj2 LOCAL-IP-SERVER 28968 28968 TCP/UDP

Открыть порты в файерволе

sudo nano /etc/ufw/applications.d/ufw-storj

Добавить:

[Storj2]
title=Storj
description=Storj mining
ports=28968/tcp|28968/udp
[Board2]
title=DashBoard
description=Dash Board
ports=14003/tcp

Сохранить файл Ctrl+O Enter, закрыть Ctrl+X

sudo ufw allow Storj2 Открыть порт 28968 для работы узла Storj на сервере

sudo ufw allow Board2 Открыть порт 14003 для доступа к Панели ноды, впоследствии при открытии еще одного узла надо будет добавить другой порт в правила. Потому что второй и последующие узлы будут работать в отдельных контейнерах и для них нужно будет открывать другие порты.

Про работу с UFW смотрим тут

Для второго и последующих узлов хранения надо открывать другие порты отличающиеся с последним узлом для удобства на единицу.

Создание новой личности

Повторюсь некоторые этапы были уже сделаны и описаны тут поэтому переходим к обязательным шагам в любом случае.

Генерация ключей

identity create storagenode

Как рекомендовал ранее, можно сгенерировать ключи на более мощном пк

Разрешить личность

На этой странице https://storj.dev/node/get-started/auth-token нужно ввести свой е-майл адрес, доказать что ты не робот 😆 нажать Continue будет выдан код.

identity authorize storagenode <Вставить полученный код>

Создание личности на виндовс 10

Скачать https://github.com/storj/storj/releases/latest/download/identity_windows_amd64.zip Распаковать в любую папку например C:\identity_windows_amd64. Открыть терминал C:\Users\BlackMAMbA\cmd.exe. Ввести команду identity.exe create storagenode. Потом identity authorize storagenode <Вставить полученный код>. В итоге в папке C:\Users\%USERNAME%\AppData\Roaming\Storj\Identity\storagenode будут ключи ноды.

Копирование ключей

Создать каталог с ключами для второго узла:

mkdir mkdir ~/.local/share/storj/identity/storj-node-02-identity
cp -r ~/.local/share/storj/identity/storagenode/* ~/.local/share/storj/identity/storj-node-02-identity/

или сгенерированные ключи скопировать с пк виндовс на сервер:

scp -r C:\Users\%USERNAME%\AppData\Roaming\Storj\Identity\storagenode USER@yIP-SERVER:~/.local/share/storj/identity/storj-node-02-identity/

Подтвердить личность

Это проверка на то что получены все идентификационные файлы, проверку проводить на сервере куда уже скопированы сгенерированные ключи:

grep -c BEGIN ~/.local/share/storj/identity/storj-node-02-identity/ca.cert

На выходе должна быть цифра - 2

grep -c BEGIN ~/.local/share/storj/identity/storj-node-02-identity/identity.cert

На выходе должна быть цифра - 3

Настройка узла хранения

docker run --rm -e SETUP="true" \
    --user $(id -u):$(id -g) \
    --mount type=bind,source="<identity-dir>",destination=/app/identity \
    --mount type=bind,source="<storage-dir>",destination=/app/config \
    --name storagenode storjlabs/storagenode:latest
  • identity-dir - /home/USER/.local/share/storj/identity/storj-node-02-identity - тильду ~ не применять в пути
  • storage-dir - /home/storj/seagate

Запуск узла хранения

Для второго и последующих узлов хранения в контейнере надо прописать другие порты отличающиеся с первым узлом для удобства на единицу

docker run -d --restart unless-stopped --stop-timeout 300 \
    -p 28968:28967/tcp \
    -p 28968:28967/udp \
    -p 14003:14002 \
    -e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
    -e EMAIL="user@example.com" \
    -e ADDRESS="domain.ddns.net:28967" \
    -e STORAGE="500GB" \
    --user $(id -u):$(id -g) \
    --mount type=bind,source="<identity-dir>",destination=/app/identity \
    --mount type=bind,source="<storage-dir>",destination=/app/config \
    --name storagenode2 storjlabs/storagenode:latest
  • WALLET - номер кошелька
  • EMAIL - почтовый адрес, который был указан при создании ключа
  • ADDRESS - поставить статический ip или домен, можно спецом сделать поддомен для каждого узла, при желании. Я просто указал домен который у меня есть.
  • STORAGE - указать сколько отдаем дискового пространства в моем случае 500GB
  • <identity-dir> - /home/USER/.local/share/storj/identity/storj-node-02-identity
  • <storage-dir> - /home/storj/hitachi
  • name storagenode2 - имя контейнера, поскольку это второй контейнер запускаемый на сервере ему нужно уникальное имя. Для последующих так же нужны уникальные имена.

Заполнив своими данными строки вставить в терминал и выполнить.

Проверка работы контейнеров

docker ps -a

Страница статистики

В браузере набрать LOCAL-IP-SERVER:14003