Sicherer Speicher für Server und Workstations

04.03.2004
Ein Horrorszenario für jeden Systemadministrator: Falsch ausgelesene Bits oder ein defekter Speicher führen zum Systemabsturz und Datenverlust. Funktionen zur Erkennung und Korrektur von Speicherfehlern sorgen für Sicherheit. Von Bernd Haluschak

Kein Hauptspeicher eines Rechners ist 100-prozentig vor einem Fehler gefeit - aber eine ausgereifte Speichertechnik verhindert dies annähernd. Findet der Betrieb von Speichermodulen innerhalb der vom Hersteller spezifizierten Bedingungen statt, ist die Wahrscheinlichkeit für ein Kippen von einzelnen Datenbits gering. Trotzdem können äußere Einflüsse eine logische Eins in eine Null verwandeln. Im Fachjargon nennt man ein ungewolltes Bitkippen Soft Error.

Physikalische Defekte

Zu diesen reparablen Fehlern können noch Defekte auf physikalischer Ebene dazukommen. Neben Alterungserscheinungen durch Diffusion, elektromagnetische Felder und radioaktive Strahlung führen meist Spannungsspitzen oder elektrostatische Aufladungen bei unsachgemäßer Handhabung zu irreparablen Defekten bei Speicherbausteinen.

Gerade im Server- und Workstation-Umfeld sind Speicherfehler und daraus resultierende Systemausfälle schmerzlich, da sie in der Regel enorme Kosten verursachen. Um falsch ausgelesene und damit fehlerhaft geschriebene Daten durch einen Fehler im Speicher zu verhindern, gibt es verschiedene Verfahren. Sie sind abhängig vom eingesetzten Chipsatz. So bieten Chipsätze von IBM, Intel oder ServerWorks fehlertolerante Speicherfunktionen wie zum Beispiel ECC, Chipkill, Hot Swap, Hot Add oder Memory Mirroring.

Der Artikel beschreibt detailliert die verschiedenen Technologien, die die Datensicherheit des Hauptspeichers eines Servers oder einer Workstation maximieren.

Parity-Prüfung

Unterstützen der Speicher-Controller des Chipsatzes und das Speichermodul die Paritätstechnik, erfolgt bei jedem Speichervorgang eine zusätzliche Prüfsummenbildung. Jedem Daten-Byte (8 Bit) wird beim Schreiben ein eigenes Paritätsbit zugeordnet, das im DRAM mit gespeichert wird. Beim Lesen eines Daten-Bytes erfolgt durch die Speichersteuerung über ein Protokoll dann der Vergleich mit dem zugehörigen Paritätsbit. Damit lässt sich ein umgekipptes Bit beim Lesen sofort erkennen.

Es gibt zwei Arten von Paritätsprotokollen: ungerade und gerade Parität. Beide Verfahren funktionieren nach dem gleichen Prinzip und unterscheiden sich nur in ihren Attributen. In der Tabelle "Parität-Technologien im Vergleich" können Sie den Ablauf der Protokolle beim Schreiben und Lesen von Daten erkennen.

Der Nachteil der Paritätsprüfung ist, dass sie zwar Fehler erkennen, aber nicht korrigieren kann. Das Verfahren arbeitet zudem nur zuverlässig, wenn ein einzelnes Bit umkippt. Kippen dagegen mehrere Bits in einem Daten-Byte um, so bleiben die Fehler möglicherweise verdeckt.

Enthält zum Beispiel ein Daten-Byte bei gerader Paritätsprüfung vier Einsen, so ist das zugehörige Paritätsbit Null. Nach dem Schreiben von Daten-Byte und Paritätsbit in das DRAM kippen zwei von den acht Bit um. Beim späteren Lesen ermittelt die Speichersteuerung aber wieder eine gerade Anzahl von Einsen. Dadurch erkennt die Speichersteuerung das Daten-Byte beim Vergleich mit dem Paritätsbit als gültig an.

