Archiv

Archiv für die Kategorie ‘Linux’

ZFS auf dem Heimserver

21. Juni 2015 6 Kommentare

So langsam ging der Speicherplatz auf meinem Heimserver zu Ende und ich musste was tun. Mir war sehr schnell klar, dass ich von den zwei 2 TB HDDs im RAID1 auf vier 2TB HDDs im RAID5 wechseln muss um wieder Ruhe zu haben. Die beiden Platten war schnell organisiert, aber dann ging es (wie immer) los. Da ich bei Linux bleiben wollte dachte ich zuerst an BTRFS. Leider ist der RAID5-Code aus meiner Sicht nichts für Menschen mit Stabilitätswünschen. Ja, es hat sich einiges getan, aber für das Recover nach Festplattenausfall will niemand die Hand ins Feuer legen. Will man so etwas benutzen? Nein!

Klar, ich hätte bei mdadm und LVM bleiben können, aber ich war noch nie ein Freund davon – zu kompliziert und damit fehleranfällig (also ich beim eintippen). Ich habe nur kurz daran gedacht. Also ZFS.

zfsonlinux macht, zum Glück, die Sache recht einfach. Für alle gängigen Linuxe gibt es fertige Pakete die man nur installieren braucht und schon sind Module und Tools vorhanden. Piece of cake.

Das Festplatten-Layout ergab sich dann auch fast von selbst: für das OS eine kleine 128GB SSD und die anderen vier Platten als Datengrab (siehe Bild).

IMG_20150613_122759

Vorher gab es noch ein größeres Netzteil und eine USB-HDD für die Datensicherung. ZFS einrichten ist dann recht einfach[1]:

Ersteinmal gucken welche Platten man hat:

# ls /dev/disk/by-id/ata-SAM*
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116895
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9KB607108
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116899
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2HGJ9EB902188

Die alten Partitionstabellen gegen GPT tauschen:

# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116895 mklabel gpt
# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9KB607108 mklabel gpt
# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116899 mklabel gpt
# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2HGJ9EB902188 mklabel gpt

Einen RAIDZ-Pool anlegen, das Äquivalent zum herkömmlichen RAID1:

# zpool create -m none -o ashift=12 mypool raidz /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116895 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9KB607108 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116899 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2HGJ9EB902188

Durch -o ashift=12 arbeitet der Pool mit 2KiB Sektoren. Viele neue Platten arbeiten intern damit, aus Kompatibilitätsgründen sagen sie aber sie hätten 512 Byte Sektoren.

Atime ausmachen:
# zfs set atime=off mypool

Deduplication aus. Wenn man nur Komprimiertes speichert ist es der CPU-Overhead nicht wert und der RAM-Verbrauch von ZFS geht auch zurück (mein Serverchen läuft noch mit 4GB RAM):
# zfs set dedup=off mypool

Ein Dateisystem anlegen, mounten und per NFS freigeben:
# zfs create mypool/daten
# zfs set mountpoint=/daten mypool/daten
# zfs set sharenfs=on mypool/daten

Man kann auch SWAP auf ZFS legen:
# zfs create mypool/swap -V 8G -b 4K
# mkswap -f /dev/mypool/swap
# swapon /dev/mypool/swap
# zfs set sync=always mypool/swap

Dann noch einen Cronjob anlegen, der einmal den Pool auswischt
zpool scrub mypool

Wenn die ZFS-Volumes beim Booten nicht gemountet werden in
/etc/default/zfs schauen:
ZFS_MOUNT='yes'

muss da stehen.

Alles in allem sehr unkompliziert und auch zukunftssicher. Vielleicht stelle ich später das OS auf FreeNAS um, dann habe ich bereits ZFS am Start.

Zum Schluß habe ich noch ein bisschen meine Netzwerkverkabelung aufgeräumt. Muss ja auch mal sein.

IMG_20150614_142604
IMG_20150614_142624

