Archiv

Artikel Tagged ‘NTP’

Homeserver

Hallo Homeserver,

kürzlich habe ich beschlossen mir einen Homeserver, aus meiner alten Hardware, zu basteln. Er sollte vor allem als Netzwerkspeicher dienen jedoch auch alle möglichen Jobs für mich erledigen wenn er ja schon 24/7 läuft oder zumindest länger als mein Standpc. Das heisst natürlich, dass das Betriebsystem meine Hardware unterstützen sollte und mir aber trotzdem die Freiheiten lassen sollte Scripts und Zusatzprogramme hinzuzufügen.

Hardware:

Wie gesagt alte, herumliegende Teile werden zusammegestöpselt und voilà der Server steht.
Mobo: Asus A8R32-MVP Deluxe
CPU: AMD Opteron 170
Ram: 4G DDR
Graka: NVidia 7800GT
HDD: Kingston DT108-8GB, 5x 80GB HDD

Die Idee: als Systempartition wird der USB Stick verwendet und die 80er Disken über ein mdadm-Software Raid6 verbunden.

Betriebssystem:

Auch wenn ich lange mit FreeNAS geliebäugelt hatte, beschloss ich ein „normales“ Linux zu nehmen, wegen besagter Zusatzprogramme und weil es im Forum hieß FreeNAS sei ja eigentlich für kleine NAS-Systeme gedacht.
Gut also Linux hmmm, da gibt es ja auch ordentlich an Auswahl: Mint, Ubuntu, Debian, Archlinux, Gentoo, ….
Da ich jedoch die Hardware in 64Bit betreiben möchte, um sie möglichst gut auslassten zu können, siehe RAM. War meine Auswahl aber bereits eingeschränkt, nebenbei wollte ich mich auch nicht ewigkeiten mit einem neuen OS herumspielen, also bin ich wieder einmal bei Debian gelandet 🙂

Debian it is:

Nun zur Installation des Systems auf einen USB-Stick. Im Netz gibt es einige Möglichkeiten das System auf ein USB-Stick zu bekommen. Die einfachste die mir eingefallen ist, einfach einmal den Stick als einziges Speichergerät anzustecken und über eine Netinst-CD installieren und siehe da es funktioniert. Das Setup erkennt den Stick als SDA man kann gleich darauf los installiern. Einziges Manko an der Geschichte ist die Installationsdauer, ich vermute es liegt an den beschränkten IOPS der USB-Lösung.

Systemkonfiguration:

Netzwerk:

Aktuell besteht das Netzwerk aus einem Modem/Router PRG AV 4202N, zwei kleinen Switches, einigen Rechnern und eben dem neuen Homeserver. Der Router spielt den DHCP, WINS und Time Server.

IP: DHCP/Static

Da, wie die Bezeichnung schon erahnen lässt, der Homeserver als Server betrieben wird. Werde ich Ihm eine Fixe-IP zuweisen, dass im Falle eines Router/Modem-ausfalls es keine Probleme gibt.
Bei Debien ist das in der Datei /etc/network/interfaces hinterlegt. Einfach mit deinem Bevorzugtem Textbearbeitungswerkzeug öffnen und eintragen.

allow-hotplug eth0
auto eth0
iface eth0 inet static
        address 192.168.0.50
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.1

Natürlich die lokalen gegebenheiten anpassen:). Nachdem das gespeicherwurde muss das Interface einmal DOWN und UP genommen werden um die aktellen Einstellungen zu übernehemen.

sudo ifdown eth0 && sudo ifup eth0

Nun sollte die IP eingestellt und statisch sein. Es sollte auch darauf geachtet werden, dass der DHCP-Server davon weis und die IP für diese MAC-Adresse reserviert hält.
Mit folgendem Befehl kann man die MAC-Adresse und die aktuelle Interface-Einstellugen sehen:

ifconfig

Zeitsynchronisation: ntp, ntpdate

Zunächsteinmal müssen die entsprechenden Packete installiert werden.

aptitude install ntp ntpdate

Leider ist es mir nicht gelungen den Router als Zeitserver hinzuzufügen deswegen wurden die, entsprechend ntp.org, vorgeschlagenen Server verwendet. Wieder muss die Konfiguration in eine Datei, /etc/ntp.conf, eingetragen werden.

