Tag Archives: Ubuntu

Verschlüsseltes LVM vergrößern

Vorletzte Woche habe ich doch tatsächlich bei der Daten-Partition meines Fileservers die 90% Kapazitätsmarke erreicht. Nun stand eine Vergrößerung des Dateisystems an. Die Besonderheit dabei war, dass es sich um eine verschlüsselte Partition auf einer “Logical Volume” handelte. Dennoch ging die Vergrößerung mit nur wenigen Handgriffen ohne Probleme über die Bühne:

Partition unmounten und Verschlüsselung schließen:

# sudo umount /home/fileserver
# sudo cryptsetup luksClose fileserver

LVM vergrößern (hier um 512GB):

# sudo lvresize /dev/data/fs_crypt -L +512G

Verschlüsselung wieder aktiveren:

# sudo cryptsetup luksOpen /dev/data/fs_crypt fileserver

Dateisystemcheck durchführen (sonst beschwert sich resize2fs):

# sudo e2fsck -f /dev/mapper/fileserver

Schließlich Dateisystem auf dem verschlüsseltem Device vergrößern:

# sudo resize2fs /dev/mapper/fileserver

Mal sehen, wie lange das jetzt hält :)

Festplatten in Standby fahren

Um Strom zu sparen, lassen sich Festplatten nach einer bestimmten Zeit der Inaktivität automatisch herunterfahren. Das kann vor allem bei Heim-Servern, die mit mehreren (vielleicht noch älteren, nicht stromsparenden) Festplatten ausgestattet sind und auf die nur bei Bedarf zugegriffen werden, einiges an Strom und Geld sparen. Bisherige Festplatten (IDE, aber auch SATA) haben hierfür den “IDE idle timer” unterstützt, den man mit hdparm wie folgt setzen kann:

hdparm -S Zeitangabe /dev/sdX

Nach Ablauf der Zeitangabe (siehe Manpage, je nach Höhe ein Vielfaches von Sekunden oder Minuten) wird die Festplatte, wenn in dieser Zeit kein Zugriff erfolgt ist, heruntergefahren und automatisch wieder hochgefahren, wenn wieder darauf zugegriffen wird.

Leider unterstützten diese Funktion einige, neuere Festplatten nicht mehr. Daher muss der Inaktivitäts-Timer als Software realisiert und die Festplatte nach Ablauf der Zeit manuell heruntergefahren werden. Eine solche Implementierung ist hd-idle, die sich unter Ubuntu/Debian recht einfach einrichten lässt. Der Ubuntu-Homeserver-Artikel wurde hierfür um ein neues Kapitel erweitert, welches die Einrichtung von hd-idle kurz erläutert.

Undervolting mit Ubuntu

Mit Hilfe von Undervolting, dem gezielten Herabsetzen der Core-Spannung der CPU, lässt sich der Stromverbrauch und die Erwärmung der CPU senken. Im Gegensatz zum Underclocking, bei dem der CPU-Takt heruntergesetzt wird, bleibt beim Undervolting der CPU-Takt und damit die volle CPU-Leistung erhalten, sprich weniger Stromverbrauch und Abwärme bei gleicher Leistung. Da bei diesem Verfahren ähnlich wie beim Overclocking Fertigungstoleranzen der CPU ausgenutzt werden, lassen sich CPUs unterschiedlich “gut” undervolten.

Die CPU-Spannung lässt sich zum einen im BIOS einiger Mainboardhersteller herabsetzen oder auch per Software während des Betriebs. Unter Linux existiert das Linux-PHC Projekt.

Für Ubuntu steht in einem externen Repository der aktuelle Ubuntu-Linux-Kernel 2.6.28.11 mit den entsprechenden Linux-PHC-Patches zur Verfügung. Die Installation und die Verwendung mit einem Intel E5200 Dual-Core CPU und dem Intel DG45FC Mainboard ist im Wiki beschrieben.

