Linksys WRT3200ACM - USB3 Enclosure Performance

FileHistory is a special case as it relies upon Volume Shadow Copy Service, so I'm not sure it won't care, or if ext4 can support that.

Also, windows clients can see the underlying FS. Explorer reports it.

technically... afaik... this is not correct... windows reports whats reported by samba... which, dependent on version may or may not 'translate' whatever calls between an smbclient and its local filesystem types...

1 Like

Not really, the connected OS only sees what is set in the samba config and the options are:
(From our template config, at the end)

## reported filesystem type (NTFS,Samba,FAT)
#fstype = FAT

The default in samba-4.x is NTFS, in samba-3.x and older was Samba which acts like a special network filesystem.

So technically you could have a FAT partition and set samba to NTFS!
The reported type relates to security (ACL) handling, locking behavior (type2 locks) and file attributes.

Samba can handle (if added as option) Shadow Copy Services via its own VFS module, which you can either add in the vfs objects luci field (shadow_copy2) or manually add globally or per share to the template file itself if you want to config anything that's not default.
https://www.samba.org/samba/docs/current/man-html/vfs_shadow_copy2.8.html

PS: That is the list of default VFS modules we ship with, if you want to read on those here:

vfs_fruit
vfs_shadow_copy2
vfs_recycle
vfs_fake_perms
vfs_readonly
vfs_cap
vfs_offline
vfs_crossrename
vfs_catia
vfs_streams_xattr
vfs_xattr_tdb
vfs_default_quota
vfs_btrfs
vfs_linux_xfs_sgid

on snapshots vfs_io_uring is enabled by default if the kernel supports it.

2 Likes

Thanks to you both for correcting me.

I still need to test if other underlying FS will behave correctly with FileHistory when set to report as NTFS, and if it gains me anything significant.

Test Drive: PNY64GB USB3


Test: Local + NTFS (No Compression)
CDM_PNY64__LOCAL_NTFS_NoCompression

Test: Local + NTFS (No Compression) - Explorer
CDM_PNY64__LOCAL_NTFS_NoCompression_Explorer

Test: Local + NTFS (Compression)
CDM_PNY64__LOCAL_NTFS_Compression

Test: Local + NTFS (Compression) - Explorer
CDM_PNY64__LOCAL_NTFS_Compression_Explorer


Test: USB3 + NTFS (No Compression)
CDM_PNY64__USB3_NTFS_NoCompression

Test: USB3 + NTFS (Compression)
CDM_PNY64GB_USB3_NTFS_Compression


Test: USB3 + EXT4 (Defaults)
CDM_PNY64GB_USB3_EXT4_Defaults

Test: USB3 + EXT4 (Defaults) - Explorer
CDM_PNY64GB_USB3_EXT4_Defaults_Explorer


Test: USB3 + BTRFS (Defaults)
CDM_PNY64GB_USB3_BTRFS_Defaults

Test: USB3 + BTRFS (Defaults) - Explorer
CDM_PNY64GB_USB3_BTRFS_Defaults_Explorer

Yeah samba (network) read/write speeds often depends heavily on the actual underlying USB/SATA physical hardware integration. As example on my WRT1200AC i got ~70MB/s via USB3 and 110MB/s via the ESATA port as network copy explorer speeds. Yet both ports should be wired to the same chip/lanes internally and should result in the same speeds, but they differ.

1 Like

Now you're making me doubt whether or not I've made a good decision in the platform I'm looking to buy to make my RAID enclosure to replace my current NAS-lite :rofl:. I hadn't even bothered with eSATA enclosures since it seems to have been very underdeveloped/represented, or was it simply something good that was overlooked?

USB3ASP Enclosure:

USB3+eSATA Enclosure:

More research to do, it seems...

Do you happen to know if ksmbd will work with cryptodev to help accelerate encrypt/decrypt of SMB traffic if we have cryptodev installed/working with the hardware engines on our WRT? I imagine that must help at least a little with throuhgput, or if not, CPU load at least.

