RAID (Redundant Array of Independent Disks), ursprünglich bekannt als Redundant Array of Inexpensive Disks, wurde erstmals 1988 von Professor D. A. Patterson von der University of California, Berkeley, in dem Papier „A Case of Redundant Array of Inexpensive Disks“ vorgeschlagen. Damals waren Festplatten mit großer Kapazität teuer, daher bestand die Grundidee von RAID darin, mehrere Festplatten mit geringer Kapazität und relativ geringen Kosten organisch zu kombinieren, um die Kapazität, Leistung und Zuverlässigkeit zu erzielen, die teuren Festplatten mit großer Kapazität zu geringeren Kosten entsprechen. Da die Kosten und Preise von Festplatten weiter sanken, wurde der Begriff „kostengünstig“ bedeutungslos, und das RAID Advisory Board (RAB) beschloss, „kostengünstig“ durch „unabhängig“ zu ersetzen.
Diese Designidee von RAID wurde schnell von der Industrie übernommen. RAID-Technologie hat sich als leistungsstarke und hochzuverlässige Speichertechnologie weit verbreitet. RAID nutzt hauptsächlich Data Striping, Mirroring und Data Parity-Technologien, um hohe Leistung, Zuverlässigkeit, Fehlertoleranz und Skalierbarkeit zu erreichen. Gemäß den Strategien und Architekturen der Verwendung oder Kombination dieser drei Technologien kann RAID in verschiedene Ebenen unterteilt werden, um die Anforderungen verschiedener Datenanwendungen zu erfüllen. Die ursprünglichen RAID-Level RAID1-RAID5 wurden in dem Papier von D. A. Patterson et al. definiert, und RAID0 und RAID6 wurden seit 1988 erweitert. In den letzten Jahren haben Speicheranbieter kontinuierlich RAID-Level wie RAID7, RAID10/01, RAID50, RAID53 und RAID100 eingeführt, aber es gibt keinen einheitlichen Standard. Derzeit sind die branchenweit anerkannten Standards RAID0-RAID5, und die vier Level außer RAID2 wurden als Industriestandards festgelegt. Die am häufigsten verwendeten RAID-Level im praktischen Anwendungsbereich sind RAID0, RAID1, RAID3, RAID5, RAID6 und RAID10.
Aus Implementierungssicht wird RAID hauptsächlich in drei Typen unterteilt: Software-RAID, Hardware-RAID und Hybrid-RAID. Bei Software-RAID werden alle Funktionen vom Betriebssystem und der CPU ausgeführt, und es gibt keinen unabhängigen RAID-Steuerungs-/Verarbeitungschip und keinen I/O-Verarbeitungschip, sodass die Effizienz am niedrigsten ist. Hardware-RAID ist mit einem speziellen RAID-Steuerungs-/Verarbeitungschip und einem I/O-Verarbeitungschip sowie einem Array-Puffer ausgestattet und belegt keine CPU-Ressourcen, aber die Kosten sind sehr hoch. Hybrid-RAID verfügt über einen RAID-Steuerungs-/Verarbeitungschip, aber keinen I/O-Verarbeitungschip, und benötigt die CPU und Treiberprogramme zur Fertigstellung, und seine Leistung und Kosten liegen zwischen Software-RAID und Hardware-RAID.
Jedes RAID-Level repräsentiert eine Implementierungsmethode und -technologie, und es gibt keine Unterscheidung zwischen hohen und niedrigen Ebenen. In praktischen Anwendungen sollte das geeignete RAID-Level und die spezifische Implementierungsmethode gemäß den Merkmalen der Benutzerdatenanwendungen ausgewählt werden, und die Verfügbarkeit, Leistung und Kosten sollten umfassend berücksichtigt werden.
RAID, nämlich Redundant Array of Independent Disks, wird üblicherweise als Festplatten-Array abgekürzt. Kurz gesagt, RAID ist ein Festplattensubsystem, das aus mehreren unabhängigen Hochleistungsfestplatten besteht und eine höhere Speicherleistung und Datenredundanztechnologie als eine einzelne Festplatte bietet. RAID ist eine Multi-Festplatten-Managementtechnologie, die kostengünstige, hochzuverlässige und leistungsstarke Speicher für die Host-Umgebung bietet. Die Definition von RAID durch SNIA lautet: ein Festplatten-Array, bei dem ein Teil des physischen Speicherplatzes zur Aufzeichnung redundanter Informationen von Benutzerdaten verwendet wird, die im verbleibenden Speicherplatz gespeichert sind. Wenn eine Festplatte oder ein Zugriffspfad ausfällt, können die redundanten Informationen verwendet werden, um die Benutzerdaten zu rekonstruieren. Obwohl Data Striping nicht der Definition von RAID entspricht, wird es üblicherweise auch als RAID (d. h. RAID0) bezeichnet.
Die ursprüngliche Absicht von RAID war es, High-End-Speicherfunktionen und redundante Datensicherheit für große Server bereitzustellen. Im Gesamtsystem wird RAID als Speicherplatz betrachtet, der aus zwei oder mehr Festplatten besteht, und die I/O-Leistung des Speichersystems wird durch gleichzeitiges Lesen und Schreiben von Daten auf mehreren Festplatten verbessert. Die meisten RAID-Level verfügen über vollständige Datenüberprüfungs- und Korrekturmaßnahmen und sogar Mirroring-Methoden, die die Zuverlässigkeit des Systems erheblich verbessern, und daher kommt das Wort „redundant“.
Hier müssen wir JBOD (Just a Bunch of Disks) erwähnen. Ursprünglich wurde JBOD verwendet, um eine Festplattensammlung ohne Steuerungssoftware zur koordinierten Steuerung darzustellen, was der Hauptunterschied zwischen RAID und JBOD ist. Derzeit bezieht sich JBOD oft auf ein Festplattengehäuse, unabhängig davon, ob es RAID-Funktionalität bietet oder nicht.
Die beiden Hauptziele von RAID sind die Verbesserung der Datenzuverlässigkeit und der I/O-Leistung. Im Festplatten-Array sind die Daten auf mehrere Festplatten verteilt, aber für das Computersystem sehen sie wie eine einzelne Festplatte aus. Redundanz wird erreicht, indem dieselben Daten auf mehrere Festplatten geschrieben werden (typischerweise Mirroring) oder berechnete Paritätsdaten in das Array geschrieben werden, sodass kein Datenverlust auftritt, wenn eine einzelne Festplatte ausfällt. Einige RAID-Level erlauben gleichzeitig den Ausfall mehrerer Festplatten, wie z. B. RAID6, bei dem zwei Festplatten gleichzeitig beschädigt sein können. Unter einem solchen Redundanzmechanismus kann die ausgefallene Festplatte durch eine neue Festplatte ersetzt werden, und RAID rekonstruiert automatisch die verlorenen Daten anhand der Daten und Paritätsdaten auf den verbleibenden Festplatten, um die Datenkonsistenz und -integrität zu gewährleisten. Die Daten werden in RAID auf mehreren verschiedenen Festplatten verteilt und gespeichert, und die gleichzeitige Datenlese- und Schreiboperation ist viel besser als bei einer einzelnen Festplatte, sodass eine höhere aggregierte I/O-Bandbreite erzielt werden kann. Natürlich reduziert das Festplatten-Array den insgesamt verfügbaren Speicherplatz aller Festplatten und opfert Speicherplatz im Austausch für höhere Zuverlässigkeit und Leistung. Beispielsweise beträgt die Speichernutzung von RAID1 nur 50 %, und RAID5 verliert die Speicherkapazität einer Festplatte, und die Speichernutzung beträgt (n-1)/n.
Das Festplatten-Array kann den kontinuierlichen Betrieb des Systems ohne Unterbrechung gewährleisten, wenn einige Festplatten (einzeln oder mehrere, je nach Implementierung) beschädigt sind. Während des Prozesses der Rekonstruktion der Daten der ausgefallenen Festplatte auf die neue Festplatte kann das System normal weiterarbeiten, aber die Leistung wird bis zu einem gewissen Grad reduziert. Einige Festplatten-Arrays müssen beim Hinzufügen oder Löschen von Festplatten heruntergefahren werden, während einige Hot-Swapping unterstützen und den Austausch von Festplatten ohne Herunterfahren ermöglichen. Dieses High-End-Festplatten-Array wird hauptsächlich in Anwendungssystemen mit hohen Zuverlässigkeitsanforderungen eingesetzt, und das System kann nicht heruntergefahren werden oder die Ausfallzeit sollte so kurz wie möglich sein. Im Allgemeinen kann RAID eine Datensicherung nicht ersetzen. Es ist machtlos bei Datenverlusten, die durch Nicht-Festplattenfehler verursacht werden, wie z. B. Viren, menschliche Zerstörung, versehentliches Löschen usw. Zu diesem Zeitpunkt bezieht sich der Datenverlust auf das Betriebssystem, das Dateisystem, den Volume Manager oder das Anwendungssystem. Für das RAID-System selbst sind die Daten intakt und es sind keine Verluste aufgetreten. Daher sind Datensicherung, Disaster Recovery und andere Datenschutzmaßnahmen sehr notwendig, die RAID ergänzen und die Datensicherheit auf verschiedenen Ebenen schützen, um Datenverlust zu verhindern.
Es gibt drei Schlüsselkonzepte und -technologien in RAID: Mirroring, Data Striping und Data Parity. Mirroring kopiert Daten auf mehrere Festplatten. Einerseits kann es die Zuverlässigkeit verbessern, andererseits kann es Daten von mehreren Kopien gleichzeitig lesen, um die Leseleistung zu verbessern. Offensichtlich ist die Schreibleistung von Mirroring etwas geringer und es dauert länger, um sicherzustellen, dass die Daten korrekt auf mehrere Festplatten geschrieben werden. Data Striping speichert Datenscheiben auf mehreren verschiedenen Festplatten, und mehrere Datenscheiben bilden zusammen eine vollständige Datenkopie, die sich von den mehreren Kopien des Mirroring unterscheidet und normalerweise aus Leistungsgründen verwendet wird. Data Striping hat eine höhere Gleichzeitigkeitsgranularität. Beim Zugriff auf Daten ist es möglich, gleichzeitig Daten auf verschiedenen Festplatten zu lesen und zu schreiben, wodurch eine sehr signifikante Verbesserung der I/O-Leistung erzielt wird. Data Parity verwendet redundante Daten zur Fehlererkennung und -korrektur. Die redundanten Daten werden normalerweise durch Algorithmen wie Hamming-Code und XOR-Operation berechnet. Die Verwendung der Paritätsfunktion kann die Zuverlässigkeit, Robustheit und Fehlertoleranz des Festplatten-Arrays erheblich verbessern. Data Parity erfordert jedoch das Lesen von Daten von mehreren Stellen und die Durchführung von Berechnungen und Vergleichen, was die Systemleistung beeinträchtigt. Verschiedene RAID-Level verwenden eine oder mehrere der oben genannten drei Technologien, um unterschiedliche Datenzuverlässigkeit, Verfügbarkeit und I/O-Leistung zu erzielen. Welche Art von RAID (auch neue Level oder Typen) entworfen oder welcher Modus von RAID übernommen werden soll, muss unter der Prämisse eines tiefen Verständnisses der Systemanforderungen eine vernünftige Wahl getroffen und die Zuverlässigkeit, Leistung und Kosten umfassend bewertet werden, um eine Kompromisswahl zu treffen.
-
Große Kapazität: Dies ist ein offensichtlicher Vorteil von RAID. Es erweitert die Festplattenkapazität, und das RAID-System, das aus mehreren Festplatten besteht, verfügt über einen riesigen Speicherplatz. Jetzt kann die Kapazität einer einzelnen Festplatte mehr als 1 TB erreichen, sodass die Speicherkapazität von RAID das PB-Niveau erreichen kann und die meisten Speicheranforderungen erfüllt werden können. Im Allgemeinen ist die verfügbare Kapazität von RAID geringer als die Gesamtkapazität aller Mitgliedsfestplatten. Verschiedene RAID-Algorithmen erfordern einen bestimmten Redundanzaufwand, und der spezifische Kapazitätsaufwand hängt vom übernommenen Algorithmus ab. Wenn der RAID-Algorithmus und die Kapazität bekannt sind, kann die verfügbare Kapazität von RAID berechnet werden. Normalerweise liegt die Kapazitätsauslastung von RAID zwischen 50 % und 90 %.
-
Hohe Leistung: Die hohe Leistung von RAID profitiert von der Data Striping-Technologie. Die I/O-Leistung einer einzelnen Festplatte ist durch Computertechnologien wie Schnittstelle und Bandbreite begrenzt und oft der Engpass der Systemleistung. Durch Data Striping verteilt RAID die Daten-I/O auf jede Mitgliedsfestplatte und erzielt so eine aggregierte I/O-Leistung, die um ein Vielfaches höher ist als die einer einzelnen Festplatte.
-
Zuverlässigkeit: Verfügbarkeit und Zuverlässigkeit sind weitere wichtige Merkmale von RAID. Theoretisch sollte die Zuverlässigkeit eines RAID-Systems, das aus mehreren Festplatten besteht, schlechter sein als die einer einzelnen Festplatte. Hier gibt es eine implizite Annahme: Ein einzelner Festplattenausfall führt dazu, dass das gesamte RAID nicht verfügbar ist. RAID verwendet Datenredundanztechnologien wie Mirroring und Data Parity, um diese Annahme zu widerlegen. Mirroring ist die primitivste Redundanztechnologie, die die Daten auf einer bestimmten Gruppe von Festplatten vollständig auf eine andere Gruppe von Festplatten kopiert, um sicherzustellen, dass immer eine Datenkopie verfügbar ist. Im Vergleich zum 50%igen Redundanzaufwand von Mirroring ist Data Parity viel geringer und verwendet die redundanten Paritätsinformationen zur Überprüfung und Korrektur der Daten. Die Redundanztechnologie von RAID verbessert die Datenverfügbarkeit und -zuverlässigkeit erheblich und stellt sicher, dass bei mehreren Festplattenausfällen keine Daten verloren gehen und der kontinuierliche Betrieb des Systems nicht beeinträchtigt wird.
-
Verwaltung: Tatsächlich ist RAID eine Virtualisierungstechnologie, die mehrere physische Festplattenlaufwerke in ein logisches Laufwerk mit großer Kapazität virtualisiert. Für das externe Hostsystem ist RAID ein einzelnes, schnelles und zuverlässiges Festplattenlaufwerk mit großer Kapazität. Auf diese Weise können Benutzer die Anwendungsdaten auf diesem virtuellen Laufwerk organisieren und speichern. Aus der Perspektive der Benutzeranwendung kann dies das Speichersystem einfach und benutzerfreundlich und verwaltbar machen. Da RAID intern eine große Menge an Speicherverwaltungsarbeit erledigt hat, muss der Administrator nur ein einziges virtuelles Laufwerk verwalten, was viel Verwaltungsarbeit spart. RAID kann Festplattenlaufwerke dynamisch hinzufügen oder löschen und automatisch Datenüberprüfungen und Datenrekonstruktionen durchführen, was die Verwaltungsarbeit erheblich vereinfachen kann.