Ärger mit SSDs – Badblocks und Konsorten

Da denkt man, das mit dem Einsatz von SSD das Leben im Bereich der großen schnellen Storage-Systeme ein wenig besser wird. Ja, das Zeugs hat noch seine Haken und Ösen und wird im Laufe der Zeit langsamer und verliert vielleicht auch Platz aber das es nicht einmal ein Jahr im Einsatz bereits böse verreckt, das hätte ich nicht gedacht.

Vor ca. 8 Monaten verbaute ich in einem mit geringem Schreibzugriff genutzten System eine 30 GB SSD der Firma Super Talent (STT_FTM32GX25H) als System-”Festplatte”. Darauf lief ein braves Centos bis vor einigen Tagen.

Während ich auf dem System (irrwitzigerweise zum Backup machen) eingeloggt war ging die Welt unter. Das Backup (auf ein iscsi-network device, also nicht auf die SSD) failte mit der Nicht-Lesbarkeit von Dateien. In den dmesg-Ausgaben taucht die Meldung auf, das das Root-Filesystem auf Read-Only ging und de-fakto ging die Welt der Maschine unter.

Nun gut, aktive Dienste auf ein anderes System umgeschaltet und einen Reboot inittiert der dann schon zeigte das eigentlich nichts mehr gehen wird – das Root-Filesystem konnte nicht gemounted werden. Ok, Rescue System gebootet und nachgeschaut, fsck sagt es geht nichts mehr, abgebrochen und den Datenbestand aufgegeben.

In einem Testsystem dann die SSD mal ein wenig getestet, und was durfte ich da sehen – Dinge die man eigentlich nicht glaubt, man würde davon ausgehen, das diese durch die SSD von selbst beseitigt werden.

root@sysresccd /root % badblocks -f -w /dev/sda
/dev/sda is apparently in use by the system; badblocks forced anyway.
3546048
3546049
3546050
3546051
3546052
3546053
3546054
3546055
7562272
7562273
7562274
7562275
7562276
7562277
7562278
7562279

Das ging dann noch einige Zeit so weiter. Spannend sind dabei die 4k Blöcke, d.h. 8×512 Bytes am Stück waren kaputt. Warum ist das so ?

Nun gut, was kaputt ist, das ist halt kaputt und man probiert damit andere Dinge. Also das gleiche Kommando noch einmal und nun kam das echte Staunen:

root@sysresccd /root % badblocks -f -w /dev/sda
/dev/sda is apparently in use by the system; badblocks forced anyway.
3969808
3969809
3969810
3969811
3969812
3969813
3969814
3969815
5012672
5012673
5012674
5012675
5012676
5012677
5012678
5012679

Mehr davon ?? Sehr spannend. Viele und vor allem: ANDERE !! Die Bad-Blocks haben also ihre Location verändert bzw. bei dem was auch immer die SSD da so veranstaltet hat sind es mehr bzw. andere geworden. Natürlich konnte ich es danach dann nicht mehr lassen:


root@sysresccd /root % badblocks -s -v -f -w /dev/sda
/dev/sda is apparently in use by the system; badblocks forced anyway.
Checking for bad blocks in read-write mode
From block 0 to 31266647
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: 202816% done, 16:20 elapsed
202817
202818
202819
202820
202821
202822

Es wurden wieder mehr und andere. Nach einigen Läufen dann aber wiederholbar, auch nach dem Ein- und Ausschalten:


root@sysresccd /root % badblocks -s -v -f -w /dev/sda
/dev/sda is apparently in use by the system; badblocks forced anyway.
Checking for bad blocks in read-write mode
From block 0 to 31266647
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: done
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found.

Merke: SSDs sind anders. Das tolle ist, das es auf der OS-Seite keine Read-Errors gab, nur es gab eben andere Daten zurück als hingeschrieben wurden. Quasi-Daten-Roulette.

Wenn man nun brav hinschriebt auf so ein Device, block 1-20 und dann Block 1,2,8,9,3,4,5,6,7,11-20 in der Reihenfolge kommentarlos zurück-bekommt, manchmal zumindest, dann ist das großes Kino.