Mit Hilfe von Undervolting konnte bei 100%iger CPU-Auslastung der erwähnten Systemkonfiguration 11 Watt eingespart werden. Leider limitiert das Intel DG45FC Mainboard das Undervolting. Bei anderen Mainboards sind weitere Einsparungen und diese auch im Idle möglich.

Bei dieser Gelegenheit habe ich den Stromverbrauch meines Mini-ITX-Systems in verschiedenen Konfigurationen getestet. Hier die interessantesten Ergebnisse:

  • Ausgeschaltet mit GBe Link: 1.4W
  • Idle nur mit 2.5″ Systemplatte: 35W
  • Volllast nur mit 2.5″ Systemplatte: 51W (ohne Undervolting: 62W)
  • 4x 1TB WD10EADS Idle im IntelliPark: +10W
  • 4x 1TB WD10EADS Idle ohne IntelliPark: +16W
  • 2x2GB statt 1x2GB RAM: +1.5W
  • Idle ohne GBe Link: -1.2W

Der Idle-Wert von 35W schlägt sich im Vergleich zu aktuellen Dual-Core Atom-Systemen mit 25W (bis 35W je nach Ausstattung) recht gut. Dabei steht bei Bedarf wesentlich mehr CPU-Leistung als mit einem Atom-CPU zur Verfügung. Möchte man z.B. hohe IO-Raten mit Verschlüsselung erreichen kann es mit einem Atom-System eng werden (siehe dazu Performance-Einbrüche beim Zugriff auf verschlüsselte Daten auf NAS-Geräte mit Atom-CPUs).

Weitere Ergebnisse und Stromkostenberechnungen finden sich im Wiki.

Media-Streaming-Server firefly

Möchte man von mehreren Systemen auf eine zentrale Musik-Bibliothek zugreifen, bietet sich der Betrieb eines Media-Streaming-Servers an. Alle Musikdateien liegen dabei zentral auf dem Server und werden per Netzwerk an beliebige Clients gestreamt. Clients können dabei PCs mit Windows- oder Linux, Macs aber auch Hardware-Geräte sein. Firefly ist solch ein Open-Source Media-Server, der viele Streaming-Clients, u.a. auch ITunes unterstützt. Er ist unter Ubuntu schnell installiert und eingerichtet, macht jedoch unter der aktuellen Ubuntu 64Bit Version 9.04 Probleme. Wie man eine angepasste Version von Firefly installiert und einrichtet, ist im UbuntuHomeserver-Wikidokument beschrieben.

Time Machine & AFP mit Ubuntu

Heute berichte ich über die zentrale (und verschlüsselte) Datensicherung von Macs per Time Machine auf einem Ubuntu Linux-Server. Hierzu werden die Dienste Bonjour (Apples Implementierung von Zeroconf) und AFP (Apple Filing Protocoll) benötigt, damit die zu sichernden Macs den entfernten File-Server automatisch finden (Bonjour) und dort Daten ablegen können (AFP). Unter Linux steht mit dem Software-Paket netatalk eine Kernel-basierte Implementierung der AppleTalk Protokoll-Familie, darunter auch AFP, bereit. Leider ist aus Lizenzgründen unter Ubuntu nur ein netaltalk-Paket ohne verschlüsselter Authentifizierung verfügbar. Es muss daher mittels des Sourcecodes installiert werden (Anleitung im Wiki). Als Zeroconf-Implementierung (Bonjour-Ersatz) kommt unter Linux avahi zum Einsatz, dessen Einrichtung unter Ubuntu reibungslos verläuft. Im letzten Schritt steht die Konfiguration von Time Machine unter Mac OS X an. Da unter Linux keine stabile Implementierung für das Apple-Dateisystem HFS+ existiert, müssen alle Backups in ein Apple SparseBundle-Imagefile ablegt werden, welches wiederum per AFP freigegeben wird. Auch hierzu eine kurze Anleitung im Wiki, wie ein solches Imagefile erstellt wird.

