Which specific files cannot be placed on SMB?

Hi, which specific files cannot be placed on a remote file system like SMB?

Databases not suport transactions, over smb

Which files are databases, then?

most files in core folder you mensioned in config, if windows it will be in hdd root folder, there files like order.db …

Transactions work over SMB but there are some issues opening/locking the DB files themselves over SMB. Problems occur during update migrations usually. At least in my experience, YMMV. Not supported at all by Storj though.

I would not even try putting anything over smb. it’s not only risky, it is slow. You will probably lose most upload/download races.

So if I understand correctly, it’s the database files that cause the trouble over a network share? If that’s the case then theoretically you could keep the database files on local storage and symlink the folders that hold all the data to a network share. Has anyone tried it this way? I may try that some time this week unless someone says it’s already been tried without any success. I would really like to move the data onto a NAS which is easily expandable as data use grows.

windows nodes also easily expandible. i have 5-6 gui nodes on each windows pc.
also latensy over network will kill all speed. also you can moove your node directly to nas, most NAS support docker

Hello @MattJE96011,
Welcome to the forum!

Please, do not use symlinks to sqlite databases:

Especially via network

I’m running FreeNAS 11.3 which uses jails not docker, and unfortunately I cannot seem to get a VM to work properly. Hoping we will get FreeNAS jail support soon. I did get it installed in a jail but outside of docker I’m not familiar with how to actually start a node properly and can’t seem to find much info past starting a test network.

1 Like

I didn’t mean symlink to the database files, I meant keep the database files on local storage to avoid any sort of database accessibility / latency issues and only symlink the “blobs”, “temp” and “trash” folders to a network share. That way you have quick local access to database files and only the actual data is stored over network share. Based on the response about the database files being the issue with using a network share I figure this method might work. I know it still wouldn’t be the ideal way of doing it, but until I can figure out how to run the node on the FreeNAS itself, it could be a good alternative for the time being.

it is open sorce project, you can try, but do it with fresh node, not your main node. it will be very unpleasant to loose good node.

Well I do always keep a “stunt double” node running for such an occasion. I kinda gave up on the network share idea after realizing it doesn’t seem to work well until I saw this post, so now I’m curious. I’ll give it a shot and see what happens.

big disadvantage that SMB on linux is emulated, and work super slow. I have QNAP on work and it worked very slow when you copy lot of files, on local GB network. I was need to make backup from it, and it takes about 24 or more howers to copy 300 gb, so it is super slow. If you use iSCSI will be beter.

I’m using linux with mounted NFS and didn’t have any transfer issues. Copied the whole data folder over at GB speed so the only thing I could see being an issue is latency, however I’m thinking maybe it’s the latency accessing the database files that causes the failures and maybe not so much accessing the actual data that’s being uploaded.

latensy is the most problem, you can test, you need lot of read/write/delete operatios.

i think there is some test, benchmark software with you can test before.

Found this which offers a little info into windows vs linux when it comes to NFS.

there is compared windows nfs and linux nfs, but you need compare local disk with network disk, so you can make your own benchmark, also if you have windows node, and you can make additional node over natwork connection, and make succesrate for boath of them.

“Emulated” doesn’t really mean anything in this context. Both Windows and Linux implement SMB in software; they are compatible implementations of the same protocol.

You can say that one is faster than the other. You can’t really say that one is emulated and the other isn’t any more than you could say that IIS emulates HTTP and nginx doesn’t. It’s nonsensical.

Please, just read this: https://forum.storj.io/tag/nfs