DSM-G600, DNS-3xx and NSA-220 Hack Forum

Unfortunately no one can be told what fun_plug is - you have to see it for yourself.

You are not logged in.

Announcement

#1 2009-08-01 18:44:10

sbalousek
Member
From: Irvine, California
Registered: 2009-08-01
Posts: 5

Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Hi,

I've had my DNS-323 Rev. B1 running the DLink 1.06 firmware and the UNFSD user-mode NFS daemon without any trouble.  Recently, I started using VMware ESXi and discovered that the NFS client in ESXi does not work with UNFSD.  It sounded like the solution was to use ffp_reloaded package to reload a kernel with NFS compiled in, but I could not get it to work.

I know that unlike the firmware from DLink, the firmware from Conceptronic has the NFS module enabled in the kernel.  Based on fecent posts in the DLink forums, it sounds like NFS support will not be added to the soon-to-be-released 1.08 firmware from DLink.

To make a long story short, I downloaded the latest firmware from Conceptronix and changed the "Custom ID" byte in the firmware header to make it look like DLink firmware.  I was then able to use the DLink web interface to upload the Conceptronic firmware into the unit.  After rebooting, I disabled the UNFSD package and enabled the kernel mode NFS server.  It was very easy.

My ESXi machine now uses the DNS-323 NFS server without problems.  As a bonus, the kernel-mode NFS server performs better than the user-mode server.

Is this something that's been done before?  Is anyone interested in more information?

Thanks,
- Steve


- Steve
- DNS-323, 2x WD 1TB Green

Offline

 

#2 2009-08-01 21:45:19

oxygen
Member
Registered: 2008-03-01
Posts: 320
Website

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Sounds nice. But why didnt you just compile the nfsd module from the gpl kit?

Offline

 

#3 2009-08-02 02:35:24

mig
Member
From: Seattle, WA
Registered: 2006-12-21
Posts: 532

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

sbalousek wrote:

Is anyone interested in more information?

If you don't mind, would you post the detail to this techinque.
I would like to know how to do this.


DNS-323 • 2x Seagate Barracuda ES 7200.10 ST3250620NS 250GB SATAII (3.0Gb/s) 7200RPM 16MB • RAID1 • FW1.03 • ext2 
Fonz's v0.3 fun_plug http://www.inreto.de/dns323/fun-plug

Offline

 

#4 2009-08-02 22:23:37

sbalousek
Member
From: Irvine, California
Registered: 2009-08-01
Posts: 5

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Thanks, Oxygen, but I do not have a build environment set up, and the documentation for anything I've found related to kernel mods/enhancements on the DNS-323 is pretty sketchy.  "Just compile" is more complicated than you're implying.


I found documentation regarding the header format here, at http://theshed.hezmatt.org/dns323-firmware-tools/, and used the tools at the URL, http://hg.leschinsky.in.ua/makeFirmware/, to decode the current DLink and Conceptronix firmware images.

The important difference between the two images is in the Custom ID field.  For CH3SNAS, the firmware has a Customer ID of 2:

$ python showfirmware.py Firmware/CH3SNAS_FW_UPD_v1.05b5.bin
Kernel offset: 64
Kernel length: 1456056
Ramdisk offset: 1456120
Ramdisk length: 6450696
Defaults offset: 7906816
Defaults length: 7320
Kernel checksum: 2780057677
Ramsdisk checksum: 616315818
Defaults checksum: 823496182
Magic number: U�FrodoIIU�
Product id: 7
Custom id: 2
Model_id: 1
Sub id: 1
New version: 4
Reserved:
Next offset: 0

DLink firmware has a Custom ID of 1.  Since the CH3SNAS and DNS-323 Rev B1 units are the same hardware, the firmware should be interchangeable.

I tried simply uploading the CH3SNAS firmware using the DLink web interface, but received an error message.  No surprise there.  So, taking a closer look at the firrmware header yielded:

$ xxd Firmware/CH3SNAS_FW_UPD_v1.05b5.bin | head -4
0000000: 4000 0000 b837 1600 f837 1600 086e 6200  @....7...7...nb.
0000010: 00a6 7800 981c 0000 4d50 b4a5 aa3b bc24  ..x.....MP...;.$
0000020: f68d 1531 55aa 4672 6f64 6f49 4900 55aa  ...1U.FrodoII.U.
0000030: 0702 0101 0400 0000 0000 0000 0000 0000  ................