[1] http://www.andybotting.com/zfs-on-linux

Tags:

Einmal mit Profis

16. August 2013 3 Kommentare

Fehl http://de.archive.ubuntu.com raring-backports/multiverse i386 Packages
404 Not Found [IP: 192.168.0.1 8182]

Tags: , ,

ZFS unter CentOS

11. August 2013 5 Kommentare

Ich war noch nie ein Freund des LVM von Linux. Mir ist die Syntax viel zu kompliziert und man muss sich trotzdem noch mit Dateisystemen herumschlagen. Andererseits bin ich kein allzu großer Freund von Solaris, aber ZFS eignet sich sehr gut um viele Festplatten zu verwalten warum also nicht ZFS unter Linux? Ich wollte mal schauen ob das mittlerweile funktioniert und das geht so:

Zur Vorbereitung benötigt man ein CentOS 6.x und . Hat man das wird zuerst das Repo installiert:

yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-2.el6.noarch.rpm

Dann die benötigten Sachen zum Kernel bauen:
yum update
yum install dkms gcc make kernel-devel perl

Dies sollte man auf x86_64 machen, sonst bauen die Kernel-Module nicht:
ln -s /usr/lib64/dkms/ /usr/lib/dkms

ZFS installieren nicht vergessen:
yum install spl zfs

Und vor dem Reboot dafür sorgen das es aktiviert wird:
chkconfig zfs on

Danach kurz testen ob es funktioniert:

server:~# zpool status
no pools available

Wer sich weitergehend mit ZFS auseinandersetzen will, dem sei der ZFS Best Practices Guide angeraten.

Am Ende kann es dann so aussehen:

server:~# zpool status
pool: zfs-data
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zfs-data ONLINE 0 0 0
sdd ONLINE 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdg ONLINE 0 0 0
sdh ONLINE 0 0 0
sdi ONLINE 0 0 0
sdm ONLINE 0 0 0
sdn ONLINE 0 0 0
sdo ONLINE 0 0 0
sdq ONLINE 0 0 0
sdr ONLINE 0 0 0
sds ONLINE 0 0 0
errors: No known data errors
server:~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfs-data 388K 2.38T 31K /zfs-data
zfs-data/compressed 194K 2.38T 194K /zfs-data/compressed

Ich könnte mir gut vorstellen später auf meinem Heimserver das Root-Dateisystem auf einer SSD zu haben und die Daten auf einem großen ZFS-Volume, mal gucken wie stabil das ist.

Tags: , ,

Howto install Puppet, Dashboard, Passenger, ActiveMQ and MCollective entirely from Repos on CentOS 6

19. Oktober 2012 1 Kommentar

Since first using Linux I’m a big fan of honoring the given package-manager like dpkg or rpm, because of not doing so there will always be a point where you get in trouble when updating your installation. So it bothered me when seeing puppet installations messing up the system with downloads of random stuff and pasting it all over the filesystem. So I tried to figure out a way of only using software from repos and here is the result. Beware this will be a very lengthy post.

Mehr…

OpenElec auf dem Raspberry Pi

15. August 2012 Kommentare ausgeschaltet

Nachdem ich meinen Raspberry Pi nun schon eine Weile im Einsatz habe, wollte ich meine Erfahrungen im Zusammenhang mit OpenElec hier loswerden.

Voraussetzungen

Natürlich benötigt man einen Raspberry Pi, dann ein Gehäuse (Bilder von meinem hier). Sehr wichtig ist ein gutes Netzteil. Ich habe oft gelesen man benötige mindestens 1A, da die 5V immer (auch mit angeschlossener Tastatur und anderen USB-Equipment) gehalten werden müsse. Bei mir läuft ohne Problem ein 300mA Netzteil, welches ich zusammen mit dem Pi bei RS-Components bestellt hatte. Es kommt also, wie so oft, auf die Qualität an.

Systeminfo des Raspberry Pi mit OpenElec

