NAS innerhalb eines LansDieser Artikel beschreibt ein paar Nutzungsmöglichkeiten des Buffalo NAS LS-CHL
Er setzt folgendes voraus:
Die Firmware von Buffalo wurde durch die Firmware von Shonk ersetzt, um telnet Zugriff frei zu schalten: http://forum.buffalo.nas-central.org/vi ... 68&t=21865
Dann wurde optware auf dem NAS installiert: http://buffalo.nas-central.org/wiki/Ipk ... _end-users)
Und zuletzt wurde der nfs-Kernel erfolgreich eingerichtet: http://buffalo.nas-central.org/wiki/Rea ... NFS_kernel
Ich beschreibe hier, wie ich das NAS in mein Lan integriert habe.
Möglichkeiten unter Windowsclients kann ich hier nicht berücksichtigen, da ich mich damit nicht auskenne.
Vorbemerkung: Das Thema ist neu für mich, ich hoffe auf ergänzende Anmerkungen und auch Kritik, besonders, was die nfs Konfiguration angeht.
1. Die Rechner in meinem LanMein Lan besteht aus 4 Linux-Rechnern, einem WD TV Live Mediaplayer und nun seit kurzem der Buffalo Linkstatin LS-CHL. Ich habe DHCP deaktiviert, da mein Router leider nicht so konfiguriert werden kann, dass er per DHCP feste IP Adressen an die jeweiligen Rechner vergibt. Die Rechner sind wie folgt im Lan zu finden:
192.168.1.101 gerbil.linux.pc gerbil (mein Desktop-Rechner)
192.168.1.102 biber.linux.pc biber (der Desktop-Rechner meiner Frau)
192.168.1.103 elch.linux.pc elch (mein Notebook)
192.168.1.104 eichhorn.linux.pc eichhorn (Notebook meiner Frau)
Gemäß unserer Vorliebe für Nagetiere, Ratten einmal ausgenommen, bekam das NAS die Nomenklatur spitzmaus und die IP 192.168.1.116 verpasst, die /ec/hosts sieht wie folgt aus
Code:
127.0.0.1 localhost.localdomain localhost
192.168.1.116 spitzmaus
Achtung: Es ist sehr wichtig, das Datum und die Zeiteinstellung beim NAS zu überprüfen. In meinem Lan werden alle Rechner über ntp automatisch mit der korrekten Zeiteinstellung versehen, das geht auch beim NAS zu konfigurieren, am bequemsten dort über das Browserinterface.
Der WD TV Live Mediaplayer hat die Adresse 192.168.1.118, allerdings ist er zur Zeit nur über Samba ansprechbar, da soll es jedoch einen sehr ambitionierten Entwickler geben, der dafür eine Linuxdistribution entwickelt hat und weiterpflegt:
http://b-rad.cc/
2. Wofür das NAS benutzenBei uns ist die Situation folgende: Neben den persönlichen Dokumenten in /home haben wir Daten, die wir von jedem PC aus gemeinsam nutzen wollen, dessen Bestand aber ständig wächst, dieser Datenordner enthält die Unterordner audios, fotos und videos. Es gibt nun einmal die Möglichkeit, diesen Datenordner auf jedem der Rechner lokal zu haben, und das NAS als Backup zu nutzen, oder umgekehrt den Ordner auf dem NAS für alle Rechner als Arbeitsordner zugänglich zu machen. Ich habe mich für Möglichkeit zwei entschieden, und das NAS muss hier als Fileserver herhalten. Es soll aber für die Ordner /etc und /home aller vier Rechner gleichzeitig als Backupmedium dienen.
3. Die EinrichtungZunächst loggen wir uns per telnet auf das NAS ein, und legen unter /mnt/disk1 die Ordner daten, gerbil, biber, elch und eichhorn an. Auf den Arbeitsrechner legen wir dann die entsprechenden gewünschten nfs Mountpunkte an, am Beispiel für gerbil die Ordner
/nas-gerbil für das Backup der Ordner /etc und /home von gerbil auf das NAS
und
/nas-daten für den Ordner daten mit den audios, fotos und videos, die für alle Rechner zugänglich sein sollen
Auf dem NAS werden nun folgende Dateien mit den entsprechenden Inhalten erstellt:
/etc/hosts.allow
Code:
ALL : 192.168.1.101
ALL : 192.168.1.102
ALL : 192.168.1.103
ALL : 192.168.1.104
/etc/hosts.deny
/etc/exports
Code:
/mnt/disk1/daten 192.168.1.101(rw,async,subtree_check)
/mnt/disk1/daten 192.168.1.102(rw,async,subtree_check)
/mnt/disk1/daten 192.168.1.103(rw,async,subtree_check)
/mnt/disk1/daten 192.168.1.104(rw,async,subtree_check)
/mnt/disk1/gerbil 192.168.1.101(rw,async,subtree_check,no_root_squash)
/mnt/disk1/biber 192.168.1.102(rw,async,subtree_check,no_root_squash)
/mnt/disk1/elch 192.168.1.103(rw,async,subtree_check,no_root_squash)
/mnt/disk1/eichhorn 192.168.1.104(rw,async,subtree_check,no_root_squash)
An dieser Stelle gibt es vermutlich schon Diskussionsbedarf über die Option sync versus async. Ersteres gilt als sehr sicher bei der Datenübertragung, ist aber um ein vielfaches langsamer als async. Über die Datei /etc/exports lassen sich diverse weitere nfs Optionen einstellen. Hinweise zur Optimierung und auch der Sicherheit sind sehr willkommen

