Permalink

git-annex: Git mit Anhang

logo_small

Das ich GIT gern als Versionsverwaltung benutze habe ich früherer schon mal geschrieben. Mittlerweile benutze ich GIT nicht nur für Softwareprojekte sondern auch für meine Dateien und Dokumente. GIT bietet mir beim Verwalten viele Vorteile (Backups, Synchronisation, schutz vor Fehlern…). Soweit so gut, nur hört der Spaß bei großen Dateien schnell auf. Musik, Bilder oder Filme in das Repository einzuchecken dauert einfach zu lange.

Diese Lücke füllt bei mir nun git-annex. Eigentlich bin ich erst auf git-annex aufmerksam geworden, als ich von dem erfolgreichen Kickstarter Projekt git-annex assitant gelesen habe.  git -annex assistant gibt es zwar noch nicht, aber ohne assistant ist git-annex schon fertig stable. Der Sinn von git-annex ist es große Dateien in einem Key/Value Storage zu speichern und durch eine Verknüpfung zu ersetzen. Dadurch werden dann nur noch die Metadaten der Datei versioniert, die Datei selbst allerdings nicht mehr (ein Diff würde bei mp3s oder Videos aber ohnehin sinnlos sein). So kann man also ein GIT Repository erweitern und große Dateien einfach als Anhang nutzen.

Zusätzlich kümmert sich git-annex noch um die Repositories bzw. viel mehr um die Dateien in den Repositories. git-annex speichert welche Datei in welchem Repository liegt. Wenn man also mal nicht genug Speicherplatz auf dem Laptop hat kann man die Datei einfach aus dem annex löschen und später von einem anderen Repository wieder kopieren.

Ich nutze git-annex um meine Dateien zwischen mehreren Computern zu synchronisieren, Backups zu erstellen und Platz auf dem Laptop zu sparen. Durch git-annex kann ich meine Daten beliebig Verteilen und weiß trotzdem immer wo ich was finden kann und habe von allen Dateien Backups.

Permalink

Projekt Mediaserver: Die Hardware

In diesem Artikel der Mediaserver Serie will ich etwas genauer auf die verbaute Hardware eingehen. Nach einem halben Jahr haben sich die Vor und Nachteile der einzelnen Komponenten klar heraus gestellt. Zum Teil 1 der Serie geht es hier.

Das Mainboard:

AMD E45M1-M PRO microATX Mainboard

Mainboard

Das Mainboard ist mit einem AMD Fusion E-450 Dualcore bestückt, der bei 1,65 GHz taktet. Leider habe ich beim Kauf nicht  richtig aufgepasst und mich für die aktiv gekühlte Variante entschieden. Dafür bietet das Board zwar mehr Möglichkeiten, die bezahlt man aber mit dem Lärm des Lüfters. In der Praxis wird der Prozessor allerdings selten wirklich warm, so dass man den Lüfter oft runter regeln bzw. ganz aus machen kann und er am Ende von den Festplatten übertönt wird. Außerdem habe ich den Lüfter durch eine leisere Alternative ausgetauscht und mit Gummischrauben auf den Kühlkörper gebastelt. Vorher hatte der Lüfter immer ein Resonanzbrummen erzeugt.

Zusätzlich integriert ist ein ATI Radeon HD 6320 Grafikchip. Das Tragisch ist: Ich habe leider keinen dieser tollen Fernsehre mit HDMI Eingang. (Ja das macht den Mediaserver in bestimmten Bereichen sinnlos, aber er hat ja noch andere Aufgaben.) Mit dem Treiber könnte es unter Linux natürlich auch schlecht aussehen, aber genau sagen kann ich dazu leider nichts. Laut Asus soll der Chip allerdings DirectX11 und Full HD unterstützen.

Für reichlich Speicherplatz bietet das Mainboard 5 Sata (III) Ports, was für diese kleinen Mainboards recht ansehnlich ist. Einen RaidController gibt es “leider” nicht, was aber kein Problem ist, da ich ohnehin ein Softwareraid benutzen wollte, was selbst mit der kleinen CPU ganz gut funktioniert. (Eine Diskussion Softwareraid vs. Hardwareraid will ich hier eigentlich nicht anfagen.). Die zwei DDR3 Ram Bänke unterstützen insgesamt 8 GB RAM, was auch ausreichen sollte. Zum erweitern bietet das Mainboard einen  PCIe 2.0 x16 Slot, einen  PCIe 2.0 x1 Slot und zwei herkömmliche PCI Slots. Zusätzlich gibt es  2 USB 3.0 Ports und alles was sonst für ein Board üblich ist. (Weitere Details gibt es hier)

Das Gehäuse:

Lian Li Muse PC-C37B Desktopgehäuse

Das Gehäuse ist echt schick, sehr praktisch konzipiert und gut Verarbeitet. Um ordentlich in das HiFi Regal zu passen musste es allerdings ein Low-Profile Gehäuse sein, was zwei Nachteile mit sich bringt die man allerdings verschmerzen kann. Zum Ersten hat man im Gehäuse wenig Platz für Festplatten und Co (Es gibt grade mal 2 * 3,5″) und zum Zweiten ist man bei der Wahl weiterer PCI Karten sehr eingeschränkt.

Die Soundkarte

Audiotrak Prodigy HD 2

