Monday, December 9, 2019

NETGEAR - Optimizing a NETGEAR ReadyNAS NV+ (v1)

NETGEAR ReadyNAS NV+ (v1)




Optimizing A NETGEAR ReadyNAS NV+ (v1)



I have had a NETGEAR ReadyNAS NV+ for several years.  I never really took a good look at it because it kinda just worked fine out of the box, and I'm more interested in the larger universe of things that aren't working rather than the small universe of things that are.

I bought the NETGEAR ReadyNAS NV+ (v1) second hand a long, long, long time ago, I think some time in 2009.  I upgraded it from 1Tb to 6Tb in 2011.  Its power supply fried out in 2012, so I had to replace it, which was a pretty tense experience.  

It traveled with me from Hong Kong to Canada in 2017.  It traveled back to Hong Kong with me in 2018, getting a bit bent and broken on the way (because it was beaten and abused as check-in luggage often is).  They bent the frame, cracked some plastic and broke the door hinge, but it still kept working.

Even today, my NETGEAR ReadyNAS NV+ (v1) is faithfully serving out files.  I really have nothing critical to say about it, except for the fact that I find its web interface is a bit sluggish.  Also, it mysteriously lost its ability to send emails or download updates a few years ago - which is something I always promised myself I'd look into, but never did because it still delivered files reliably.  Despite the fact that it is a little beat up and over 10 years old now, icontinues to do what I ask it to do...and I hate to throw away things that are still working and that have been reliable and faithful to me.

This is the curse of the maker , accumulating piles of stuff that is "old but still working fine" .  Unfortunately, because of our consumer-driven culture, a lot of people just turn their nose up at things that are middle-aged.  They're not new, they're not vintage...they're just uncool.  Personally, I think it is bizarre that people think this way, but I also take advantage of it to get my hands on lots of "uncool" but incredibly fun stuff!

In summary, my NETGEAR ReadyNAS NV+ (v1)

- Is a fine looking piece of kit.
- Has served me very well for over 10 years.
- Has earned a look, some TLC and a bit of a write-up


My NETGEAR ReadyNAS NV+ (v1)

Here's what my unit looks like, more or less:



Under the hood, my NETGEAR ReadyNAS NV+ (v1) has proven to be very interesting.  For starters, here are its technical specifications, straight from NETGEAR:



Here's some of my observations:


CPU:


Apparently, the NETGEAR ReadyNAS NV+ (v1) uses a SPARC processor

Yes!  As in a SPARC microprocessor from Sun Microsystems!  Wow!  This information is not only very interesting, it is a bit of a blast from the past!  

You see, I got my Computer Science degree on Sun equipment.  One of my fondest rescue stories was about SPHERE, a Sun 4/380 that I bought (broken) from my University for CAD72.00 and then brought back to life, and running a 2.x version of Berkely Software Distribution (BSD) Unix!



You can read more about that adventure here.

Let's find out some more about the processor in my NETGEAR ReadyNAS NV+ (v1):

ReadyNAS:/# cat /proc/cpuinfo
cpu             : Infrant Technologics, Inc. - neon version: 0
fpu             : Softfpu
ncpus probed    : 1
ncpus active    : 1
BogoMips        : 186.36
MMU             : version: 0
LP              : HW.FW version: 0.1
FPGA            : fpga000000-0 Configuration: 0
AHB arbitraion  : 7
CPU id          : 0
Switch          : 0
ASIC            : IT3107

Hmmm.  The SPARC processor is a Sun Microsystems technology?  

Who exactly is Infrant Technologies?



OK, very interesting...but what is an "Infrant Processor"?  

Well, I found that out in a very interesting article about NETGEAR's Network Attached Storage (NAS) fans and how they are being made larger to make the devices more quiet:  

"The original ReadyNAS Duo (as with my ReadyNAS NV and NV+) uses Infrant's SPARC-derived processor." (Dipert, 2013)

OK, an Infrant Processor is SPARC-derived, but Infrant Processor is in my NETGEAR ReadyNAS NV+ (v1)?

Well, an article about some Infrant Technologies gear provided that:  

"Both the NV and NV+ use Infrant's IT3107 Storage processor, have 256 MB of DDR RAM and 64 MB of onboard flash." (Higgins, 2007).

