ndas - DEPRECATED¶
- Package: master/make/pkgs/ndas/
- Steward: -
NDAS (Network Direct Attached Storage) is Ximeta's
patented technology which enables all digital storage devices (HDD, ODD,
Memory, Tape Drives) direct connection into standard Ethernet networks.
All users or systems on the network can directly control, use and share
those devices.
More info about NDAS on Linux can be found via:
http://ndas4linux.iocellnetworks.com/
I'm using NDAS currenlty to play movies up to 720p.
Creating a Feetz Image with NDAS¶
Note NDAS is now supported for little endian (e.g. 7170, 7270) and
big endian (e.g. 7390) thanks to
ER13.
The changes are introduced in Changeset r11390 to
Changeset r11392, Changeset r11434, and
Changeset r11464.
Follow the directions from the Wiki
After the following step you can configure the packages you want to have
included in your image.
Make sure the following is selected:
Recommended optional additional packages:
or(/and)
NFS Server (no ntfs support, but a faster)
with optionally some additional patches for ext3 or/and ReiserFS (see
Patches ---→ ... in menuconfig)
Setup in Freetz¶
There is currently (Freetz-trunk Changeset r11464) no
web-interface available for NDAS.
You can configure NDAS via console (e.g. via ssh or telnet access), but
you can also use a script in rc.custom to get all configured for NDAS to
work at startup.
Manual configure via console¶
Details can be found in the following two threads
http://www.ip-phone-forum.de/showthread.php?t=241882
and
http://www.ip-phone-forum.de/showthread.php?t=149182
First create the needed character and block-devices using the mknod
command.
You can create block-devices for multiple drives and multiple
partitions. Below example for one drive with one partition.
For additional partitions you can create the devices nodes with
/dev/ndab 60
You can verify the creation of the devices with the following well known
command
The block-devices will start with a 'b', character-devices start
will a 'c'.
Next the kernel moduls needs to be loaded.
insmod /lib/modules/`uname -r`/kernel/fs/ndas/ndas_sal.ko
insmod /lib/modules/`uname -r`/kernel/fs/ndas/ndas_core.ko ndas_dev=lan
insmod /lib/modules/`uname -r`/kernel/fs/ndas/ndas_block.ko
The option ndas_dev=lan enables the module only for Eth and WiFi, and
not for Wan interfaces.
If you have your internal Ethernet switch configured as router (see
here
for more background info in German), you will connect and access the
NDAS device only via one of the routed Ethernet ports, and you
can/should use ndas_dev=eth0
Be aware that the protocol used by the NDAS device is not routed, so
only within the broadcast domain you can access the NDAS device.
To verify the three modules are loaded properly you can use the
following command:
Now the NDAS driver 'NDAS Administration Tool' should be started. This
is done with:
Following is to register the netdisk with the ID and key, that should be
found on the NDAS device.
The ID is the 'rrrrr-rrrrr-rrrrr-rrrrr' part which is 20 characters
long, and is always needed. The key is the 'wwwww' part which is 5
characters long and is optional to allow write access.
If the disk is connected to the LAN network, and powered on the disk
should become visible at this point.
Verify the status via the proc filesystem /proc with the following
commands.
To see the disk details and the status.
Shows the number of slots.
The NetDisks can be enabled with one of the following three modes: For
read access use the following
For read/write access the following can be used:
For shared write access use:
Also a mountpoint is needed that can be created with:
As last step, mounting the block-device under the mountpoint just
created. The mount command depends on the formatting of the drive. So
far I had only success with an NTFS formatted drive.
Mount an NTFS formatted drive:
A FAT formatted drive should be mounted with:
But I wasn't able to mount my FAT32 formatted drive, also tried -t
vfat.
Script at startup¶
You can use the script in file rc.custom, which can be edited via the
web-interface.
#! /bin/sh
# Create the character file to send the commands
test ! -c /dev/ndas && mknod -m 644 /dev/ndas c 60 0
M=0
# Let's create the block device files to access the hard disk.
# Just for 3 hard disk, each with 3 partitions, but you can increase if you want.
for s in a b c;
do
test ! -b /dev/nd${s} && mknod -m 644 /dev/nd${s} b 60 $M
for t in 1 2 3;
do
M=$(($M + 1))
test ! -b /dev/nd${s}${t} && mknod -m 644 /dev/nd${s}${t} b 60 $M
done
M=$(($M + 16 - $t))
done
# Now load the system abstraced layer implementation for NDAS technology
insmod /lib/modules/`uname -r`/kernel/fs/ndas/ndas_sal.ko > /dev/null 2>&1
if [ ! $? ] ; then
echo " Module ndas_sal failed to load";
exit 1;
fi
# Load the NDAS core functions, the proprietary driver.
insmod /lib/modules/`uname -r`/kernel/fs/ndas/ndas_core.ko ndas_dev=lan > /dev/null 2>&1
if [ ! $? ] ; then
echo " Module ndas_core failed to load"
exit 1;
fi
# Load the block device implementation for NDAS
insmod /lib/modules/`uname -r`/kernel/fs/ndas/ndas_block.ko > /dev/null 2>&1
if [ ! $? ] ; then
echo " Module ndas_block failed to load"
exit 1;
fi
# Start the service
/usr/bin/ndasadmin start > /dev/null 2>&1
if [ ! $? ]; then
echo " ndasadmin start failed"
exit 1;
fi
# Register the device
/usr/bin/ndasadmin register rrrrr-rrrrr-rrrrr-rrrrr-wwwww --name ndas-01 > /dev/null 2>&1
sleep 5
# Enable connection with first NDAS blockdevice in exclusive-write mode
/usr/bin/ndasadmin enable -s 1 -o s
sleep 5
mkdir -p /var/media/ndas/usb /var/media/ndas/ntfs /var/media/ndas/fat /var/media/ndas/ext2
sleep 5
# mount ntfs NDAS disk, /dev/nda1 in this case, in read write mode
ntfs-3g -o rw /dev/nda1 /var/media/ndas/ntfs
# mount ext2 NDAS disk, /dev/nda2 in this case
mount /dev/nda2 /var/media/ndas/ext2
# Restart Samba with NetDisk mounted
/etc/init.d/rc.samba restart
# Restart NFS server with NetDisk mounted
/etc/init.d/rc.nfsd restart
Troubleshooting¶
Here a list of troubleshooting commands.
-
ls -la /dev/nd*
The output should give one character device /dev/ndas, per disk one
block device starting with /dev/nda for the first disk, and for each
partition another block device. -
lsmod
The output should show the 3 modules loaded, which are
ndas_sal, ndas_core, ndas_block. -
cat /proc/ndas/devs
The output should give the chosen NDASName, the ID, an indication
if the key is used for write access, serialnumber of the NetDisk,
NDAS version which is 1, the status of the NetDisk, and the slot
number that is assigned to the NetDisk. -
cat /proc/ndas/devices/ndas-01/slots
The output should give the assigned slots number, which is 1 in
my case. -
cat /proc/partitions
The output should show a NDAS partition for each NetDisk, and one
for each partition on that NetDisk (so at least two). -
ls -la /var/media/ndas
The output should show the mountpoint, and if the NetDisk is mounted
the content of the NetDisk. -
mount
The output should show one line for each partition mounted. It will
show the device node, the mountpoint, the filesystem type and the
options used (e.g. read/write (rw) or read only (ro)) -
cat /etc/debug
Behaves like a tail -f of a regular file where debug messages are
shown to standard output.
Troubleclearing¶
Some hints that could be helpful.
-
Unmount the NetDrive partition with
umount /dev/nda<partition-number>
If the umount fails verify if applications like Samba are stopped. -
Disable the NetDisk with
ndasadmin disable -s 1 -
Stop the NDAS Driver with
ndasadmin stop
Be aware that after stopping the driver you also have to re-register
the NetDrive. -
If the enable command indicates the NetDrive is in use by another
entity, and you know it isn't, power off the NetDrive and try
again. -
After powering off the NetDisk I had to do the following to get it
working again:- Stop Samba or NFS (e.g. /etc/init.d/rc.samba stop, or
/etc/init.d/rc.nfsd stop) - Unmount the NetDisk (e.g. umount /dev/nda1)
- Disable the NDAS NetDisk (e.g. ndasadmin disable -s 1)
- Enable the NDAS NetDisk (e.g. ndasadmin enable -s 1 -o s)
- Mount the NetDisk again (e.g. ntfs-3g -o rw /dev/nda1
/var/media/ndas/ntfs) - Start Samba or NFS again (e.g. /etc/init.d/rc.samba start, or
/etc/init.d/rc.nfsd start)
- Stop Samba or NFS (e.g. /etc/init.d/rc.samba stop, or
Usages¶
I used to have Ndas toghether with Samba on my 7270v3, to play movies
from the ntfs formated NetDrive, via a Win7 pc over HDMI to my TV.
This is working well for movies upto 720p, 1080p (e.g. upto 8GB). I also
tried a 1080p of about 25GB, but that didn't work out.
Via monitoring using Net-SNMP I found that it is the
CPU resources on the 7270v3, which is the limiting factor.
Currently I'm using Ndas with NFS on my 7390, with ext3 formatted
NetDrive, via a Win7 pc over HDMI to my TV.
I found it possible to play a movie of about 25GB with 1080p, only the
very high detailed fragments where causing issues.
It is still the CPU resources on the 7390 causing a bottleneck.