Als nächstes wäre eine SD-Karte wichtig. Da ich nie vor hatte viele Daten auf dem Pi selbst zu speichern ist aus meiner Sicht eine 4GB Class 6 die beste Wahl. Man sollte aber vorsichtig sein, da nicht alle Karten im Pi funktionieren.

Den späteren Betrieb erleichtert ein sauber aufgesetztes Avahi/Zeroconf, um Rescourcen sicher zu erkennen.

Installation

Zunächst einmal muss man sich vor Augen führen, dass OpenElec sich zwar Distribution nennt, aber von der Ausführung eher mit einer Embedded-Firmware zu vergleichen ist. Das merkt man beim später beschriebenen Update, den Pfaden, als auch an dem Umstand, dass es keinen Paket-Manager gibt über den man umfangreich Software nachinstallieren kann. OpenElec bringt eine gewisse Grundinstallation mit um XBMC sinnvoll zu betreiben und das war es dann auch.

Die Installation ist im Wiki beschrieben und besteht grob aus dem Herunterladen des Images und aufspielen per Script. Danach ist die Karte fertig zum Booten und wenn es dann soweit ist wird beim Starten auch gleich die Firmware der Pi upgedatet. Letztlich lächelt der Standard-Bildschirm von XBMC aus dem Fernseher.

Die Konfiguration-Möglichkeiten sind als Plugin innerhalb von XMBC abgebildet und beschränken sich auf Netzwerk-Themen.

Einstellungsmöglichkeiten von OpenElec

Fernbedienung

Vor der Erstinstallation hatte ich mir eine Fernbedienung mit IR-Empfänger zurechtgelegt, die ich schon lange herumliegen hatte. Sie meldet sich als Jess-Link mit der USB-ID 0766:0204 und ist sehr gut unterstützt. Letztlich benötigt man aber keine zusätzliche Fernbedienung, wenn der Fernseher HDMI-CEC unterstützt. Diese Unterstützung ist für meinen Samsung-TV sehr vollständig, kann aber bei anderen Herstellern variieren.

Tuning

Generell ist der Pi XBMC gewachsen. Das Abspielen von MPEG4-Inhalten stellt überhaupt kein Problem für ihn dar, auf der Konsole merkt man keinerlei Unterschied zum normalen Betrieb. Was dem kleinen Kästchen zu schaffen macht ist das Verarbeiten von Daten, also Scraper, Menüs anzeigen und dergleichen.

An OpenElec an sich gibt es keine ersichtlichen Möglichkeiten etwas zu drehen, bleibt also nur XBMC. Generell sollte man „Arbeiten“ auf der SD-Karte möglichst vermeiden und alles was möglich ist ins Netz auslagern. Bei mir liegen Bild-Material und die Metadaten dazu auf meinem Heimserver, der dies via NFS und MySQL erledigt. Letztlich kann man noch RSS in XBMC abschalten und das GUI-Timing ein wenig verändern, damit die Eingaben etwas prompter kommen. Zusammen sieht es dann so in /storage/.xbmc/userdata/advancedsettings.xml aus.

Updates

Hierzu kann man dieses Script nutzen, welches allerdings nicht auf die Original-Images von sources.openelec.tv zurückgreift. Wenn man das nicht möchte kann man sich das Script anpassen. Wichtig: /storage/.update muss vorher vorhanden sein, sonst funktioniert das Script nicht.

 

Fazit

Generell bin ich recht zufrieden. Ok, es legt manchmal eine Gedenkminute ein, aber das ist zu verkraften. Was mich am meisten stört ist das Fehlen von MPEG2. Die Hardware kann es, es ist nur eine Frage der Lizenz zwischen Broadcom und der Raspberry Pi-Foundation. Vielleicht tut sich hier durch den überwältigen Erfolg der kleinen Box noch etwas, weil ich dann meine Dreambox besser integrieren könnte. Nicht alles ist heutzutage in HD, nicht immer muss es HD sein und so ist SD keine Option. Schade.