Das sind dann die Momente wo ein Mirror von zwei SSDs auch nichts hilft, dann weiß man nachher nicht einmal mehr welche der Devices kaputt ist aber ist sich total sicher, das die Daten es sind. Datenrettungsansätze kann man auch vergessen, denn bei fast allen Filesystemen steht nicht im Block welcher der Block ist.

Bei den guten alten Festplatten konnte man sich wenigstens noch drauf verlassen das nach Block 1 der Block 2 kam. Und wenn der nicht kam, dann kam er nicht und nicht was anderes.

SSDs im Server ohne Cryptografisch-gesicherte Filesysteme – nein, das macht man nicht. SSDs für Daten die es nur einmal gibt und nicht in Mehr-Generationen-Backups über lange Zeiten, nein das macht man auch nicht. Das schlimmste ist die Kommentarlosigkeit des Datenverschwindens/Tauschens. Das ist geradezu obszön gefährlich.

Share

Wenn Microsoft Remote Desktop Verbindung für Mac hängt

… kann das an diesem Problem liegen:

Man hat Microsoft Remote Desktop Verbindung für Mac (Version 2.1) installiert und nutzt diese gerne und häufig und es passiert plötzlich das ab der Eingabe des Hostnamens bzw. der IP-Adresse zu welcher man die Verbindung herstellen möchte einfach nichts mehr und nach bestimmt einer Minute kommt die Meldung das der Remote-Host nicht identifiziert werden konnte. Wenn das passiert, dann könnte es daran liegen das am Mac ein USB Device dran hängt das nicht wirklich reagiert. In meinem Fall war das ein Nokia 900 das da schlief, es können aber auch andere USB Devices sein. Trennt man das Device vom System geht alles danach wieder prima. Kommt man aber nicht ohne weiteres drauf.

In der “Konsole” des Mac findet man dann gerne Meldungen wie diese:

14.03.11 15:52:53 kernel USBF: 274392.995 AppleUSBEHCI[0xc5db800]::Found a transaction which hasn't moved in 5 seconds on bus 0xfd, timing out! (Addr: 5, EP: 5)

Die sind definitiv ein Zeichen, das es sich genau um ein solches Problem handeln könnte.

Übrigens prima Server mit Microsoft Windows Server 2008R2 gibt es bei Inter.net Germany.

Share

Outlook 2011 für den Mac: Header anzeigen

Bei den verschiedenen Outlook-Varianten stellte sich mir oft die Frage, wie man die Header einer Datei anzeigt. Braucht man ja gerne mal, um zu gucken was die verschiedenen Spam-Filter da so reinschreiben. Sucht man in der Hilfe nach “Kopfzeilen” oder gar “Headern” findet man gar nichts.

Die Antwort ist ganz einfach, Rechtsklick oder aber ctrl-click (je nach Einstellung) auf einer Nachricht in der normalen Übersicht liefert ein kleines Menü. Dort klickt man einfach auf “Quelle anzeigen” und schon öffnet sich ein Fenster mit der Text-Repräsentation der Nachricht inkl. Header.

Quelle auswählen

Quelle auswählen

Share

Eine existierende Website aus subversion updaten

Aus aktuell gerade aufgetretenem Anlass dazu ein paar Worte.

Hat man ein Verzeichnis in dem eine Directory-Struktur (wie zB) eine Website liegt die vorher nicht aus einem subversion Repository kam und nunmehr mit einer Struktur aus einem Repository überschrieben werden soll, geht man wie folgt vor:

(ggf. Im entsprechenden Verzeichnis)

svn checkout --force svn://user@host/repo

überschreibt erstmal nix, sondern fügt nur hinzu. Um dann zu überschreiben sogleich ein

svn revert -R (ziel)

Liegen noch alte Subversion daten im Verzeichnis rum, so kann man die auch noch vor dem eigentlich checkout loswerden (sonst meckert der Checkout)

Wichtig: Im entsprechenden Verzeichnis ausführen

