Qnap Storagenode

Hi. I have two Qnaps with storage nodes. They’re running latest QTS version 5.0.1.2277. The nodes were stuck in storagenode version 1.1.0, and I’m unable to update to 1.1.2, 1.1.3 or 1.1.4.
I’ve received a mail informing that “Your Node is Below the Minimum Version”
Is there a way to update the nodes?
Is there going to be a new qnap version that works for QTS 5.0.1?

Thanks,
Natxo

Just use docker instead of that storj app.

To use Docker, in QNAP Container Station you can create an app, and then paste in the storage node docker compose config. This is how I run my node. I attached a screenshot here to show you what I mean:

You will need to ensure /share/Container/storj/storage and /share/Container/storj/identity go to the right place on the storage. If you SSH into the NAS it can be helpful to locate these paths.

Alternatively you can follow the Docker steps here and do it all while in an SSH session.

4 Likes

Thanks Sean.
Is there anywhere a step by step explanation on how to migrate from the storj app to a docker app in the Qnap?

1 Like

Just write down paths to identity and data from this app, then remove the app.

Enable ssh, login via ssh and follow the mentioned setup with docker. You need to skip SETUP step, since it’s already done and run your node right away using correct paths.

Or use the method suggested by @sean, the example of docker-compose.yaml for storagenode and watchtower you may see there:

However, the port section should be adjusted to

    ports:
      - 28967:28967/tcp
      - 28967:28967/udp
      - 14002:14002
1 Like

Thanks.
I removed the app, and created a new docker app with this info in the docker-compose.yml:

version: “3.8”
services:
storagenode:
image: storjlabs/storagenode:latest
container_name: storagenode
volumes:
- “/share/xxxxo/Storj_id/Identity:/app/identity”
- “/share/xxxxo/Storj/storage:/app/config”
ports:
- 28967:28967/tcp
- 28967:28967/udp
- 14002:14002
restart: unless-stopped
stop_grace_period: 300s
environment:
- WALLET= “0xxxxxxxxxxxxxxxxxxxxx”
- EMAIL= “xxxxx@gmail.com
- ADDRESS= “xxxxxx.xxxxxx.com:28967
- STORAGE= “xTB”
watchtower:
image: storjlabs/watchtower
restart: always
container_name: watchtower
command: storagenode watchtower --stop-timeout 300s --interval 21600
volumes:
- /var/run/docker.sock:/var/run/docker.sock

But something seems to be wrong, because it’s not working. Any suggestion?

I paste some of the logs, maybe they are usefull.

                   2023-03-16 22:12:59,975 WARN received SIGQUIT indicating exit request
                                                                                        2023-03-16 22:12:59,975 INFO waiting for storagenode, processes-exit-eventlistener to die
                                                                       2023-03-16 22:12:59,976 INFO exited: storagenode (exit status 1; not expected)
                                           2023-03-16 22:13:00,978 INFO stopped: processes-exit-eventlistener (terminated by SIGTERM)

2023-03-16 22:15:13,832 INFO exited: storagenode (exit status 1; not expected)
2023-03-16 22:15:14,833 INFO success: processes-exit-eventlistener entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-03-16 22:15:14,834 INFO spawned: ‘storagenode’ with pid 28
2023-03-16 22:15:14,836 INFO spawned: ‘storagenode-updater’ with pid 29
2023-03-16T22:15:14.845Z INFO Invalid configuration file value for key {“Process”: “storagenode-updater”, “Key”: “log.caller”}
2023-03-16T22:15:14.845Z INFO Invalid configuration file value for key {“Process”: “storagenode-updater”, “Key”: “log.development”}
2023-03-16T22:15:14.845Z INFO Invalid configuration file value for key {“Process”: “storagenode-updater”, “Key”: “log.encoding”}
2023-03-16T22:15:14.845Z INFO Invalid configuration file value for key {“Process”: “storagenode-updater”, “Key”: “log.output”}
2023-03-16T22:15:14.845Z INFO Anonymized tracing enabled {“Process”: “storagenode-updater”}
2023-03-16T22:15:14.845FATAL Error loading identity. {“Process”: “storagenode-updater”, “error”: “file or directory not found: open identity/identity.cert: no such file or directory”, “errorVerbose”: “file or directory not found: open identity/identity.cert: no such file or directory\n\tstorj.io/common/identity.Config.Load:326\n\tmain.cmdRun:108\n\tstorj.io/private/process.cleanup.func1.4:377\n\tstorj.io/private/process.cleanup.func1:395\n\tgithub.com/spf13/cobra.(*Command).execute:852\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:960\n\tgithub.com/spf13/cobra.(*Command).Execute:897\n\tstorj.io/private/process.ExecWithCustomConfigAndLogger:92\n\tmain.main:20\n\truntime.main:250”}
2023-03-16 22:15:14,846 INFO exited: storagenode-updater (exit status 1; not expected)
Error: invalid argument “” for “–storage.allocated-disk-space” flag: empty size