Gut wiederum ist der Stromverbrauch: 4 Watt. Egal ob Decodierung, Idle oder Standby – immer 4 Watt.

Ausblick
Als nächstes werde ich mir Raspbmc anschauen. XBMC auf raspian Basis. Da hat man dann eine komplette Distri drunter, die nicht nur XBMC kann.

Update: Mittlerweile kann man im Raspberry Pi Shop MPEG2-Lizenzen kaufen.

Spamassassin optimieren – Jahre später

27. Dezember 2011 Kommentare ausgeschaltet

Ich bin gerade dabei ein paar alte Zöpfe abzuschneiden, dazu gehört für mich auch mein Spamfilter-Setup zu entrümpeln. Durch neuere Spamassassin-Versionen haben sich viele Konfigurationen überlebt, werden nicht weitergeführt bzw. sind in Spammassassin aufgegangen wie z.B. das Rules Emporium – SARE.

Ganz besonders die externen Regelwerke sind doch deutlich geschrumpft und somit auch die Konfiguration von /etc/spamassassin/sare-sa-update-channels.txt

updates.spamassassin.org
khop-bl.sa.khopesh.com
khop-blessed.sa.khopesh.com
khop-dynamic.sa.khopesh.com
khop-general.sa.khopesh.com
khop-sc-neighbors.sa.khopesh.com
sought.rules.yerp.org

Die khop-Kanäle stammen übrigens von Adam Katz, der auch noch andere sinnvolle Tipps hat.

Die benötigten Keys zur Validierung in /etc/spamassassin/sa-update-keys.txt

856AA88A
6C6191E3
E8B493D6

und deren Installation:

wget -qO - http://khopesh.com/sa/GPG.KEY http://yerp.org/rules/GPG.KEY \
http://daryl.dostech.ca/sa-update/sare/GPG.KEY |sudo sa-update --import -

Der Aufruf für das Update sieht dann so aus:

/usr/bin/sa-update -D --channelfile /etc/spamassassin/sare-sa-update-channels.txt --gpgkeyfile /etc/spamassassin/sa-update-keys.txt

Das war es eigentlich auch schon. Ein paar Punkte bringen dann noch DNSBLs wie ixHash und/oder inps und das deutschsprachige Regelwerk ZMI_german. Leider gibt es hierfür zur Zeit kein automatisches Update mehr, der Autor möchte aber anscheinend einen eigenen Update-Channel einrichten.

Die eigene Cloud mit Owncloud

22. Dezember 2011 4 Kommentare

So richtig spannend, was Neues anging, gab es für mich in den letzten Jahren nicht. Es waren eigentlich immer die gleichen Themen, die einen als Sysadmin beschäftigen und da gilt dann irgendwann ‚been there, done that‘. Vieles ist heute zur Selbstverständlichkeit und damit viel einfacher geworden.

Spannend war eigentlich nur das Thema Cloud-Computing, dies ist aber mittlerweile ein Buzzword für das Bullshit-Bingo geworden. Allerdings ist man in diesen Bereich meistens als Außenstehender Beobachter unterwegs, da der Markt von großen Anbietern wie Amazon und Google beherrscht wird. Dies hat den riesigen Nachteil, das man sich an diesen Anbieter sehr stark bindet. Ein Auflösen dieses Bundes kann jedwede Einsparung, die man vorher vielleicht hatte wieder zunichte machen. Ein anderer Punkt ist, das man als Anbieter schnell sein Alleinstellungsmerkmal verlieren kann, da Cloud-Dienste eine starke Standardisierung erfordern. Wenn aber alle gleich arbeiten, weil sie sich den Prozessen & APIs der Anbieter unterwerfen ist man selbst kaum Unterscheidbar von anderen im Markt und damit austauschbar. Lange Rede, kurzer Sinn: Cloud-Computing stellt andere Herausforderungen und man sollte sich damit auseinandersetzen.

