Is the Backup of a Node (and its contents) reqired?

I want to join storj and was wondering if i need to provide any security for my node(s)?

Shure thing having a backup of a running vm is possible and saves alot of trouble in case something goes belly up but is this a reqirement for running a storj node?

Thank you :slight_smile:

Backup of a node is not really possible.
Node is getting new data all the time, if you restore a backup that is a few hours old, it will not have the data of the last few hours, will fail audits and be disqualified. There is no way to tell the satellite that “hey, this node has just been restored from a backup, so it does not have any pieces uploaded to it since date xyz”.

The only way to achieve reliability is to use RAID or something like Ceph that replicates the data in real time.

Ok thank you… lets exppand this a bit.

If the node goes kaputt i need to start from scratch again (it can’t be reintegrated and i loose the escrow period) - got that

What about node downtimes?
If i need to reboot the server in case of maintanance?

Does that mean everytime i reboot the node or take the server offline for a couple of hours i need to start from scratch?

No, currently nodes do no get disqualified for downtime. Additionally the current stated requirement allows a down time of 5 hours every month. This is currently not enforced and the measurement for downtime is being redesigned, so things may change.

The most important part is that you never lose any data. You get disqualified really quickly for that. Down time is much more survivable. Especially if you’re talking short down time for maintenance.

1 Like

So RAID would be prefered i gess and it can’t be backed up - OK

Can something like a failover scenario be used to archive data security?

I do have currently one ESXi host running on wich im planning to run said node. Not shure about how much space i’ll give that node; lets say maybe 1 - 2 TB for the “test”…

I’m planning to get a second ESXi up and running since i need to learn alot more about ESXi in general and HA!

So if a ESXi 1 has a Problem ESXI2 takes over and the node goes live within a reasonable timeperiod it shouldn’t be “disqualified” and all is OK?

I’m just playing mindgames right now :slight_smile:

Bitcoin mining was way easier but i get it, its data were talking about. Data is a differnt ballpark since with bitcoin you just loose the hasing power of said downtime.

Thanks

1 Like

The compute service outage is very rare. So this kind of failover is overkill. The main problem is storage. You need to have a shared storage between instances. And there is a trap. The storagenode is not compatible with any network connected storage in general, especially NFS and SMB. The only compatible protocol is iSCSI. But it is not so easy as you may thinking. Any problem with network - your storage is disconnected and you can lost pieces and got disqualified. So you will be forced to backup your network too (have a separate network for storage with duplication on case of outage) and so on.
I would not recommend to go this way. Keep configuration as simple as possible.
One node - one local connected HDD.

2 Likes

To me, the recommendation of one single hard drive per node seems contradictory to the requirement of not losing any data. But then I may be used to thinking about different kinds of recommendations and requirements so this sounds weird to me.

Still, shared storage (iSCSI or Ceph) would be nice, but I do not use them, at least not right now. One server with drives in RAIDz2 seems to be enough for me and I probably could just move the drives to some spare server if the server failed (as long as I didn’t need to get to it in 5 hours from vacation etc).

It would be really nice if it was possible to back up the node data, but I guess it would make the satellite more complicated.

1 Like

I do have a iscsi SAN (drobo B800i) here that has two dedicated 1 Gig Ports. I also got 2 Seperate networks and in a few month i will own an be unning two ESXi hosts (clustered vCenter Server)

I know its overkill just for the node but i’d wanted to try HA with ESXi anyway :stuck_out_tongue: This is a project just for my amusement and education

Backing up a VM isn’t a real problem. Veeam or any decent backup programm can perform continious backups (1 Minute appart?) and even virtualy boot the VM incase of a failure.

I remeber that bitcoin had a testnet where you could hook your miners to in order to set everything up and test before going to the main blockchain. Is there something similar for storj?

I’ll start with a single drive and work my way up to the ideal sertup that fits me :slight_smile:

Does storj care about passthrough (Smart data) or can the drive be a vmdk? Does it need to be a real harddrive or can it be a virtual disk?

You can use a virtual disks. Just make sure do not lose data.

Keep in mind - any network connected storage will have a high latency compared to local connected drive, so your node will have a low successful rate for uploads and downloads (compared to local connected drive).

OK i’ll keep that in mind :slight_smile:

I do not know how many files you can lose and not be disqualified, but restoring any backup will mean that you lose some files, unless the node was completely idle since the last backup.

1 Like

