Probleme mit dem RAID 5 unter Ubuntu

Beim Booten meines NAS Systemes, welches auf einem RAID 5 läuft landete ich plötzlich mit folgender Meldung:

ALERT! /dev/disk/by-uuid/6e…4e1 does not exist. Dropping to a shell!

im iniramfs. Das Problem war anscheinend das sich das RAID in seine Bestandteile zerlegt hatte. Konkret konnten wohl zwei Festplatten nicht gefunden werden. Die Lösung des Problemes lag dann darin dieses noch einmal neu zusammenzufügen. Dies geschieht mittels mdadm:

mdadm –stop /dev/md0

mdadm –assemble –scan
(oder, wenn voriges nicht funktioniert) mdadm –assemble -f –scan

reboot

Danach sollte das NAS wieder gefunden werden und das System normal booten. Natürlich nur wenn beim mdadm –assemble –scan keine Fehler aufgetreten sind. Dort hilft es im Zweifelsfall das Kommando noch mal zu wiederholen.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Mdadm
http://de.wikipedia.org/wiki/Initramfs
http://forum.ubuntuusers.de/topic/probleme-beim-hochfahren-des-systemes/

RAID 5 mit Verschlüsselung und Samba aufsetzen

Ein NAS mit einem RAID 5, einem Samba Server und Verschlüsselung auf Basis von Ubuntu wäre doch eine schöne Sache. Um das zu bewerkstelligen lädt man sich den Ubuntu Server unter http://www.ubuntu.com/server herunter, brennt ihn auf eine CD uns startet diese auf dem entsprechenden Rechner.

Dort wählt man dann Deutsch als Sprache aus und geht im Menü auf Ubuntu Server installieren. Nach einigen Fragen bezüglich der Tastatur- und Ländereinstellungen geht es dann weiter mit den Partionseinstellungen. An dieser Stelle erzeugen wir ein neues RAID 5. Dazu wählen wir als Partionsmethode manuell aus und gehen anschließend auf den Menüpunkt Software-RAID konfigurieren. Sollte es bereits Partionen geben so sollten diese vorher gelöscht werden. Sollte hierbei noch ein Software RAID eingerichtet sein, so muss dieses zuerst unter Software-RAID konfigurieren gelöscht werden (MD Gerät löschen).

Nachdem wir Software-RAID konfigurieren ausgewählt haben gehen wir auf MD Gerät erstellen und wählen dort RAID5 aus. Danach wird man nach der Anzahl der aktiven Geräte (sprich Festplatten) gefragt. Hier gibt man die Anzahl der Festplatten an welche man für das RAID verwenden will. Die Festplatten sollten dabei die gleiche Größe aufweisen (sonst wird die kleinste Festplatte als kleinster Nenner angesehen). Nach den aktiven Geräten kann man die Reservegeräte (Hot Spare) definieren und anschließend angeben welche Festplatten in das RAID genommen werden sollen.

Nachdem man das ganze bestätigt hat und die RAID Konfigurationsseite mittels Fertigstellen verlassen hat, definiert man noch den Einhängepunkt des RAID5 Gerätes (/) sowie das Dateisystem (ext4) und beendet die Partitionierung. Zusätzlich kann man noch eine Swap Partion anlegen, muss dies aber nicht tun (je nachdem wie viel Arbeitsspeicher in dem Gerät steckt).

Während der Installation wird man dann noch gefragt ob man Mail konfigurieren möchte. Dort wählt man nur lokal aus und fährt mit der Installation fort bis man seinen Nutzernamen und sein Passwort vergeben muss. Auf die Frage ob der persönliche Ordner verschlüsselt werden soll antwortet man mit Ja. Dann fährt man mit der Installation fort bis man gefragt wird ob man bestimmte Pakete vorinstallieren möchte. Hier wählt man OpenSSH server und bestätigt das ganze.

Nach der Installation erstellen wir mittels mkdir /home/seeseekey/share den Ordner in dem später unserer Daten liegen und installieren mittels:

sudo apt-get install mc htop samba swat

den Samba Server (sowie das Webinterface), htop und den Midnight Commander (letztere nur der Bequemlichkeit halber). Mittels

sudo smbpasswd -a seeseekey

erzeugen wir einen neuen Sambabenutzer. Dabei ist zu beachten das der betreffende Sambanutzer im System schon als Benutzer existieren muss. Am besten legt man solche Nutzer mittels

sudo adduser –no-create-home –disabled-login –shell /bin/false seeseekey

