Category Archives: bits + bytes

Mehr Platz, bitte!

Die kränkelnde Hitachi-Platte läuft noch immer, aber der Platz auf meinem Fileserver wurde so langsam knapp. Prinzipiell bieten sich in so einer Situation zwei Möglichkeiten: Zusätzliche Platten einbauen oder die vorhanden Platten durch größere ersetzen.

Ein Solaris ZFS Pool läßt sich nicht so ohne weiteres um zusätzliche Platten erweitern, ein Reshaping (analog zu mdadm unter Linux) wird nicht unterstützt. Mein ursprünglicher Plan war daher darauf ausgerichtet, regelmäßig größere Platten einzubauen. Auch aus Energieeffizientgründen wäre dies zu bevorzugen, eine geringere Anzahl an Laufwerken braucht weniger Strom. Dagegen spricht, dass Platten jenseits der 2 TB immer noch relativ teuer sind (u.a. den Unwettern in Thailand von letztem Jahr geschuldet). Und ein kleines, entscheidendes Detail hatte ich übersehen: 512-Byte- vs. 4k-Sektoren.

Kleiner Exkurs: Die interne Organisation eines ZFS Pools ist normalerweise an der Sektorgröße der verwendeten Festplatten ausgerichtet, der relevante Parameter heißt „ashift“. Solaris 11 Express bietet keine Möglichkeit, die Sektorgröße zu übersteuern. Bei Platten, die intern mit 4k-Sektoren arbeiten, nach außen aber 512-Byte-Sektoren emulieren, führt dies zu einer suboptimalen Organisation und damit zu verminderter Performance. Dummerweise läßt sich dieser Parameter nachträglich nicht mehr verändern, er wird bei der Erzeugung des Pools festgelegt und bleibt über die komplette Lebensdauer konstant.

Mein Pool (bestehend aus 4 x 2 TB in einem RAIDZ2) war für 4k-Platten nicht geeignet, ich würde die Daten einmal komplett umkopieren müssen. Je größer der Pool, desto unhandlicher wird’s. Nun stand ich vor der Wahl:

  • 4 x 3 TB anschaffen, Daten kopieren und dann 4 x 2 TB übrig haben, oder
  • 4 x 2 TB anschaffen, Pool auf 6 x 2 TB vergrößern (temporär 4 x 2 TB ohne Parity), 2 der alten Platten dafür recyclen und nur 2 Platten übrig haben.

Ich entschied mich für die zweite Variante.

Da mir die SATA-Anschlüsse ausgingen und ich zumindest temporär 10 Laufwerke würde betreiben müssen, mußte auch noch ein neuer Controller her. Hier fiel meine Wahl auf einen IBM ServeRAID M1015, die im Moment günstigste Alternative für einen 8-Port-SAS/SATA-Controller, der mit SATA-Platten >2 TB zurecht kommt und unter Solaris gut läuft. Es handelt sich dabei um einen umgelabelten LSI SAS2008, sobald man die originale LSI-Firmware aufgespielt hat, braucht das gute Stück unter Solaris keine zusätzlichen Treiber.

Soviel zur Hardwareauswahl, über die Einrichtung berichte ich das nächste Mal.

Oh, da stirbt wohl eine Platte… zpool scrub repaired 576K

Mein Solaris-Fileserver läuft nun schon geraume Zeit und verhielt sich relativ unauffällig.

Beim wöchentlichen Routinecheck des ZFS-Pools (mittels zpool scrub) wurden nun schon mehrfach Fehler korrigiert. Beim letzten Lauf schaute das so aus:

$ zpool status tank
  pool: tank
 state: ONLINE
 scan: scrub repaired 576K in 14h19m with 0 errors on Sat Sep  8 16:17:11 2012
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            c0t2d0  ONLINE       0     0     0
            c0t5d0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
            c0t1d0  ONLINE       0     0     0

errors: No known data errors

Zwar nur wenige kB, aber so fängt’s an. Es scheint, als würde sich eine Platte demnächst verabschieden. iostat bestätigt dies (die Spalten „s/w“ und „h/w“ geben die soft-/hard errors seit Systemstart an) und identifiziert c0t2d0 als Übeltäter:

$ iostat -exn c0t2d0 c0t1d0 c0t4d0 c0t5d0
                            extended device statistics       ---- errors --- 
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b s/w h/w trn tot device
   58,4   14,9 4554,7  160,9  0,1  0,7    1,5   10,1   2  12   0   0   0   0 c0t1d0
   60,3   14,9 4554,7  160,9  0,1  0,7    1,4    9,6   2  12  92 505   0 597 c0t2d0
   59,2   14,9 4554,7  160,9  0,1  0,7    1,4    9,8   2  12   0   0   0   0 c0t4d0
   58,5   14,9 4554,6  160,9  0,1  0,7    1,5   10,0   2  12   0   0   0   0 c0t5d0

