Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Donnerstag
01
Mai 2014
Klaus Moser
Klaus Moser

Ubuntu für SSD optimieren

Solid State Festplatten (SSD) büßen am meißten ihrer Lebensdauer durch Schreibzugriffe ein. Es gibt viele Prozesse und Funktionen bei denen unser Ubuntu Daten auf die Platte schreibt, einige davon laufen in Hintergrund und fallen uns gar nicht so bewusst auf.

Generell ist es sinnvoll für Partitionen auf der SSD den Parameter noatime in der /etc/fstab zu setzen.

/dev/sda1    /    ext4    noatime,errors=remount-ro    0    1

Der Parameter noatime verhindert das setzen des Zeitstempels für den letzten Lesezugriff auf Dateien.

Lese- und Schreibzugriffe

Um herauszufinden wann und was auf unsere Festplatte geschrieben wird, gibt es ein paar Befehle die ganz nützlich sind.

Um z.B. Lese- und Schreibzugriffe auf unsere Platte sehen zu können aktivieren wir das logging dafür mit dem Befehl:

echo 1 >/proc/sys/vm/block_dump

Jetzt kann man mit

tail -f /var/log/syslog

beobachten wann von der Platte gelesen oder auf sie geschrieben wird.

Wir erhalten dabei Ausgaben wie die folgende:

Apr 27 23:03:13 srv1 kernel: [22002.728653] mozStorage #7(4646): WRITE block 11963148 on sda1 (328 sectors)
Apr 27 23:03:13 srv1 kernel: [22002.749616] jbd2/sda1-8(449): WRITE block 94802732 on sda1 (8 sectors)

Wenn wir fertig sind, nicht vergessen das Logging wieder zu deaktivieren. Das geht mit:

echo 0 >/proc/sys/vm/block_dump

Bei mir hat der Prozess jbd2 sehr viele Schreibzugriffe verursacht. Der JBD (journaling block device) ist für ext4 und sitzt zwischen dem System und dem Block Device Treiber.

Verwendung der Swap Partition verringern

Man kann unter Ubuntu einstellen wie stark das System den Swap-Speicher verwenden soll. Den aktuellen Wert der Einstellung kann man ansehen mit:

cat /proc/sys/vm/swappiness

Je niedriger dieser Wert ist um so mehr System Load muss vorhanden sind, bevor das System anfängt den Swap Speicher zu nutzen. Der Standardwert dürfte so bei 60 liegen.

Den Wert kann man anpassen in dem man die Datei /etc/sysctl.conf ändert.

sudo nano /etc/sysctl.conf

An das Ende der Datei folgenden Inhalt einfügen:

# Sharply reduce swap inclination
vm.swappiness=1
# Improve cache management
vm.vfs_cache_pressure=50

Dann den Rechner neu starten und nochmal den Wert ausgeben lassen.

Over-Provisioning

Eine SSD partitioniert man so dass ca. 10-20% unformatierter Speicherplatz auf der Platte übrig bleiben. Das scheint wohl dafür zu sein, um defekte Zellen zu kompensieren. Auch die Schreibgeschwindigkeit soll daudurch positiv beeinflusst werden.

Für die Einrichtung von Over-Provisioning gibt es sogar ein Tool von Samsung, das SSD Magician 3.2.

Logfiles

Da Linux, zum Segen aller Administratoren, recht ausführlich Logfiles schreibt, haben wir natürlich ständig kleine Schreibzugriffe auf unsere Systemfestplatte. Das ist für unsere SSDs natürlich nicht so gut.

Es gibt zwei Möglichkeiten wie wir diese Zugriffe von unserer SSD fernhalten können:

Entweder verwenden wir für die Logfiles einen Flash Speicher, wie z.B. einen alten USB Stick. Das hätte den Vorteil, dass die Logs auch nach einem Neustart noch vorhanden wären, würde aber zum gleichen Problem führen wie wir mit den SSDs schon haben, und zwar dass Schreibvorgänge den Flash-Speicher schnell altern lassen.

Oder man legt die Logs in eine Ramdisk. Das hat den Vorteil, dass wir keinerlei Schreibzugriffe auf persitenten Speichern mehr haben. Der Nachteil ist aber, dass die Logs nach einem Neustart weg sind.

Zuerst einmal können wir prüfen ob wir evtl. ein Logfile haben, in das übermäßig viele Daten geschrieben werden:

