OpenWrt Forum Archive

Topic: WRTSL54GS (WL-500g) versus WRT54G + NAS

The content of this topic has been archived on 5 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Can anyone comment on the pros / cons of using a WRT-based router with USB, such as the WRTSL54GS and the WL-500g line, versus a WRT54G and offloading the storage capability to a NAS device?

I currently have a WRTSL54GS and an external USB hard drive, but the RAID 1 functionality and affordability in something like the HP Media Vault or WD My Book World Edition has me interested in picking one up.

My main usage are:
file server (samba)
web server (lighttpd)
ctorrent w/ screen

I'd love to get mt-daapd / uPnP working as well, but I've given up on mt-daapd because I need Chinese characters in my ID3 tags to show up in my clients, and it looks like 0.2.4 in the repository doesn't support it, and the WRTSL54GS doesn't have the dependencies to install the nightly Firefly releases which apparently have more language support.  And I can't get gMediaServer and other uPnP servers to work at this time.  So I'm also thinking a NAS device that can share multimedia can offload that capability from the WRT to the NAS.

Thoughts?

(Last edited by mx-5 on 4 Jul 2007, 19:44)

My 2 cents: current NAS devices are in general going to be a lot faster then USB attached storage on WRT devices. A lot of them already bring lots of functionality similar to the OpenWRT media capabilities. Some already sport 1GB LAN interfaces. Most WRT with USB support do indeed support USB 2.0 nevertheless they don't even get close to using the full bandwidth.

I'm very happy with my RAID solution build around by WL-500Gp. I use two 160GB USB drives both setup as a mirror.

My router now acts as a File Server, Print Server (cups), Firewall, Monitor System and Hotspot and I still have resources left.

I also remounted /usr, /tmp and the router got a real nice performance boost working with the external disks instead of the slow flash.

Are you saying that I can expect a lot better performance if I remount /usr and /tmp to use my attached disks compared to FLASH / RAM ?

I have more or less the same setup as you (except for the mirroring - no backups needed here ;-) ) and everything works, except that SAMBA isnt the fastest in the world :-)

That is of course depending on the type of program I use, but use yes I experienced some performance boost. For example already with installing packages.

Arnaud, how did you setup mirroring on your Asus?  It's my understanding that the dm package is not quite ready for prime time.  Did you setup mirroring some other way (like an rsync cron job?)

I am very down on this combo lately.

The NAS functions in any of these routers are quite slow.

I can find even very basic low-power PC for free, load with Linux, run Samba and it's much faster for NAS.

Hi zimm0who0net,

I installed two USB harddisks and added mdadm as a package to set up a mirror. I got mdadm 1.12.0 working on Kamikaze 7.07. If you want I can send you the mdadm sources and package Makefile. You also have to run the kernel make to add md support to the kernel. It says somewhere in the OpenWRT docs how to run the kernel make. If you can't find it I can look it up for you.

If I'm forgetting something please let me know because it's some time ago that I've set it up.

vincentfox wrote:

I am very down on this combo lately.

The NAS functions in any of these routers are quite slow.

I can find even very basic low-power PC for free, load with Linux, run Samba and it's much faster for NAS.

True.  I recently stopped backing up my desktop to my Asus router because it was taking about 7 hours to run a full backup vs. 2 hours to a local USB drive and about 3 hours to a separate PC.  However, speed isn't everything.  Having a PC on all the time for just file serving can be co$tly in electricity.  99% of what I need network storage for won't really benefit from increased speed (e.g. I keep all my photographs and mp3s on the router.  The speed is fast enough so I wouldn't really notice any delay unless I need to move a whole lot of them at once).

Arnaud - thanks for the information.  I'd love to see your diff file for what you had to do to get mdadm to compile. (was it just the changed Makefile??)

I made no changes to the sources (1.12.0). I only created the Makefile at packages/utils/mdadm. It's then available when building the image packages. You also will have to add md support to your kernel.

BTW I use rsync to backup my home dir and that takes only a few minutes to rsync a couple of GB

The Makefile:

# 
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.

include $(TOPDIR)/rules.mk

PKG_NAME:=mdadm
PKG_VERSION:=1.12.0
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.kernel.org/pub/linux/utils/raid/mdadm/
PKG_MD5SUM:=4de899ddb1ede1d2cafd183794874ce1
PKG_CAT:=zcat

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

include $(INCLUDE_DIR)/package.mk

define Package/mdadm
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE:=Controls Linux md devices (software RAID arrays)
  DESCRIPTION:=\
    mdadm is used to create, manage, and monitor Linux MD (software RAID)\\\
    devices.  As such, it provides similar functionality to the raidtools\\\
    package.  However, mdadm is a single program, and it can perform\\\
    almost all functions without a configuration file, though a configuration\\\
    file can be used to help with some common tasks.
  URL:=http://neil.brown.name/blog/mdadm
endef

define Build/Configure
endef

define Build/Compile
    $(call Build/Compile/Default, \
        CFLAGS="$(EXTRA_CFLAGS)" \
        LDFLAGS="$(EXTRA_LDFLAGS)" \
    )
endef

define Package/mdadm/install
    $(INSTALL_DIR) $(1)/usr/sbin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/mdadm $(1)/usr/sbin
endef

$(eval $(call BuildPackage,mdadm))

You are taking about compiling a kernel with raid-support. How would I do that? I don't see any option for raid in "make menuconfig"?

Hi Buzzy,

By running the kernel config

This is what I quote from the manual:

"If you want, you can also modify the kernel config for the selected target system. simply run "make kernel_menuconfig" and the build system will unpack the kernel sources (if necessary), run menuconfig inside of the kernel tree, and then copy the kernel config to target/linux/<platform>/config so that it is preserved over "make clean" calls."

The discussion might have continued from here.