Bei der Soundkarte war mir ein guter analoger Stereousgang wichtig. Ich wollte mir weder einen D/A Wandler kaufen, noch hat mein Verstärker einen. Im HiFi Forum wurde sowohl die Soundkarte als auch der verbaute D/A Wandler oft gelobt, deshalb habe ich mich für diese Karte entschieden. Außerdem konnte ich nur eine Low Profile Soundkarte nutzen was die Auswahl sehr einschränkt. Die Soundkarte ist eigentlich in Deutschland nicht zu bekommen, allerdings hatte ich wohl etwas Glück und der frühere Händler hatte noch eine im Lager die er mir verkauft hat. Die Soundkarte macht ihren Job sehr gut und die Investition (ca 100€) hat sich auf jeden Fall gelohnt. Die Treiberunterstützung unter ALSA könnte allerdings besser sein (Die Lautstärkeregler kennen nur an und aus).

Sonstiges:

Bei den Festplatten habe ich mich für zwei 2TB Seagate Baracuda Green 5900.3 entschieden. Durch die langsamere Geschwindigkeit erhoffe ich mir eine längere Haltbarkeit und einen geringeren Stromverbrauch. Ich habe die Platten halbiert und ein RAID 1 und ein RAID 0 installiert. So habe ich 3 TB speicher und 1TB davon auf beiden Platten liegen. Die Festplatten sind meiner Meinung nach relativ laut und haben beide ein periodisches Klicken, was ich bisher nicht beheben konnte.

Zu dem Netzteil Seasonic X-460 460W Fanless ist eigentlich nicht viel zu sagen. Es ist Modular, was dem geringen Platz im Gehäuse entgegen kommt und es ist Lüfterlos! Thats it.

Die restliche Hardware bedarf wohl keiner weiteren Erklärung.

Dann also im nächsten Teil die Software …

Permalink

Projekt Mediaserver: Teil 1

Zum Jahreswechsel kam ich auf die Idee mir einen kleinen Homeserver zu bauen der alle möglichen Aufgaben in meinem Netzwerk übernehmen sollte. Das ganze ist zwar schon ein halbes Jahr her, aber trotzdem möchte ich die gewonnenen Erfahrungen mit euch teilen.

Die Aufgaben des Server sollten im Groben folgende sein:

  • Backupfestplatte für meine Computer und Netzwerkspeicher
  • Musikserver mit mpd zum abspielen von Musik und Streamingdienst für andere Computer
  • Webserver als Entwicklungsserver für Webseiten
  • Mediacentersoftware für den Fernsehr
  • Bastelserver zum Ausprobieren

Der Server sollte außerdem in ein HiFi ähnliches Gehäuse passen, um im HiFi Regal nicht weiter auf zu fallen. Die Leistungsanforderungen mit den oben genannten Aufgaben sind also nicht sonderlich hoch gewesen, weshalb ich mich für ein AMD Fusion mATX Mainboard entschieden habe. Die Hardware für den Server ist wie folgt:

Mediaserver Innenansicht

Details zu den Vor- und Nachteilen der gewählten Hardware werde ich in einem nächsten Artikel schreiben.

Da ich auf meinem Laptop ArchLinux benutze war die Wahl der Linux Distribution für meinen Mediaserver nicht sehr schwer und ist ebenfalls auf ArchLinux gefallen. Auf einem produktiv Webserver würde ich allerdings eher Debian oder Ubuntu benutzen. An Software läuft mittlerweile einiges auf dem Server. Zum Beispiel MPD um die Musik abzuspielen, abcde um neue Musik im FLAC Format auf die Festplatte zu kopieren, Samba um den Server für Windowsclients als Netzwerkfestplatte laufen zu lassen, minidlna als dlna Streamserver, Apache, Mysql, PHP, Python …  für den Webserver und noch lauter andere Serverdienste und Anwendungen. Auch für die Software werde ich wohl noch mehrere detaillierte Artikel schreiben.

Das Resultat ist aktuell ein gut in das Heimnetzwerk und die HiFi Anlage integrierter Server der alle möglichen Aufgaben erledigt.

Mediaserver Außenansicht

Permalink

Archlinux: zur LTS Kernel-Version wechseln

Ich habe zu Hause einen kleinen Mediaserver der alle möglichen Aufgaben in meinem Netzwerk übernimmt. Auf dem Server läuft derzeit Archlinux mit dem aktuellen stable Kernel 3.3.7

[david@mediaserver ~]$ uname -r
3.3.7-1-ARCH

Da Archlinux relativ flott mit updates ist muss ich auf dem Server häufig auch Kernelupdates machen. Das kann auf einem Server relativ schnell zu Problemen führen. Eigentlich hätte ich von Anfang an den LTS Kernel nehmen sollen. Nun hab ich es also im Nachhinein geändert.

Der LTS-Kernel liegt im Core Repository und kann mit Pacman installiert werden.

sudo pacman -S linux-lts

Nach der Installation muss im Bootloader noch das neue Kernelimage eingetragen werden. In meinem Fall Grub. Also folgendes in der /boot/grub/menu.lst ändern:

#/boot/grub/menu.lst
#...
# (0) Arch Linux
title Arch Linux
root (hd0,0)
#old
#kernel /vmlinuz-linux root=/dev/mapper/raid1-root ro
#new
kernel /vmlinuz-linux-lts root=/dev/mapper/raid1-root ro
#old
#initrd /initramfs-linux.img
#new
initrd /initramfs-linux-lts.img
#...

Es muss also nur vmlinuz-linux mit vmlinuz-linux-lts und initramfs-linux mit initramfs-linux-lts ersetzt werden. Der Rest sieht bei euch evtl. anders aus und sollte nicht verändert werden. Vorsicht sei geboten, da bei Fehlern der Computer evtl. nicht mehr bootet. Insbesondere bei Servern kann das ein großes Problem werden.

Nach einem Neustart sollte die Version wie folgt aussehen:


[david@mediaserver ~]$ uname -r
3.0.31-1-lts