Прошел месяц с того момента, как установил два узла Storj каждый на отдельном диске. Они ужу вошли в свой рабочий ритм полностью заполняясь без избыточности. Нарабатывают примерно одинаково, будем поглядеть на развитие дальше. Тут встал вопрос, если диск уже используется под свои нужды и на нем есть свободное неиспользуемое пространство. Как лучше поднять еще один узел, просто указав каталог для нового узла или все таки, как то ограничить пространство для его использования? Вменяемого ответа особо и не искал. Поэтому решил сделать виртуальный диск нужного объема и отдать под ноду. Экспериментировать что то не очень хочется, долгий это процесс. Поскольку диск с одним разделом и еще с моими данными, хотелось что бы некоторое дисковое пространство все еще оставалось про запас за мной. Поэтому что бы не рисковать, вдруг Storj начнет “жрать” все что есть свободного, решился на виртуальный диск. Хотя еще рассматривал вариант открыть ноду на другом арендованном сервере с другим белым айпи с использованием свободного пространства своего домашнего сервера. Но похоже реализую другой вариант, на своем сервере подниму ноду и пущу трафик через арендный сервак. Ибо что там пишут про более большую доходность если у узла помимо отдельного диска еще и айпишник из другой подсети.
Создание виртуального диска в линукс Debian
Вводные данные, как все будет:
- Файл-образ на 4 ТБ будет лежать:
/home/media/storj-disk
- Монтироваться он будет в каталог:
/home/storj/media4t
- Туда будет запускаться узел Storj.
Создание файла-образа (виртуального диска)
Сначала проверить, поддерживается ли fallocate:
fallocate -l 1G /home/media/test.img && ls -lh /home/media/test.img
Если команда отработает быстро (мгновенно) — значит поддерживается. Удалить тестовый файл:
rm /home/media/test.img
Если поддерживается fallocate:
fallocate -l 4T /home/media/storj-disk
Если не поддерживается, использовать dd (медленно, но работает везде):
dd if=/dev/zero of=/home/media/storj-disk bs=1M count=4000000 status=progress
Форматируем файл как диск
mkfs.ext4 /home/media/storj-disk
Создаём каталог и монтируем
mkdir -p /home/storj/media4t
mount -o loop /home/media/storj-disk /home/storj/media4t
Проверяем:
df -h /home/storj/media4t
Добавляем в автозагрузку (/etc/fstab)
Открыть fstab
:
sudo nano /etc/fstab
Добавить строку:
/home/media/storj-disk /home/storj/media4t ext4 loop 0 0
Далее по отработанной схеме
Storj установка дополнительных узлов
Повторение мать учения, в кратце то что уже писал, только с изменениями для третьего узла.
Проброс портов на роутере
Для второго узла сделать проброс порта 28968
Имя сервиса | IP-адрес устройства | Внешний порт | Внутренний порт | Протокол |
---|---|---|---|---|
storj2 | LOCAL-IP-SERVER | 28969 | 28969 | TCP/UDP |
Открыть порты в файерволе
sudo nano /etc/ufw/applications.d/ufw-storj
Добавить:
[Storj3]
title=Storj
description=Storj mining
ports=28969/tcp|28969/udp
[Board3]
title=DashBoard
description=Dash Board
ports=14004/tcp
Сохранить файл Ctrl+O Enter, закрыть Ctrl+X
sudo ufw allow Storj2
Открыть порт 28969 для работы узла Storj на сервере
sudo ufw allow Board2
Открыть порт 14004 для доступа к Панели ноды, впоследствии при открытии еще одного узла надо будет добавить другой порт в правила. Потому что второй и последующие узлы будут работать в отдельных контейнерах и для них нужно будет открывать другие порты.
Про работу с UFW смотрим тут
Разрешить личность
На этой странице https://storj.dev/node/get-started/auth-token нужно ввести свой е-майл адрес, доказать что ты не робот 😆 нажать Continue будет выдан код.
Создание личности на виндовс 10
В этот раз ключи генерировал на более мощном железе.
Скачать https://github.com/storj/storj/releases/latest/download/identity_windows_amd64.zip . Распаковать в любую папку например C:\identity_windows_amd64
. Открыть терминал cmd.exe перейти в каталог с программой, ввести команду identity.exe create storagenode
. Потом identity authorize storagenode <Вставить полученный код>
. В итоге в папке C:\Users\%USERNAME%\AppData\Roaming\Storj\Identity\storagenode
будут ключи ноды.
Копирование ключей
На сервере создать каталог с ключами для третьего узла:
mkdir ~/.local/share/storj/identity/storj-node-03-identity
Сгенерированные ключи скопировать с пк виндовс на сервер:
scp C:\Users\%USERNAME%\AppData\Roaming\Storj\Identity\storagenode\* USER@yIP-SERVER:~/.local/share/storj/identity/storj-node-03-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 storagenode3 storjlabs/storagenode:latest
- identity-dir -
/home/USER/.local/share/storj/identity/storj-node-02-identity
- тильду~
не применять в пути - storage-dir -
/home/storj/seagate
В строке --name storagenode3 storjlabs/storagenode:latest
обязательно менять имя на новый создаваемый узел в данном случае --name storagenode3
Запуск узла хранения
docker run -d --restart unless-stopped --stop-timeout 300 \
-p 28969:28967/tcp \
-p 28969:28967/udp \
-p 14004:14002 \
-e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-e EMAIL="user@example.com" \
-e ADDRESS="domain.ddns.net:28967" \
-e STORAGE="4Т" \
--user $(id -u):$(id -g) \
--mount type=bind,source="<identity-dir>",destination=/app/identity \
--mount type=bind,source="<storage-dir>",destination=/app/config \
--name storagenode3 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 storagenode3 - имя контейнера, поскольку это уже третий контейнер запускаемый на сервере ему нужно уникальное имя. Для последующих так же нужны уникальные имена.
Заполнив своими данными строки вставить в терминал и выполнить.
Проверка работы контейнеров
docker ps -a
Страница статистики
В браузере набрать LOCAL-IP-SERVER:14003
Комментарии