Speichermodule mit Parität sind im Gegensatz zu Non-Parity-Modulen teurer. Parity-Module benötigen pro Byte neun Bit und somit mehr Speicher bei gleicher Kapazität. Die Module besitzen einen zusätzlichen DRAM-Chip, der nur der Paritätsspeicherung dient.

ECC-Verfahren

Neben der einfachen Fehlererkennung gibt es in der Elektronik eine Vielzahl von Fehlerkorrektur-Algorithmen. Einer, der sich speziell für das Überprüfen und Korrigieren von Ein-Bit-Soft-Errors in großen Speicherfeldern eignet, ist der Hamming-Code. Der Code kann zudem Zwei-Bit-Fehler erkennen, aber nicht korrigieren. Dieses ECC-Verfahren benötigt bei 32 Bit breiten Daten zusätzliche sieben Check-Bits. Bei 64 Bit breiten DIMMs sind für die Fehlerkorrektur acht Bit nötig. ECC-fähige DIMMs haben deshalb eine Datenbreite von insgesamt 72 Bit. Der Datenbus zwischen DIMM und Chipsatz ist ebenfalls 72 Bit breit.

Wenn der Prozessor eines 64-Bit-Rechnersystems seine Daten in das DRAM schreibt, berechnet der ECC-Controller der Speichersteuerung acht ECC-Bits und hängt diese an die Daten an. Das nunmehr 72 Bit breite Datum wird im DIMM gespeichert. Während eines Lesevorgangs berechnet der Chipsatz die ECC-Bits von den eingelesenen 64 Datenbits neu. Der Controller vergleicht dann den neu berechneten Code mit dem ebenfalls eingelesenen Fehlercode, der beim Schreiben generiert wurde. Bei Übereinstimmung der Codes ist das 64-Bit-Datenwort korrekt. Unterscheiden sich die Codes, lässt sich die Stelle, an der ein Bit gekippt ist, genau lokalisieren. Die Speichersteuerung ändert dann wieder das Attribut des gekippten Bits zu seinem ursprünglichen Wert.

Das ECC-Verfahren eignet sich besonders gut für Bereiche, die eine hohe Datenintegrität erfordern. Daher findet das gegenüber normalem Speicher teurere ECC-DRAM hauptsächlich in Servern und Workstations seinen Einsatz. Nach einer internen IBM-Laborstudie erreicht der ECC-Speicher über einen Zeitraum von drei Jahren eine Zuverlässigkeit von 91 Prozent.

Chipkill-Technologie

Um die Datensicherheit des Hauptspeichers weiter zu maximieren, führte IBM Ende der 90er Jahre die Chipkill-Technologie ein- sie wird auch als Advanced ECC bezeichnet. Die Speichertechnologie wurde ursprünglich explizit für die NASA entwickelt. Das Raumfahrtunternehmen setzte Chipkill erstmals in der Marsmission "Pathfinder" ein. Hier hätten Speicherfehler und Systemausfälle fatale Folgen gehabt und enorme Kosten verursacht. Anschließend nutzte man die Chipkill-Speichertechnologie für kommerzielle Zwecke in Servern und Workstations.

Anders als die ECC-Fehlerkorrektur, die nur einen Bitfehler korrigieren kann, ist die Chipkill-Funktion in der Lage, bis zu vier Bitfehler zu korrigieren und acht Bitfehler zu erkennen. Bei Fehlerhäufung in einem Speicherchip kann sie diesen sogar ausblenden, ohne das System herunterzufahren. Ein Vorteil der Chipkill-Technologie: Es sind keine speziellen Speichermodule notwendig, handelsübliche ECC-DIMMs genügen. Zusätzlich arbeitet das Korrekturverfahren unabhängig vom Betriebssystem und hängt somit nur vom Chipsatz und vom BIOS ab.

