Immer wieder mal möchte ich ein paar Dinge ausprobieren, ohne dass ich sie direkt auf ein produktives NAS-System installiere. Beim Ausprobieren besteht immer die Gefahr, dass etwas schief läuft - und durch solche Experimente möchte ich meine wichtigen Daten nicht gefährden. Daher habe ich aus Bauteilen, die noch in irgendwelchen Kisten lagen, ein kleines Test-NAS gebaut.
Wie unterscheidet sich nun ein Test-NAS von einem normalen NAS? Ganz grob kann man sagen, dass die Funktionalität die Gleiche ist, die Non-Funktionalität jedoch nicht! Dazu ein kleiner Exkurs in das Anforderungsmanagement, bzw. Requirements Engineering: Funktionale Anforderungen beschreiben WAS ein System tut und Non- oder Nicht-Funktionale Anforderungen beschreiben, WIE ein System etwas tut.
Für ein NAS bedeutet das zum Beispiel:
- Funktionale Anforderung: "Samba-Shares als Windows-Netzlaufwerke zur Verfügung stellen" - Nicht-Funktionale Anforderung: "Für 10 Nutzer gleichzeitig".
- Funktionale Anforderung: "Daten auf internen Festplatten speichern" - Nicht-Funktionale Anforderung: "Mindestens einfach redundant"
Durch die obigen Beispiele kann man den Unterschied schon deutlich erkennen: Die funktionale Anforderung "Samba-Shares als Windows-Netzlaufwerke zur Verfügung stellen" kann entweder sehr einfach zu erfüllen sein - bei einer handvoll Nutzern. Oder sie kann sehr schwer zu erfüllen sein, wenn man das für 100.000 Nutzer gleichzeitig machen muss.
Gleiches gilt für die Beispiel-Anforderung 2: "Daten auf internen Festplatten speichern" - kann man soweit machen wie man möchte - "Mindestens einfach redundant" bedeutet aber, dass jede Datei zweimal auf einer internen Festplatte gespeichert sein muss. Dies könnte man zum Beispiel mit einem RAID 1 erreichen.
Es sind also die Nicht-Funktionalen Anforderungen an das System, die einen wesentlichen Unterschied für die Hardware machen. Um einfach mal ein paar Funktionen auszuprobieren, bastle ich also ein Test-NAS mit unkomplizierten Non-Funktionalen Anforderungen. Das hilft, zu verstehen wie Dinge funktionieren und wo Fallstricke liegen.
Ein NAS-System im produkten Einsatz hat allerdings andere Nicht-Funktionale Anforderungen. Ohne Anspruch auf Vollständigkeit hier ein paar, die mir wichtig sind:
- Doppelte Speicherung aller Daten
- Regelmäßige, automatische Backups
- 2-10 Nutzer
- Robustes Betriebssystem
- ECC-Speicher zur Vermeidung von Datenfehlern im RAM
- Unterbrechungsfreie Stromversorgung
- Energiesparender Betrieb
- usw.
Auf all' das verzichte ich bei dem Test-NAS. Hier will ich nur einzelne Funktionen ausprobieren.