ls -hlS /var/log/*log | head

Die Dateien sollten maximal ein paar MB groß sein.

Dann legen wir eine Ramdisk für /var/log an. Dazu legen wir in der Datei /etc/fstab einen neuen Eintrag an:

# Log Dateien
tmpfs /var/log tmpfs defaults,noatime 0 0

Jetzt mal testweise alle Dateien aus /var/log löschen und das Laufwerk mounten.

sudo rm -Rf /var/log/*
sudo mount /var/log

Jetzt werden alle Logdateien in die RAM-Disk geschrieben. Man sollte allerdings beachten dass die Fehleranalyse so bei einem Problem oder Sicherheitsrisiko schwieriger ist.

Logfiles Apache

Läuft auf dem Rechner ein Apache hat man das Problem dass der Apache nicht startet wenn er auf die Logfiles unter /var/log/apache nicht zugreifen kann. Da die Ramdisk aber beim Start leer ist haben wir so ein Problem. Wir brauchen also ein Init-Script, das diese Dateien anlegt, bevor der Apache startet.

sudo nano /etc/init.d/apache2-tmpfs

In die Datei kommt folgender Inhalt:

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          apache2-tmpfs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Required-Start:  
# Required-Stop:   
# Short-Description: Create /var/log/apache2/error.log on tmpfs at startup
# Description:       Create /var/log/apache2/error.log needed by Apache.
### END INIT INFO

#
# main()
#
case "${1:-''}" in
  'start')
   # create the /var/log/apache2/error.log needed by apache
   mkdir /var/log/apache2
   chmod 777 /var/log/apache2
   touch /var/log/apache2/error.log
   chmod 777 /var/log/apache2/error.log
   ;;
  'stop')
   ;;
  'restart')
   ;;
  'reload'|'force-reload')
   ;;
  'status')
   ;;
  *)
   echo "Usage: $SELF start"
   exit 1
   ;;
esac

Das Script noch ausführbar machen

sudo chmod 0755 /etc/init.d/apache2-tmpfs

und das Init-Script dem runlevel hinzufügen. Da der apache am Stellen 91 kommt fügen wir das Script an Stelle 90 ein. In der Beenden Reihenfolge kommt Apache an Stelle 9, also kommt unser Script an Stelle 10.

sudo update-rc.d apache2-tmpfs defaults 90 10

Zum Schluss den Rechner neu starten.

Thanks to Petr Svoboda for this Script (Link).

Temporäres Verzeichnis

Man kann das temporäre Verzeichnis ebenfalls in eine Ramdisk legen. Dazu in der Datei /etc/fstab folgenden Eintrag machen:

tmpfs    /tmp    tmpfs    defaults,noatime,mode=1777    0    0

Weitere Verzeichnisse wären:

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0
tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0
Sonntag
27
April 2014
Klaus Moser
Klaus Moser

HP Data Vault x312 mit Ubuntu 14.04

Nachdem endlich mein Anschlusskabel für die HP Data Vault gekommen ist und ich jetzt einen Tastatur-/Mauseingang sowie einen VGA-Anschluss habe, werde ich heute mal versuchen ein Ubuntu 14.04 zu installieren.

Adapter ist eingebaut, VGA-Monitor, PS/2-Tastatur und eine USB-Maus sind angeschlossen. Als Systemfestplatte ist eine alte 80 GB SATA Festplatte eingebaut, die ich für die ersten Tests mal verwenden möchte. Diese wird gegen eine SSD ausgetauscht, wenn alles so klappt wie ich mir das vorstelle.

Der erste Eindruck nach dem Starten war das die DV ein ganz normaler PC ist, was die DV natürlich gleich noch viel interessanter gemacht hat. Solche Geräte liebe ich, Technik mit Mehrwert durch ein bisschen Bastelei.

Die Installation verlief dementsprechend problemlos. ISO herunterladen und auf DVD brennen. Für die Installation verwende ich ein externes DVD-Laufwerk, welches über USB angeschlossen wird. Als Ubuntu hab ich mir die Xubuntu-Desktop Version ausgesucht, da ich diese auch auf meinen PCs installiert habe und Xubuntu nicht dieses grässliche Unity verwendet.

Also NAS einschalten und ins BIOS gehen. Bootreihenfolge so angepasst, so dass von DVD gebootet werden kann. Noch ein paar weitere Anpassungen vorgenommen und das Gerät wieder neu gestartet.

Die Installation lief exakt so wie auf einem x-beliebigen PC. Es gab nichts besonderes zu beachten. Nachdem die Installation fertig war nochmal neu gestartet und fertig war die Installation des Grundsystems.

Pakete

Folgende Pakete würde ich gerne auf dem Ubuntu Homeserver installieren:

Für Filesharing und Multimedia:

  • Samba
  • DLNA Server

Für den Webserver:

  • Apache2
  • MySQL
  • PHP5

Für den Mailserver:

  • Postfix
  • Dovecot
  • fetchmail

Für die Entwicklung

  • git
  • gitLab

Für die Authentifikation

  • OpenLDAP

Für den Remote Desktop 

  •  VNC, Teamviewer oder RDP

Cloud-Dienst

  • OwnCloud

Weitere Pakete:

  • OpenSSH

Ich werde die Installation der Pakete in separaten Blog-Beiträgen behandeln, da ich dafür bestimmt eine Weile brauchen werde und noch viele Manuals lesen muss.

Der nächste Blogeintrag wird sich aber erst mal damit beschäftigen, die Ubuntu Installation für eine SSD fit zu machen, da ich gerne das System auf einer SSD Platte hätte. Ich hoffe so ein paar Watt zu sparen und den Desktop, den ich gerne Remote nutzen möchte etwas zu beschleunigen.

 

Pakete

Folgende Pakete würde ich gerne auf dem Ubuntu Homeserver installieren:

Für Filesharing und Multimedia:

  • Samba
  • ReadyMedia (minidlna)

Für den Webserver:

  • Apache2
  • MySQL
  • PHP5

Für den Mailserver:

  • Postfix
  • Dovecot
  • fetchmail

Für die Entwicklung

  • git
  • gitLab

Für die Authentifikation

  • OpenLDAP

Weitere Pakete:

  • OpenSSH

Ich werde die Installation der Pakete in separaten Blog-Beiträgen behandeln, da ich dafür bestimmt eine Weile brauchen werde und noch viele Manuals lesen muss.

Der nächste Blogeintrag wird sich aber erst mal damit beschäftigen, die Ubuntu Installation für eine SSD fit zu machen, da ich gerne das System auf einer SSD Platte hätte. Ich hoffe so ein paar Watt zu sparen und den Desktop, den ich gerne Remote nutzen möchte etwas zu beschleunigen.

Montag
21
April 2014
Klaus Moser
Klaus Moser

HP Data Vault x312

Habe heute von einem netten Kollegen seine alte NAS geschenkt bekommen. Es handelt sich dabei um ein Data Vault x312 von HP. Ich suche schon seit längerem eine Alternative zu meiner NAS QNAP TS-119, da deren Rechenleistung doch stark beschränkt ist. Ausserdem habe mich aber ein bisschen vor den Kosten gescheut,

Die Data Vault würde mit seinem ATOM Prozessor und 2 GB RAM wesentlich mehr Reserven bieten. Leider ist die NAS als Home Server für Windows gedacht. Für mich kommt allerdings als Serversystem nur Linux in Frage und nach etwas Recherche habe ich im Internet ein paar Beiträge gefunden wonach sich auf dem Gerät auch Linux installieren lassen soll.

Die Installation ist allerdings nicht ganz einfach, da man ja keinen Monitoranschluß hat und nicht sehen kann was man gerade macht, bzw. an welcher Stelle man sich gerade im Bootvorgang befindet.

Aber erst mal ein paar technische Daten:

Prozessor Intel Atom D510 Dual Core (1,6 GHz)
Hauptspeicher 2 GB PC2-6400 ungepuffert, DDR2 800 MHz (max. 4GB)
Chipsatz NH82801
Festplatteneinschübe 4x 3.5" Serial ATA-300
LAN-Anschlüsse 1x Gigabit
USB-Anschlüsse 4x USB 2.0
eSATA-Anschlüsse 1x
Abmessungen (H x B x T) 24,6 x 13,9 x 25,3 cm
Leistungsaufnahme 40 Watt

Gehäuse öffnen

Die erste echte Herausforderung war das Gehäuse überhaupt mal zu öffnen. Am gesamten Gehäuse sind nämlich keinerlei Schrauben zu sehen.

Zu allererst, versucht nicht die Seitenteile abzunehmen, das geht zwar ist aber völlig unnötig, da dahinter nur Blechwände sind.

Um an das Innenleben des Data Vault x312 zu gelangen muss man erst mal alle Laufwerksträger ausbauen. Dann kann man oben im Deckel einen Zapfen erkennen, der das Gehäuse geschlossen hält. Diesen muss man nach oben drücken und irgendwann kann man dann den Deckel nach vorne abziehen.

Hat man den Deckel ab, zieht man im hinteren Teil der NAS an der Platine mit den Ports für die Laufwerke den Stecker für den Lüfter ab und löst die Schrauben der beiden blauen Halter. Dann kann man die Platine nach oben herausziehen.

Als nächstes macht man vorne die Tür auf und entfernt die beiden kleinen Schrauben auf der rechten Seite des Gitterblechs an dem auch die Status-LEDs hängen. Dann vorsichtig das Kabel für die LEDs entfernen.

Als letztes sind im unteren Teil zwei silberne Schrauben, die man entfernen muss. Jetzt kann man den Rechner-Teil der NAS nach vorne aus dem Gehäuse ziehen.

VGA-Anschluss

Um also erst mal etwas sehen zu können benötigen wir einen Monitoranschluss. Glücklicherweise gibt es auf dem Mainboard einen Connector auf dem wir das VGA Signal abgreifen können. Bei meiner Recherche bin ich auf eine super Anleitung gestoßen.

Pin-Belegung der Pfostenleiste CN5

Die Pin-Belegung des Connectors auf dem Mainboard des Data Vault. Markiert sind nur die Pins, die für das VGA-Signal relevant sind, die restlichen Pins lassen wir vorerst mal ausser Acht. Siehe auch mediasmartserver.net.

26 24 22 20 18 16 14 12 10 8 6 4 2
Masse Blau Masse Grün Masse Rot
25 23 21 19 17 15 13 11 9 7 5 3 1
+5V HSync Masse VSync Masse DDC Clock DDC Data

VGA PIN Belegung

Die Pin-Belegung der 15 PIN D-Sub VGA Buchse (female) an der Grafikkarte. Siehe auch pinouts.ru.

5 4 3 2 1
Masse Blau Grün Rot
10 9 8 7 6
Masse Sync +5V Masse Blau Masse Grün Masse Rot
15 14 13 12 11
DDC Clock VSync HSync DDC Data

Verdrahtung des Kabels

Das ist von Kabel zu Kabel unterschiedlich. Diese Farbkodierung gilt für mein Kabel. Dies muss jeder für sein Kabel selber durchmessen.

VGA-Pin Name Kabel CN5 Pin
1 Rot rot Koax Seele --> 14
2 Grün grün Koax Seele --> 18
3 Blau blau Koax Seele --> 22
5 Masse Geflecht + transparent Mantel Koax Mantel --> 17
6 Masse Rot rot Mantel Koax Mantel --> 16
7 Masse Grün grün Mantel Koax Mantel --> 20
8 Masse Blau blau Mantel Koax Mantel --> 24
9 +5V lila --> 25
10 Masse Sync schwarz --> 21
12 DDC Data rot --> 9
13 HSync transparent Koax Seele --> 23
14 VSync weiß --> 19
15 DDC Clock gelb --> 11

PS/2 Tastatur

Um in das BIOS zu gelangen braucht es eine PS/2 Tastatur.

26 24 22 20 18 16 14 12 10 8 6 4 2
VCC
25 23 21 19 17 15 13 11 9 7 5 3 1
Clock Masse Data

Fertiges Debug Board

Habe gerade einen Anbieter gefunden, der eine komplette Platine zum Anschluss an den Debug Port anbietet:

http://www.mediasmartserver.net/forums/viewtopic.php?t=8066

Dieses kostet 100$ zzgl. 28$ Versand.

Eine einfachere Variante kann man über eBay beziehen. Dieses Adapterkabel kostet 32 Eur und kommt aus Deutschland.

Es handelt sich anders als bei dem VoV Tech Adpter nur um ein Kabel ohne zusätzliche Elektronik. Durch die geringen Ausmaße kann man die Buchsen möglicherweise in dem Schacht neben der Rechnereinheit des DV verstecken. Hab mir direkt mal ein Exemplar bestellt.

Bezugsquellen für den Stecker

Wer den Adapter gerne selber bauen möchte, für den habe ich hier noch einen Shop entdeckt, bei dem man den Stecker für das Mainboard, bzw. dessen Einzelteile bestellen kann:

Housing:
http://www.digikey.com/product-detail/en/DF11-26DS-2C/H2261-ND/255925http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=H2261-ND

Pins:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=H1504-ND

Blog

Kmoser's Tech-Blog