NAS Eigenbau

From Dietrich Blog (Strato)
Revision as of 11:28, 26 April 2009 by Dkracht (talk | contribs) (Zusammenfassung 1)

Jump to: navigation, search

Make or Buy

Gerade rechtzeitig am 8.12.2008 erscheint das ct magazin 26/2008 mit einem Artikel über den "Netzspeicher im Eigenbau".

Nachteil der kommerziellen NAS-Lösungen (z.B. Buffalo LinkStation) ist bekanntlich:

  • Teuer (RAID-5 mit 1 TB = 1000 EUR)
  • Langsam

Zusammenfassung 1

  • Betriebssystem: CentOS
  • User: dkracht/lot
  • Feste IP-Nummer: 192.168.1.18
  • DNS-Name: NAS02.kr8.de
  • Remote Control: VNC Server
  • Platten
    • hda1 --> /boot (alte IDE-Platte)
    • sda1, sdb1, sdc1 und sdd1-6
    • VolGroup02 --> /media/mybackup

Feasability Study

Ich will ersteinmal in einem Versuch klären, ob ich das alles so hin bekomme.

Ausgangsmaterial

  • Alter PC mit zwei S-ATA Platten mit je 160 GB, die als Hardware-RAID konfiguriert waren
  • IDE-Schittstelle mit alter IDE-Festplatte

Zielsetzung des Tests

  • Installation von CentOS zum Booten von der IDE-Festplatte
  • Erkennung der zwei S-ATA-Festplatten
  • Freigabe der S-ATA-Festplatten als SMB-Shares, sodaß sie von meinen Windows-Computern mit Schreibrechten nutzbar sind

Installation von CentOS

CentOS besorge ich mir als ISO-Image im Internet. Die Server, die das anbieten, sind alle sehr langsam. Der Download dauert über eine Stunde.

Nun muss ich das ISO-Image auf einen Datenträger brennen. Da ich zuvor einen Versuch mir FreeNAS gemacht habe nehme schnell wieder einen CD-Rohling zur Hand und starte Deep Burner. Tja der bricht ab und sagt nichts weiter. Kann man mehrfach versuchen und ein paar CD-Rohlinge dann wegwerfen. Irgenwann kommt dann die Erleuchtung: Ich brauche einen DVD-Rohling, denn CentOS ist so 4 GB groß. Gut da habe ich selber Schuld, aber das hat schon mal den ersten Abend nutzlos dahin gehen lassen.

Morgens mit frischen Kräften nun die DVD mit CentOS gebrannt und flugs installiert. Klappt bestens.

Bei der Installation von CentOS ist folgendes wichtig:

  • Name des Servers: "Per DHCP" ist nicht so sinnvoll, ich gebe als Name ein: "baerchen.kr8.de"
  • Das Kästchen Server sollte angekreuzt werden, dann wird der Samba-Server (Daemon) mit installiert
  • Ich kreuze zusäzlich noch "Server GUI" an, dann kommt noch ein grafisches LVM mit dazu

So nun müssen die beiden S-ATA-Platten noch zum Fliegen gebracht werden. Dazu ist notwendig:

  • Im AMIBIOS "Integrated Peripherals" -> "OnBoard PCI Controller" -> "P20378 S.ATA Controller" umschalten von "RAID" auf "SATA"
  • S-ATA-Platten mit Filesystem "EXT3" formatieren
  • Mount-Punkte einrichten
    • su
    • cd /mnt
    • mkdir disk1
    • mkdir disk2
    • chmod 777 disk1
    • chmod 777 disk2
  • Platten mounten
    • mount -t ext3 /dev/sda1 /mnt/disk1
    • mount -t ext3 /dev/sdb1 /mnt/disk2
  • Wenn soweit erfolgreich, fest in Datei /etc/fstab eintragen
    • /dev/sda1 /mnt/disk1 ext3 defaults 0 0
    • /dev/sdb1 /mnt/disk2 ext3 defaults 0 0

Freigaben mit Samba