Nun kann man gucken was Google, Amazon oder vielleicht Joyent so machen oder einfach selbst eine ‚Coud‘ installieren und hierfür gibt es die Owncloud. Als PHP-Anwendung ist es recht einfach zu installieren. Ich habe einen lighttpd am Start und hier war es nur auspacken, Rechte richtig setzten und gut. Bei der Installation kann man zwischen einer mitgebrachten oder einer Mysql-Datenbank wählen und dann ist man auch schon durch.

Owncloud bringt eine eigene Benutzerverwaltung mit, die das Anlegen von Gruppen und festlegen von Quotas ermöglicht, der Benutzer selbst kann Ordner anlegen und Dateien anderen Gruppen oder der Öffentlichkeit freigeben. Diese Strukturen bilden sich später ohne jedwede Verschlüsselung im Datei-System ab, das sollte jedem klar sein, der Owncloud verwendet.

Als Benutzer stehen eine Dateinablage, Musik abspielen im Browser sowie Kalender, Kontakte und Bookmarks zur Verfügung.

Der Zugriff erfolgt entweder komplett über den Browser oder über die zur Verfügung gestellten Dienste, dies wären Webdav, Caldav und Carddav – eine rudimentäre Beschreibung gibt es auf der Webseite von Owncloud. Anmerkung: Thunderbird selbst kann kein Carddav.

Apps oder Clients gibt es zur Zeit noch nicht. Ich glaube aber das sich hier noch viel tun wird, denn mittlerweile gibt es schon eine Firma die sich um Owncloud kümmert und es werden sich bestimmt viele Leute finden, die das Thema Owncloud so spannend finden wie ich und zum Wachsen dieses Ökosystems beitragen werden.

Etwas mit Android sollte es sein

23. Juli 2011 1 Kommentar

Seit längeren war ich auf der Suche nach einen Nachfolger für mein Google G1 Smartphone. Es hat mir immer gute Dienste geleistet und mit Cyanogen-Mod ist es durchaus noch benutzbar, trotzdem wird es gefühlt immer langsamer. Auf dem ausrangierten G1 von Meike habe ich Superbler V4 testweise drauf, aber mehr als eine kurzfristige Lebensverlängerung ist es nicht.

Auf der Suche nach etwas Neuem waren mir zwei Dinge immer wichtig: ich bin kein Telefonierer, daher sollte es eher ein Tablet sein und mobil sollte man es verwenden können. Die Fragen ob nun 10- oder 7-Zoll hat mich lange beschäftigt. Vor kurzem habe ich dann zugeschlagen und das Cat Stargate 7-Zoll Tablet besorgt. Für knapp 160 Euro kann man nicht viel falsch machen sagte ich mir und eigentlich war es auch so. Das Gerät war schnell genug, hatte den offiziellen Google Market, Android 2.3.3 und das Display war, was Auflösung und Touch-Feeling anging, in Ordnung. Letztlich habe ich es aber zurückgegeben, weil man die Schutzhülle tunlichst nicht vom Display nehmen sollte, denn nach Glas fühlte sich das Display nicht an, eher nach Plastik. Schlußpunkt war für mich, dass das Gerät manchmal aus dem Standby nicht richtig aufwachte. Fazit: für das Geld eine gute Wahl, aber nicht das was ich wollte.

Damit war für mich die Suche nicht zu Ende, aber mir war klar, dass 7-Zoll der richtige Formfaktor war. Bei Freunden hatte ich bereits iPad und iPad2 gesehen, die mir auf Dauer zu groß und unhandlich erschienen. Nach langen hin und her ist es nun ein Dell Streak 7 geworden. Das Gorilla-Glas ist beruhigend, die CPU macht alles sehr fix und die Verarbeitung ist sehr sauber. Überflüssig ist die Dell-eigene Oberfläche, es wird auf Dauer etwas schwer und das Zubehör ist irrwitzig teuer.