Hier gibt es noch eine schöne Übersicht: http://www.selflinux.org/selflinux/html/nfs03.html
Auffällig ist noch die Option no_root_squash hinter den Einträgen zu gerbil, biber, elch und eichhorn. Da diese Verzeichnisse dem Backup von /etc und /home der einzelnen Clients dienen, die von diesen jeweils durch den Systemadmin root per rsync ausgeführt werden sollen, halte ich diese Option hier für sinnvoll, sonst spuckt rsync nämlich Fehler aus, wenn beim inkrementellen Backup die Zeit- und Besitzattribute der Dateien beibehalten werden sollen.
Nun müssen die NAS Freigaben in den entsprechenden Clients gemountet werden. In der /etc/fstab von gerbil steht bei mir:
Code:
192.168.1.116:/mnt/disk1/daten /nas-daten nfs defaults 0 0
192.168.1.116:/mnt/disk1/gerbil /nas-gerbil nfs defaults 0 0
Diese Einstellungen hat die NFS-Clientkonfiguration von Yast gesetzt. Es gibt auch hier beim Mounten einer nfs Freigabe verschiedene Möglichkeiten, die diskutiert werden können.
Nun können die nfs Freigaben auf dem Client gemountet werden.
4. Lese- und Schreibrechte der NutzerDamit auf die Dateien in /mnt/disk1/daten sowohl meine Frau als auch ich unter normalen Nutzeraccounts Zugriff haben, müssen einige Vorbereitungen getroffen werden. Zunächst habe ich auf dem NAS die Gruppe users mit der Gid 5000 angelegt. Die Unterordner samt Dateien in /mnt/disk1/daten erhalten folgende Rechte:
Code:
drwxrwx--- 7 root users 83 Jan 26 15:12 daten
Auf den Clients bekommt die Gruppe users dann auch die Gid 5000 verpasst und die normalen Nutzer werden der Gruppe users zugefügt.
Damit haben meine Frau und ich im nfs-Ordner /nas-daten/daten Lese- und Schreibrechte.
Und dass das Schreiben trotz der schwachen Hardware des Buffalo LS-CHL auf der nfs-Freigabe flott geht, zeigt ein Arbeiten etwa mit digikam.
5. Backup mit rsyncDa ich faul bin, und es mit luckybackup ein meines Erachtens hervorragendes GUI zu rsync gibt, welches sowohl unter OpenSUSE, Debian samt Derivaten, als auch PCLinuxOS zur Verfügung steht, nutze ich dieses. Wer lieber rsync an der Konsole nutzen mag, für den habe ich die entsprechende Syntax zu den einzelnen Optionen.
Am Beispiel des /home Verzeichnisses von gerbil lautet der von mir verwendete Befehl, den ich als root ausführe:
Code:
rsync -h --progress --stats -r -tgo -p -l -D --update --delete-after --delete-excluded –exclude=**/*Cache*/ --exclude=**/*cache*/ --exclude=**~ --exclude=**/lost+found*/ --exclude=**/*Trash*/ --exclude=**/*trash*/ --exclude=/home/holger/virtualbox/ --exclude=/home/holger/VirtualBox VMs/ /home /nas-gerbil/
Beeindruckend, oder?

