Secrets of the Intel SS4400-E (aka SS4000-E)
We recently purchased an Intel SS4400-E network-sttached storage (NAS) unit
yes, that link points to an SS4000, but that seems to be the only way the product is listed; ours identifies itself as a 4400 and this as caused me no end of trouble in discovering any information about the unit) and put some 500GB SATA drives in it to create a nice terabyte-sized RAID-10 array.
One of the nice things about this particular device is that it supports USB drives as well; you can hang a USB-drive (like the Western Digital MyBook) and the unit will (allegedly) serve it up either via NFS or CIFS shares. The idea is now I can take this big ol' USB drive, and instead of attaching it directly to a machine, I can make it “network attached” and can use it to back up the various and sundry Windows machines in the office.
Well, except when it doesn’t.
The disk had been previously formatted as UFS2 for a FreeBSD server we have here in the office, but we discovered an interesting problem with FreeBSD 6.2 and USB devices and our particular server.
It turns out that for our server, and FBSD 6.2, the machine would not reboot cleanly with the USB drive attached — it would hang at the BTX loader. This might be a known problem, maybe (?) related to ACPI, and is hopefully going to be fixed in 7.0
Well, the NAS unit would NOT recognize the drive when it was plugged in. At all. Ever. So, I figured “maybe if I formatted it as NTFS, which is much more common, the machine would like it more better.”
It did not.
Then, I found this forum link here, that told me about a mysterious URL I could go to on the server to turn on an ssh server — the box runs a special Linux distribution under the hood. You simply browse to http://hostname/ssh_controlF.cgi, and voilà, you’ve got the ability to ssh into the machine:
[jbaltz@aaa ~]$ ssh kr -l root
root@xxx.yyy.zzz's password:
Welcome to_/_/_/ _/_/_/ _/_/_/ _/
_/ _/ _/ _/ _/_/_/_/ _/_/ _/ _/_/
_/ _/_/_/ _/_/ _/ _/ _/ _/_/
_/ _/ _/ _/ _/ _/ _/
_/_/_/ _/ _/_/_/ _/_/ _/_/ _/Powered by FalconStor Software, Inc.
Copyright 2001-2006 by FalconStor.
All Rights Reserved.
http://www.falconstor.com
#
WARNING
If you follow any instructions of mine beyond this point, or even if you don’t follow them, you might find yourself having destroyed your array, lost your data, your car might break down, your wife might leave, your dog might die, etc. etc. etc. Read all you want, but if you type in commands any of these commands, you do so at your own risk!
You have been warned.
This is good news! Linux, I understand. After logging on, I see what the machine thinks it should be doing when I plug in the USB drive:
VFS: Can't find ext3 filesystem on dev sdf1.
VFS: Can't find an ext2 filesystem on dev sdf1.
XFS: unknown mount option [gid].
FAT: bogus number of reserved sectors
VFS: Can't find a valid FAT filesystem on dev sdf1.
usb-storage: device scan complete
Hooray! I see what the problem is (although when I realized the machine ran Linux, the light went on right away): the machine only understands the old FAT-32 (native mounts of NTFS partitions on Linux is just now getting read/write support) and native Linux filesystems, like ext2, ext3 and xfs.
So....I put the drive back on the machine, and a view in the /var/log/messages file showed me that the machine thought the USB disk was found on /dev/sdf
XFS: unknown mount option [gid].
FAT: invalid media value (0xf3)
VFS: Can't find a valid FAT filesystem on dev sdf.
and all I needed to do now was create a new partition
# fdisk /dev/sdfThe number of cylinders for this disk is set to 60801.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)Command (m for help): p
Disk /dev/sdf: 255 heads, 63 sectors, 60801 cylinders
Units = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-60801, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801):
Using default value 60801Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
and then create a partition. I tried making an XFS partition first:
# mkfs.xfs -f /dev/sdf1
meta-data=/dev/sdf1 isize=256 agcount=16, agsize=7631000 blks
= sectsz=512
data = bsize=4096 blocks=122096000, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=32768, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
and mounted it on the known path for USB disks:
# mount /dev/sdf1 /nas/usbdisk1
# df -h
Filesystem Size Used Available Use% Mounted on
/dev/md0 248.7M 95.2M 140.6M 40% /
/dev/vbdi2 195.3M 152.0k 195.2M 0% /nas/NASDisk-00002
/dev/vbdi3 195.3M 260.0k 195.1M 0% /nas/NASDisk-00003
/dev/vbdi4 930.2G 183.6G 746.7G 20% /nas/NASDisk-00004
/dev/sdf1 465.6G 272.0k 465.6G 0% /nas/usbdisk1
Hey hey hey! Some small success here! (It is sobering to think that the disk space I have available here that I purchased for about USD 1,000 cost Omnipod about USD 2,000,000 in 2000.)
Can I access this now from my windows machine, which was the original idea? Well, kinda sorta. Not right away. I now go right to the smb.conf file, and edit the section on the usbdisk
[usbdisk1]
comment =
path = /nas/usbdisk1
max connections = 0
read only = no
browseable = yes
comment =
valid users = root,jbaltz,guest,
write list = jbaltz,
available = YES
nt acl support = no
(At this point, I’ve probably gone beyond the point of no return on the unit, but I need this to work.) I notice that the mount point itself needs to be writable by the unix group my windows user maps to:
# ls -dl /nas/usbdisk1
drwxr-xr-x 2 root root 8 Nov 27 22:46 /nas/usbdisk1
# chgrp nasgrp /nas/usbdisk1
# chmod g+w /nas/usbdisk1
Can I use it? Yes I can!
jbaltz@cesium /home/jbaltz
$ net use z: \\\\krypton\\usbdisk1
The command completed successfully.
(Three cheers for the cygwin bash shell.) And off I go:
Note that my one little 9 byte file appears to take up 1 megabyte on disk!
jbaltz@cesium /home/jbaltz
$ cd /cygdrive/zjbaltz@cesium /cygdrive/z
$ df -h .
Filesystem Size Used Avail Use% Mounted on
z: 466G 272K 466G 1% /cygdrive/zjbaltz@cesium /cygdrive/z
$ mkdir foojbaltz@cesium /cygdrive/z
$ cd foojbaltz@cesium /cygdrive/z/foo
$ cat > bar
hi therejbaltz@cesium /cygdrive/z/foo
$ ls -l
total 1.0M
-rw-r--r-- 1 jbaltz None 9 Nov 27 23:20 bar
However—mirabile dictu—I appear to be done! I still have a daunting task ahead of me: tightening up security somewhat. Yet, this problem seems to be now behind me.
For posterity, I should note that there is a wealth of interesting information and utilities in the /usr/local/ipstor directory tree.