Note the hex sequence '0702 0101' at offset x0030.  Those values correspond to the Product ID, Custom ID, Model ID and Sub ID fields.  I used a hex editor to change the sequence to '0701 0101'.  The modified image uploaded correctly.

After rebooting, the Conceptronix firmware came up and I was able to enable the kernel-based NFS server via ffp.  Except for the BitTorrent client, which I rarely use, the unit operates exactly the same as it did before.

- Steve


- Steve
- DNS-323, 2x WD 1TB Green

Offline

 

#5 2009-08-03 02:15:58

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Many thanks for the write up of this information. It is much appreciated !!

Offline

 

#6 2009-08-03 02:26:26

skydreamer
Member
From: At the Atlantic Coast
Registered: 2007-01-06
Posts: 232

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Great info.

Is there any significant difference in data transfer speed between the unfsd and kernel mode nfsd?

Offline

 

#7 2009-08-03 02:37:35

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

That was one question I had also (going to test it later on today as I have 2 323, going to upgrade one then test them both to compare).

I also wanted to know if you had to clear all of your settings, or if they came up w/o any problems ? Also, what DLink FW version did you "upgrade" from on your 323 ?

Thanks  smile

Offline

 

#8 2009-08-03 02:55:41

sbalousek
Member
From: Irvine, California
Registered: 2009-08-01
Posts: 5

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

I have not done any real performance tests comparing UNFSD to the kernel-mode NFSD, sorry.  By definition though, the kernel-mode server should run faster.  How much is a really good question, and it probably depends heavily on the workload.

All of my settings, including user accounts and file shares, came across with no problem.  The only thing that is missing is the DLink BitTorrent client, which I rarely used anyway.  I also had to make some minor changes to /etc/exports.  I was using soft directory links to organize all my NFS shares in one spot, but the kernel NFS server seemed to have trouble using them.  So, I had to make changes like these in /etc/exports:

    /ffp/nfs/Music  -> /mnt/HD_a2/Music
    /ffp/nfs/Downloads -> /mnt/HD_b2/Downloads

The original DLink firmware I was using was 1.06, and I replaced that with the current Conceptronix firmware, 1.05b5.  I assume that this same technique can be used to go back to the DLink firmware, but I did not try it.

Also, be sure that your unit is Rev B1, since the older A1 DNS-323 revision is not the same as the CH3SNAS.

- Steve


- Steve
- DNS-323, 2x WD 1TB Green

Offline

 

#9 2009-08-03 03:05:21

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

All settings came over just fine. I need to double check my exports, thanks for the heads up. Going to do my speed tests right now and I will post the results. Thanks very very much for this !!!

Offline

 

#10 2009-08-03 03:10:46

skydreamer
Member
From: At the Atlantic Coast
Registered: 2007-01-06
Posts: 232

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Hi Steve,

Certainly the nfsd enabled kernel should move files faster.

Would you mind copying some large files and let us know the speed?

Thanks.

Offline

 

#11 2009-08-03 03:20:31

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

ok, I can't get anything from my 2nd 323 (still using unfsd) to connect via NFS to the one I upgraded.

EDIT : I had to explicity define each mount in the exports, whereas before I could define the top level directory I wanted to share and then mount the subdirs as needed. Updating the exports to define each one is a small price to pay smile. Speed test results hopefully to follow soon.

Offline

 

#12 2009-08-03 03:24:32

sbalousek
Member
From: Irvine, California
Registered: 2009-08-01
Posts: 5

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Thanks for the feedback, Sparkss.  I am definitely interested in some objective data on the difference in transfer speeds.  "It feels faster" doesn't really cut it smile

- Steve


- Steve
- DNS-323, 2x WD 1TB Green

Offline

 

#13 2009-08-03 04:15:51

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

You aren't going to like my test results so far. Side by side w/ a DLink the new FW is slower

Dlink 1.05 FW + unfsd    11 MBs
CH3SNA 1.05b5 FW + nfsd  8.2 MBs

Both are DNS 323 B1s
Both connected to the same Procurve switch using Cat6 cables.
Speed tests done from a media player using NFS (has built in speed test option).

At first I thought that the upgrade NAS had jumbo frames enabled or some other network configuration item that was causing problems, but so far I have not found any setting out of place.

I will do some more testing, then will revert the FW and test again. But as it stands, unless I can figure out why it is so much slower, I am not about to upgrade my other DNS  sad.