Dann sollen die beiden Platten per Samba freigegeben werden. Dazu ist folgendes nötig:

  • http://www.samba.org/samba/docs
  • Samba-Dienst starten: > System > Administration > Server Settings > Services:
    • Dort "smb" ankreuzen
  • Samba-Dienst konfigurieren: > System > Administration > Server Settings > Samba
    • Dort: > Preferences > Server Settings
      • Dort: > Basic > Workgroup: "Name meiner Windows-Workgroup"
      • Dort: > Security > Authentication Mode: "User" (Alternativ: "Share", "Server", "Domain", "ADS")
      • Und: > Security > Guest Account: "meine CentOS-UserID"
    • Weiter: > Preferences > Samba Users
      • Hier kann man User-Namen eingeben, die in der Datei /etc/samba/smbusers gespeichert werden (unix name = sam name)
      • Standardmäßig ist "security = user" aber noch auskommentiert
      • Scharfgeschaltet ist aber schon: passdb backend = tdbsam
    • Manuelle Installation/Konfiguration:
      • sudo apt-get install samba-common (Voraussetzung: Internet mit Namensauflösung)
      • sudo gedit /etc/samba/smb.conf dort security = user eintragen
      • Samba-User anlegen: smbpasswd
      • Samba-Freigaben einrichten: ....
      • Samba-Freigaben auflisten: smbclient -L <hostname>

Remote Administration

Elegant wäre natürliche ein Betrieb des NAS-Servers ohne Bildschirm, Tastatur und Maus.

Die Administration könnte dann über ein schönes Web-Interface gehen, do wie bei der Buffalo LinkStation oder wie auch beim FreeNAS (http://www.freenas.org).

VNC Server Ubuntu

VNC Server CentOS

Bei CentOS gibt es kein speziell für die NAS-Administrastion entwickletes WebGUI. Was bleibt, ist die generelle Möglichkeit des RemoteControl z.B. mit SSH oder VNC.

Merkwürdigerweise funktioniert so einiges, was in dem speziell für CentOS geschriebenen How To nicht in meiner Installation.

Starten und Stoppen des vncservers

Das Starten und Stoppen des vnc-servers gelingt nicht mit dem im Know how beschriebenen Befehl:
z.B. der Befehl

"service vncserver start" 

bringt ein lapidares:

bash: service: command not found

Das Starten und Stoppen gelingt aber im Gnome Desktop über das Menü > System > Administration > Server Settings > Services

Anlegen von VNC-Usern

Als User für VNC nehme ich die schon vorhandenen (oder auch zusätzlich anzulegende) CentOS-User.

Jeder CentOS-User hat zwar schon ein Passwort, aber für VNC muss zusätzlich ein VNC-Passwort angelegt werde. Dazu muss sich der User ins CentOS einloggen und dann den Befehl vncpasswd eingeben. Dadurch wird für ihn ein File passwd im Ordner /home/jeweiligerusername/.vnc angelegt.

Server Configuration

Editieren der Datei: /etc/sysconfig/vncservers

VNCSERVERS="1:usereins 2:userzwei 3:userdrei"
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 640x480"
VNCSERVERARGS[3]="-geometry 800x600"
User Start-Up

For each user, login and go to the folder \home\derusername\.vnc

Edit the file xstartup e.g. with gedit xstartup

#!/bin/sh (-)
# Add the following line to ensure you always have an xterm available.
( while true ; do xterm ; done ) &
# Uncomment the following two lines for normal desktop:
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
exec gnome-session &

Im Normalfall, soll heissen wenn auf dem CentOS-Computer bereits ein User angemeldet ist und den Gnome-Desktop laufen hat, geht das eigentlich immer klar. Die "Feinheiten" dieses Skripts kommen zum Tragen, wenn:

  • Noch kein User eingeloggt ist (sollte später der Normalfall werden)
  • Die VNC-Session gestoppt und wieder neu gestartet werden soll

CentOS LVM2

http://www.linuxtopia.org/online_books/centos5/centos5_administration_guide/centos5_s1-system-config-lvm.html

-- Dkracht 19:45, 17 December 2008 (CET)