Zusätzlicher Storage für das Conceptronic CH3SNAS / D-Link DNS-323 über einen USB-Stick

Diese Anleitung bezieht sich auf fun_plug’s der Versionen 0.3 und 0.4

Vor einiger Zeit habe ich bereits über die Möglichkeit, über ein so genanntes „fun_plug“ das Conceptronic CH3SNAS (Baugleich mit dem D-Link DNS-323) zu erweitern, berichtet. Damals hatte ich einen Webserver über diese Möglichkeit hinzugefügt. Leider muss jedes Mal meine Festplatte anlaufen, wenn eigentlich nur eine Seite angefordert wird und ich nur schnell was ansehen möchte. Resultat ist eine schneller verschleißende Festplatte und eine lange Responsezeit (eben bis die Festplatte angelaufen ist). Ein anderes Problem ist der Lüfter, dessen Script gerne irgendwohin loggen würde. Leider gehen aber die Festplatten nicht aus, wenn der Lüfter läuft (von daher gibts dann wieder nicht viel zu protokollieren :P).
Ein Abhilfe für diese Probleme bietet das NAS jedoch von Haus aus. Dank eines USB-Ports auf der Rückseite, der eigentlich für einen Drucker gedacht ist, ist es leicht mit einem USB-Speicher erweiterbar. Natürlich liefert Conceptronic diese Möglichkeit nicht mit, jedoch dank des fun_plug ist auch dieses Problem leicht zu beheben.

Werbung


Nach der erfolgreichen Installation des fun_plug benötigt man Konsolenzugang zum CH3SNAS um die folgenden Schritte ausführen zu können. Der USB-Stick muss noch nicht eingesteckt werden. Ich rate zu einer Formatierung mit ext2 (dieser Schritt wird später direkt auf dem NAS gemacht), jedoch kann der Stick auch bei FAT(32) betrieben werden. Dabei ist dann jedoch die Rechtevergabe eingeschränkt.

Zunächst wird ein Kernel-Modul für USB-Speicher benötigt. Dieses kann man hier herunterladen. Anschließend wird es in das Hauptverzeichnis der ersten Festplatte gelegt (HD_a2) und nun entsprechend ins lib-Verzeichnis des fun_plug verschoben. Die Variablen werden durch das fun_plug gesetzt. Sollte das unten angegeben fehlschlagen, stimmt etwas mit dem fun_plug nicht:

mkdir $LIBDIR/usbstorage
mv /mnt/HD_a2/usb-storage.ko $LIBDIR/usbstorage/

Das Modul wird nun mittels

$SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko

geladen.
Für ext2 sollte nun der USB-Stick erstmal formatiert werden. Ich gehe davon aus, dass 2 Festplatten verbaut wurden (daher sdc für den USB-Stick). ACHTUNG: Wird die falsche Festplatte formatiert, werden Ihre Daten verloren sein! Bitte daher doppelt prüfen! Wurde nur eine verbaut oder mehrere USB-Sticks (über einen Hub) angesteckt worden sein, so muss der Laufwerksbuchstabe entsprechend angepasst werden (Eine Festplatte – Erster USB-Stick: /dev/sdb):

fdisk /dev/sdc

Mit der Eingabe von „p“ kann man sich alle Partitionen auf dem Stick anzeigen lassen. „d“ löscht Partitionen und „n“ legt neue an (Primary Partition in voller Größe: „n“ => „p“ => „1“ und zweimal dann Enter)
Nun muss das Dateisystem erzeugt werden, hier ist der Buchstabe der gleiche wie oben, die Zahl ist die Nummer der Partition:

mke2fs /dev/sdc1

Getestet werden kann das ganze nun mit einem Mount-Befehl:
[code]mkdir /mnt/HD_a2/usbstorage
mount /dev/sdc1 /mnt/HD_a2/usbstorage[/code]

Wie prüft man nun, ob das einbinden geklappt hat? Es gibt hier zwei Wege, beide Befehle müssen jedoch in der Kommandozeile ausgeführt werden:

  • cat /proc/partitions
  • mount

