Ports with multiple nodes in VM's

Hello, I have a quick question as I am trying to troubleshoot a setup with UnRaid that run windows VM’s.

I’ve looked at various documentation regarding the matter but I am unsure what a setup where UnRaid is the main PC hosting 2 x windows 10 VM’s. Does this count as a “single machine multiple nodes” or as a “multi-machine multi-node” setup? as per this article: 7support.storj.io/hc/en-us/articles/360042343052-Single-and-multi-node-Port-forwarding-setup?_ga=2.58294953.2047067069.1603584855-140195758.1602441306

As I can not get my 2nd node to go online using whatever port config, I started out with 28968 on the VM with a 28968 port forward from any port or IP. Then I tried to use the VM standard port of 28967 but then listen to 28968 on the router that then converts to port 28967. But as the article states there is usually some sort of misconfiguration. I am just puzzled and what the problem is. Would be great if anyone with multiple VM’s can give me some pointers.


vm’s count as their own machine… tho you do know this is a immensely resource wasteful way to configure your setup…

unraid is linux or bsd based i think it’s linux… doesn’t matter tho… either of them isn’t great for running windows as vm’s, you should really install docker and just run all your nodes through there… then the resource demand on your system will be much much less.

windows vm’s require like a minimum of 4gb dedicated memory to function correctly … or atleast in my experience… been trying all that dynamic memory thing… but it just makes stuff unstable long term.

so two vm’s is like 8gb of memory wasted + 5-10% cpu utilization… while with docker and running a couple of storagenode containers you will use you will normally use about 300mb of memory and less than 1% cpu most of the time…

the port thing can be a bit confusing, each storagenode will default to port 28967 because it’s configured to that in it’s config.yaml (config.yaml might be a docker thing tho… not totally sure)

you should run docker… anyways tho…

anyways the recommended solution is to create a vm / container on each their own ip address and then you configure your router to route a sequence of external ports from the internet and then each port goes to a different local network storagenode ip, and the end port is always 28967

use this link instead, the guide you have been looking at is just a basic overview of how to do the setup… this site will guide you step by step no matter which solution you pick…

but i would strongly recommend using a linux based container since your OS is linux based, if can run windows vm’s but it doesn’t run it efficiently… so if you need to run in a windows vm for whatever reason… then limit yourself to 1 windows vm for all the storagenodes.

I’ve tried Linux based configs but it wasn’t really working for me as I lack the experience with Ubuntu for instance. As far as running 1 VM I tried using Docker Doc but enabling Hyper-V just kept me in a boot repair loop. I would like to run Linux but it is a bit complicated for a novice and my second try was the Docker Doc for windows. So I finally came back to running multiple VM’s and I know this is a bit more resources intensive than other options. The VM’s have their own IP and i made sure they do not change by assigning them the current IP as static in the Router config. config.yaml i used to edit the port but I reverted it to the default and now I am picking up 28968 as an external port and pointing it to the default port on the static IP for the 2nd VM. To no avail and testing the port says it is closed while I am sure I port forwarded it.

StorJ Node 2 28968 28967 TCP

You should never run a VM inside a VM inside a VM… Running docker is super simple with ubuntu, running docker inside windows is a no no.

If your going to run a VM run a ubuntu server no gui so you don’t have any extra over head.
If your going to run a windows VM use storj GUI not docker because you shouldnt run a VM inside a VM.
And defiantly should not run in unraid…

i bet you that you can install docker directly onto unraid… then you just need to do a few docker commands… like the docker run, docker start docker stop and docker log
thats about it… i don’t think i ever really needed more commands than that really…

oh yeah and docker pull ofc, but really watchtower should take care of most of that…
the install is described in the link i gave you, just install docker directly into unraid… i’m sure its fine… worked fine on proxmox and if you want to be safe find somebody on youtube that has a step by step guide

Unraid runs the VM’s, their both on Unraid not inside a VM so separated entity’s with their own IP address inside the LAN. I used the GUI method to install on windows but I have tried the Docker Doc method only to use a single VM. I could try to switch the 2nd VM to a Ubuntu install see if that works.

Nope i checked i do like Unraid but it is missing some feature but that is fine i just need to find a best way to configure this. Docker Doc only works in Windows or Linux i checked there is no Distro for Unraid.

You should for sure run docker in ubuntu though, I wouldnt run windows to run nodes…in a VM… This seems like a complete waste of system resources. I forget doesnt unraid require dedicated GPU to passthough aswell? Last time I used unraid it required to passthough 1 gpu per VM.

As I can not get this dockers thing to work on either Windows or Linux I will pass on that. I will see what I can do with Ubuntu VM’s. And I just got into UnRaid but it does not need a GPU it can run of the iGPU just fine of my 10600K.

It might be the host interface for UnRaid as I try to pass through 28967 twice now to different IP’s/VM’s

But each VM should have there own IP address. So you would need to forward the port that is being used which all nodes cant use the same port on the same router, So you would need to change the IP to a different port then have it forward to a local port instead of all of the same ports. For example forward 28967 to the first node then have the second node have port 28968:28967 and etc

Also in ubuntu you could run 5 nodes on the OS without having to keep installing another OS to run a node on.

Each VM has their own IP assigned them through the mac address in the router so they are static. And the ports are forwarded per node in the virtual server/port forward as well.

And this: 28968:28967 needs to be entered where? As I have 2 ports in the config.yaml and then the port forward rules in the firewall and then the port forward in the router.

And how do i run 5 nodes in Ubuntu in a single VM without dockers?

This would be entered when you run the start command for docker or you could run docker less storagenode, But I would recommend trying using docker for this since its pretty simple to setup more then one node.
So if you followed the setup for docker it would show you the start command and you just copy and paste it and fill in your info in. But where the ports are you would put 28968:28967, and you would enable port forwarding to that IP:28968, Then if you ran a second node on the same OS you would just change the port again to 28969:28967, and you could keep doing this if you had the hard drive space.

Well I’ve tried by Ubuntu won’t even run the identity binary and just spews out errors. I could be one of many things. So I prefer to stick with windows since that is only a port forwarding problem as it stands.

apperently docker is a default part of the unraid suit… so you simply add the storj container instead of having to make a vm and then install docker inside it…
so you can run the storagenode / storj docker container “baremetal” in unraid… no need for anything fancy

Yeh i tried that as well but again Linux and it just gives errors so I defaulted back to windows VM.

then limit yourself to 1 windows vm and run all the nodes over that… it will save a ton of resources compared to running many windows vm’s

What was the errors you were getting with the ubuntu VM?

Probably as i am logged in as admin but no way of getting out of that i looked around and i could only logout nothing else. Like i said i just want to put up some storage nodes not learn how linux works.

Yeh i have been trying to do that but i keep getting a port problem even if i edit all the files to 28968 for the port and router.

Option 1

Internet ----> router -> 28967 -----> 28967 -> IP1 VM1 : storagenode1
                 \-----> 28968 -----> 28967 -> IP2 VM2 : storagenode2

Option 2

Internet ----> router -> 28967 -----> 28967 -> IP1 VM1 : storagenode1
                 \-----> 28968 -----> 28968 -> IP1 VM1 : storagenode2

In the Option 2 you need to change the server.address: :28967 to server.address: :28968 for the second node. Also change the server.private-address: to server.private-address: for example and do not forget to change the console.address: to console.address:

In both options the contact.external-address: should be with external port, i.e. contact.external-address: my.external.address:28967 for the first node and contact.external-address: my.external.address:28968 for the second.