Die Chipkill-Technologie funktioniert ähnlich wie ein Festplatten-RAID-System nach dem Striping-Verfahren mit Parity-Prüfung. Muss ein Speicher-Controller zum Beispiel vier DIMM-Module mit 4-Bit-Organisation verwalten, so bestehen die Speicherdaten aus vier mal 64 Datenbits und vier mal acht ECC-Bits. Insgesamt beträgt die Datenweite 288 Bit und enthält vier ECC-Words zu je 72 Bit. Der Chipkill-Algorithmus verteilt das 72-Bit-Datenwort systematisch zu je 18 Bit auf die vier DIMM-Speichermodule (Striping). Gleichzeitig werden die 18-Bit-Segmente ebenfalls regelmäßig auf die 18-DRAM-Chips eines DIMMs aufgesplittet. Aus dieser Verteilung resultiert, dass sich jeweils das erste Bit eines 18-Bit-Datensegments im ersten Datenbit eines Speicherchips befindet. Diese spezielle Aufteilung der einzelnen Datenbits ist wichtig für die spätere Rekonstruktion von Multi-Bit-Speicherfehlern durch den Memory Controller nach dem ECC-Verfahren.

Nach einer IBM-Laborstudie über eine Zeitspanne von drei Jahren erreichte das Chipkill-Verfahren eine Zuverlässigkeitsrate von 99,94 Prozent. Eine höhere Sicherheit vor Speicherfehlern erreicht man nur durch die Kombination mit anderen Speichertechniken.

Hot Swap und Hot Add

Mit Hot Swap und Hot Add stehen dem Administrator zwei weitere Sicherheitsmechanismen für den Speicher im Server-Einsatz zur Verfügung. Diese Funktionen können im laufenden Betrieb des Servers benutzt werden. Hot Swap ermöglicht es, ein defekt erkanntes Speichermodul zu wechseln. Das neue Speichermodul muss allerdings die gleiche Speicherkapazität, Bandbreite und identische Typangaben aufweisen. Zusätzlich erfordert die Funktion ein aktiviertes Memory Mirroring, um Datenverluste beim Austauschen der Speichermodule zu vermeiden. Ein großer Vorteil von Hot Swap: Die Funktion ist im Chipsatz integriert und arbeitet deshalb unabhängig vom eingesetzten Betriebssystem. Die Hot-Add-Funktion gestattet es, den Hauptspeicher zu erweitern, ohne gleichzeitig den Server herunterfahren zu müssen. Die zusätzlichen Speichermodule dürfen lediglich in bereits leere DIMM-Sockel eingesetzt werden. Ein bereits vorhandenes Speichermodul durch eines mit höherer Speicherkapazität zu ersetzen, ist jedoch nicht möglich. Das Hot-Add-Feature setzt zurzeit das Betriebssystem Windows Server 2003 in der Enterprise- oder Datacenter-Edition voraus. Darüber hinaus muss in den Einstellungen das Memory Mirroring deaktiviert sein.

Hot Spare Memory

Bei der Hot-Spare-Memory-Technologie steht eine festgelegte Speicherbank als Ersatz zur Verfügung. Häufen sich bei einem Modul Speicherfehler, deaktiviert der Memory Controller automatisch die Bank mit dem defekten Speicher und aktiviert die Ersatzbank. Gleichzeitig alarmiert das System den Administrator über diesen Speicherausfall.

Die Einbindung eines Hot-Spare-Moduls geschieht automatisch und ohne Datenverluste. Verfügt das System nicht über Hot Spare, muss der Administrator das defekte Modul manuell wechseln. Dies erfordert in der Regel, das System herunterzufahren und somit eine außerplanmäßige Betriebsunterbrechung, die gewöhnlich mit hohen Kosten verbunden ist. Das gilt auch für alle anderen "Hot-Memory-Technologien".

Memory Mirroring

Das Memory Mirroring ist annähernd vergleichbar mit der RAID1-Funktion bei Festplatten-Arrays. Die Speicherspiegelung erreicht eine 1:1 Redundanz und erfordert in der Minimalkonfiguration von der Hardware zwei identische Speichermodule in zwei verschiedenen Bänken. Daraus resultiert der gravierende Nachteil dieser Technologie: Die hohen Kosten für den Hauptspeicher bei gleichzeitiger Halbierung der nutzbaren Gesamtspeichermenge.