Um ehrlich zu sein, vertraue ich da auf luckybackup und der oben genannte Befehl ist mitnichten ein Resultat meines intensiven Manpage-Studiums zu rsync, sondern eine tolle Option von luckybackup, den zugrunde liegenden Befehl jeder Operation in die Zwischenablage kopieren zu können.
6. Lokales NAS BackupDa die LS-CHL einen USB-2 Port hat, kann man dort eine USB-Platte ansöpseln und die Speicherkapazität des NAS erweitern. Da ich die USB-Platte als Backup für die NAS-Daten einsetzen möchte, habe ich sie zunächst an einem Linux-PC mit xfs formatiert, da mir nicht klar ist, wie lange das auf dem NAS dauern wird.
Code:
mkfs.xfs -f /dev/sdx1
Für das x gebt bitte die richtige Partition an und kontrolliert nochmals sorgfältig, ob es auch die richtige Partition der externen USB-Platte ist, sonst habt Ihr unter Umständen hiernach keine persönlichen Daten oder gar Betriebsystem mehr

Meldet Ihr Euch über telnet an der Linkstation als root an und steckt Ihr die USB-Platte nun an das NAS, könnt Ihr mit dem Befehl mount prüfen, dass sie automatisch nach /mnt/usbdisk1 gemountet wird, die interne Platte des NAS ist gemountet auf /mnt/disk1:
Code:
root@spitzmaus:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type xfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw)
/dev/ram1 on /mnt/ram type tmpfs (rw)
/dev/sda1 on /boot type ext3 (rw,data=ordered)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/disk1_6 on /mnt/disk1 type xfs (rw,noatime)
/dev/disk1_6 on /opt type xfs (rw,noatime)
nfsd on /proc/fs/nfsd type nfsd (rw)
/dev/usbdisk1_1 on /mnt/usbdisk1 type xfs (rw,noatime)
root@spitzmaus:~#
Auf der externen USB-Platte legt Ihr zunächst das backup-Verzeichnis an:
Code:
mkdir /mnt/usbdisk1/backup
Um erst einmal eine Komplettsicherung der gesamten internen Platte zu haben, lautet die Syntax dazu wie folgt:
Code:
rsync -agEvz --delete-after /mnt/disk1 /mnt/usbdisk1/backup
An dieser Stelle sei schon jetzt gesagt, dass auf einer schwachen Hardware wie die der LS-CHL ein Backup sehr lange dauert. Ein Backup von knapp 60 GB dauerte bei mir ungefähr 20 Stunden. Aber das Tröstliche ist, dass weitere inkrementelle Backups mit rsync dann nur noch einen Bruchteil der Zeit brauchen. Wurden auf der Quelle zum Beispiel an die 500 MB der Daten verändert, dürfte das dann angestoßene rsync nur noch ungefähr 10 Minuten brauchen.
Dieses inkrementelle Backup kann man gut über den cron-Daemon abarbeiten lassen. Dazu habe ich zunächst als root auf dem NAS in /usr/local/bin ein Skript backup-to-usbdisk mit folgendem Inhalt erstellt:
Code:
#!/bin/sh
rsync -agEvz --delete-after /mnt/disk1 /mnt/usbdisk1/backup
exit 0
Diese Skript bekommt folgende Rechte:
Code:
root@spitzmaus:/usr/local/bin# ls -la backup-to-usbdisk
-rwxrwxr-x 1 root root 78 Feb 2 09:55 backup-to-usbdisk
root@spitzmaus:/usr/local/bin#
Dann bearbeitet Ihr mit einem Editor Eurer Wahl die crontab, sollte zum Beispiel der vi voreingestellt sein, Ihr mögt aber lieber den einfachen nano Editor, dann gebt Ihr ein:
gefolgt von:
Der Editor nano muss dazu natürlich auf dem NAS vorher installiert werden.
Bei mir sieht das dann wie folgt aus:
Code:
00 0 * * * /etc/cron/cron.d/mailnotice.sh
05 4 * * * /etc/cron/cron.d/logrotate -f
*/5 * * * * /etc/cron/cron.d/logrotate
08 4 * * * /etc/cron/cron.d/calib_time.sh
00 3 * * * /etc/cron/cron.d/date_to_lcd
*/30 * * * * /etc/cron/cron.d/ms_checkversion.sh
37 */3 * * * /etc/cron/cron.d/ntpdate
00 4 * * * /usr/local/bin/backup-to-usbdisk
Die letze Zeile habe ich hinzu gefügt. Sie bedeutet, dass
zu den Minuten 00
der Stunde vier Uhr morgens 4
jeden Tag *
jeden Monat *
jeden Wochentag *
der Befehl /usr/local/bin/backup-to-usbdisk
ausgeführt wird.
Achtung: crontab Editieren ist neu für mich, bitte kontrolliert genau, was Ihr da auf Eurem NAS macht und bitte korrigiert mich, falls Ihr hier einen Tippfehler oder inhaltlichen Fehler findet.Ich wünsche Euch viel Spaß mit dem Howto und hoffe auf kritische Anmerkungen.
Viele Grüße,
Holger