I’ve have decided to use RAID for my node when it comes time to expand. I prefer to have a long lasting node plus if a drive dies, the node can keep working as I replace the failed HDD. This would come into effect when my node becomes full. Easier to manage, setup, and expandable. I can expand to multiple chassis of HDDs if needed. The data will be consolidate all under a single virtual folder/drive on the machine. I think using half the Capacity for redundancy is insurance on my node. I prefer a high up time. I will also always have a single IP address, IPs are treated as if it’s a single node even if there are multiple, I rather have the data in a single storage location. I recently installed another NIC Card to hopefully increase capacity but it also added load balancing and redundancy on the NIC adapters. So if one of those fail, the other takes over. There is only one thing now that I don’t have a backup on is a UPS for the machine and network gear. At some point I will get those things.

What is the true cost of this insurance policy? If you divide your storage in half for redundancy (RAID1/RAID10) then keep in mind that you’re losing half of your income potential. If that potential is more than the cost of restarting a node from scratch then you’re actually losing money by adding your own redundancy.

This is why the official advice is to run one node per HDD. Yes, if a hard drive dies you lose the escrow and you have to start that node over from scratch. However, if you have many HDDs, in the long run you will make more money running a node per HDD instead of wasting half of the space on redundancy that the network already provides.

It depends how often your disks fail and how big they are. Large disks with more frequent failures will make more money using RAID. Smaller disks with less frequent failures will make more money running a separate node on each disk.

3 Likes

I manually clone my nodes storage folder to a backup drive every once in a while with rsync. My node is full so I don’t have to worry about the clone not including recent uploads because a full node does not receive uploads.

Because the storj software is still in beta and I don’t have a UPS on my power supply, I don’t have full confidence in everything at the moment so a backup makes me feel a bit safer.

Recent Issues off the top of my head that I find concerning either on my node or other peoples nodes:
Out of space errors due to free space calculation discrepancies.
Databases with wrong schemas
Logging context canceled for transfers that may have actually completed.
Windows update service that is not running but probably should be.

I am aware that some (hopefully all) of these issues(some of which are rare or minor) are being worked on by the devs and I am looking forward to future software updates.

1 Like

But your backup hard disk could earn you more money if used as storagenode…

1 Like

True, when they iron out more of the issues I may open up more drive space for uploads.

Is it possible to expand a disk and update that node?

Let’s assume I have a node with 1 TB of storage that is running. The HDD is a vmdk and I’ll change that to a 2 TB volume by expanding the vmdk by another TB. What happens to my node?

Will it automatically use the newly added space?

Also the Drobo B800i has currently 6x 2 TB drives which gives me 1 Disk parity and a virtual Volume of 1 MB to 16 TBDrobo, takes care of the hard drive space. It’ll warn me if I need to add a drive/ replace a drive and it’ll automatically expand the array with that drive.

Let assume I’ll give the note 1 TB (assign an iscsi volume of said size to the vm).

I’ll now expand this iscsi Volume to a capacity of 2 T

What happens to my node?

As for Backup… I Have several Drobo FS with 5x 1TB sitti g here collecting dust…

Nothing happens until you stop and remove the container and start it again with the adjusted values in your docker command.

In layman’s therms that means if I change the volume I’ll start from scratch?

If I setup a node with Ubuntu, can I cave 2 Harddives? One small HDD for the Linux operating system and a second HDD for the node and data? (2 vmks: 1x 50 GB System + 1X 1TB Data)

Or do I need to have system and Data within 1 Drive
?

Yes, you can have 1 drive for OS and one drive for data.

No, not starting from scratch. Your basically just turning your node off and then back on with your new increased storage option in your docker start command. In other words you have to restart the software for the settings change to take effect, but you do need to remove the container to start it up again with the new settings. This does not remove customer data you are storing.
Here’s how I do it on my raspberry pi.
step 1: stop the node.
docker stop -t 300 storagenode
step 2: remove the container:
docker rm storagenode
step 3: run the docker command with your updated settings. For example on linux it looks like:
docker run -d --restart unless-stopped -p 28967:28967
-p 127.0.0.1:14002:14002
-e WALLET=“0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
-e EMAIL="user@example.com"
-e ADDRESS=“domain.ddns.net:28967”
-e BANDWIDTH=“20TB”
-e STORAGE=“2TB”
–mount type=bind,source=“”,destination=/app/identity
–mount type=bind,source=“”,destination=/app/config
–name storagenode storjlabs/storagenode:beta

example taken from Storage Node - Storj Docs