Zum Schluß noch eine Kritik für die kein Tablet etwas kann: Tablets sind der feuchte Traum der Unterhaltungs-Industrie, weil es die Couch-Potatoes wieder an die Couch bindet. Es ist ein Gerät zum passiven Konsum, wie ein Fernseher der Neuzeit. Es berieselt, es unterhält, aber selbst etwas damit auf die Beine stellen ist, im Gegensatz zu einen PC oder Notebook, kaum möglich.

Tags: ,

IPv6 für Zuhause – es wird spannend

10. Mai 2011 2 Kommentare

Das IPv4-Adressen zu Ende gehen brauche ich wohl niemanden zu erzählen. IPv6 ist die Zukunft. Tunnel-Broker, Privacy-Extensions – been there, done that. Zukünftig werden IPv6-Netze vergeben, das wie wird sich von Provider zu Provider unterscheiden. Das große T und Vodafone haben aufgrund von Datenschutzbedenken angekündigt auch weiterhin dynamische Adressen zu vergeben, wie auch immer das aussehen mag.

Spannend wird es für jeden mit kleinem Heimnetzwerk. Im Moment ist die Welt noch in Ordnung, denn man hat RFC1918-Adressen und NAT am Start. Private Adressen gibt es auch bei IPv6, aber kein NAT. Bekommt man ein Netz ist es nicht das Problem, aber was wenn es nur eine einzelne Adresse wird? Dies würde zu einer Auferstehung von Proxy-Diensten aller Art führen. Selbst wenn man ein Netz bekommt würde es sich regelmäßig ändern, was ständige Adressänderungen im Netz nach sich ziehen würde. Die Frage wäre dann wie erreiche ich morgen meinen Server?

Letzteres sehe ich als kleinstes Übel an. IPv6-Adressen sind aber so lang, dass man sie sich schlecht merken kann, daher wird sich der Umgang damit ändern. Sie werden natürlich da sein, aber um sich im lokalem Netz zu orientieren wird Service-Discovery die führende Rolle einnehmen. Also Dinge wie Zeroconf, Avahi, uPNP und das allseits beliebte NetBEUI.

Damit löst man sich von Adressen und bewegt hin zu Diensten im Netz, was auf der Console so aussieht

$ avahi-browse --all
+   eth0 IPv4 floyd                           Remote Disk Management local
+   eth0 IPv4 Download-Verzeichnis               Network File System  local
+   eth0 IPv4 MPD on statler                        Music Player Daemon  local
+   eth0 IPv4 statler                                   IMAP Mail Access     local
+   eth0 IPv4 statler                                   SSH-Fernzugriff      local
+   eth0 IPv4 dm500hd                                SSH-Fernzugriff      local
+   eth0 IPv4 SFTP File Transfer on statler      SFTP File Transfer   local
+   eth0 IPv4 SFTP File Transfer on dm500hd   SFTP File Transfer   local
+   eth0 IPv4 statler                                   Arbeitsplatzrechner  local
+   eth0 IPv4 dm500hd                                Arbeitsplatzrechner  local
+   eth0 IPv4 piggy                                     Arbeitsplatzrechner  local
+   eth0 IPv4 floyd                                     Arbeitsplatzrechner  local

und ( im Zusammenspiel mit dem richtigen Linux) für schöne Dinge wie Hostname Tab-Completion sorgt. Einmal eingerichtet und daran gewöhnt, eine schöne Sache wie ich finde.

Tags: , ,

Wie RTMP-Streams überwachen?

18. April 2011 8 Kommentare

Dear Lazyweb,

ich suche eine Möglichkeit ein paar Parameter eines RTMP-Streams zu überwachen, also Dinge wie Frames per Second, Bandbreite und Dropped Frames. Kann mir jemand einen Tipp geben?

Tags: ,