Der obenstehende Vorgang kann natürlich automatisiert werden. Der folgende Dateiinhalt (Download) muss als „01usbstorage.sh“ ins „start“-Verzeichnis des fun_plugs:

#!/bin/sh
$SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko
sleep 15
mount /dev/sdc1 /mnt/HD_a2/usbstorage

Da dort keine Schreibrechte bestehen, gilt hier der gleiche Vorgang wie oben:
Kopieren über den normalen Filemanagerzugriff (bei mir Samba) in das Hauptverzeichnis, anschließend per:

mv /mnt/HD_a2/01usbstorage.sh $FUNPLUGDIR/start/
chmod +x $FUNPLUGDIR/start/01usbstorage.sh

verschoben und aktiviert.
Zum Test wird das NAS neu gestartet. Nach dem Neustart kann mit den obenstehenden Befehlen geprüft werden, ob der USB-Speicher ordnungsgemäß unter /mnt/HD_a2/usbstorage eingebunden ist.
Wenn ja, dann kann man nun den Webserver-Root (Achtung, ich würde PHP mitverlagern) oder das Logverzeichnis der Lüftersteuerung auf den USB-stick auslagern.

Kleiner Hinweis: Wenn es nicht funktioniert, dann folgenden Befehl ausführen:
Show ▼

Der Erfolg des ganzen ist nun, dass die auf dem USB-Stick abgelegten Daten direkt von einem Flashspeicher gelesen werden und somit ein Einschalten der Festplatten aus deren Ruhemodus unnötig wird. So kann man Beispielsweise einen kleinen Webserver problemlos vom Stick laufen lassen.

Beste Grüße
Uli

Veröffentlicht von

Uli

IT-Nerd und Admin