server 0.at.pool.ntp.org iburst
server 1.at.pool.ntp.org iburst
server 2.at.pool.ntp.org iburst
server 3.at.pool.ntp.org iburst

Nach einem Dienstneustart sollte sich die Zeit von alleien Synchronisieren.

/etc/init.d/ntp restart

Die aktuelle Zeit kann einfach per Befehl

date

abgefragt werden.
Falls diese nicht aktuell ist, oder stark abweicht, muss man per

ntpdate

einen initiale, manuelle Zeitsynchronisation starten. Es muss jedoch der NTP-Dienst hierfür beendet werden.

/etc/init.d/ntp stop
ntpdate at.pool.ntp.org
/etc/init.d/ntp start

Nun sollte sich der Server selbstständig synchronisieren.

Webserver: lighttpd

Als Webserver verwende ich lighttpd, er wird einfach über den Packetmanager installiert.

aptitude install lighttpd php5-cgi

Um auch PHP-Seiten darstellen zu können muss zusätzlich das entsprechende Modul installiert werden.
Jetzt muss dem Webserver beigebracht werden wie die Seiten zu verarbeiten sind, dies passiert über die Modul aktivierung.

sudo lighty-enable-mod fastcgi 
sudo lighty-enable-mod fastcgi-php

Ein Neustart des Dienstes erledigt den Rest.

sudo service lighttpd force-reload

Speicher:

Softwareraid: mdadm

Ich möchte ein Raid 6 aus meinen 5 80er Platten erstellen um bei einem möglichen Ausfall von 2 Platten noch immer meine Daten abrufen zu können.

Nun gut nach Anschluss aller Platten und dem korrekten erkennen durch das OS kann man sich daran machen die Partitionen auf den HDD’s zu erstellen.

Partition schreiben:

Um ungleich große Festplatten in Ihrer Größe zu „Normieren“ erstelle ich überall eine gleich große Partition mit Hilfe von cfdisk hier setzte ich auch den Partitiontyp auf fd was als Linux Raid interpretiert wird.

cfdisk /dev/sda
sfdisk -d /dev/sda | sfdisk /dev/sdb
sfdisk -d /dev/sda | sfdisk /dev/sdc
sfdisk -d /dev/sda | sfdisk /dev/sdd
sfdisk -d /dev/sda | sfdisk /dev/sde

Raid erstellen:

mdadm --create --verbose /dev/md1 --level=raid6 
      --chunk=64 --raid-devices=5 --spare-devices=0 /dev/sd{a,b,c,d,e}1

Dateisystem erstellen:

Ich habe mich für ein ext4 entschieden. Um nun das Dateisystem an das Raid anzupassen wurde die Blocksize von 4kB gewählt und eine Stride von 16 verwendet womit man nun auf die Chunksize 64kB vom Raid kommt.

mkfs.ext4 -b 4096 -R stride=16 /dev/md1 -L <Label_Name>

Der Name des Raid’s kann auch im Nachhinein bearbeitet werden.

e2label /dev/md1 <Label_Name>

Automatisches mounten:

Das Dateisystem kann nun in die fstab Datei eingetragen werden um das Mounten nach dem Start zu automatisieren.

vi /etc/fstab

Raid einbinden:

Damit das Softwareraid auch nach einem Neustart nicht auf seine Konfiguration vergisst kann man diese mit folgenden Befehl in der mdadm.conf hinterlegen.

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Windows Filesharing: Samba

Hardwaremonitoring:

CPU Taktung: cpufrequtils

CPU Temperatur: lm-sensors

Festplatten Temperatur: hddtemp

SMART Monitoring: smartmontools

Zusatzfunktionen:

Downloader: pyLoad

Nähere Infos hierzu auf der entsprechenden Seite.
http://www.zettabyte.eu/homeserver-pyload/

Torrent Loader: Transmission

Media Server: Plex

EBay Helper: esniper

Nähere Infos hierzu auf der entsprechenden Seite.
http://www.zettabyte.eu/homeserver-esniper-esf/

APC USV Daemon: apcupsd

Nähere Infos hierzu auf der entsprechenden Seite.
http://www.zettabyte.eu/homeserver-apcupsd/

DC Crawler: MJ12Node

Genauere Informationen sind auf der entsprechenden Seite zu finden.
http://www.zettabyte.eu/homeserver-mj12/

Referenzen:

KategorienLinux Tags: , ,