in the compose config:

- "/share/xxxxo/Storj_id/Identity:/app/identity"

Can you check the path there at /share/xxxxo/Storj_id/identity? It looks like it’s probably not existing, so the container doesn’t see the identity files as shown in the error.

1 Like

Yes. The identity files are there.
Captura de pantalla 2023-03-17 a las 0.51.54

it need to be

- "/share/xxxxo/Storj_id/Identity/storagenode:/app/identity"

Thank you. Now this identity error is fixed. But the app is still not working. It’s starting and stopping all of the time:

2023-03-17 09:01:06,339 INFO exited: storagenode (exit status 1; not expected)
2023-03-17 09:01:07,340 INFO gave up: storagenode entered FATAL state, too many start retries too quickly
2023-03-17 09:01:08,356 WARN received SIGQUIT indicating exit request
2023-03-17 09:01:08,356 INFO waiting for processes-exit-eventlistener, storagenode-updater to die
2023-03-17T09:01:08.356Z INFO Got a signal from the OS: “terminated” {“Process”: “storagenode-updater”}
2023-03-17 09:01:08,358 INFO stopped: storagenode-updater (exit status 0)
2023-03-17 09:01:08,393 WARN received SIGTERM indicating exit request
2023-03-17 09:01:08,394 INFO stopped: processes-exit-eventlistener (terminated by SIGTERM)

What was the error before this line:

Here you have:

                                   Error: Error starting master database on storagenode: group:

— stat config/storage/blobs: no such file or directory
— stat config/storage/temp: no such file or directory
— stat config/storage/garbage: no such file or directory
— stat config/storage/trash: no such file or directory
2023-03-21 09:43:38,299 INFO exited: storagenode (exit status 1; not expected)
2023-03-21 09:43:41,303 INFO spawned: ‘storagenode’ with pid 73
2023-03-21T09:43:41.340Z INFO Anonymized tracing enabled {“Process”: “storagenode”}
2023-03-21T09:43:41.340Z INFO Operator email {“Process”: “storagenode”, “Address”: “xxxxxxx@gmail.com”}
2023-03-21T09:43:41.340Z INFO Operator wallet {“Process”: “storagenode”, “Address”: “0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”}
Error: Error starting master database on storagenode: group:
— stat config/storage/blobs: no such file or directory
— stat config/storage/temp: no such file or directory
— stat config/storage/garbage: no such file or directory
— stat config/storage/trash: no such file or directory
2023-03-21 09:43:41,342 INFO exited: storagenode (exit status 1; not expected)
2023-03-21 09:43:42,343 INFO gave up: storagenode entered FATAL state, too many start retries too quickly
2023-03-21 09:43:43,344 WARN received SIGQUIT indicating exit request
2023-03-21 09:43:43,345 INFO waiting for processes-exit-eventlistener, storagenode-updater to die
2023-03-21T09:43:43.345Z INFO Got a signal from the OS: “terminated” {“Process”: “storagenode-updater”}
2023-03-21 09:43:43,346 INFO stopped: storagenode-updater (exit status 0)
2023-03-21 09:43:44,348 INFO stopped: processes-exit-eventlistener (terminated by SIGTERM)

FIrst thing that stands out is that one has Storj_id as intermediate folder while the other has Storj.
Second, where does /share/xxxxo/Storj/storage point to? At literal storage folder? Cause I think it should point one level up, where there is both storage and orders folder:
image

1 Like

That’s it! One level up for the config worked.
Thank you very much to all of you.

1 Like