Sind zum Beispiel insgesamt zwei GByte Speicher installiert, erkennt das Betriebssystem lediglich ein GByte des Gesamtspeichers. Den restlichen Speicher blendet der Controller automatisch aus. Dieser "versteckte" Speicher enthält eine exakte Spiegelung der Daten des "aktiven" Speichers.

Die Mirroring-Funktion steuert eine implementierte Hardware im Chipsatz, die das BIOS aktiviert, und arbeitet daher unabhängig vom Betriebssystem. Je nach Größe der eingesetzten Speichermodule müssen die aktiven und die gespiegelten Module die gleichen Eigenschaften besitzen und in den dafür vom Mainboard-Hersteller festgelegten Speichersockeln installiert sein.

Wenn der Speicher-Controller eine Fehlerhäufung im aktiven Speicherbereich entdeckt, schaltet er im laufenden Betrieb ohne Datenverluste auf den gespiegelten Bereich. Gleichzeitig löst der Memory Controller eine Warnung aus und informiert den Administrator über den Zustand des Hauptspeichers.

Memory Scrubbing

Das Memory Scrubbing setzt eine aktivierte ECC-Funktion des Chipsatzes voraus und ist in der Lage, unabhängig vom Betriebssystem einen automatisierten Speichertest durchzuführen. Die gewonnenen Ergebnisse des Memory-Tests leitet es dann an eine übergeordnete und geeignete Server-Management-Software weiter.

Zusätzlich verhindert das Memory Scrubbing Server-Ausfälle durch schwerwiegende Speicherdefekte, indem es die Speicherfehler untersucht und gegebenenfalls sicherheitsrelevante Speicherfunktionen wie ProteXion oder Memory Mirroring startet. Reichen diese Maßnahmen nicht aus, benachrichtigt die Memory-Scrubbing-Funktion mit entsprechender Fehlerdiagnose den Systemadministrator.

Die Memory-Scrubbing-Funktion wird präventiv eingesetzt und nur dann automatisch gestartet, wenn es die Auslastung des Rechensystems und des Hauptspeichers zulässt. Darüber hinaus kann der Administrator mit geeigneter Management-Software das Memory Scrubbing zeitlich steuern.

ProteXion-Technologie

Die ProteXion-Technologie von IBM - auch bekannt als Redundant Bit Steering - nutzt freie Bits im Speicherchip als Redundanz, um im Falle eines Bitfehlers die Daten umzuleiten.

Normalerweise nutzen die aktuellen Standard-Server acht Bit des 72-Bit-Datenpakets für die ECC-Funktion und die restlichen 64 Bit für Daten. Allerdings verwendet die ProteXion-Technologie ein ECC-Verfahren, das zur korrekten Arbeitsweise nur sechs statt acht Bit benötigt, da es einen speziellen Berechnungsalgorithmus hat. Die restlichen zwei Bit bleiben vorerst unbenutzt.

Stellt das Memory Scrubbing einen Bitfehler in einem Speicherchip auf einem DIMM fest, aktiviert es die ProteXion-Funktion. Diese veranlasst den Memory-Controller, den Defekt auszublenden und die entsprechenden Daten auf die freien Bits zu verteilen (Hot Spare Bits). Solange genügend freie Bits für die korrekte Funktionsweise des Speichers zur Verfügung stehen, protokolliert der Speicher-Controller lediglich die aufgetretenen Ausfälle in einer Log-Datei.

Falls die Bitfehler nicht mehr behebbar sind, sendet die Memory-Scrubbing-Funktion einen Alert zum Administrator. Auf Grund der protokollierten Daten kann dieser dann den Defekt analysieren und geeignete Gegenmaßnahmen wie Speichertausch (Hot Swap) oder Speichererweiterung (Hot Add) im laufenden Betrieb vornehmen - vorausgesetzt, der Chipsatz (BIOS) beziehungsweise das Betriebssystem unterstützt diese Funktionen.