42 Gedanken zu „Zusätzlicher Storage für das Conceptronic CH3SNAS / D-Link DNS-323 über einen USB-Stick“

  1. Könnte man auch prinzipiell alle Cache-Auslagerungen von MySQL und PHP auf den Stick schreiben lassen?
    Ansonsten ist noch zu überlegen, ob ein USB-Stick überhaupt für solche Zwecke geeignet ist. Momentan ist eine Festplatte doch mit Schreibzugriffen noch wesentlich langlebiger als ein USB-Stick.

  2. PHP beschreibt keine Caches, sofern kein eAccelerator installiert ist.

    MySQL muss ich erstmal zum laufen bekommen. Dann werde ich allerdings den Cache abschalten (dieser bringt ja dann nix, denn es kommt so oder so vom USB-Stick).

    Der USB-Stick ist für meinen Anwendungsfall wesentlich sinnvoller. Die meisten Zugriffe sind Lesezugriffe, die vom Webserver gemacht werden. Von daher nicht sehr problematisch. Der Stick war sowieso übrig 😛
    Eine Festplatte ist hier fehl am Platz, da diese ja wieder eine begrenzte Laufzeit und eine gewisse Lautstärke mitbringt. Da kann ich gleich die interne Platte (Seagate 500GB Serverfestplatte (für 24/7 Betrieb)) nutzen. 😛

  3. Klar, die Cachingsache bringt nur Gewinn, wenn die Anwendungen sich außerhalb des Sticks befinden.
    Ich hätte nur irgendwie Angst um meine Daten, wenn ich alles auf einem Stick ablege, der mir jederzeit abrauchen kann. Dann müsste man vielleicht noch ein daily backup vom Stick auf die Platte schieben.
    Ansonsten sweete Sache.

  4. Hallo,

    interessante Idee. Hab noch eine Frage für (Nichtlinuxer):

    Zitat:

    Wenn ja, dann kann…oder das Logverzeichnis der Lüftersteuerung auf den USB-stick auslagern.

    Wie? Gibt es eine Möglichkeit noch andere Programme auf den USB-Stick zu laden (z.B Twonky)?

    Danke

  5. Hallo Ruepel,
    ja man kann alle Programme theoretisch auslagern. Ich würde dann aber das gesamte fun_plug auf den USB-Stick auslagern, da sonst möglicherweise benötigte Bibliotheken nicht gefunden werden können.

    Achtung ich habe die Anweisungen hier für fonz fun_plug V0.4 geschrieben!

    Dies ist recht einfach möglich, man kopiert einfach das Verzeichnis „fun_plug.d“ sowie die Datei „fun_plug“ auf den USB-Stick. Nun müssen die Pfade in der Datei „fun_plug“ angepasst werden:

    export FUNPLUGDIR=${VOL1}/fun_plug.d

    In meinem Falle wäre das beispielsweise:

    export FUNPLUGDIR=${VOL1}/usbstorage/fun_plug.d

    Bevor nun aber das fun_plug funktionieren kann, muss der USB-Stick wie oben gemountet werden. Daher ist folgende Modifikation notwendig:

    Finde in Datei „fun_plug“:

    umask 022

    Füge danach ein:

    $SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko
    sleep 15
    mount /dev/sdc1 /mnt/HD_a2/usbstorage

    Habs noch nicht getestet, aber so dürfte es meines Wissen nach gehen.

  6. Hallo Uli,

    hab am Wochenende mal rumprobiert. Leider ist es mir nicht gelungen. Sowohl Telnet (und nach erneuter Neuinstallation von fun_plug) als auch der USB-Stick gingen nicht. Habe folgendes gemacht: 1. wie oben beschrieben den Stick installiert. Das hat schon mal geklappt und er wurde auch während einem Neustart des NAS eingebunden. 2. Habe ich den Ordner fun_plug.d und die Datei fun_plug in den Ordner usbstorage verschoben (ich gehe mal davon aus, dass das so richtig ist) 3. habe ich die Datei fun_plug wie oben geändert und das NAS neu gestartet.

    Wenn ich bisher was falsch gemacht habe werden meine nun folgenden Gedanken sicherlich falsch sein.

    Ich gehe davon aus, dass das NAS den USB-Stick nicht einbinden kann, weil es ihn nicht findet, da sich ja der Befehl zum einbinden auf dem USB-Stick befindet.

  7. Die Datei fun_plug muss weiterhin auf der Festplatte des NAS liegen bleiben. NUR der Ordner fun_plug.d muss auf den USB-Stick (ja in usrstorage) verschoben werden.
    Ich werde mein NAS die Tage auch mal umstellen, daher kann ich dir dann vielleicht mehr sagen. Allerdings gehe ich dann auf Firmware 1.3 und evtl Fun_plug 0.5 (beim letzteren bin ich mir noch nicht sicher…).

  8. Die Idee ist mir auch gerade gekommen (mit der Datei fun_plug). Geht aber auch nicht, da z.B. die usb-storage.ko ja auf dem USB-Stick liegt, der wiederum nicht eingebunden ist. Die 01usbstorage.sh wird ja (denke ich) nicht gebraucht (obwohl ich sie nicht aus dem start-Ordner gelöscht habe) da die Befehle ja in die fun_plug eingetragen wurden.

    Wie sagt ein bekannter Talkmaster immer so schön: Ein Teufelskreis…

  9. Ach denkfehler meinerseits, die usbstorage.ko musst du dann auch noch auf der Festplatte haben… die 01usbstorage.sh wird natürlich nicht gebraucht, da hast du recht…(kannst du mittels chmod -x 01usbstorage.sh einfach aus dem Startvorgang nehmen)

    Sorry, da hab ich nicht ganz mitgedacht…

    Allerdings wird „insmod“ benötigt. Es wäre einen Versuch wert, sich einen start-Ordner zu basteln in dem insmod & die usbstorage.ko enthalten sind. (Zu finden in /mnt/HD_a2/fun_plug.d/bin/insmod)
    Im Script muss dann der Pfad zur usbstorage.ko und insmod angepasst werden.

    Wenn die Einbindung dann immer noch nicht funktioniert, hat insmod möglicherweise noch Abhängigkeiten: Man könnte/müsste daher vielleicht ein zweites Fun_plug auf der Festplatte liegen lassen…

  10. Hallo,

    hab gestern ein bisschen rumgefummelt, leider ohne Erfolg.

    Die FW 1.3. hab ich schon drauf, fun-plug 5 wäre sicherlich auch interessant. Dafür gibt’s ca. 70 Pakete leider ohne brauchbare Beschreibung. Hat jemand ’ne Ahnung was die können?
    Kann man den VLC-Mediaplayer auf die Box bekommen und einen MF-Server (mit dem kann mann verschiedene Videoformate über VLC auf meinen Sat-Reciever streamen)?

  11. hi,

    $SBINDIR/insmod $LIBDIR/usbstorage/usb-storage.ko
    bei diesem befehl bekomm ich die meldung „insmod nicht gefunden“ oder so ähnlich.

    muss das noch installiert werden?

    Mit freundlichen Grüßen
    thomas

  12. Hoi,
    die Anleitung ist für das ffp0.5, ich habs aber zuhause laufen, ich schreibe die Tage bestimmt darüber. Heute abend seh ichs mal nach und informiere dich einfach nochmal!
    Beste Grüße
    Uli

  13. Hey Uli,

    hast die Anleitung für das 0.5 fun_plug zufällig erstellt?

    Ich habe den Stick erfolgreich in „..bla../Volume_1/x“ gemountet.
    mount zeigt das als „rw“ gemountet an.

    Dennoch kann ich über meinen anderen rechner nicht direkt auf den stick schreiben. (Per netzlaufwerk, dort zugriff auch mit rw) :-/. Any ideas?

    Grüße Taucha

    1. Hallo,
      bin jetzt zwar weiter, bekommen jetzt aber folgende Fehlermeldung:
      mount: mounting /dev/sdb1 on /mnt/HD_a2/usbstorage failed: Device or resource busy
      Kann mir jemand helfen???

  14. Hi,
    könntest du dir einen Grund vorstellen, warum oben:

    Diese Anleitung bezieht sich auf fun_plug’s der Versionen 0.3 und 0.4

    Steht?

    Um es kurz zu machen: Schau dir mal in diesem Beitrag das Script setup.sh an. Vielleicht hilft dir das weiter.

    1. Sorry, ich glaube das war ein Mißverständnis! Ich wollte nicht das fun_plug auf einen USB-Stick installieren, sondern ich wollte nur einen USB-Stick an das NAS anschließen. Daher habe ich mich an dieses Thema gehangen. Das mit der Überschrift war mir schon klar. Habe es jetzt auch selbst hinbekommen (nach mehreren Stunden) habe jetzt nur noch das Problem, dass ich nicht ueber Samba auf den Stick zugreifen kann(keine Rechte, obwohl ich über das Webinterface eine Freigabe mit ALL Vollzugriff eingerichtet habe (grübel).

  15. Hallo

    würde gern eine zusätzliche USB HDD (1TB) mounten.
    wäre der weg in etwa so:

    fdisk /dev/sdd (2 HDD + 1 USB Stick existieren)
    mkdir /mnt/HD_a2/usbhdd1
    mount /dev/sdd1 /mnt/HD_a2/usbhdd1

    ist das alles oder muß noch mehr getan werden?

    würde gern NFTS als Partition behalten um die platte zur not komplikationlos am windoof pc betreiben zu können, die können ja ext3 nicht lesen

    1. jup, das klappt in etwa so, aber du musst noch das ntfs-kernel-modul dazu laden, sonst wird das nicht klappen.

      Ich rate dir allerdings eher explore2fs oder ext2fsd auf dem Windows-Rechner zu installieren und die Platte in ext2/3 zu formatieren.

      Viele Grüße
      Uli

      1. Hi Uli

        Ich werd noch wahnsinnig…
        Anfangs funzte die per ext am CH3SNAS so wie es sollte auch das einbinden klappte.
        Nun ist es aber so, daß ich keinerlei Daten/Verzeichnisse auf der USBHDD mehr sehe, lediglich den Speicherverbrauch. Per fdisk -l hat diese Platte auf einmal id 7 HPFS/NTFS Format.
        Das kann aber nicht ganz stimmen unter WinXP Trotz ext2 Treiber auch kein Zugriff. Erst mit Ubuntu sehe ich: Ext3 Format HDD UND auch sehe ich hier die entsprechenden Daten.
        Was kann ich nun noch tun außer zu kopieren und neu zu formatieren? Irgendwie schwant mir, daß dies nochmal vorkommen kann.

        Danke

  16. Hi

    Ich habe nicht viel Ahnung von Linux.
    Ich habe aber dank der tollen Anleitungen alles gut auf die Box installiert bekommen (fun_plug 0.5, Repository, Nano, Midnight Commander, Bittorrent)
    Jetzt möchte ich noch eine USB Festplatte mounten. Die Platte ist ext auf ihr sind Daten die ich mit rsync auf die Box Kopieren möchte.
    Wenn sich diese Anleitung auf fun_plug 0.3, 0.4 bezieht wie geht es mit v0.5?

    danke

  17. Ein Tipp für alle, die versuchen unter funplug 0.5 den USB-Storage (DATACASK RAID1-Gehäuse für 45 EUR) einzubinden: Das aktuelle Plugin kann das ohne weiteres zutun…

    Ich hab stundenlang im Web nach einer Lösung gesucht. Bis ich das EXT2-formatierte USB-Laufwerk (mit Ubuntu gemacht) einfach angestöpselt habe => Neustart => Es erscheint ein neues Verzeichnis im Root mit USBSTORAGE 🙂

  18. Hi,
    erstmal ein dickes Dankeschön für Deine Arbeit & Doku zum DNS-323!!
    Mein Problem: ich habe das modul usb-storage.ko von Dir (Link auf dieser Seite) im Einsatz mit fonz_funplug 0.5. Dabei fiel mir auf, das die Platten ziemlich oft anlaufen, nachschauen mit „dmesg“ ergab, daß es immer nur eine Platte war:
    ***************************************
    * HD0 stand by now! *
    ***************************************

    ***************************************
    * HD1 stand by now! *
    ***************************************

    #######################################
    # HD0 awake now ! #
    #######################################

    ***************************************
    * HD0 stand by now! *
    ***************************************

    #######################################
    # HD0 awake now ! #
    #######################################

    ***************************************
    * HD0 stand by now! *
    ***************************************

    #######################################
    # HD0 awake now ! #
    #######################################

    ***************************************
    * HD0 stand by now! *
    ***************************************

    #######################################
    # HD0 awake now ! #
    #######################################

    ***************************************
    * HD0 stand by now! *
    ***************************************
    Das ist insoweit verwunderlich, da ich RAID0 (striping) eingerichtet habe und dabei eigentlich beide Platten als ein Volume angesprochen werden – und damit gleichzeitig hochdrehen sollten. Unter Umständen ist die mit „dmesg“ ausgegebene Aufzeichnung aber auch fehlerhaft, da in der Weboberfläche (Firmware Version: 1.07) unter Status, Physical Disk Info bei geladenem modul usb-storage.ko nur noch EINE Platte statt der zwei eingebauten angezeigt wird.

    Frage dazu: Gibt es inzwischen ein neueres Modul für USB, das dieses Verhalten nicht mehr zeigt ?

    freundlichen Gruß
    bonsai

    1. Hallo,

      ich kann das Phänomen bestätigen! Jedoch bedenke folgendes: Das NAS legt auf dem Laufwerk neben der zu spiegelnden RAID-Datenpartition auf jeder Platte auch noch ~500 MB Swap-Space an. Der Swap-Space auf der ersten Platte (rechts) hat eine höhere Priorität als die linke und wird daher in der Regel öfters gefragt. Solange dein Swap nicht auf dem USB-Speicher liegt, fährt die Platte regelmäßig hoch. Vielleicht denkt sich jemand eine Lösung aus 😉

      1. Hallo Pago,

        ja, Deine Erklärung macht Sinn. Ich sorge mich nur etwas um die Lebensdauer der HD0 wenn diese so oft hochdreht. Damit muß man aber vorerst wohl leben – nichts geht über ein aktuelles backup…

  19. Pingback: Pagos Netlife » Blog Archive » Swap-Speicher des DNS-323 auf das USB-Laufwerk verschieben
    1. Hallo,

      Du schreibst Wolfi hätte was vom Laden eines Kernel Moduls geschrieben. Ich suche seit Tagen nach so einem Kernel Modul für meine CH3MNAS oder einem weiter helfenden Kommentar dazu, finde aber rein gar nichts. Unter Deinem Link findet man auch auf den ersten Blick nur das gute alte „ntfsprogs“, bei genauerem Hinsehen auch ein paar Module, aber keins davon ist für Kernel-Version 2.6.22.7, und keins für die arm5v-Architektur (ist die CH3SNAS, die Du hast, da wirklich so viel passender?). Wenn ich wüsste wie, würd ich’s mir ja selbst kompilieren, aber die div. Hilfeseiten helfen da nicht viel, denn ich finde ja nicht einmal den Kernel in (/ffp)/lib/modules/…

      1. Ich hab mir jetzt einen geeigneten Kernel (meine CH3MNAS nutzt v2.6.22.7) von „kernel.org“ geladen und ihn erfolgreich mit NTFS-Support (auch „write“ laut „make menuconfig“!) kompiliert.

        Im Gegensatz zu all den anderen „ntfs.ko“ Modulen, die ich bisher von wo auch immer aus dem Internet geladen habe, gibt dieses beim Installieren mit „insmod“ schon mal keine Fehlermeldung ab!

        „mount -t ntfs /dev/sdc1 /mnt/usb1“ hingegen crasht jetzt mit einem „segmentation fault“ und beim zweiten Versuch hängt sich das Terminal auf und der „mount“-Prozess kann nicht mehr ge-kill-t werden.

        Aber trotzdem glaube ich, dass ich schon ziemlich nah an der Lösung bin. Vielleicht ist das so ein ähnliches Problem wie das von „fdisk“, was hier https://wolf-u.li/3346/crash-von-fdisk-unter-busybox-mit-fehler-segmentation-fault beschrieben wird.

        Hat jemand eine Idee was zu tun ist?

        1. Melde hiermit Erfolg! ntfs.ko in funktionierender Fassung für die CH3MNAS! Wer’s braucht möge sich bitte hier melden. Vielleicht hostet ja Uli die Datei. „Write“-Support ist erst einmal nicht möglich gewesen, hat mir die NAS ständig aufgehängt, Read geht aber problemlos mit „mount -t ntfs -o umask=0 „. Ich habe auch die fuse.ko mitkompiliert. Damit kriegt man angeblich „ntfs-3g“ und „ntfsprogs“ zum Laufen, und somit funktionierenden „Write“-Support, hab’s aber noch nicht untersucht, ich bin jetzt nämlich erst mal zufrieden :-).

  20. Irgendwie habe ich auch ein Problem einen weiteren USB stick einzubinden.Der Stick ist ganz normal unter Fat32 formatiert.

    mkdir /mnt/usb2
    chmod 777 /mnt/usb2
    Auf diesen ordner kann jeder zugreifen.
    aber sobald ich:
    mount /dev/sdd1 /mnt/usb2
    eingebe , kann nur noch root schreiben.
    ein weiteres chmod bringt keine veränderungen.

    gruss
    DerSuchende

    1. Ich nehme an, die anderen Nutzer versuchen über Netzwerk (also zb SMB) auf den Stick zuzugreifen? Hast du denn die entsprechenden Zugriffsrechte über das Webinterface für diese Freigabe gesetzt?

    2. „mount -t vfat -o umask=0 /dev/sdd1 /mnt/usb2“, und das Problem ist behoben. Ohne das „vfat“ wird die Partition als FAT16 gemountet, was heisst, dass lange Dateinamen auf 8.3 gekürzt werden, und ohne das „umask“ bekommt nur root ein paar Rechte auf die zu mountende Partition.

Schreibe einen Kommentar zu Siddy74 Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.