Nope, since smb traffic is not encrypted only the negotiation is on smb3.

Its on a case by case basis, you have to try it and see what works better. So yeah having both options for a similar price might be advantageous.

1 Like

Btw here is my old answer on samba performance and what is possible if all works well.

1 Like

eSATA enclosures can be quite pricey ($60-100).

I suggest you look into an HP EliteDesk 800 G1 DM.
They can be frequently had for with an i5-4590t, 8GB RAM for $100-130.
They have a 2.5in SATA bay and a full size m.2 slot.
And 6 USB 3.0 ports!
Idle at under 15 watts.

The OptiPlex 9020 and EliteDesk 800 G1 also come in many other variants as well.
Very good price to performance imo.

Depends on your area, and these aren't the best of times. Just throwing it out there.

1 Like

Yeah, and I don't have any eSATA anything on-hand to test with. Not to mention, I've not seen an eSATA enclosure matched with USB3.1 ASP, so if the eSATA turns out to not be faster, I've kind of locked myself out of decent USB performance/features... Tricky, haha.

Thanks for that. So it looks like I'm getting pretty close with my WD-Red 1TB and my current enclosure... Hmm, alright. It certainly is plenty fast currently, so I guess that's good.

Thanks for the recommendation!

I have a very small apartment, so as close to an all-in-one as I can get is best (hence the WRT3200ACM as my router/file-server/print-server/media-server). The idea of a dedicated, more powerful server has certainly crossed my mind, but it isn't tenable for me. Smaller is the way it needs to go.

USB3.1 ASP

That is a good point.
Can you check if UASP is actually in-use?
$ lsusb -t
Might need to opkg install it first.

$ dmesg | grep -i -B3 uas

BOT will show as usb-storage.
UASP will show as uas.

1 Like

Oh, that's cool! Thanks for that!

Token2Shell showing output of lsusb -t:


Doesn't show UASP being active, but that seems right since my current enclosure does not claim to support UASP.


Token2Shell showing output of dmesg | grep -i -B3 uas:


I am unsure how to read/interpret this output.

Your output indeed shows it is using BOT instead of UASP.

If you want a (risky) project, you might be able to add it if there is a newer firmware available for your chip.
https://www.usbdev.ru/files/jmicron/

1 Like

I'll put these into my Token2Shell Macros so I can use them later when I get a new enclosure to test it.

I always want new, risky projects despite knowing better :rofl:

I don't think that applies to my current single-bay enclosure, but I think that site will be very useful for whatever the new enclosure ends up being, since most seem to use JMicron + ASMedia.

1 Like

Oh, this could apply to my current enclosure. From reading the VID/PID from the above output, it looks like I have an ASMedia 1051E chipset in my current enclosure:
USB\VID_174C&PID_55AA - ASM1051E SATA 6Gb/s bridge | Device Hunt

And this page has tools/firmware:
ASMedia Technology Inc – [USBDev.ru]

Did I decode that correctly?

I found the best way to determine the chip is by actually physically looking at it.
The ID values seem to be often reused and may not be accurate.

1 Like

Oh, fun. Here's to hoping it isn't scraped off, potted, or otherwise obfuscated...

Apparently, if that ID is correct, the ASM1051E has UASP blacklisted in the kernel due to broken/improper support/implementation, so I think this enclosure might be at it's highest level already (if the ID sniffed is correct).

1 Like

Thanks to all who have guided me thus far.

I've upgraded to 19.07.7 and have decided to try ksmbd, since I saw in the Release Notes that it got a major bump from what shipped alongside 19.07.6

In terms of that bump, wow... It was a good one! FileHistory is now working with ksmbd!
image

I'm a little worried about the unmet dependency regression, but if I understood the commit, it doesn't seem to actually be needed anymore.

Really excited for the upcoming 21.02.x releases on Kernel 5.10!

Edit:
Damn, OpenWRT reboots way faster with ksmbd versus the full samba4 stack.