The next thing to get are some specifications for the Infrant IT3107 chip.  Luckily, a description of the Infrant IT310x chip family is provided in a press release from Infrant Technologies themselves:

Infrant Technologies(TM) today announced the highly integrated IT3107 and IT3102 system-on-chip architecture that will power the industry's next-generation of Network Attached Storage (NAS) and Media Server appliances. By integrating Gigabit Ethernet, multiple Serial ATA hard disk interfaces, and hardware-based RAID 0/1/5 redundancy into a single Network Storage Processor, more efficient network storage devices can be made available to broader markets including workgroups, offices, and home networks.

The Infrant IT3100 family of network storage processors are all 32-bit RISC CPU's. The IT3107 has a 4-channel Serial ATA interface and the IT3102 has a 2-channel Serial ATA interface. Both network storage processors include a Gigabit Ethernet MAC supporting jumbo packets, PCI host controller for expansion flexibility, and hardware RAID supporting RAID 0 striping, RAID 1 mirroring and RAID 5 striping with redundant parity. They also include a 64-bit DDR-SDRAM Interface, an encryption/decryption engine, diskless boot using NAND flash, TWSI interface and support for JTAG boundary scan.

-- Infrant Technologies, 2005

Finally, here's an IT3107 info-graphic from Infrant Technologies:



OK, that's probably enough general information about the CPU that's in the NETGEAR ReadyNAS NV+ (v1).


Memory:

Apparently, the NETGEAR ReadyNAS NV+ (v1) uses DDR PC2700 Memory

According to NETGEAR, the ReadyNAS NV+ (v1) shipped with 256Mb of RAM.  Hey, that's not a lot of RAM at the best of times, and Unix Operating Systems like to have as much RAM as possible.

I seem to remember that I prepared to upgrade the memory of this unit about 8 years ago, but I can't remember whether or not I carried the upgrade out.  

So, let's see how much memory is in the unit at the moment using the free command:

ReadyNAS:/# free
             total       used       free     shared    buffers     cached
Mem:        226352     170784      55568          0      34896     109392
-/+ buffers/cache:      26496     199856

Swap:       767904          0     767904

OK, free reports 256Mb of RAM.  Hmmm....

Another way to get a bit more information is to cat the /proc/meminfo file

ReadyNAS:/# cat /proc/meminfo
MemTotal:       226352 kB
MemFree:         55520 kB
Buffers:         34896 kB
Cached:         109392 kB
SwapCached:          0 kB
Active:         108880 kB
Inactive:        64976 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       226352 kB
LowFree:         55520 kB
SwapTotal:      767904 kB
SwapFree:       767904 kB
Dirty:               0 kB
Writeback:           0 kB
Mapped:          44576 kB
Slab:             7856 kB
CommitLimit:    903712 kB
Committed_AS:    71824 kB
PageTables:          0 kB
VmallocTotal:   131008 kB
VmallocUsed:      1248 kB

VmallocChunk:   129360 kB

Well, both ways of looking at the memory in the NETGEAR ReadyNAS NV+ (v1) confirms that the amount of RAM installed in my unit is indeed only 256Mb!  

Another interesting factoid is that this machine has never used its swapfile, meaning that the Operating System running on this unit has never needed to go beyond 256Mb, which is pretty incredible considering how small 256Mb realy is.  Alright, I thought that I'd upgraded it...but apparently I didn't.  Can it be expanded beyond 256Mb?

Yes it can, according to Biker (2006):



OK - so what type of RAM for the NETGEAR ReadyNAS NV+ (v1) need and how much would a single 1Gb stick of it cost?  

Well, according to the specifications from NETGEAR themselves, the ReadyNAS NV+ (v1) uses PC2700 / DDR333 SODIMM memory.  

How much does that type of memory cost?  

eBay can give us a ballpark idea:



So, it looks like 1Gb of memory for the NV+ will cost about HKD62.50, or UDS8.00, so that upgrade is a no-brainer.

Even though it may have no immediate effect on performance, the upgrade is a good idea because I plan to start installing and running software on the NV+ that it wasn't originally bundled with.


So, I went out and bought a stick of Kingston 1Gb PC2700 RAM for HKD50.00!



Here are the specifications of the memory:



OK, let's get that memory upgraded!

YouTube:  Upgrading A NETGEAR ReadyNAS NV+ (v1) To 1Gb RAM

Operating System:


