Well, after 2+ years of running my 6TB storagenode, the colocation of the sqlite files and the blob storage has finally killed my node. I attempted to come up with a workaround, but it isn’t possible w/o a code change.
My “issue” was identified some time ago in this GitHub ticket but hasn’t gotten any love. Being able to separate the slower blob storage from the more time sensitive sqlite DB files is why the moderators and the documentation are always saying that you should use local storage only. Well, if storj is really a “rent your unused storage” kinda project, my excess storage is on (usually) fast attached storage.
I’ve added my notes there and subscribed to updates hoping it’ll get some love so I can return to the storagenode family. I believe the fix is quite easy so any upvotes on the issue would be appreciated.
Until then, best of luck folks!
The last access time for the revocations.db was 2 days ago during the last reboot of my node. You don’t need to worry about that one. It won’t impact IO. It’s also not an SQLite database. I don’t think it’s sensitive to the issues the other db’s have either. It’s also non-vital.
I am already using the separate db location on 2 nodes and it works like a charm. One of them would definitely not be able to work if I didn’t have the option to store db’s elsewhere.
ok moved all the DB files onto the fast primary disk (a directory I’m mounting to /app/config/dbs in the docker container. Indentity is in usual place. Everything else on the /app/config mount (slower disk) including the config.yaml.
It is important the second one is an absolute path – the relative path puts it under storage which is what needs to be avoided (slow disk).
Checking lsof for open file descriptors paints an OK picture. I do see files showing up in the blob storage directory. I’ll run it like this for a while and let you know.
I did, but if you’re not having problems don’t do this. It’s easy to mess up the procedure and even if you do it right, you’ve just introduced another point of failure for your node. So only do this if your setup relies on it.
The only reason I’m using it is because I have that node running on an old drobo unit which is notoriously slow, usb 2 and ntfs on Linux. A perfect storm of horribleness. Pretty sure that wouldn’t have worked without this fix. If that’s not your situation, don’t bother with this.