Diskové pole NSS4000


Diskové pole NSS4000

Dostalo se mi ruky diskové pole NSS4000 od firmy Linksys. Po pokusu o provedeni upgradu firmwaru, který měl vyřešit problém s připojením k AD ve Windows serveru 2008, blikaly pouze led diody.
Protože jsem sám měl před několika lety problém s diskovým polem NSS6000 této firmy, chtěl jsem se na to podívat podrobněji. Toto není návod, uvádím tady takové stručné poznámky.
HW – deska má označení BTI ML-1 a moc toho o ní na webu nenajdete.Procesor PMC-Sierra RM7035C, PM8172 system controller, NEC UPD720101 USB 2.0 controller,
SafeXcel 1741 security co-processor, IT8907E USB flash controller. Více na www.glaver.org.
HW nss4000
Důležité jsou konektory J29 pro připojení RS-TTL a J34 pro jumper, který umožní nabootování jako root.
Metoda, kterou uvádějí tvůrci pro obnovu firmwaru diskového pole v dokumentu USB Stick Recovery Instructions.pdf se mi zdála divná. Ten, kdo prováděl upgrade firmware na tomto diskovém poli, se prý o to také pokoušel. Zasouváním a vysouváním a obětovným zasouváním různých flash disků chtěl obnovit firmware, ale bez výsledku. Takový postup obnovy firmware, kdy čekám na blikání ledky a pak mám 10s na vytažení flash disku jsem ještě neviděl.
Po připojení přes J29, pin 2 - RXD, pin 3 – TXD, 4 – GND je terminál putty nastaven na 115200,8,no parity,1,no control.
konektor pro RS232-TTL

Po zpuštění pole se dostávám do stavu blikajících diod a restartů.
Konzola - připojeni

Sám jsem vyzkoušel popisovanou metodu bootování z flash disku a zjistil jsem, že firmware, který v zařízení byl, nějaké bootování z jiného disku neřešil.

scsi4 : SCSI emulation for USB Mass Storage devices

Vendor: Generic Model: STORAGE DEVICE Rev: 9407

Type: Direct-Access ANSI SCSI revision: 00

scsiglue: Trying to match USB boot device params:

Parent device number: [1]

Parent device port: [2]

Device bus number: [1]

Device state: [7]

Device speed: [3]

scsiglue: This USB device is not boot device.

BOOT firmware pole je PMON2000. V souboru Recovery bootloader pmon-PM74101-B024-recovery.zip je pmon-PM74101-B024-recovery.elf což je PMON2000 3.1.22-B024 (PM74101-usbfix).
Zkoušel jsem tento PMON zavést a bootovat z něho, ale také bez výsledku. Žádná obnova firmware nenastala.
Tak jsem pokračoval.

Configuration [PM74101,EL,NET,SCSI]

Version: PMON2000 3.1.22-B024 (PM74101) #0: Wed Sep 26 11:13:30 PDT 2007.

Supported loaders [srec, elf, bin]

Supported filesystems [net, fat, disk, tty, ram]

This software may be redistributed under the BSD copyright.

Copyright 2005, PMC-Sierra, Inc.

CPU RM7000 @ 601.28 MHz / Bus @ 100.21 MHz

Memory size 128 MB.

Primary Instruction cache size 16KB (32 line, 4 way)

Primary Data cache size 16KB (32 line, 4 way)

Secondary cache size 256KB



Autoboot command: "boot -n -x -w30 /dev/sd0@0x7cf00 root=/dev/scsibd4"

Press <Enter> to execute now or any other key to abort.

Stisknu nějakou klávesu a protože mám jumper na J34, mohu zadat

PMON> boot -n -x /dev/sd0@0x100 root=/dev/scsibd2 hwrev=3 single

a tím se dostávám do jednouživatelského režimu jako root.