Im Messages-Log finden sich weitere Hinweise:

$ tail -20 /var/adm/messages
Sep  8 14:15:26 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:15:26 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:15:26 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:15:26 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:15:26 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed
Sep  8 14:15:31 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:15:31 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:15:31 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:15:31 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:15:31 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed
Sep  8 14:16:23 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:16:23 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:16:23 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:16:23 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:16:23 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed
Sep  8 14:55:08 fileserver ahci: [ID 296163 kern.warning] WARNING: ahci0: ahci port 2 has task file error
Sep  8 14:55:08 fileserver ahci: [ID 687168 kern.warning] WARNING: ahci0: ahci port 2 is trying to do error recovery
Sep  8 14:55:08 fileserver ahci: [ID 551337 kern.warning] WARNING: ahci0:       Internal Error (E)
Sep  8 14:55:08 fileserver ahci: [ID 693748 kern.warning] WARNING: ahci0: ahci port 2 task_file_status = 0x4051
Sep  8 14:55:08 fileserver ahci: [ID 657156 kern.warning] WARNING: ahci0: error recovery for port 2 succeed

Die Platte (eine Hitachi 5K3000 2TB mit 3 Jahren Garantie) hat erst 18 Monate auf dem Buckel. Also werde ich in Kürze von meinen Erfahrungen mit dem Hitachi-Service berichten dürfen 😉 Vorher tausche ich aber noch das SATA-Kabel, möglicherweise liegt der Fehler ja hier.

Fehlende Video-Thumbnails unter Ubuntu 12.04

Ubuntu 12.04 nutzt den totem-video-thumbnailer zur Erzeugung von Thumbnails. Das funktioniert i.d.R. auch, allerdings versteht sich Totem scheinbar nicht auf alle Videoformate gleich gut. Bei mir werden z.B. für Dateien im Matroska-(.mkv)-Format keine Vorschaubilder erzeugt.

Glücklicherweise gibt’s ja für alles Alternativen und Schalter. Man muss sie nur finden 😉 Den hilfreichen Tipp habe ich hier gefunden. Kurz zusammengefasst: ffmpegthumbnailer ersetzt totem-video-thumbnailer, gesteuert wird es nicht mehr über die Gnome-Konfiguration, sondern über Dateien in /usr/share/thumbnailers. Wir installieren das fehlende Paket, nehmen den Eintrag von Totem als Vorlage…

sudo apt-get install ffmpegthumbnailer
sudo cp -a /usr/share/thumbnailers/totem.thumbnailer /usr/share/thumbnailers/ffmpeg.thumbnailer

…und passen sie für ffmpeg an. Dazu die folgenden beiden Zeilen ersetzen:

TryExec=/usr/bin/ffmpegthumbnailer
Exec=/usr/bin/ffmpegthumbnailer -s %s -i %i -o %o -c png -f -t 10

Danach kann der Thumbnail-Cache geleert werden:

rm ~/.thumbnails/fail/gnome-thumbnail-factory/*

Wer möchte kann sich nun von Totem trennen. Achtung: Dabei wird auch der Verweis auf den Totem-Thumbnailer unter /usr/share/thumbnailers entfernt. Daher ist es wichtig, die Datei nicht direkt zu bearbeiten, sondern eine Kopie davon zu erstellen und diese anzupassen.

Sonos Controller Update auf 3.6.1b unter WINE

Sonos hat kürzlich ein Sicherheitsupdate für die Systemsoftware herausgegeben. Ich nutze die Controller-Software mittels WINE unter Ubuntu (Technische Details: Ubuntu 10.04 64bit, wine 1.2.2), und da läuft das Update leider nicht so ohne weiteres durch. Der Installer wird zwar runtergeladen und ausgeführt, allerdings scheint er nichts zu tun.

Ärgerliches Detail: Die aktuell angebotene Software-Version trägt den Dateinamen SonosDesktopController361b.exe. Dennoch ist nach deren Installation ein weiteres Update erforderlich, das nicht separat erhältlich ist.

Nach einigen Versuchen hab ich’s wie folgt hinbekommen:

  • Dem Update-Hinweis beim Start der Software folgen und durch die Installation klicken, bis zu dem Dialog an dem die aktualisierte Software gestartet werden soll.
  • Nun in das Temp-Verzeichnis der WINE-Installation wechseln (bei mir ~js/.wine/drive_c/users/js/Temp/). Dort wird es einen oder mehrere Ordner geben, deren Name mit einer geschweiften Klammer beginnt. Der neueste davon enthält das ausgepackte Installationspaket.
  • Aus diesem Verzeichnis die Datei „Sonos Desktop Controller.msi“ rauskopieren, z.B. eine Verzeichnisebene nach oben.
  • Nun den Installationsdialog schließen.
  • Jetzt kann die Installation des .msi-Pakets manuell angestossen werden. Dazu in einem Terminal eingeben: msiexec /a „c:\users\js\temp\Sonos Desktop Controller.msi“ (Pfad ggf. anpassen, je nachdem wohin das Paket zuvor kopiert wurde).
  • Den Anweisungen auf dem Bildschirm folgen; die Installation sollte nun durchlaufen und mit einem erfolgreichen Start des Sonos-Controllers in Version 3.6.1 enden.

MacBook Air 11″ als Desktop-Ersatz

Aufgrund der kleinen Unpässlichkeit meines Desktop-PCs hatte ich die Gelegenheit, meinen MacBook Air als Desktop-Ersatz auszuprobieren.

Bisher war das Gerät überwiegend als mobiler Begleiter im Einsatz und wurde selten mehrere Stunden am Stück genutzt. Das ist in erster Linie dem kleinen Display geschuldet. So praktisch dies aus Sicht der Mobilität sein mag, längeres Arbeiten ist unangenehm für den Nacken, da man den Kopf permanent nach unten neigen muss. Ein Mini-DisplayPort-auf-DVI-Adapterkabel (auf eBay für <10 EUR incl. Versand zu haben) löst das Problem, damit fand mein 24″-LCD Anschluss. Das MacBook habe ich davor positioniert und seine Tastatur und Touchpad normal benutzt.

Was mir dabei gut gefallen hat:

  • Der Monitor wurde direkt erkannt und korrekt angesteuert.
  • Die Flexibilität von MacOS X bei der Anordnung der Bildschime. Ich habe sie übereinander angeordnet, den 24″-LCD oben und das MacBook mittig darunter.
  • Die Menüleiste lässt sich von einem Bildschirm auf den anderen verschieben.
  • Das Touchpad läßt sich sehr gut bedienen. Ich bin eigentlich kein Freund davon und bevorzuge an Notebooks einen IBM-Trackpoint (den kleinen roten Knubbel, gibt’s teilweise auch bei HP). Aber das Mac-Touchpad ist prima, nicht zuletzt wegen den vielen Gesten. Zwei-Finger-Scrollen, zwischen den Desktops wechseln, etc. – wirklich angenehm!

Weniger schön fand ich:

  • Das interne Display läßt sich nicht abschalten, man kann nur die Helligkeit reduzieren und es somit schlafen schicken. Das OS denkt aber immer noch, ihm stünden zwei Bildschirme zur Verfügung.
  • Damit einher geht das zweite Problem: Das Dock befindet sich bei mir am unteren Bildschirmrand. Bedingt durch die Display-Anordnung wird dieser auf dem internen Bildschirm abgebildet, welchen ich aber gerne ausschalten würde. Das Dock kann ich nur an einem der Ränder platzieren, darum habe ich es erst Mal links hingetan. Ich könnte auch nochmal die Anordnung überdenken und das MacBook über den 24″ schieben. Damit wäre der externe Monitor „unten“ und ich könnte das Dock auch dort lassen. Allerdings entspräche dies nicht mehr der physikalischen Anordnung, was bei der tatsächlichen Nutzung beider Displays nachteilig wäre. Hm… Ich bin noch unentschlossen, für den Moment bleibt’s erst Mal so.

Ich bin noch neu in der Mac-Welt und habe mit dem ein oder anderen Keyboard-Shortcut, der Tastenbelegung und generell mit OS X zu kämpfen. Aber ich lerne ja gerne. Das eigentliche Arbeiten an dem Gerät war unproblematisch, die Performance war wirklich gut, all das was ich erledigen wollte hat funktioniert. Insgesamt war’s eine positive Erfahrung.

Dennoch war ich froh, nach einigen Tagen meinen gewohnten Ubuntu-Desktop wieder vor mir zu haben. Home sweet home kann ich da nur sagen 🙂

Neues Netzteil, neues Glück – Desktop-Edition

2011 scheint das Jahr der defekten Netzteile zu sein. Nachdem Mitte des Jahres das Netzteil meines Homeservers den Dienst quittiert hatte, war nun mein Desktop dran.

Die Diagnose gestaltete sich allerdings nicht so eindeutig. Zuerst ist der Rechner spontan neu gestartet, als ich ein Video abspielen wollte. Danach ist er beim Booten entweder hängengeblieben oder von alleine neugestartet, sobald Ubuntu in den Grafikmodus geschaltet hat (sowohl beim Start des installierten Systems als auch beim Test mit einer Installations-Version vom USB-Stick). Ein Speichertest lief 3 Stunden lang problemlos durch und fand keinen Fehler. RAM konnte ich also ausschliessen, CPU wahrscheinlich auch, blieben noch Mainboard und Netzteil.

Passenden Ersatz hatte ich nicht rumliegen, ich musste mich also entscheiden ob ich lediglich kompatible Ersatz-Hardware bestelle oder gleich ein aktuelles Mainboard, was wiederum Folgekosten nach sich zieht (DDR3-RAM statt DDR2, andere CPU). Letztendlich habe ich mich für die „grosse“ Variante entschieden und folgende Komponenten geordert:

Das Netzteil kam zuerst an. Erfreulicherweise hat sein Austausch der Kiste wieder Leben eingehaucht, es funktioniert alles wieder so wie vorher. Nun muss ich mir nur noch überlegen, ob ich die restliche Hardware auch einbaue oder sie einfach wieder zurückschicke…

iPhone 4S mit iOS 5 im Speed Reading Benchmark

So, nachdem ich mein neues iPhone 4S seit einigen Tagen in den Händen halte, wird’s Zeit für den Speed Reading Benchmark. Vor kurzem hatte ich ja schon das Ergebnis des iPhone 4 gepostet. Wie erwartet schlägt sich das 4S ein gutes Stück besser:

20111016-111357.jpg

Das iPhone 4S nutzt iOS 5 und kommt auf satte 60 FPS. Dabei scheint das Ergebnis durch die Refreshrate (vsync) limitiert zu sein. Die durchschnittliche Zeit pro Frame („Average Draw Duration“) liegt nur bei 9 ms, eigentlich sollten somit gut 110 FPS drin sein. Zum Vergleich: Das iPhone 4 brauchte 25 ms und kam auf dazu passende 40 FPS.

iPhone 4, iOS 5 GM & Speed Reading Benchmark

Zufällig bin ich in einem Forum auf den HTML5-Benchmark von Microsoft gestoßen. Dieser wird gerne genutzt, um die Performance von Windows Phone 7.5 (Mango) zu unterstreichen.

TheNextWeb hat vor einigen Monaten Mango gegen eine Betaversion von iOS 5 gebenchmarkt, dabei kam das iPhone 4 auf 32 FPS, WP7 dagegen auf 25-45 FPS.

Nun hab‘ ich das mal eben bei mir mit der GM-Version ausprobiert. Hier das Ergebnis:

20111007-201138.jpg

Satte 40 FPS! Offenbar hat Apple da noch fleißig optimiert.

Bin schon gespannt wie sich das iPhone 4S schlägt. Mehr dazu nächste Woche 😉

Parallels ist ein schlechter Verlierer

Vor einigen Wochen gab es die Möglichkeit, kostenlos an einen Lizenzschlüssel für Parallels Desktop 7 for Mac zu gelangen. Man musste sich dafür nur auf einem Trainingsportal anmelden und ein paar Fragen richtig beantworten. Als Belohnung erhielt man im Anschluss daran eine Mail mit einem persönlichen Schlüssel. Das Portal war ganz offensichtlich zum Training der eigenen Vertriebsmitarbeiter und nicht für die breite Masse bestimmt. Über diverse Schnäppchenportale hat dies aber dennoch schnell die Runde gemacht. Parallels hat kurz darauf reagiert und den Zugang abgeschaltet, die Keys wurden aber nicht zurückgezogen.

Bis heute. Soeben erreichte mich folgende E-Mail mit dem vielsagenden Thema „Unauthorized Access to Retail Training Portal for Parallels Desktop 7 for Mac“:

Unauthorized Access to Retail Training Portal for Parallels Desktop 7 for Mac

Unauthorized Access to Retail Training Portal for Parallels Desktop 7 for Mac

Darin kündigt man an, den zu Unrecht erhaltenen Key zu deaktivieren, bietet aber gnädigerweise 40% auf die Vollversion der Software an, wenn man selbige bis zum 15. Oktober erwirbt.

Schade Parallels. Ich hätte gedacht, ihr würdet etwas mehr Größe zeigen und das sportlich sehen. Die Lizenzen könntet ihr als Marketingausgaben abschreiben und von der positiven Mundpropaganda profitieren, die euch diese unfreiwillige Aktion sicher eingebracht hat. Stattdessen geht ihr auf Konfrontationskurs und verärgert die Nutzer. Warum? Weil ihr’s könnt? Wegen der Aussicht, eine handvoll User zum Kauf der Vollversion motivieren und so noch ein paar EUR einstreichen zu können?

Die Rechnung geht meiner Meinung nach nicht auf, aber vielleicht irre ich mich ja. Ich für meinen Teil werde den Gutschein nicht einlösen und stattdessen wieder VirtualBox nutzen. Oder ich schaue mir VMware Fusion 4 mal aus der Nähe an.

P2V: Windows XP in eine VirtualBox-VM konvertieren

Letzte Woche hatte ich das Vergnügen, den neuen Laptop meines Bruders einzurichten. Bisher war er Windows-Nutzer, nun möchte er sich aber ein wenig mit Linux beschäftigen, drum sollte auf den Laptop Ubuntu installiert werden. Kein Problem, die aktuelle Version 11.04 war in weniger als einer halben Stunde installiert und funktionierte auch out-of-the-box perfekt. Aber dann ging der Spass mit dem alten Rechner los…

Besagter Alt-PC läuft unter Windows XP. Um den Umstieg zu erleichtern, wollte ich daraus eine virtuelle Maschine machen und diese auf den Laptop bringen. Als Virtualisierungssoftware verwende ich das kostenlose Oracle VirtualBox. Mit Linux-Gästen habe ich eine solche “physical to virtual”-Migration (P2V) schon mehrfach gemacht; Windows XP reagiert aber etwas zickig auf eine veränderte Hardwareumgebung.

Den ersten Anlauf habe ich mit partimage unternommen:

  • SystemRescueCD vom USB-Stick booten
  • Mit partimage eine Kopie der Festplatte auf einen externen Datenträger erzeugen
  • Die virtuelle Maschine mit SystemRescueCD booten
  • Das Image dann wieder mit partimage innerhalb der virtuellen Maschine zurückspielen

Das alles hat über 4 Stunden gedauert, mit ernüchterndem Ergebnis: Es funktioniert nicht. Anscheinend ist der ntfs-Support von partimage nicht ohne Grund als experimentell gekennzeichnet.

Dann bin ich eher zufällig auf das kostenlose disk2vhd von Microsoft gestossen. Damit kann man einen PC im laufenden Betrieb in ein Image für Microsoft Virtual PC konvertieren. Das Hostsystem wird dabei nicht modifiziert, im Image wird aber auf Wunsch die Boot-Konfiguration für die virtuelle Maschine angepasst (sehr zu empfehlen). Ausserdem wird nur der tatsächlich belegten Teile der Festplatte kopiert, in diesem Fall waren das 35 von 80 GB.

VirtualBox kann mit dem .VHD-Image umgehen, es muss nicht nochmals konvertiert werden. Und siehe da, der so virtualisierte PC funktionierte auf Anhieb in VirtualBox. Zeitaufwand insgesamt: Weniger als 90 Minuten.

Es galt nur noch ein kleines Problem zu lösen: Aufgrund der veränderten Hardware wollte Windows neu aktiviert werden. Unter Windows 7 läßt sich dies mit “slmgr -rearm” bis zu 4 Mal aufschieben (insgesamt 120 Tage). Windows XP bietet eine ähnliche Möglichkeit, es funktioniert aber ein klein wenig anders:

  • Im abgesicherten Modus booten
  • Als Administrator anmelden
  • Start -> Ausführen -> “rundll32.exe syssetup,SetupOobeBnk”
  • Neustarten, fertig

Nun erzwingt Windows erst wieder in 30 Tagen die Aktivierung, genug Zeit um die Original-CD zu finden.

Der restliche Kleinkram (Netzlaufwerk zum Datenaustausch einrichten, Drucker in der VM bekannt machen, etc.) war schnell erledigt. Der virtualisierte PC läuft nun auf dem Linux-Host, netterweise deutlich schneller als zuvor. Operation erfolgreich 🙂

Das hier war nur eine Methode, es gibt noch ein paar Alternativen. So bietet VMware z.B. den vCenter Converter an (kostenloser Download nach Registrierung). Dieser bereitet das Gastsystem auf die Virtualisierung vor und erstellt anschliessend eine Image-Datei davon. Diese würde auch unter VirtualBox funktionieren. Auch Parallels hat Software im Programm, die bei der P2V-Migration hilft, beispielsweise als Teil der Parallels Desktop 7 Switch to Mac Edition. Diese ist allerdings weder kostenlos noch VirtualBox-kompatibel und daher zumindest für mich uninteressant.