General question. When the time comes and I want to expand and upgrade my storage hard drives in my server what is the BEST way to do this without ending up Disqualified or whatever. I am thinking of upgrading my server hard drives. Is there a way to inform the network of what I am doing so that once the hard drives have been changed out all that info comes back to the server immediately or what happens?
If you just want to allocate more space - change the
STORAGE option in your
docker run command (you should stop and remove the container and run it back with all your parameters include changed ones. You must never use the SETUP step for the same node to do not destroy it).
If you use Windows/Linux GUI (or binary setup), then you need to modify
storage.allocated-disk-space: option in your
config.yaml, save the config and restart the storagenode service.
If you want to add a new disk: How to add an additional drive? - Storj Node Operator Docs
If you want to migrate to a bigger disk: How do I migrate my node to a new device? - Storj Node Operator Docs
If you think replacing the drives with bigger ones, you should follow the docs on how to transfer data to another drive, but it should not take longer than 12 days, if you robocopy the drives or clone them. Cloning is faster. Robocopy took me aprox 1.1 days per TB. Docs recommend using rsync or some sort of syncro transfer, but this didn’t appeal to me.
But, instead of replacing the drives, if you can install more, is better to start new nodes on the new drives, and keep the old ones as they are.
In my experience, and I made it many times, the best method is based on official migration doc:
mount new storage, rsync few times to it while node is running - it can take days, no downtime at all, stop and remove storagenode, rsync with --delete to remove files which were removed by node itself, re-create node with new mount and you’re done.
Only time your node is not running is when you stop it and last rsync.
If you prepare one-line scripts before starting you will save some time too
IMO you can recreate ~10TB node with below 1h downtime.
How long does it takes for 10TB?
While doing this I believe the storagenode service should be stopped right ? How long can it take in order to not get your node disqualified ?
I guess you can do the first rsync run with the service running, then the sequential ones with the service stopped in order to get the newer files synced and reduce the amount of time the service will be stopped.
The rsync way: you do the rsyncs with the storagenode running, and only the final one with the node stopped.
The robocopy way: first stop the node and than robocopy all.
If i start another NODE on a different server what happens there? Can I have more than 1 NODE running at the same IP address using NOIP?
Robocopy works the same way as
rsync, you can do not stop the node during copying, you run robocopy several times until the difference is negligible, then stop the node and run robocopy one more time, then update your
config.yaml with a new path for storage and start the node.
You can run the new node using the same IP/DDNS hostname, you just need to use a different external port. So, you need to create another port forwarding rule on your router with this new port for TCP+UDP and the local IP of your other server.
Full rsync? a few days, depending on conditions - speed of disks, cpu, whether to rsync over the network or to local disks.