Pár poznámek:
-w30 – je to jen čekání,
@0x100 je offset flash disku sd0, je buď tento nebo @0x7cf00. Je to USERFLASH_BASE v PMON. Přesný popis proč to tak je jsem nenašel.

Dostanu se na konzolu
-sh-3.00#
Teď musím zjistit, v jakém stavu se diskové pole nachází. Adresář /factorydefaults má obsahovat defaultní nastavení. Abych ho mohl použít, musím mít přístupný adresář /linuxrwfs pro zápis a mohu spustit tar.
To se mi nepovedlo. Zkusil jsem spustit skript rcS, ten sice generoval hlášky No such file or directory, ale pak se mi podařilo připojit adresář linuxrwfs pro zápis.
Skript rcS obsahuje např. inicializaci ovladače mtdblock, který emuluje hard disk na flash paměti

# I need mtdblock devices anyhow
echo "Creating dev entries for mtdblock devices..."
major=31
minor="0 1 2 3 4 5 6 7 8 9"
for i in $minor ; do
/bin/mknod /dev/mtdblock${i} b $major $i
done

echo "Creating dev entries for mtd devices..."
major=90
minor="0 2 4 6 8 10 12 14 16 18"
cnt=0


for i in $minor ; do
/bin/mknod /dev/mtd${cnt} c $major $i
/bin/chmod 660 /dev/mtd${cnt}
cnt=`expr $cnt + 1`
done

# clean it up
unset major minor cnt

if [ "x`cat /proc/cmdline | grep "root=/dev/mtdblock"`" != "x" ] ; then

# mount linuxrtconfig partitionion /etc
echo "Mounting linuxrtconfig on /linuxrwfs"
mount -n -t jffs2 /dev/mtdblock2 /linuxrwfs -o rw

elif [ "x`cat /proc/cmdline | grep "root=/dev/scsibd"`" != "x" ] ;
--------------------------------------------------------------------------------------------------
JFFS2 je Journaling Flash File System pro flash paměti
Ve skriptu je řešena i obnova firmware a nastavení, jenže neprobíhá tak, jaká asi byla představa
--------------------------------------------------------------------------------------------------
# If I started firmware upgrade, I must finish it first.
# That is why I have to run it as a first option.

# We must perform the rest of the firmware upgrade stuff
# before we use this partition.
if [ -e /linuxrwfs/update.d/confupdate/confupdate.sh ] ; then

echo "Updating system configuration settings... "
/bin/sh /linuxrwfs/update.d/confupdate/confupdate.sh target

if [ $? -ne 0 ] ; then
echo "Couldn't finish firmware upgrade but will try to boot up! "
else
. /usr/local/sbin/bailout-functions
echo "Removing stale data after the firmware update... "
rm -rRf /linuxrwfs/update.d/confupdate
rm -f $bailout_nas_session
rm -f $bailout_shutdown_wasdirty
/bin/touch /linuxrwfs/etc/.fwupgraded
/bin/sync
fi
fi

# Do I have to perform restore factory settings (all option)?
rfd_ind_root=/linuxrwfs
rfd_ind_local=update.d/restore/rfd.all
rfd_ind_gui=etc/.fdrestored_notify_gui
if [ -f ${rfd_ind_root}/${rfd_ind_local} ] ; then

echo "Restoring all to factory defaults... "

echo "Umount /linuxrwfs first... "
umount -n /linuxrwfs

echo "Erasing [$rwfs_dname]... "
[ -c /dev/zero ] || /bin/mknod /dev/zero c 1 5
[ -c /dev/null ] || /bin/mknod /dev/null c 1 3

# I'll take a chance here -- dd will return error code
# once the the device is fully erased ("no space on the device"
# thingy).
platform=`getptype_name`
if [ "$platform" = "$PMC_SYSTYPE_NSS2000ST1" -o \
"$platform" = "$PMC_SYSTYPE_NSS3000ST1" ] ; then
/usr/sbin/flash_eraseall /dev/$mtdchardev
else
dd if=/dev/zero of=$rwfs_dname bs=131072 >/dev/null 2>&1
fi