I also will try using unfsd on the upgraded FW to see if it is a dif between nfs daemons or if it is the FW itself.

I also noticed that the kernel space nfsd doesn't support exporting file systems w/ spaces in their name. I got a segmentation fault and had to reboot and change my exports file.

Offline

 

#14 2009-08-03 05:53:37

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

unfsd was marginally faster than nfsd on the ch3snas FW (8.5 vs 8.25). I am going to downgrade the system to the DLink FW to see if that has any effect.

Offline

 

#15 2009-08-03 07:18:28

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

ok, first off I am a moron. The link I tried to verify speed with to the upgraded DNS was SMB, not NFS (which would explain alot). I am going to start all over again tomorrow and get some speed benchmarks on the nfsd vs unfsd. Sorry for the headaches and confusion.

Offline

 

#16 2009-08-03 15:38:28

sbalousek
Member
From: Irvine, California
Registered: 2009-08-01
Posts: 5

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Hey, Sparkss.  No worries at all, so don't be too hard on yourself.

What are you using for a benchmark?  Something off the net or homegrown?


- Steve
- DNS-323, 2x WD 1TB Green

Offline

 

#17 2009-08-03 17:38:31

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

I have an HDI Dune Prime media player. One function is to select a file then do a read test on that file. It tests throuput. So I have been selecting the same 2 files for my tests. The Dune is on the same switch as the DNS(es) and has the same cable hookups (running GBit network). On the Prim you set up Network Share Links, and it supports SMB and NFS. The main profile I use to connect to the DNS is NFS, but I had some SMB profiles for other mounts (the ones that didn't need the streaming performance, plus SMB is easier to set up a profile for). I didn't realize that the profile I was testing the upgraded DNS with was an SMB one until I went into the properties. I have already setup a new NFS profile and tested it on the orig DLink FW (1.05) and unfsd and it achieved 14 Mbit/s. We will see what we get with the kernel nfsd later on this morning. smile.

EDIT : I select a large (4 GB) file for the read test and let it run for 30 - 45 seconds to get fully "up to speed", since it usually takes between 5 and 20 seconds to ramp up to "full" speed. I will be checking to see if nfsd ramps up any faster, in addition to overall throughput rates.

Last edited by Sparkss (2009-08-03 17:41:20)

Offline

 

#18 2009-08-03 18:59:22

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

ok, test results time. Still not going to make alot of people happy, I don't think.

The results between nfsd and unfsd were pretty much a draw. I saw neglible differences between the two when streaming the same files to measure throughput. Both clocked in around 13 Mb/s. IIRC the main advantage for kernel mode nfsd is that it uses less resources, so if you run alot of background processes then your results could be different. We had leaned out our NAS to squeeze as much out of it as possible for media streaming via NFS. If I were to test from multiple locations (reading throughput to 2 separate places at the same time) I suspect I would see a difference between user and kernel mode NFS, but for single streaming an minimal background processes I don't see any improvement. YMMV  smile

Offline

 

#19 2009-08-03 19:51:52

fonz
Member / Developer
From: Berlin
Registered: 2007-02-06
Posts: 1716
Website

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Sparkss wrote:

The results between nfsd and unfsd were pretty much a draw.

Even if performance is about the same, kernel-nfs has better functionality. There seem to be a few things that cannot be done reliably in a user-space server. For examples, see http://dns323.kood.org/forum/viewtopic.php?id=3917 and http://dns323.kood.org/forum/viewtopic. … 6057#p6057 or http://dns323.kood.org/forum/viewtopic. … 592#p27592

Offline

 

#20 2009-08-04 03:28:58

Sparkss
Member
Registered: 2008-05-09
Posts: 44

Re: Kernel Mode NFSD for DNS-323 - Using CH3SNAS Firmware

Thanks for the info and links Fonz. I am probably going to leave my own DNS w/ the kernel NFS running, but don't plan to upgrade my other one just yet. After over a year of use I haven't come across anything that it can't do within my normal daily usage. I was just looking to eek a bit more throughput out of it for those higher bit rate BD images smile. I am definitely going to keep the information that sbalousek provided and the FW that I have already edited, all for future use smile. Many thanks to the thread starter and as always, thanks to you Fonz for fun plug smile.

Offline

 

Board footer

Powered by PunBB
© Copyright 2002–2010 PunBB