Fazit

Um bei Server- und Workstation-Ausfällen hohe Kosten durch einen fehlerhaften oder defekten Hauptspeicher zu vermeiden, stehen den Systemherstellern einige Sicherheitsmechanismen zur Verfügung.

Das ECC-Verfahren zählt zu den einfachsten Korrekturfunktionen. Es behebt Ein-Bit-Fehler und erkennt Zwei-Bit-Defekte. Laut einer IBM-Laborstudie erreicht ein mit ECC ausgestatteter Hauptspeicher bereits eine Zuverlässigkeitsrate von 91 Prozent. Höhere Speicherausfallsicherheit bietet nach IBM das Chipkill-Verfahren mit 99,94 Prozent.

Die zum Beispiel in IBM- oder ServerWorks-Chipsätzen eingesetzte Funktion korrigiert bis zu vier multiple Bitfehler und ist in der Lage, acht Bitfehler zu erkennen. Sollen Speicherintegrität und Ausfallsicherheit eines Rechnersystems weiter gesteigert werden, bieten entsprechende Chipsätze und Betriebssysteme zusätzliche Technologien wie Hot Swap, Hot Add, Hot Spare Memory, Memory Mirroring oder ProteXion.

Mehr Informationen zu diesem und ähnlichen Themen finden Sie auf www.tecchannel.de.

tecCHANNEL-Compact "Linux-Server Komplettpaket"

tecChannel.de ist die Nummer eins der Online-Fachmedien in Deutschland (IVW 5/03). Auf www.tec Channel.de finden Sie mehr als 1.000 Beiträge und über 12.000 News zu allen Themen der IT. Das kostenlose Online-Programm wird ergänzt durch das noch umfangreichere kostenpflichtige tecCHANNEL-Premium und die tecCHANNEL-Compact-Buchreihe.

Das neue tecCHANNEL-Compact "Linux-Server Komplettpaket" bietet Ihnen beispielsweise alle notwendigen Grundlagen und die Anleitung zum "SuSE Linux Office Server" auf der Buch-CD. Für weniger als 10 Euro erhalten Sie eine bewährte und stabile Serverlösung - auch für Windows-Clients - für Ihr Intranet mit File-/Printserver, Online-Zugang, Firewall-/Spam-Schutz und Ihren Internet-Auftritt. Im Handel kostet das tecCHANNEL-Compact mit CD 9,90 Euro, bei Direktbestellung unter

www.tecchannel.de/shop nur 8,90 Euro.

Glossar

Abkürzungen erklärt

Soft Error

Reparabler Fehler: Entsteht bei DRAM durch das Umkippen eines Bits. Mögliche Ursachen sind Spannungsschwankungen, elektromagnetische Felder oder Alpha- und radioaktive Strahlung.

DRAM

Dynamic Random Access Memory: Arbeitsspeicher mit direktem Zugriff auf eine beliebige Speicherstelle. Die Informationen sind in Kondensatoren gespeichert und müssen periodisch aufgefrischt werden.

Hamming-Code

Code zum Erkennen und Korrigieren von 1- und 2-Bit-Fehlern bei großen Speicherfeldern. Angewendet wird der Hamming-Code beim ECC-Verfahren.

ECC

Error Correcting Code: Verfahren zum Erkennen und Korrigieren von Bitfehlern.

RAID

Redundant Array of Independent Discs. Ein Konzept, eine Anzahl von Festplatten zur Erhöhung der Übertragungsleistung und technischen Sicherheit als eine Einheit zu betreiben. Aus Sicht von SCSI kann ein RAID aus mehreren Laufwerken (Targets) an einem oder mehreren Steuereinheiten (Initiators) oder aus mehreren LUNs in einem Target aufgebaut sein.

DIMM

Dual Inline Memory Modul: Speichermodul mit Kontaktflächen auf beiden Seiten der Platine, die elektrisch getrennt sind. Die 168-poligen DIMMs haben eine Datenbreite von 64 Bit.

Zur Startseite