Ich kann zwar noch nicht mit Langzeittests dienen, jedoch laufen die Time Machine Backups bisher sehr zuverlässig und reibungslos. Time Machine mounted automatisch die AFP-Freigabe auf dem Ubuntu-Server und das darin befindliche Image vor dem Backup und unmounted es nach Gebrauch wieder. Ist der Server nicht erreichbar, schlägt das Backup zwar fehl, funktioniert nach dem Einschalten des Servers dann aber wieder ohne Probleme und ohne manuellem Eingriff. Auch die Backups über WLAN funktionieren bisher gut.

Verschlüsselung mit dm-crypt

Da ich meine Backups verschlüsselt auf meinem File-Server ablegen möchte, habe ich mich heute mit dm-crypt befasst. Als erstes stand die Entscheidung an, welchen Chiffrier-Modus für dm-crypt zum Einsatz kommen soll. Nach einer kurzen Recherche (Wikipedia #1, #2, Gentoo-Wiki) und Performance-Tests zwischen CBC, LRW, XTS und unterschiedlichen AES-Schlüssellängen (siehe Ergebnisse im Wiki) fiel die Wahl auf XTS mit einer Key-Size von 256.

Als nächstes stand die automatische Verschlüsselung der Swap- und Temp-Partitionen mit einem zufälligen Schlüssel und die manuelle Verschlüsselung anderer Datenpartitionen per Passwort an. Da der Server nicht ständig laufen soll, ist die Eingabe des Passworts für die verschlüsselten Backup-Partitionen beim Hochfahren des Systems jedoch sehr unpraktisch. Daher wurde für diese Partitionen zusätzlich ein Keyfile auf einem USB-Stick angelegt, der automatisch beim Hochfahren des Systems ausgelesen wird. Somit steckt man den USB-Stick mit dem Keyfile an den Servern, fährt das System hoch, während die verschlüsselten Partitionen automatisch gemounted werden und kann dann den USB-Stick wieder entfernen. Meines Erachtens eine bequeme und dennoch halbwegs sichere Lösung. Die einzelnen Schritte zur Einrichtung sind im Wiki dokumentiert.

Mini-ITX Raid-Fileserver

Größenvergleich zwischen alten und neuen ServerDiese Woche kamen die letzten Teile für meinen neuen File-/Home-Server, den ich heute Abend mit Norman zusammengebaut habe. Da mich die Größe, das Gewicht und der hohe Stromverbrauch meines alten Servers zu Hause gestört haben, ist es ein stromsparendes Mini-ITX-System geworden (siehe Bild rechts: alter P4-Server mit Wasserkühlung unten, neues Mini-ITX-System oben). In einem Chenbro ES34069 Mini-ITX-Gehäuse mit 4 Hot-Swap SATA Festplatten-Einschüben ist ein Mini-ITX Mainboard DG45FC von Intel verbaut, welches mit 4 SATA- Anschlüssen und Gigabit-Netzwerkanschluss onboard ausgestattet ist. Das Gehäuse ist solide verarbeitet, sieht schick aus und ist wirklich sehr kompakt. Verbaut ist ein Dual-Core Pentium Prozessor mit 2.5Ghz, 2x2GB DDR2-800 RAM, 4 stromsparende 1TB Festplatten von WD, eine kleine 80GB 2.5″ Systemfestplatte und diverse Lüfter zur Kühlung. Weitere Details zur Hardware und Links zu Reviews und Anleitungen sind im Wiki zu finden.

chenbroes34069frontAls Betriebssystem kommt Ubuntu Server 9.04 (Jaunty) zum Einsatz. Die vier großen Festplatten werden per Software in einem RAID5-Verbund betrieben. Im Wiki-Dokument UbuntuHomeserver werde ich sämtliche Konfigurationsschritte festhalten, die ich im Laufe der Einrichtung des Systems durchführen werde. Neben den schon erwähnten Hardware-Infos, ist dort aktuell die Partitionierung, die Liste der installierten Ubuntu-Pakete und kurze Beschreibungen zu Wake-on-Lan und dem Auslesen der Temperatursensoren (CPU und HDDs) dokumentiert.