find . -name .svn -exec rm -fr {} \;

Löscht gnadenlos alles was .svn heisst. Danach funktioniert dann auch der Checkout!

Share

Geschwindigkeit des Laufbandes mal nachgemessen

Als Freizeitläufer nenne ich seit einigen Jahren ein Laufband mein Eigen welches ich immer dann benutze, wenn  Witterungsbedingungen (< -10 Grad Celsius oder totale Vereisung) oder der eigene Gesundheitszustand (Überprüfen inwiefern Verletzung ausgeheilt um jederzeit wieder aufhören zu können) es erfordern.

Immer wenn ich dieses mal benutze, dann finde ich das die Geschwindigkeit welche ich einstelle mit der im normalen Laufbetrieb gemessenen und gewohnten überhaupt nicht übereinstimmt. Eingestellte 10km/h was einem gemütlichen 6min/km Schnitt entspricht kommen einem auf diesem Laufband deutlich zu schnell vor. Das kann natürlich am ungewohnten Laufgefühl liegen auf dem Band und der vielleicht anderen Schrittgröße oder ähnlichem aber auch am Band und seiner Geschwindigkeit.

Nachdem ich mir zur Analyse des eigenen Laufstils eine Kamera mit Hochgeschindigkeits-Videoaufzeichnung (Casio EXILIM EX-FS10 ) angeschafft habe, kam ich zu der Überzeugung das nun mal ein guter Moment für das Nachmessen der Laufbandgeschwindigkeit ist.

Gesagt getan. Auf dem Laufband brachte ich in einem Abstand von einem Meter zwei Messmarkierungen an, ebenso brachte ich am Rand des Laufbandes eine einzelne Markierung an. Die Anzahl Bilder die mit der Kamera für einen Durchlauf der Metermarkierung aufgezeichnet und im Einzelbildmodus betrachtet vergehen ergibt zusammen mit der Anzahl Bilder pro Sekunde der Kamera die Zeit welche vergeht, damit der Meter durchläuft (In Sekunden pro Meter). Dieses Ergebnis im Kehrwert welches sich dann ja als Meter pro Sekunde darstellt ergibt mit dem Faktor 3.6 multipliziert die reale Geschwindigkeit in Kilometer pro Stunde.

Für mein Laufband des Typs (Maxxus CR5000) ergibt sich hierbei die folgende Ergebnistabelle (ohne Nutzer auf dem Laufband):

Laufband Speedcheck

Ergebnistabelle des Laufband-Geschwindigkeitstests

Bei den ersten Tests habe ich die Anzahl Bilder für den Gesamtumlauf nicht gezählt, beim letzten 12 km Test fiel mir leider einer der Messpunkte ab, so das ich nur noch den Gesamtumlauf bestimmen konnte. Das Laufband selbst verträgt übrigens bis zu 16km/h als Einstellung und ist nach der Berechnung aus den Messergebnissen in Summe 2,75m lang (Gesamtzeit für eine Umrundung im Verhältnis zur Zeit für einen Meter = Länge des Bandes in Metern).

Es zeigt sich eine Abweichung zum eingestellten Wert von rund 20-23%, d.h. wenn 8km/h eingestellt sind läuft man in Realität mit 9.8km/h. Das kommt vom subjektiven Eindruck auch ungefähr hin.

Man könnte jetzt argumentieren das die Messung ohne Nutzer ungenau ist. Insofern habe ich noch einmal eine Stichprobe mit mir (ca. 75kg) auf dem Laufband laufend gemacht und dies bei eingestellten 8 km/h, der Wert änderte sich von 213 auf 216 Frames, d.h. um gut 1% – also nicht wirklich.

Zur Messgenauigkeit an sich: Jedes Ergebnis wurde 2x gezählt, es lag immer ±1 Frame zur Zählung davor. Die Einstellung der 210 Frames/Sekunde der Kamera nehme ich bei einem Digitalgerät mal als gegeben hin.

Die Excel-Datei welche ich mir zum Rechnen gebaut habe, ist hier zum Download: Laufband Speedcheck

Share