Replies: 10 comments
|
What nbd-client command did you use to connect the device? If the s3 provider is little flaky or that you have low throughput to it you probably want something higher as a timeout than what the docs recommend (say 600 or no timeout at all). Can you share dmesg output? That'd help confirm if it's timeout related. Most filesystems will hate any disconnection of the device. |
|
Your second issue with connection reset by peer is related to slatedb/slatedb#766 which should get fixed soon. It seems that hetzner specifically throws a lot of these. |
|
I was using the nbd-client command from the docs: I can easily increase the timeout... |
|
Indeed 60 secs seems low, zerofs retries internally and with back off and a bit of backpressure you'll definitely go past that. I'll amend the docs to recommend something higher. It might be worthwhile to try to contact hetzner's support about this, they have an almost strong product but this kind of stuff is a bummer, indeed. |
|
[maybe this should be moved to discussions?] Continuing my btrfs woes... :-) I switched to AWS (but it's still high latency). When creating the filesystem the initial flush after all the trimming and zeroing takes a very long time and nbd times out, but it does retry and eventually succeed. I was then able to mount the filesystem and write & read data. Eventually things failed while the filesystem was idle. Here's a successful autoflush followed by the first error. After that it's all errors. and sometime later: I'm not seeing anything in dmesg around that time (and I wouldn't expect since there is no filesystem/nbd activity). Do I gather correctly that after this error I have to tear the mount, nbd-client, and zerofs down and restart from scratch? |
|
@tve Are you using ZeroFS from aws itself? If not, what is your local network throughput to AWS like? Ultimately ZeroFS still has to push data there, "taking a long time" seems to mean you just don't have the network capacity to handle whatever you are requesting ZeroFS to do. |
|
Yes, it is a lowish bandwidth long distance link, and yes, I understand it will be slow. That seemed like a good way to stress test ZeroFS... The question really is whether the backpressure from the network works all the way through and whether the (inevitable) network errors are fully retried. The test I'm doing is cloning a 20GB btrfs subvolume (btrfs send | btrfs receive) and the link seems to run at ~30Mbps. So it's going to take a while, which is totally fine. So far btrfs is only mildly annoyed: |
Aside from the "reset by peer" stuff, this should work well (albeit slow) once this is fixed. If your use case allows for it, you'll probably have better luck with 9p as there's going to be less overhead. |
|
Something I'm observing is that the read bandwidth is very high, visually more than half the write bandwidth. So this is not going to work from a cost point of view (S3 egress costs). Oh well... |
I'd go Cloudflare r2 (which has free egress) if you want to keep your setup local, or have a very small vm at AWS that hosts ZeroFS if you want to keep using AWS S3. You can reduce S3 reads by increasing your local disk cache too. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I created a bucket in Hetzner's object storage and started zerofs with:
Launching zerofs went fine. I ran nbd-client and then mkfs.btrfs. It hung for ~4 minutes before spitting out an error:
zerofs did spit out 4 errors around that time (this is from one of them):
I unmounted the nbd device and restarted zerofs, this time it seems it has created the filesystem OK. I mounted the FS but at some point it failed:
Maybe I need to try all this with AWS S3 first...
Update:
All reactions