an. Diese Nutzer haben dann kein Homeverzeichnis und können sich auch nicht auf dem System einloggen. Nun müssen wir noch einige Dinge an den Dateirechten ändern damit Swat die Samba Config schreiben kann. Dies geschieht auf der Konsole mittels

sudo chown root:admin /etc/samba/smb.conf
sudo chmod 664 /etc/samba/smb.conf

Anschließend starten wir Swat mittels sudo /etc/init.d/openbsd-inetd restart neu. Danach können wir uns mit einem Webbrowser anmelden (http://“IP Adresse“:901 z.B. 192.168.1.15:901). Als Nutzername und Passwort dient dabei der bei der Installation angelegte Benutzer.

Nachdem wir uns verbunden haben können wir unter Globals einige Dinge einstellen z.B. den Namen der Arbeitsgruppe (workgroup). Unter Shares legen wir eine Freigabe an. In diesem Beispiel nennen wir die Freigabe Daten und klicken auf erstellen. In dem sich öffnenden Optionen setzen wir folgende Parameter:

path -> /home/seeseekey/share/
admin users -> seeseekey
readyonly -> No
available -> Yes

und klicken anschließend auf Änderungen speichern.

Nun haben wir ein System welches ein RAID 5 kombiniert mit einem Sambaserver und einer Verschlüsselung bereitstellt. Wenn man den Server startet muss man den Nutzernamen und das Passwort eingeben, damit das entsprechende Nutzerverzeichnis in welchem die Freigabe liegt entschlüsselt wird. Das kann man natürlich auch per SSH machen, allerdings ist die Sitzung (und somit die SMB Freigabe) nur so lange verfügbar wie die SSH Verbindung steht. Eine Anmeldung direkt am NAS (es reicht ja wenn eine Tastatur angeschlossen ist) ist also vorzuziehen.

Ein kleiner Hinweis noch am Rande: Mittels cat /proc/mdstat kann man nach der Anmeldung Informationen über das RAID abfragen.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Network_Attached_Storage
http://wiki.ubuntuusers.de/Software-RAID
http://wiki.ubuntuusers.de/ecryptfs-utils
http://wiki.ubuntuusers.de/SAMBA
http://wiki.ubuntuusers.de/samba_server
http://wiki.ubuntuusers.de/Samba_Server_Swat

Ein Backup kann nicht schaden

Ich habe zwar einen NAS Server mit RAID 5 aber selbst der beste Server nützt nichts wenn die Wohnung brennt oder gleich zwei Platten auf einmal ausfallen. Eine interessante Alternative dazu sind Online Backups. Da gibt es von Mozy sowie von HP (Upline) interessante Dienste mit unbegrenzter Speichermenge. Leider stoßen mir diese Dienste doch ein wenig sauer auf weil:

– die Server stehen in den USA
– die Software ist Closed Source
– ich kann nicht nachvollziehen welchen Schlüssel die Software bei der Verschlüsselung benutzt
– die Software muss immer laufen, sprich es ist nicht möglich einfach mal ein Backup zu machen sondern es wird ständig aktualisiert

Ein weiteres Problem ist, das selbst wenn man es schafft 2 GB pro Tag hochzuladen man für 500 GB trotzdem knapp 250 Tage benötigt. Da ist es schneller die Platte einschicken zu lassen:)

Da ich aber trotzdem nicht auf ein Backup (zu mindestens der wichtigen Daten) verzichten möchte, muss eine (sichere) Lösung her. Mal sehen was mir gescheites einfällt.

Use the key, NAS.

Nach und nach wird das was mit dem NAS. Als nächster Punkt auf der Liste stand die Verschlüsselung auf dem Plan. Da ich plante eine Containerdatei auf dem RAID 5 Laufwerk zu erstellen (Größe zirka 5700 GB) war meine erste Wahl Truecrypt. Also Truecrypt auf dem NAS installiert und gestartet. Und schon kamen die nächsten Probleme. Truecrypt wollte kein Image größer 2 TB erstellen. Da es sich bei dem Dateisystem um NTFS handelt konnte es daran schonmal nicht liegen, schließlich liegt die maximale Dateigröße bei 16 Exbibyte. Das sollte immerhin eine Weile reichen :)

Nach ein paar Tests und das suchen nach einem Workaround im Truecrypt Forum gab ich es dann schließlich auf. Eine Alternative musste her. Also erstmal ein paar Minuten im Netz nach der Suche nach einer Alternative verbracht. Irgendwann fiel mir dann FreeOTFE auf was in etwa das gleiche konnte wie Truecrypt. Also ab damit auf das NAS und angefangen ein Container zu erstellen. Aber man sollte sich ja nie zu früh freuen und so brache FreeOTFE nach knapp zwei Terrabyte ab. Wieder einmal wegen „zu wenig Speicher“.

