Which NAS server software to use with Mi WiFi Mini and 4TB USB3.0 HDD?

I want to make a NAS using the Mi WiFi Mini Router by attaching a 4TB 2.5 inch HDD using the USB3.0 Port on the Router.
I would like for it to be easily accessible on Windows and Android, (may or may not be web-based, if it is web-based, it is preferred, although if it is slow, it is not an option) and preferably also be able to stream music from the HDD on Android for multiple users without a deep computer background.
Which software should be good for this purpose?

I think luci-app-samba is the way to go for NAS. I use it personally for 500gb drive and it works on Windows and android just fine. You can use minidlna as well for streaming purposes.

2 Likes

Depending on your envisioned use case, your hardware specifications are marginal (and with a 4 TB disk, I kind of fear the worst). While mt7620 is quite decent in terms of NAT and routing acceleration, it's CPU performance is less than stellar (and you need that for USB transfers and file server usage) - and 16 MB flash won't be comfortable for samba4 either (sufficient, but very little headroom). Unless you're dead set on this particular hardware or don't care about seek times and/ or throughput, this won't be a particular pleasurable choice for the intended purpose - highend ARMv7/ ARMv8 or preferably x86_64 would be more likely to fit this use case.

Edit: Just to be clear, this is less an issue of 'can something like that be done' (even though it won't be a one-step solution either), but more a question of achieving satisfactory performance (CPU performance, USB throughput and RAM size), the requested level of 'convenience' (android isn't quite that good for dealing with plain file servers (SMB/ CIFS) or (http/ https/ ftp) directory listings, so you need a more sophisticated suite of services in addition, with corresponding android app support) and the possible longer term viability of the chosen hardware (flash size, RAM size); getting enough power for driving a mechanical disk from the USB port might not be without its challenges either.

2 Likes

I imagine that the need for Samba will likely be to copy the files to the HDD, so likely to happen from Windows. The rest will likely be streaming.

If power is an issue, you could use a Y shape cable to provide external power to the HDD, though, if the router has a USB 3.0 port then I would expect it to be enough.

Note that portable USB disks are not designed to be working 24 hours. So make sure to use the spin-down option to let the disk "rest" when not in use.

In my setup my USB 3.0 Seagate portable drive runs through USB 2.0 and it's basically running 24/7 unless I reboot the AP or the power is out.

I don't think spinning down the drive is an option for me because a 500mb partition is reserved for ExtRoot and router would be using the partition most of the time if not always. But in the OP's situation if the drive is solely being used for media purposes then spinning it down is a good idea.

Can you please post the R/W performance of your NAS configured with samba?

That wouldn't help you much. He is probably using a different router, a different HDD, and using USB 2.0 (which, by the way, you might end up be doing if you need 2.4 and it interfere with USB 3.0). And there is of course the Wi-Fi speed and distance.

The way to go would be to connect the HDD to the PC where you have the media you currently posses, so you copy the big amount of data directly, then you connect the HDD to the router where streaming and adding new media should be convenient over WiFi.

That's of course if you are going to use NTFS for the HDD (which Linux guys will not favour, but is more convenient for Windows users). If you use Ext4 then you will be limited to connecting the disk to a Linux device (or read-only on Windows with some third party utilities).

1 Like

I am currently serving HD movies, from a couple of USB 2.0 drivers connected to the router, over WiFi, to several players simultaneously, using SAMBA.

1 Like

I think that could be shortening the life span of your disk, but then again it's probably not a big deal for a 500 GB disk. If you have 2 USB ports then of course you could have put ExtRoot on a separate memory stick.

1 Like

I haven't really tested any R/W performance but the actual speeds on wifi are around 11mb/s on a 150mbps wifi. AFAIK USB 2.0 operates around 15-20mb/s on a drive on average but could go as far as 35mb/s. On the other hand USB 3.0 for my Seagate portable drive works around 100mb/s for both R/W.

My drive is connected to a Tplink TD-W8980 using USB 2.0 and I am using some patches that actually improve the wifi and ethernet performance 3 times more than normal OpenWrt firmware. With those I get 11mb/s on wifi and IMO you may only get around 1-3mb/s on Samba using your device.

As @Hegabo suggested it will basically depend on the hardware being used.

11 mb/s is really low which is equivalent to less than 1.5 MBps.

The reason I asked is because I wanted to configure my GoFLEX Home with Samba. But, such a low performance really won't do me any good.

I think you misunderstood my router's current performance. On 2.4ghz Wi-Fi which is around 150mbps throughput I get 100-110mbps throughput and it equates to 11mbytes/s which is a huge step up considering it's a low end device in terms of CPU and RAM.

On official OpenWrt firmware (without any patches) I only got around 3mbytes/s on 2.4ghz wifi. I am not sure about your device but if you were to stream your music and use internet at the same time then possibly 2-3 people would be able to do that maximum. In my situation I can probably go as far as 6-7 people streaming at the same time.

Edit: Comparing this with Ethernet performance you can see that if you have a 100mb LAN port then you’ll get max 10mbytes/s and if you have a gigabit LAN then you get around 80-90mbytes/s from LAN depending on your router.

If you are attaching a USB3 external HDD to your router's USB2 port, you should be able to get about 20/15 MBps R/W performance, respectively. At least, that is what I get on my Seagate Dockstar (running on an ARMbian OS) connected to a gigabit router when I attached a 32GB USB3 memory stick to one of its USB2 ports.

After some tweakings, my Seagate GoFLEX Home (running on an ARMbian OS) also connected to a gigabit router is now capable of delivering more than 60/35 MBps R/W performance, respectively. Before the tweaks, it was around 29/16 MBps R/W. I am sure others will have better results.

USB 2.0 specs is 480 Mbps--that's is 60 MBps, but you would actually get about half this speed due to protocol overhead.

Now that would be the limit for USB 2.0, but there are other factors such as the WiFi speed decrease over distance, or any drivers issue (and of course defragmentation and disk seek time ect.).

2 Likes

I doubt one can even maintain a constant 30 MBps read performance on a USB2 storage attached to a USB2 port. IIRC, I was only able to get no more than 12/8 MBps R/W performance with a USB2 memory stick on my Seagate Dockstar. However, using a USB3 memory stick, my Seagate Dockstar is now capable of giving me about 20/15 MBps R/W performance (far from 1/2 but about 1/3 of 60 MBps and still within the 480 Mbps range).

We are getting a bit off topic here, but anyway 30 MBps is realistic for USB 2.0 bus. It goes without saying that we are taking about sequential reading of large files (and that's usually when speed of external disks matters the most anyway). Small and fragmented files can be much slower. The fact that you got for USB 3.0 results that are not much better than USB 2.0, despite the huge difference in bus speed suggests that the bottle neck is somewhere else. That's unless the tested hardware or software is of low specs.