echo "Copying factory defaults to $rwfs_dname..."
if [ "x$rwfs" = "xjffs2" ] ; then
jffs2_file=linuxrtconfig.jffs2
if [ "$platform" = "$PMC_SYSTYPE_NSS2000ST1" -o \
"$platform" = "$PMC_SYSTYPE_NSS3000ST1" ] ; then
jffs2_file=linuxrtconfig-nor.jffs2
fi
/bin/cp -f /factorydefaults/$jffs2_file $rwfs_dname
elif [ "x$rwfs" = "xxfs" ] ; then
/sbin/mkfs.xfs -f -b size=512 $rwfs_dname
else
echo "Unknown $rwfs file system specified -- going to halt the system!"
/sbin/halt
fi

if [ $? -ne 0 ] ; then
echo "Couldn't finish factory defaults restore -- halting system... "
/sbin/halt
else
if [ "x$rwfs" = "xjffs2" ] ; then
echo "Mounting fresh ${mtddev} on /linuxrwfs... "
mount -n -t $rwfs /dev/${mtddev} /linuxrwfs -o rw,noatime,sync,dirsync,nodiratime
elif [ "x$rwfs" = "xxfs" ] ; then
echo "Mounting fresh copy of ${rwfs} file system on /linuxrwfs... "
mount -n -t $rwfs $rwfs_dname /linuxrwfs -o rw,noatime,sync,dirsync,nodiratime
/bin/tar -C /linuxrwfs -xzf /factorydefaults/factorydefaults.tar.gz
else
echo "Unknown $rwfs file system specified -- going to halt the system!"
/sbin/halt
fi

# indicate to the NAS application that
# factory defaults were restored
echo "Factory defaults restore done, sending indication to GUI... "
touch ${rfd_ind_root}/${rfd_ind_gui}
fi

/bin/sync
fi



Automatická obnova nenastala.
Musím ji provést sám.
-sh-3.00# /bin/tar -C / linuxrwfs -xzf / factorydefaults/ factorydefaults.tat.gz
Došlo k obnově do původního nastavení. Zjistil jsem, že je vhodné diskové pole ukončit skriptem rcK a pak restarovat. Po restartu se diskové pole rozběhlo.
Web rozhraní

Potvrzuje se mi, že samotný linux vždy nějak zprovozníte, problémem je velmi často webové rozhraní. To je tady postavené na přeložených souborech Perlu a www serveru Apache.
Zkusil jsem provést upgrade na poslední verzi. Na pc, ze kterého jsem upgrade prováděl jsou XP s NFS rozšířením. Přes webové rozhraní jsem zkusil provést upgrade. Ten je řízen skriptem download_firmware.pl.
download_firmware.pl
Konzola putty během aktualizace nic nevypíše. 
Upgrade proběhl.
Web rozhrani po upgradu
 
A tak, jak to už bývá, poslední firmware stejně moc dobře s Active directory WS2008 nespolupracuje.
Když jsem před lety uváděl do provozu pole NSS6000, myslel jsem si, že když je Linksys ve společnosti CISCO, tak to nebude problém. Pak jsem ovšem řešil spolupráci Active directory ve Windows 2003 a tímto polem a optimismus mě přešel. Samba a její implementace v tomto zařízení asi není zrovna to pravé. Musel jsem to tehdy vyřešit samostatnou skupinou a nastavit nějaké šílenosti abych to rozchodil. A přesto se někdy stávalo, že když uživatel uložil soubor, tak spolupracovník s ním nemohl pracovat. Musel diskovou jednotku odhlásit a znovu přihlásit.
Toto diskové pole mi připadá, že bylo vymarketingované do posledního centu.
Tolik mých pár postřehů.

Komentáře

Okomentovat

Populární příspěvky z tohoto blogu

Windows server 2012 – certifikační autorita

Reset switche SPS224G4