Da das nach einem Fehler im System klang (schließlich scheiterten beide Programme), schrieb ich ein Testprogramm welches eine 5 TB Datei erzeugt. Das Testprogramm funktionierte Tadellos und ich hatte eine 5 TB große Datei voller Müll auf der Festplatte :)

Also habe ich Truecrypt wieder hervorgekramt und mal genau untersucht bis zu welcher Größe er mich einen Container anlegen lässt. Nach einigem Probieren bin ich dann auf die maximale Containergröße von 2097151 MB gekommen. Also genau 2 hoch 21 MB minus 1. Habe danach erstmal in den Quelltext von Truecrypt geschaut, aber um da durchzusehen bedarf es wohl einiger Einarbeitungszeit.

Nebenbei noch einen Bugreport an die Truecrypt Leute geschrieben. So danach wollte ich im Truecrypt Quelltext debuggen, dazu muss man den Quelltext ersteinmal compilieren. Ist im ersten Moment kein Problem schließlich ist Truecrypt Open Source. Doch mal wieder zu früh gefreut. Zum compilieren von Truecrypt benötigt man allerdings das Windows Driver Kit (WDK) von Microsoft. Das bekommt man aber leider nur als MSDN Abonnement und das kostet wieder viel Geld.

Also trat nun Plan B (oder ist das schon Plan C oder D?) in Kraft. Vielleicht handelt es sich um ein Windows spezifisches Problem und da Truecrypt auch unter Linux zur Verfügung steht lag der Gedanke nah einfach das Laufwerk per SMB freizugeben und den Truecrypt Container von einem Linux Rechner aus zu erstellen.

Das funktionierte auch auf den ersten Blick, allerdings gab es dort das Problem das die SMB Connection immer nach ein paar Minuten abbrach und der ganze Spaß auch knapp 32 Tage gedauert hätte. Naja nun kann ich nur noch schauen ob sich die Entwickler den Bugreport zu Herzen nehmen oder nochmal selber im Quelltext nachschauen.

So und hier noch zwei Bilder vom NAS:

Return of the NAS

Heute ging es fröhlich weiter mit dem NAS. Zuerst habe ich versucht mit Openfiler alle acht Festplatten zum Laufen zu bekommen, aber nach einiger Zeit musste ich einsehen das dies wohl nicht so einfach möglich ist. Also wieder den Ubuntu Server hervorgekramt aber der wollte auch nur sieben Festplatten erkennen. Nach ein wenig hier und da an der Schraube drehen (was knapp 2 Stunden dauerte) überlegte ich mir dann Alternativen.

Ich überlegte mit noch mal meine hauptsächlichen Features die ich unbedingt haben wollte. Das waren:
– RAID 5
– Verschlüsselung
– Linux

Ich beschloss also mein „Feature“ Linux zu streichen und installierte ein Windows XP. Bei der Installation lief alles erstaunlich glatt. Welch ein Glücksgefühl. Aber schon zogen erste Wolken auf. Ein paar Gerätetreiber waren nicht da wo sie hin sollten. Nachdem ich Sie installiert hatte, bootete Windows nicht mehr. Also alles auf Null und Windows neu installiert. Bei der Treiberinstallation nochmal ganz genau hingeschaut und festgestellt das ich doch beim letzten Mal aus Versehen den SATA / RAID Treiber mitinstalliert hatte. Nun ja diesmal funktionierte alles.

Danach ging es daran ein RAID 5 einzurichten. Von Haus aus kann das Windows XP nicht. Dies bleibt den Servervarianten vom Windows vorbehalten. Wenn da nicht die gute alte c’t wäre :) 2005 brachte die c’t einen RAID Patch für Windows XP heraus welcher das RAID auch auf XP Systemen freischaltet. Der Patch ist zu finden unter: http://www.heise.de/ct/ftp/05/03/090/.

Nach einem Neustart wurde das RAID eingerichtet und dann begann Windows mit der Formatierung des RAID’s. Das dauert in etwa 24 Stunden, naja kein Wunder bei 6 Terabyte verfügbarem Speicher. Nach den besagten 24 Stunden war das ganz dann soweit fertig und funktionierte. Nun heißt es sich an die Verschlüsselung machen.