Apparently, the NETGEAR ReadyNAS NV+ (v1) runs a variant Debian Linux

Debian is a really interesting flavor of the Linux operating system.  I have used it a bunch of different times in various applications.  The variant that is running on the NETGEAR ReadyNAS NV+ (v1) is from circa 2005, if the kernel version is anything to go by:

ReadyNAS:/# uname -a

Linux ReadyNAS 2.6.17.14ReadyNAS #1 Wed Jun 20 20:08:20 PDT 2012 padre unknown

This corresponds to version 3.1 of Debian (it's name is sarge) which I am quite familiar with, having played with it extensively while spending weeks trying to figure out how to boot Linux on a White iMac.


RAIDiator


The Debian variant on the NETGEAR ReadyNAS NV+ (v1) is called RAIDiator and you can get its version number in this way:

ReadyNAS:/etc# cat raidiator_version

RAIDiator!!version=4.01c1-p16,time=1495530915

So, this particular NV+ appears to be running version 4.01c-p16 of RAIDiator.  Cool.  This can also be confirmed using NETGEAR RAIDar, the GUI application that NETGEAR provides to discover and manage the NV+:




OK, let's connect to the Admin Page and see what we can see...


FIXING SOME OUTSTANDING ISSUES

One of the things that sparked this article was that some small inconveniences has cropped up with respect to the NETGEAR ReadyNAS NV+ (v1):

Hardware? - The NV+ web interface (RAIDar) was super slow
- The NV+ was unable to reliably deliver DLNA multimedia

These issues seemed to point to a capacity (hardware) problem.

Now, "capacity" in computer terms means one of four things:

CPU:  Not possible to upgrade from the IT3107 - so we have to live with what's there
RAM:  1Gb (now)  <- That's why I upgraded the RAM, it was the only thing left!
NET:  Unit ships with a Gigabit Ethernet interface, so likely not a problem
DSK:  6TB XRAID array only 50% full, so that's likely not a problem

NOTE:  When a Unix computer runs out of "working memory" (RAM), it pages the oldest memory blocks it can find to disk.  When it does this too much becase there's not enough RAM, it starts to "thrash", which means excessive paging - this can have a very negative affect on performance and bring a machine to its knees.


Anyways, the hardware upgrade options have been exhausted - it's time to explore some software fixes!


Software?

the NV+ had some other problems that needed attention.  One clue was that I was unable to set the gateway address of the NV+ in its GUI.  The option was blank, and greyed out:



It also had these other problems:

- The NV+ could not connect to NETGEAR to see if any updates were available

- The NV+ had stopped sending me updates and alerts via email


These issues seemed to point to a networking configuration (software) problem

Unable to fix these problems using the web interface, I figured I would log into the NV+ and take a look at its configuration files.  After some investigation (including figuring out how to ssh into the NETGEAR ReadyNAS NV+ (v1) I was able to log in using its default user and password values:

User:      root
Password:  netgear1

Once I was logged in, I was able to determine that it was indeed mis-configured.  

Fixing A Missing default Route

The NV+ was missing a default route in its routing table.  Here's what the routing table looked like:

ReadyNAS:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
ReadyNAS:/#

Without a default route, the NV+ would be unable to connect to the outside world, so I added a default route to the routing table using the route command:

ReadyNAS:/# route add default gw 192.168.0.1
ReadyNAS:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

OK, there's a default route now, let's test it by sending a ping to google.com:

ReadyNAS:/#ping google.com
ping: unknown host google.com

Nope!  

OK, let's send a ping to 8.8.8.8, the main Google DNS server (which is always available):


ReadyNAS:/# ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=18.8 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=13.3 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=29.2 ms

64 bytes from 8.8.8.8: icmp_seq=4 ttl=54 time=20.2 ms


--- 8.8.8.8 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 13.346/20.440/29.298/5.732 ms

ReadyNAS:/#

This behaviour means that routing is OK, but name resolution is not.

It seems like this has routing and name resolution issues

Permanently Fixing Routing Issues

Since issuing route add commands is only as effective as the next reboot because it manipulates a structure in memory, not on the disk.  My next challenge was to ensure that when/if the NETGEAR ReadyNAS NV+ (v1) was next rebooted, it was configured correctly so that its routing was correct in a permanent way, and it would work properly indefinitely.  


Fixing /etc/network


Routing in the NV+ is controlled by the /etc/network/interfaces file.  Ultimately, I made my /etc/network/interfaces file look like this, so the NV+ had a correct gateway value, and would be able to communicate with the outside world:


NOTE:  Don't worry about the "Do not modify!" message that appears at the top.  

Modify away!  I did!

ReadyNAS:/# cat /etc/network/interfaces
# This file is auto-generated.  Do not modify!
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 192.168.0.50
  netmask 255.255.255.0
  gateway 192.168.0.1



Permanently Fixing Name Resolution Issues

Name Resolution is how computers pander to humans by allowing us to give "friendly" names like dns.google.com to machines whose real addresses on the Internet are more like 8.8.8.8.  The main system used to do this is called DNS and it's basically a name-to-IP mapping database.  

Unfortunately, in the GUI interface for the DNS settings displayed the IP address of my gateway, and I was unable to fix that because the option was greyed out:



Fixing my /etc/resolv.conf

Name Resolution in the NV+ is controlled by the /etc/resolv.conf file.  To make things work, I made my /etc/resolv.conf  look like this, so the NV+ would use the Google DNS servers:

NOTE:  Don't worry about the "Do not modify!" message that appears at the top.  

Modify away!  I did!

ReadyNAS:/# cat /etc/resolv.conf
# This file is auto-generated.  Do not modify!

nameserver 8.8.8.8
nameserver 8.8.4.4

After that, Name Resolution and Routing on the NV+ worked correctly:

ReadyNAS:/# ping google.com
PING google.com (172.217.26.142) 56(84) bytes of data.
64 bytes from hkg12s21-in-f14.1e100.net (172.217.26.142): icmp_seq=1 ttl=54 time=20.6 ms
64 bytes from hkg12s21-in-f14.1e100.net (172.217.26.142): icmp_seq=2 ttl=54 time=12.4 ms
64 bytes from hkg12s21-in-f14.1e100.net (172.217.26.142): icmp_seq=3 ttl=54 time=23.4 ms
64 bytes from kul08s06-in-f14.1e100.net (172.217.26.142): icmp_seq=4 ttl=54 time=23.3 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms

rtt min/avg/max/mdev = 12.485/19.984/23.406/4.474 ms


Positive Signs:

Email

After fixing Routing and Name Resolution on the NETGEAR ReadyNAS NV+ (v1), I started to receive mail from the NV+:



Updates

I became capable of checking for updates:



So, I went ahead and performed an update!  After I had performed the update, I was notified by the NV+ by email that it had completed and the unit needed a reboot:



Applications

NETGEAR

With the machine fixed up I installed a couple of applications obtained from the addons section of the NETGEAR website.

3rd Party

I also checked out (but did not buy anything from) what looks to be an excellent 3rd Party NV+ Addons Website, and perused a collection of apps for all versions of the ReadyNAS.


Conclusion


All in all, fixing up my unit was a fun time.  I learned a few things and I am now much more familiar with my unit, which feels good.  I am also glad that I took the time to pay attention to my NETGEAR ReadyNAS NV+, optimize it and write about the experience.

Great Success!



REFERENCES:

https://www.edn.com/electronics-blogs/brians-brain/4407687/Beating-the-heat--A-NAS-s-CPU-requires-a-critical-mass-of-software-in-order-to-compete

http://www.thenetworkencyclopedia.com/entry/bsd-unix/


http://www.downloads.netgear.com/files/GDC/RND2110/Duov1_NV+v1_HW_en_06Dec11.pdf


https://www.trustedreviews.com/reviews/netgear-readynas-nv


https://www.crunchbase.com/organization/infrant-technologies


https://www.smallnetbuilder.com/nas/nas-reviews/29829-infrant-readynas-nv-and-1100-small-steps-forward


https://community.netgear.com/t5/New-ReadyNAS-Users-General/Memory-upgrade-of-a-ReadyNAS-NV/td-p/562920


https://en.wikipedia.org/wiki/Debian_version_history


https://serverfault.com/questions/181094/how-do-i-delete-a-route-from-linux-routing-table


https://www.businesswire.com/news/home/20050404005773/en/Infrant-Technologies-Introduces-IT3100-Network-Storage-Processor


http://natisbad.org/NAS/index.html


https://apps.readynas.com/pages/



No comments:

Post a Comment